要件はトップダウンで決まる
(↑ほんまか?)
如何に詳細を無視したまま上のレイヤーから物を設計できるか
サービスになにか新しい機能を作るとき
ユーザに関わる部分、ユーザに対するinterfaceが重要
こういう課題を解決できる、こういう体験を提供できる
こういったものを考えるときに、実装がどうなっているかは関係ない
極論言えばぐちゃぐちゃでも良いし、人間が手動でやっても良い
同様に、何らかの内部実装をやっていくときもトップダウンで考えられる
「hogeを投稿する」という機能を実装したい
「submit」という関数の引数と返り値さえ決まっていれば、内部の実装は何でも良い
これはまさにOOPでも出てくるInterfaceという概念と同じ
トップダウンに考えることで、抽象度を高い状態に維持できる
境界、interfaceのみの設計に注力できる
結合が疎になる
実装に取り掛かる前に、それ自体の
責務、interface、型、どういう課題を解決するのか、というのを考える
とは言え、ボトムアップから決まることもありそう
ぱっと思いつかないけど