Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
リファクタリング ハーネス
Search
kanayannet
July 18, 2026
Programming
120
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
130
Mcp Training
kanayannet
0
260
MCP で「こいつ動くぞ」
kanayannet
0
190
無関心の谷
kanayannet
0
1.3k
生成AIの使いどころ
kanayannet
0
270
github copilot と 心理的安全性
kanayannet
0
300
FW と ライブラリ の考え方
kanayannet
0
280
TDDと今まで
kanayannet
0
740
個人開発 稼げなくてもいいアプリ
kanayannet
0
620
Other Decks in Programming
See All in Programming
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
130
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
400
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
180
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
210
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
270
AHC070解法紹介
eijirou
0
120
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
220
What We Talk About When We Talk About XP
m_seki
2
630
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
290
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
190
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
570
Building the Perfect Custom Keyboard
takai
2
870
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
My Coaching Mixtape
mlcsv
0
310
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
500
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
58k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Faster Mobile Websites
deanohume
310
32k
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
ご清聴ありがとうございました。