極私的メモ。設計と実装を一致させる必要があるのか? 設計を膨らませて(情報を付加して)ソースコードを記述するのがプログラマーの責務? 膨らませるだけではなく変形や組み換えまでがプログラマーの責務と捉える? 一方で設計と実装の著しい乖離は設計成果物を「絵に描いた餅」、「無駄な成果物」にする恐れはないのか? 「プログラマー」を「設計者(アーキテクト)」と「実装者(コーダー)」に役割を分けることにメリットがあるのか?
メタプログラミング
抽象度の高い設計コードから、抽象度の低い実装コードを生成するルール(メタプログラム)をつくる。
モデル駆動開発 (MDD: Model Driven Development)
『モデリング言語(DSL: Domain-Specific Language)で記述した設計』から『実装(汎用プログラミング言語 : General-purpose programming languageで記述されたソースコード)』を生成する。MDDでは「UMLで記述された設計もモデル」、「変換後のC言語のソースコードもモデル」である。設計から実装へのモデル変換を自動化する手法がMDDである。
生成AIの活用
ガードレールやコンテキストを活用する。