Skip to content
TopicTracker
出典 HackerNews原文を表示
翻訳言語翻訳言語

Show HN: AssertGo – Go言語向けFluentアサーションライブラリ

AssertJスタイルのFluentアサーションをGoで実現するライブラリ。Go 1.27で導入されたジェネリックメソッドに対応し、トップレベルメソッドをジェネリック化。文字列、数値、スライス、マップ、型検証など直感的なチェーン記述が可能。コード生成にClaude Sonnetを活用しつつ、設計とコミットはすべて手動で行っている。

背景メモ

- Go(Golang)はGoogleが開発した静的型付け言語で、シンプルさと高速なコンパイルが特徴。しかし「ジェネリクス」(型パラメータ)はGo 1.18(2022年)でようやく導入された遅れてきた機能で、その後のバージョンでも利用範囲が徐々に拡大している。 - 「アサーションライブラリ」はテストコードで「この値は〇〇のはず」と検証するためのツール。JavaのAssertJはメソッドチェーンで自然に読める「fluent assertion」スタイルの先駆けで、Goには同様のライブラリが少ない。 - Go 1.27(2025年リリース予定)で「ジェネリックメソッド」(型パラメータを持つメソッド)が追加される。従来は関数・型にしかジェネリクスを使えなかったため、メソッドチェーンの各段階で型情報を失っていた。今回のライブラリはこれを活用し、より型安全なアサーションを実現している。 - このライブラリの作者は、AI(Claude Sonnet)にコード生成をさせつつ設計判断は自ら行い、細かいコミットで開発した点を明記している。