着想をモデル化する
最初に用語の整理をしておく
順序的には、まず最初に「着想」を頭の中に構築し、それを「モデル化」することで「表現」に変換する
「着想」
何かの現実世界の問題を見つけた上での、それを解決するためのロジック
頭の中にあるロジックのこと
プログラムを作る前に頭の中にあるアレのこと
ざっくりしているがmrsekut.icon
「表現」
着想を反映したプログラムそのもの
プログラミング言語で記述されていることが多い
対象世界の問題をシミュレートしたもの
「モデル化」
着想を表現に変換する過程のこと
着想を表現に写像する工程
今の所、頑張ってプログラマがやっている
$ 着想\xrightarrow{モデル化}表現
良い感じの表現を作るためには、
着想の論理構造を良い感じにモデル化しないといけない
強力で柔軟なモデル化の手法
人間が管理できる複雑さの限界があるので、高度な機能が必要なら、その限界に達さずに記述できるようなソフトウェア記述体系が必要
モデル化が難しい
だから、現実世界のECの流れを、プログラムに落とし込むときに苦労する
頭の中にある着想を、過不足なく、イメージを歪ませることなく、プログラム記述に落とし込まないといけない
既存のプログラミング言語はかなりフォン・ノイマンアーキテクチャに依存している
どの辺が難しいのか
なんで難しいのか
初期の段階では、自分たちでも見えていない細かい仕様が存在する
これらは実際に創っていくことで気づく
もしくは作らられたものを触る過程で気付く
初期段階でどこまで想定できるかは経験や知識に依存する
取りうるアプローチ
もっと効率的に、直感的に、そして正しくモデル化する手法はないか
アジャイルを加速させるツール
「初期段階で全想定は不可能」の立場
↑は不可能なので、爆速でプロトを創り、且つ、楽に改善できるような設計にする
最初の仕様網羅をサポートするツール
最初から完璧なものを作る立場
あとは、その仕様に沿って実装していくだけ