1機能を作る際の指針
#俺の思考 #指針
生産性を上げるためには「再現性」が必要だ。
1機能を作る際も、再現性ある指針を作りたい。
まだまだ自分は機能を作る速度が遅い。
散発的な作業を毎回して、どうにか実装しているみたいなことになっている。
ただ、これだといつまで経っても生産性が上がらないので、都度都度その作業が何で構成されて、どう進めれば早くなるのかを徹底して分析していきたい。
1. その機能の要求をとりあえず言語化する
正直、どこまで書けばいいのかの塩梅がまだわかってないので、今は適当に書き殴る
どんな概念、知識をその機能では扱うのか
どういうインプットが必要なのか
どういうアウトプットになるのか
アウトプットのパターンは何か
誰が、いつ、何のために使うか
などなど
思いつくままに言葉で書き殴る
DDDのドメインモデル、概念を洗い出すような作業もあるかも知れない
知識ってのは大事だ。
つまり、その機能、モジュールがどんな知識を扱うのかを洗い出しておく
そうすると、それを中心に設計できたりする
2. そのモジュールで共有する知識・概念はモデルとして書き出しておく
これ大事。知識を中心に機能が出来上がるイメージ。
大事な知識が何か、それをどう扱うのかってのをイメージしておくこと。
これを見失うと作りにくくなる気がする。
3. その機能を実現するための一段下のモジュールと機能を書き出す
紙に書いて、ビジュアライズしたほうがわかりやすいと思う。
設計図を書くように作ろう。これは実はサボらないほうがいい。
やっぱテキストよりもシンプルでわかりやすいと思う。
一段下のモジュールに留めておいたほうがいい。その下のもやり始めると収拾つかない
「2.」で書き出した知識を意識しながら一段下のモジュールのIFや機能を言語化したほうがいい。
4. 一段下のモジュールに対して、それぞれ「1. ~ 3.」と同じようなことして設計を進めていく
ポイントとして、凝集度を細かくしすぎないことは大事。
凝集度を大切にしすぎて、めっちゃ疎結合な設計になることもある。
ただ、「再利用することがない部品」を無理に疎結合にすることはないと思う。
再利用しないなら、汎用的な知識のみでモジュールを作るのではなく、ビジネスロジックに関わる知識を共有してもいいと思う。
これで試してみて、PDCAで改善していく。