タグ

ブックマーク / akito0107.hatenablog.com (3)

  • Goのカスタムエラーとその自動生成について - asterisc

    はじめに この記事はGo2アドベントカレンダー14日目の記事です。 GoErrorハンドリングについては、これまでにも様々なパターンが発表されてきました。 今回は独自定義のエラーについて、これまでのパターンをまとめた上で、その実現をeasyにするgenerrというツールを作ったので、その紹介をします。 github.com Goのカスタムエラー Goのエラーハンドリングの中で、カスタムなerror型を用いるパターンは比較的広く知られているかと思います。 その中からいくつかのパターンを紹介します。 sentinel errorsパターン Goerrorはinterfaceとして定義されており、Error() stringのメソッドを実装さえしていれば、errorとして扱うことができます。 標準パッケージで提供されているerrorsやfmt.Errorfを用いて簡単にエラーを表現することが

    Goのカスタムエラーとその自動生成について - asterisc
    peketamin
    peketamin 2018/12/15
  • 結合テストと呼ぶのをやめた話 - asterisc

    はじめに 最近、意図的に「単体テスト」「結合テスト」という呼び方を避け、Google Testing Blogで紹介されてるTest Sizesによる分類(small / medium / large)に従った呼び方でテストを呼んでいる。 この分類方が自分の身の回りに徐々に浸透してきて、実際のチーム内のテスト戦略も一歩進んだ議論ができるようになってきたので、改めてまとめる。 ちなみにこの記事の話は手動で行われるテストではなく、自動テストを対象としているが質はあまり変わらないと思う。 続き書きました。 akito0107.hatenablog.com 「単体テスト」「結合テスト」という呼び方について ソフトウェア開発に従事していれば必ず聞く言葉だと思う。改めて他のサイトから引用する形で定義をまとめておく。 単体テストとは *1 単体テストとは、プログラムを検証する作業の中でも、プログラムを

    結合テストと呼ぶのをやめた話 - asterisc
    peketamin
    peketamin 2018/08/29
  • CIとTest Sizesの話 - asterisc

    はじめに 前回 akito0107.hatenablog.com どちらかというとこっちが編。 前回の記事ではTest Sizesについて紹介したが、今回の記事はその分類が実際の開発にどう役に立っているのかをまとめたいと思う。もちろん用語の統一も大きな意味を持つが、それ以外のことを書いていきたい。 具体的には、CIでテストのパイプラインを組む時にこの分類どおりに組んでいくと綺麗に整理でき、CI全体のスループット向上にも効果がでているという話だ。今回の話は僕たちのチームに特化した内容になるが、1) Test SizesごとにTestの起動コマンドを分ける、 2) Smallから順に実行していき、落ちるべきテストはできるだけ早期に落とす、というポイントはどこにでも使えるものだと思う。 コンテナ技術とテスト 僕たちはローカルの開発環境だけではなく、番環境やCI環境でコンテナ技術(主にDock

    CIとTest Sizesの話 - asterisc
    peketamin
    peketamin 2018/08/29
  • 1