とはいえ、定義ファイルのサイズなどは大した話ではない。エディタでシステム定義を編集したり、ドライバに読ませたりすることで、実際に動作する業務システムを理解できる。それは、"イパネマの娘"の演奏定義ファイルを調べたり実行したりすることで、楽曲のコード進行やリズムを細かく分析できるようなものだ。実システムを、ポータビリティの高い教材としてライブラリ化しやすくなる――これこそが、DSPがもたらす最大の社会的効果だと私は考えている。
ドメインの階層化とDSP: 設計者の発言
seen from United States

seen from Egypt
seen from Austria
seen from Netherlands
seen from Austria

seen from United States

seen from Austria
seen from Germany
seen from Malaysia

seen from United States
seen from United Kingdom

seen from United Kingdom
seen from United Kingdom
seen from China

seen from Austria
seen from Russia

seen from United States

seen from United States
seen from China

seen from Malaysia
とはいえ、定義ファイルのサイズなどは大した話ではない。エディタでシステム定義を編集したり、ドライバに読ませたりすることで、実際に動作する業務システムを理解できる。それは、"イパネマの娘"の演奏定義ファイルを調べたり実行したりすることで、楽曲のコード進行やリズムを細かく分析できるようなものだ。実システムを、ポータビリティの高い教材としてライブラリ化しやすくなる――これこそが、DSPがもたらす最大の社会的効果だと私は考えている。
ドメインの階層化とDSP: 設計者の発言
「初音ミク」のエディタがどんなに気が利いているとしても、利用者に作曲や編曲といったスキルや音楽性が欠けていたら使いこなせるものではない。つまりDSPは、「その適用分野で稼ぐために必要な専門性や適性がどういうものか」をあぶりだすための仕掛けでもある。
ドメインの階層化とDSP: 設計者の発言
大量のテーブルとそれらの関連がびっしり置かれたデータモデルを私は「大規模集積回路モデル」と呼んでいる。大判の用紙で印刷しても文字が小さいうえに、関連を追う気が失せるくらいに関連線が込み入っていたりする。
テーブルIDやフィールドIDの命名基準については、昔からさまざまに語られてきた。ローマ字表記で"HINMOKU"とすべきか、英単語の省略形を使って"HINMST"とすべきか、記号に徹して"AT010"とすべきかなどと議論されてきた。現在の私は、テーブルIDについては"AT010"のようにサブシステム区分付の番号方式で、フィールドIDについては"QTTORIHIKI"のようにデータタイプとローマ字(たまに英単語の省略形)を組み合わせるという基準に従っている。
言い換えれば、システム開発の劣悪なコストパフォーマンスを改善するには、勝手にセル生産方式に移行してしまうような「創造的な仕掛け」こそが必要である。ドキュメントとコードを別々に書くような丸腰式では、みんないっしょに仲良く助け合うライン生産方式からいつまでたっても抜け出せない。業務システムが「クラスやメソッドの巨大で複雑な集まり」であることが隠蔽され、代わりにドメインエキスパートが了解可能な様式(DSL)によって端的に仕様が示される。その仕様を修正するだけでシステムの振舞いが変化する。そんな基盤や、その上で動作するシステムの業種別ライブラリが求められている。
システム開発は「セル生産方式」になる: 設計者の発言
DOA(データ中心アプローチ。DBシステム設計においてDB構造の検討を優先させる手法)の考え方では、それぞれのテーブル(エンティティタイプ)について、「リソース」か「イベント」かを区別するやり方が主流である。
主流派の向こうを張ろうってわけでもないのだが、筆者はデータモデリング手法の前提としてそれらを区別しない。なぜかというと、それらの区別が各テーブルの「絶対的な特性」ではなく、「相対的な傾向」でしかないと考えるからだ。ある文脈ではイベントとみなされるテーブルが、別の文脈ではリソース的なものに見えるなんてことが実際にはある。
開発基盤というものは、システムを短時間で把握するための「見晴らしの良い書庫」であるべきだ。その内外を調べまわらないとシステムの振舞いを理解できないとしたら、可読性や保守性に問題がある。
DBMSの交換容易性と開発基盤: 設計者の発言
拙作のOSS基盤XEAD Driverは、マルチユーザを前提にしたソフトウエアである。業務システムの実行基盤としてシングルユーザしか使えないのではお話にならない。いっぽう、XEAD Driverのための「そのまま動く仕様書」を書くためのエディタXEAD Editorや、基本設計用のモデリングツールXEAD Modelerは、シングルユーザのソフトウエアである。
それらのCADツール(*1)について、「複数メンバーが同時編集できないのが残念」と指摘されたことが何度かある。私としては、複数で手分けしたい場合にはインポート機能を使って定義情報を適宜統合しながら進めたらよいというスタンスなのだが、これには理由がある。