シンプルさが最も重要!
私は設計をするときの方針として、シンプルかどうかに勝る軸はないと考えています。
API設計をするときも、UIレイアウトを検討するときも、実装するときもそうです。
とにかく、シンプルな設計、シンプルな構成にしておくと、みんなハッピーになります。
シンプルな設計にするには?
シンプルになるまで分割していくこと。1つのモジュールに1つの事象が紐づくように分解していくことが大事です。
APIなら
- 1つのAPIに複数機能を持たせようとしないこと。
- 1つのAPIに複数業務を入れ込まないこと。
- 1つのAPIで複数箇所を更新しないこと。
- DELETE→INSERT/UPDATEにならないようにする。
UIレイアウトなら
- 1つの画面に複数業務を入れ込まないこと。
- 1回のリクエスト内容に複数エンティティにまたがるデータを入れないこと。
- どうしても複数の何かが入るなら、UIコンポーネントを分割しておく。
なぜ、そんなにシンプルな設計が大事なのか?
シンプルな設計はバグを生みにくい
複雑な設計に基づいて実装していると、何をやってるか分からなくなってしまいます。その結果、とりあえず設計書通りに実装しておくかということになり、全体の整合性を把握できないまま実装が進みます。
シンプルな設計はバグを見つけやすい
実装をシンプルにしておくと、どこでバグが発生したか見つけやすいです。複雑な設計に基づく実装は、どこに何が影響しているか分からなくなり、バグを見つけにくいだけではなく、デグレも発生させやすいです。
シンプルな設計は作りやすい、簡単
シンプルな設計に基づく実装は容易です。初心者でも簡単に作れるようになっています。
シンプルな設計は迷わない
シンプルな設計は工期を早める
シンプルな設計にしておくと、工期が早まるわ、実装もすらすら進むでチーム全体がハッピーになります。