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
July 18, 2026
Programming
110
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
250
MCP で「こいつ動くぞ」
kanayannet
0
170
無関心の谷
kanayannet
0
1.3k
生成AIの使いどころ
kanayannet
0
270
github copilot と 心理的安全性
kanayannet
0
290
FW と ライブラリ の考え方
kanayannet
0
280
TDDと今まで
kanayannet
0
730
個人開発 稼げなくてもいいアプリ
kanayannet
0
620
Other Decks in Programming
See All in Programming
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
310
Press start. Python's next generation.
willingc
PRO
3
250
バグを直したら useEffect が消えた
colorful12
3
760
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
170
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
28
17k
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
230
引き算の組織 ― アウトカムとAIに全振りするために辞めたこと ― / Organization by Subtraction
hirokiyamamoto14
PRO
0
310
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
1.2k
FastAPI の並行処理モデルを完全に理解する
hoto17296
8
3.1k
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
2.2k
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
570
Dockerfile CMD for Node.js
grazie1999
0
140
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
500
Everyday Curiosity
cassininazir
0
300
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
310
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
280
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
670
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The SEO identity crisis: Don't let AI make you average
varn
0
540
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
ご清聴ありがとうございました。