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
150
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
170
Mcp Training
kanayannet
0
360
MCP で「こいつ動くぞ」
kanayannet
0
210
無関心の谷
kanayannet
0
1.4k
生成AIの使いどころ
kanayannet
0
280
github copilot と 心理的安全性
kanayannet
0
300
FW と ライブラリ の考え方
kanayannet
0
300
TDDと今まで
kanayannet
0
840
個人開発 稼げなくてもいいアプリ
kanayannet
0
630
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
580
Crash Auto Pipelines
veronikapj
1
350
SODA - FACT BOOK(EN)
sodainc
1
200
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
300
AmebaブログはKMPから卒業します
kmars0605
0
320
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
190
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
320
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
150
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.4k
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
210
Next.js: The final boss of Web Performance
guaca
0
380
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
580
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Exploring anti-patterns in Rails
aemeredith
4
560
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
460
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Navigating Team Friction
lara
192
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Designing for Timeless Needs
cassininazir
1
550
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
480
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
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
ご清聴ありがとうございました。