≪ Today I learned. RSS購読
公開日
タグ
Programming
著者
ダーシノ(@bc_rikko)

Clean CodeとA Philosophy of Software Designの共通点と相違点

Clean Codeの著者:Robert C.Martin氏(以下、UBと呼ぶ)とA Philosophy of Software Designの著者:John K. Ousterhout氏(以下、JOHNと呼ぶ)の対談がGitHubで公開されていた。そこで、両者の言い分を整理してみる。

TL;DR

両者ともに 「開発者が理解しやすいコード書こう」という点において認識は一致している。ただ、アプローチが異なるだけ。

共通点

相違点

トピックJohn Ousterhout (APOSD)Robert Martin (Clean Code)
設計哲学情報の量と可視性が重要コードの読みやすさが重要
メソッドの長さ深さを優先し、過度な分解を避ける短いメソッドを推奨
コメント必要不可欠で、情報補完の役割極力避けるべきで、コード自体が明確であるべき
TDD設計が犠牲になりやすい設計が自然に改善される

1.全体的な設計哲学

JOHN

UB

2.メソッドの長さ

JOHN

UB

3.コメント

JOHN

UB

4.テスト駆動開発(TDD)

JOHN

UB

感想と自分の考え

両者ともに同じ方向を向いているにも関わらず、アプローチの仕方に違いがある。また、Robert C.Martin氏は理想論、John K. Ousterhout氏は現実論でいった印象を受けた。私はどちらの原典も読んでいないため正確な判断はできないが、対談を読んだだけでも双方の言い分は理解できるし、納得感もあった。

結局、「場合による」としか言えないのかもしれない。

「お前ならどうする?」と聞かれた場合、いろいろ考えたすえに以下のように答えるだろう。

1. 設計哲学

2. メソッドの長さ

3. コメント

4. TDD