実装の高速化のパターン
- 設計書を高速化仕様として作成する(対象外)
- 分業の細分化(専門化)
- 横展開をコピペ化 or 共通化
- プログラミング言語仕様を暗記
- AIと仲良くなろう、そして単体テストで結果を確認しよう(対象外)
他に成功したパターンとかあれば誰か教えて。
分業の細分化(専門化)
同じ作業を繰り返すと、仕事が早くなる。
ただし、狭い範囲である。
失敗する細分化は、機能ごとの細分化である。
成功する細分化は、レイヤーごとの細分化である。
三層レイヤーであれば、プレゼンテーション層、アプリケーション層、データ層ごとに細分化すべしである。技術的なカバー範囲も狭いため、学習効果も抜群である。専門家誕生。
フロントとバックエンドは分業化するのが正常なのと同じことである。
ちなみに、失敗する細分化を選ばざるを得ないのは、上流工程の失敗である。仕様が確定していないため、実装メンバーが仕様に精通し、コミュニケーションをとる必要があるためである。
失敗する細分化と書いたが、あながち失敗とは言えず、上流の失敗を下流に押し付ける一流の解決手法ですね。
横展開をコピペ化 or 共通化
一つ目の機能をコピペにより、二つ目の機能に生かすことができれば、圧倒的に実装速度が早まる。
1つ目の機能より2つ目の機能を実装する方が確実に早くなる。
ただし、圧倒的な高速化をするためには、横展開を考慮したアーキテクチャを考えておく必要がある。
これは抽象と具象の関係で、具象が少なければ優良な抽象を得られない。つまり、1つ目、2つ目、3つ目あたりを作り終えたときに構成されるべきものである。
この時点で、通常のタスク管理では不可能であることが分かるだろう、3つ目がつくられたときに、1つ目と2つ目を書き直すのである(攻撃的リファクタリング)。
書き直さなくても、3つ目以降をリファクタリング後の構成で実装するので十分であるが、「書きっぷりを合わせる」という意味不明で、何の効果もないルールにより我が国では道が閉ざされている。
さらにさらに、リファクタリングの抽象学習効果は抜群である。エンジニアの実装能力が上がらないのは、抽象リファクタリングの経験を与えられないからである。
書き直しを行うには、デグレード管理が重要となる。単体テストをしっかり書いておけば大丈夫。
さらに、単体テスト実装によりアーキテクチャ構成はさらに良くなっていくのです。
プログラミング言語仕様を暗記
詳しくは「プログラマー脳」をご購読のこと