Dev Study
← 研修トップ

何を作るかを言葉にする

曖昧な依頼からは、正しい実装が2つ以上作れます。どちらを選ぶかは、書かなければ実装した人か AI が黙って決めます。確かめられる条件にする、条件の外・異常系・入力の端を書く、義務の強さを語で分ける、やらないことと未決定を書き残す。AI への指示も仕様書です。一次ソースの逐語と、手元で再現した実演から積み上げます。

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