Open5

複雑さ、シンプルさ

Shingo TomiokaShingo Tomioka

A Philosophy of Software Design

  • 複雑さがシステムの理解と変更を難しくする
    • "Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system."
  • 複雑さと戦う方法
    • コードをシンプルで明白 (obvious) にすること
    • モジュール化して、複雑さを隠蔽すること
Shingo TomiokaShingo Tomioka

Simple Made Easy

  • simple と easy の違い
    • simple = 絡まり合っていない
      • ↔ complex (絡まり合った、入り組んだ)
      • 客観的
    • easy = 親しみやすい、身近に感じる
      • ↔ hard
      • 主観的 = その人が持っている経験や知識によっても感じ方は変わる
simple easy
  • シンプルさが agility を生む
    • 複雑さは理解を妨げる。複雑さは人間の認知能力を簡単に超えてしまう
    • シンプルであれば理解しやすく、変更しやすい
    • Do not complect things
    • CI や TDD などのどんなエンジニアリング・プラクティスよりも、シンプルな設計が aglity を生む
  • デザインは分解

https://logmi.jp/tech/articles/321962
https://eed3si9n.com/ja/simplicity-matters/

Shingo TomiokaShingo Tomioka

A Philosophy of Software Design の表紙はまさに、"complex" と "simple" を表している