← 研修トップ
何を作るかを言葉にする
曖昧な依頼からは、正しい実装が2つ以上作れます。どちらを選ぶかは、書かなければ実装した人か AI が黙って決めます。確かめられる条件にする、条件の外・異常系・入力の端を書く、義務の強さを語で分ける、やらないことと未決定を書き残す。AI への指示も仕様書です。一次ソースの逐語と、手元で再現した実演から積み上げます。
- 1約 9 分1つの依頼文から、正しいプログラムが2つできる「利用者名を名前順に並べ、重複を除いて返す」という1文には、どちらもこの文に反しない2つの実装が書けます。同じ入力に対する2つの結果がどれだけ違うかを、手元の実演で確かめます。
- 2約 9 分要件は世界に、仕様は機械との境目に書く要件は、機械をつないだあとの世界がどうあってほしいかを書いた文です。仕様は、それを機械が見られる出来事と起こせる出来事だけで書き直した文です。
- 3約 8 分確かめられる条件とは、満たしていないと言える文「わかりやすく表示する」は、どんな画面を出されても「満たしていない」と言い切れません。言い切れない部分は消えずに残り、何を「わかりやすい」とするかは実装した人か AI が黙って決めます。
- 4約 9 分条件付きの文は、条件が偽のとき何も言わない「〜のとき、〜する」という文は、条件が成り立ったときの振る舞いだけを決めます。条件が成り立たないときの振る舞いについては何も言っていません。
- 5約 9 分正常系だけ書くと、異常系は実装が決める依頼文が成功したときのことだけを書いても、失敗したときの振る舞いは消えません。相手が応答しない、利用者が打ち間違える——そのとき画面に何が出るかは、実装した人か AI が黙って決めています。
- 6約 8 分入力の端を書かなければ、実装と環境が決める依頼文が入力の端(空・巨大・範囲外)を書かなければ、その振る舞いは消えずに残ります。決めるのは、どの関数を選んだかと、どの環境で動かしたかです。
- 7約 8 分MUST の強さは、その文書が宣言した分だけ「〜すべき」と書いても、その語がどれだけ強いかを書かなければ、強さは読んだ側が黙って決めます。書かなかったことが実装に委ねられるのと同じ形です。
- 8約 8 分スキーマも、書かなかったことは通すこのコースの芯は、仕様に書かなかったことは消えずに残り、実装した誰か(人でも AI でも)が黙って決める、でした。機械が確かめる条件にしても同じです。JSON Schema では、書かなかったキーワードは何も拒否しません。
- 9約 9 分「やらないこと」は決定であって、禁止文ではない仕様に書かなかったことは消えずに残り、実装した誰か(人でも AI でも)が黙って決めます。「どこまでやるか」も同じで、範囲の外を書かなければ、ついでに何を足すかを実装した側が決めます。
- 10約 9 分決められないことは、未決定と書く決まっていない点を書かずにおくと、読み手には「決めていない」と「書き忘れた」の区別がつかず、実装した誰かが黙って決めます。