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

    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