Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
厳密な定義
Search
kanayannet
March 28, 2026
Programming
86
0
Share
厳密な定義
Gunma.web #59
kanayannet
March 28, 2026
More Decks by kanayannet
See All by kanayannet
Mcp Training
kanayannet
0
150
MCP で「こいつ動くぞ」
kanayannet
0
130
無関心の谷
kanayannet
0
1.1k
生成AIの使いどころ
kanayannet
0
230
github copilot と 心理的安全性
kanayannet
0
260
FW と ライブラリ の考え方
kanayannet
0
260
TDDと今まで
kanayannet
0
650
個人開発 稼げなくてもいいアプリ
kanayannet
0
580
システムの堅牢性
kanayannet
0
340
Other Decks in Programming
See All in Programming
3分でわかるatama plusのQA/about atama plus QA
atamaplus
0
140
Feature Toggle は捨てやすく使おう
gennei
0
560
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
200
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
260
AI-DLC Deep Dive
yuukiyo
1
200
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
340
実践CRDT
tamadeveloper
0
450
Nuxt Server Components
wattanx
0
260
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
170
感情を設計する
ichimichi
5
1.4k
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.9k
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
890
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
120
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
350
What's in a price? How to price your products and services
michaelherold
247
13k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
53k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
340
Marketing to machines
jonoalderson
1
5.2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Limits of Empathy - UXLibs8
cassininazir
1
290
Transcript
@kanayannet 厳密な定義 Gunma.web #59
前提
前提 今回話すのはAIから適切な回答を得るために どんな工夫をするといいのか? 言葉の定義の大事さが刺さる内容にしたい そのための練習LT である 凄い話ではない
Agenda
Agenda 形式手法とは? 厳密な仕様とは? 生成AIの反応を見る 仕様の大切さをどう伝える? まとめ
形式手法とは?
形式手法 仕様を厳密な構文と、意味を持つ手段で記述して、検証( Verification )、妥当性( Validation )、確認、文書化、設計といった開発活動の品質を向上させる手法 お財布携帯 = FeliCa 開発時に使われた手法
参考(るびま): https://magazine.rubyist.net/articles/0045/0045- TochigiRubyKaigi05Report.html
厳密? 行き違い・勘違いがない定義 VDM というツールもあるくらい
module SimpleWallet types -- 残高は0以上 Balance = nat inv b
== b >= 0; state Wallet of balance : Balance init w == w = mk_Wallet(0); operations -- チャージ Charge(amount: nat) ext wr w pre amount > 0 post w.balance = w~.balance + amount;
中々ハードル高い
あくまで考え方が重要
なぜ?形式手法だったか? 仕様策定者と実装者 間で「勘違い」を起こしたまま進むと困る 検証( Verification ) = 仕様をレビューできる 妥当性( Validation
) = 仕様を評価できる
「不具合厳禁」というよりも...
「勘違いを避ける」
じわじわ生成AIのネタに 近づいてきましたか?
厳密な仕様とは?
例題をいくつか出します 生成AI のレスポンスを試します
例題1 画像をアップロードして、表示したい
None
ふわっとし過ぎてコード出してくれない(汗)
例題2 不特定多数の人に画像をアップロードして、表示したい
None
やや前進(反応が変わる)
例題3 不特定多数の人に画像をアップロードして、表示したい 転送料金が気になるので S3 と CloudFront を使いたい
None
ようやくコードを自動生成 しかし..言語はAI任せ(JS, Python) lambda 利用もAI任せ
例題4 不特定多数の人に画像をアップロードする 画像かどうか?をruby mini-magick を使って評価する 許可する画像は gif, jpeg, png とする
許可する容量は 5MB とする インターネット上で画像を表示する S3 と CloudFront を使う 転送料金がやすい方がいい aws の認証情報は xxxxx として欲しい
None
だいぶ意図通り 微調整で済むくらいのものになってきた
例題5(おまけ) 上記二つの学習プランを立てて欲しい
None
学習プラン ちょっと基本を飛ばしてる感あるが... ないよりマシくらいのプランを出してくる
仕様の大切さをどう伝える?
結構難しい 正直上述の例を出してみても、イマイチ刺さらない方が多い
理由を考察
シニアエンジニアの前提 いきなりコードから書かない 「勘違い」による「やり直し」の果てしなさを「経験」済である 「勘違い」が起きないように進める 言葉(自然言語)による厳密な定義の「重要」さを知っている etc...
ジュニアエンジニアの前提 コードを書くことへの憧れ 職業プログラマへの憧れ 最重要は「コード」 動くもの大好き 動くものがすぐ欲しい コードのお手本大歓迎
すれ違う(汗)
アイデア 言語化レビュー
曖昧な定義を粛清しようというのだアムロ 当日はシャアの画像
そうは言うがな大佐 当日はスネークの画像
たかが仕様書一つ!書いてみせる! 当日はアムロの画像
と...期待したい
まとめ
まとめ 「曖昧さがない」言葉による定義は重要 コードじゃなく「自然言語」が武器になる 生成AIと相性がいい 微調整で済む(事が多い) 銀の弾丸は存在しない きちんとやろうとする方もいる コードにまっしぐらの方もいる
おまけ ネタが解った方は..「年齢」がバレます!
悩み事 じわじわ「ネタ」が通じる世代が少なくなってきた(汗)
意外な事 「JOJO」は意外と若い世代にも刺さる(事がある)
ご清聴ありがとうございました!