海外テック情報局

きれいな設計を身に付けるためのSandi Metzルール

画像

受託開発やコンサルティングを行うthoughtbotのブログにて、Sandi MetzルールというRubyプログラマ向けのルールが紹介されていました。このルールは、プログラマであり『Practical Object-Oriented Design in Ruby』注1という書籍も執筆しているSandi Metz氏が紹介したもので、次のような内容です。

  • ① クラス内のコードが100行を超えてはならない
  • ② メソッド内のコードが5行を超えてはならない
  • ③ 4つより多い引数をメソッドに渡すようにしてはならない(ハッシュによるオプションも同様)
  • ④ コントローラではただ1つのオブジェクトだけをインスタンス変数化できる

方向性としては『Thoughtworks アンソロジー』注2で紹介されているオブジェクト指向エクササイズに通じるものがありますね。thoughtbotのブログでは、このルールを適用して得られた知見として「単一責任の原則を徹底するようになる」⁠条件分岐ではなく、適切に命名されたプライベートメソッドを作ってそれを呼ぶようになった」⁠テストも100行以内に収めることを心がけるようになった」といったことも紹介されているので、ぜひ参考にしてみてください。

なお、上記の4つのルールとは別に、⁠適切な理由があると考えられる場合」「ペアプログラミングのパートナーやコードレビュアが許可した場合」にはルールを破ってもよい、というルール0があるのも大事なポイントです。

URLhttp://robots.thoughtbot.com/post/50655960596/sandi-metz-rules-for-developers

著者プロフィール

安藤祐介(あんどうゆうすけ)

下北沢OSS カフェに毎週出没中。ソーシャル本棚librize.com登録4万冊突破おめでとうございます!

Twitter:yando

小倉純也(おぐらじゅんや)

この号が出るころにはqnypがオープンしてるといいな…。

Twitter:junya

溝畑考史(みぞはたたかし)

トライアスリートになっている予定です。

Twitter:beatak

おすすめ記事

記事・ニュース一覧