"Object Calisthenics"のルールは、遵守すべきコーディング規約でも良い設計・コードのための原則でもない。オブジェクト指向のコンセプトを自分のものにして実践できるようにするためのエクササイズに使うギプスのようなものだ。それも、少なくとも自分にとっては、かなり強力なギプスだ。
ルールは全部で9つある。いずれのルールも、オブジェクト指向のコンセプトは知っている上で、実践に移すのを助けるためのものなので、かなり具体的。長くなるので、個々のルールには立ち入らないけれど、覚え書きを兼ねて()内に私訳を付けておく。
- One level of indentation per method(各メソッド、インデントは1段階)
- Don't use the ELSE keyword(else句は使わない)
- Wrap all primitives and Strings(プリミティブ型と文字列にはラッパークラスを作る)
- First class collections(コレクション型にもラッパークラスを作る)
- One dot per line(メソッドをチェーンさせない)
- Don't abbreviate(略語は使わない)
- Keep all entities small(クラスは50行以下、パッケージは10クラス以下を保つ)
- No classes with more than two instance variables(インスタンス変数は2つまで)
- No getters/setters/properties(ゲッター/セッターあるいはプロパティを使わない)
その結果、再利用性もメンテナビリティも高いクラスになるので、保守・運用が容易になる。リーダビリティ・テスタビリティも上がるので、開発者にとっても嬉しい。
著者によると、100%これらのルールに従って20時間くらいかけて1000行ほどのコーディングすると、これまでの習慣(手続き指向)から抜け出せるとのこと。自分は割と本を読む方だけれど、どれだけ読んでも手を動かしていない内容は簡単に忘れてしまう。100%は無理そうだけれど、意識してみるつもり。
0 件のコメント:
コメントを投稿