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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kanayannet
July 18, 2026
Programming
96
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
リファクタリング ハーネス
ハーネスエンジニアリングで過去のフリーソフトをリファクタリングしてみました。
kanayannet
July 18, 2026
More Decks by kanayannet
See All by kanayannet
厳密な定義
kanayannet
0
120
Mcp Training
kanayannet
0
240
MCP で「こいつ動くぞ」
kanayannet
0
160
無関心の谷
kanayannet
0
1.3k
生成AIの使いどころ
kanayannet
0
260
github copilot と 心理的安全性
kanayannet
0
290
FW と ライブラリ の考え方
kanayannet
0
280
TDDと今まで
kanayannet
0
720
個人開発 稼げなくてもいいアプリ
kanayannet
0
610
Other Decks in Programming
See All in Programming
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
670
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
180
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
420
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
160
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
240
プロポーザルを書いてもらう
pvcresin
0
280
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
860
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
590
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
370
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
1
250
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
210
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Spectacular Lies of Maps
axbom
PRO
1
890
A Modern Web Designer's Workflow
chriscoyier
698
190k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Rails Girls Zürich Keynote
gr2m
96
14k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
200
Ethics towards AI in product and experience design
skipperchong
2
340
KATA
mclloyd
PRO
35
15k
Un-Boring Meetings
codingconduct
0
380
Transcript
@kanayannet リファクタリング ハーネス Gunma.web #60
前提1 2007年くらいに ruby の勉強がてらに配布したblogがあった ruby 都度コンパイル型CGI フリーソフト 今時にしたい ただし、自分でコードを打ちたくない
どんなもん? https://github.com/kanayannet/Weblog http://localhost:8888/cgi-bin/Weblog/weblog.rb
前提2 「ハーネス エンジニアリング」とやらがある 「仕様駆動開発」との違いがイマイチ解ってない
そうだ こういう時こそ、勉強がてらにフリーソフトを修正してみよう ハーネスエンジニアリングで
まずは調べる
成果物 rule plan まずはここからだな。
何でやろうか? 前回、cursor をみて良さそうだったので、cursor でやるか ハズレはないだろう。
plan, rule を作るか? README.md に要件定義をざっくりと定義して... AI に 作らせた(雛形を期待)
None
ざっくりと要約すると... 横幅広げたい オレオレ記法やめたい markdown で書きたい 軽量FW(sinatra)にしたい RDB まではやりすぎ textファイルのまま trackback
いらない...orz
次の案内も出してくれる すげ〜
作られた plan どんなもん? https://github.com/kanayannet/Weblog/blob/harness_test/plan.md
矛盾があると指摘してくれる うっかり trackback 要らない旨を書き忘れた
なかなかいい感じ..だが
問題発生
何をやっても pro plan 誘導...orz
当日はとある画像 大人は嫌いだね! 無料で使わせる気なんてない癖に!
仕方なく... 課金(月額 4000円弱くらい)
課金したので..色々用心するように 初期は composer 2.5 だった 固定にしたら高そうだし... AI model 色々迷ったけど..
Cursor の auto を発見 これがいんじゃね? Balanced quality and speed とある
使えるようになったので 気を取り直してnext
マイルストーンも作ってくれた
M0 穴埋めのクロスチェックもAIに
無自覚にやっていたけど
比較的うまくいく やり方 ステップを細かくして... 人とコミュニケーションを取るのに苦にならない粒と同じ 確認をまずはAIにする(チェックさせる) AI と認識合わせ 漏れがAIと共通認識であると確認 AI に直させる
-> こっちでレビュー
こんなアルゴリズム while NG NG が消えるまで直させる next step
Red -> Green -> Refactoring... まるで...
頭の使い方が TDD
お互い慣れてくると... 多少アバウトでもやってくれる
リアル会場ではとある画像 よしなに...
注意 実際は、それなりに言語化して「よしなに」と言っても 勘違いしないくらいには定義してますw routing はこっち(人間)で入力 template file名を routing の命名に沿って入力させた
漏れがないか?もクロスチェック
ご丁寧に対応表も用意してくれる
M0 finish M0 は要件定義 や 用語など決める plan, rule を仕上げるステージ plan
や rule を 10回以上書き直している。 正直ここが一番長かった。 「すぐコード」に行きたがる方や「すぐ動くものが見たい」方はキツイかも..
M1 に進む... 無言の修正...orz 終わったとか次の指示がない..謎
エラー 終わったっぽいので起動するが...
None
さっきのは何だったんだ(謎) 今度は直してくれて、案内が出た
M1 は不具合との戦い
どうにか不具合の嵐を抜けて...M2 へ
実は...ここから先は M1 のような不具合ラッシュはないです。 M2 予想: M1 でかなり癖を掴んだんじゃないのか?
これだけ M2 どのくらいで済んだか?
M2 finish
不具合と思いきやこっちの見落とし M3 もあっさり完了
M4-M5 もあっさり完了して...
動くようになったけど?
要らないファイルがたくさんある
Git の調整も 削除もAIにやってもらった
完成 http://localhost:9292/
管理画面内 ボタンの歯抜けはあるものの markdown で動く状態w
やってみて感想 この規模感のフリーソフトでも、plan, rule はまあまあ長かった 不具合も普通に出るし、直すのもまあまあかかる 人よりは短めだったが...
何年も使ってきた「秘伝のタレ」 が多いシステムはどうなるか? クロスチェックが抜けたら..とんでもない方向に行きそう。 偽真な情報を見抜けるか?が鍵 Hallucination
予想: 規模が大きい場合 全部を一気に入れること自体無理ゲーでは? 人が plan を把握 input できなくなる認知限界が来そう サーバリソース管理、特殊処理を考慮してくれなそう あえて、汚く書かざるをえなかった処理
-> 負荷対策 更新系バッチ処理(常時更新は負荷がかかるので) -> 見落としそう
人(AIも)は見落とすし、ミスをする と深く気づいている人は...今回の最初期のように...
「分解」して進めるのでは? サービスの区切れ目 疎結合で済みそうな箇所の特定 マイクロサービス化 適切に切る時の一つの手法 やりすぎてもよくないが... 狭間にある業務知識が増える transaction 費用++
コミュニケーション ハッキリと表面化してくる コーディングで苦戦するステージは少なくなる 苦戦するステージが移動する ドメイン(業務)知識を得る場所に すなわちコミュニケーション
まとめ 言葉による定義を...少しずつ進めることが大事 一気にやると人間が付いていけない 定義自体から少しずつ 感覚は... TDD に近いが、もう少し付け加えると...
TDD の進め方で ペアプロ・レビューしてる気分
人との違いを言うと... 高速で読み込んで 高速で理解して 高速で書く 高速で直す input 外は察してくれない
人と同じ部分 勘違いある 実装ミスもある
少しづつ、インクリメンタルに...
まとめ2 AI を使いこなせる人になるには? AI を使いこなせる人を増やすには?
結局「受け身」の開発は向かない ここは今までと変わらなく見える 言われたことだけ実装... これだと厳しい
今までよりも...
レビュー・テストのつまずきが目立つ コーディングのスピード感より 要件定義(ゴール)がボヤけていると
ドメイン(業務)知識を得るために コミュニケーション重要
話を元に戻して...
折角なので harness_test branch で切ってup https://github.com/kanayannet/Weblog/tree/harness_test
リアル会場ではとある画像 もっと「よしなに」やりたくなってきたw
ご清聴ありがとうございました。