28 Jun 2021

最近読んだもの 6

記事

コード

  • github/scientist: A Ruby library for carefully refactoring critical paths.
    • 複数のコードブロックを渡すとそれぞれを実行し結果が一致していなければエラーをあげる
    • 慎重にリファクタリングや移行を行う際に有用
    • 実行順序をランダムにしたり、比較関数のカスタマイズや各種フック、実行条件の指定、実行時間の計測などの機能が揃っていて行き届いている
    • 実装はシンプルで、複数のコードブロックをランダム順に実行し結果を比較している
      • 各コードブロックの実行結果クラス Observation と全結果の統合クラス Result というエンティティを作っているのは綺麗で良い
      • 命名が全体的に良い
        • experiment
        • control
        • observation
        • scientist
    • ruby の構文にまだ不慣れなところがあるのでそのエクササイズにもなった