「美しいソースコードのための七箇条」
「美しいソースコードのための七箇条」というのを考えてみた。
# 取り敢えずの叩き台として。
美しいソースコードとは:
次の七つを満たしたソースコードである。
- 意図を表現:
- 意図が表現されていること。
- 意図の理解が容易であること。
- 意図以外の記述が少ないこと。
- How (どうやってやるか) でなく What (何をやるか) が記述されていること。
- できれば、Why (なぜやるか) も記述されていること。
- 単一責務:
- (型やメソッドや変数などの) プログラムの単位が唯一の仕事を記述していること。
- 且つ、(なるべくなら) その仕事がそのプログラム単位内で記述されつくされていること (=高凝集: high cohesion)。
- 的確な名前:
- (型やメソッドや変数の) 名前が、それの (唯一の) 仕事を (一言で必要十分に) 表現していること。
- 同じものは同じ名前で、違うものは違う名前で表現されていること。
- それであるものとそれでないものの区別が付くこと。
- Once And Only Once:
- 同じ意図のものが重複して書かれていないこと。
- 的確に記述されたメソッド:
- メソッド内が同じ抽象度の記述の集まりで構成されていること。
- メソッド内が、自然な粒度で記述されていること (話し言葉のように)。
- ほどよい量 (記述が多過ぎない)。
- ルールの統一:
- 全体が同じルールに従っていること。
- Testable:
- 正しい記述であることが分かるようになっていること。
- 検証 (verification) が容易であること。