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
Hatena Engineer Seminar 37 jj1uzh
Search
jj1uzh
June 30, 2026
Technology
4.3k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Hatena Engineer Seminar 37 jj1uzh
https://hatena.connpass.com/event/397502/
jj1uzh
June 30, 2026
More Decks by jj1uzh
See All by jj1uzh
Kotlinコンテキストパラメータをアプリ開発で使う夢を見る
jj1uzh
0
56
Other Decks in Technology
See All in Technology
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
240
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
260
ラジオの科学
frievea
0
310
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
220
強化学習「理論」入門
enakai00
3
3.6k
PLATEAU で バーチャル花火大会
tatsuya1970
0
150
SO-101×VLAによる3色キューブのピック&プレース
abeja
0
200
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
740
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
560
モバイルアプリ開発概論2026
recruitengineers
PRO
5
580
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
140
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
320
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
Joys of Absence: A Defence of Solitary Play
codingconduct
1
430
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
Leo the Paperboy
mayatellez
8
2.1k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
340
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
Everyday Curiosity
cassininazir
0
280
Making the Leap to Tech Lead
cromwellryan
135
10k
Transcript
はてな匿名ダイアリーの すべて、お話しします…… id:jj1uzh 2026-06-30 Hatena Engineer Seminar #37 1
id:jj1uzh • サービスプラット フォームチーム • アプリケーション エンジニア ◦ WebとAndroid •
新卒3年目 2
話すこと • はてな匿名ダイアリー(anond)の アプリケーションをPerlからGoに移植した ◦ 背景、成果、方法、学び 3 はてな匿名ダイアリーのすべて、お話しします……
背景/anondについて • 2006年サービス開始のラボサービス ◦ anond.hatelabo.jp • Perl(httpd/mod_perl) • 独自Webフレームワーク 4
はてな匿名ダイアリーのすべて、お話しします……
背景/anondについて • 2006年サービス開始のラボサービス ◦ anond.hatelabo.jp • Perl(httpd/mod_perl) • 独自Webフレームワーク 5
はてな匿名ダイアリーのすべて、お話しします…… • アプリケーションに手を入れづらい • Perl・ライブラリのバージョンアップなど メンテナンスに時間を割きづらい
背景/コーディングエージェントの進化 6 はてな匿名ダイアリーのすべて、お話しします…… • アプリケーションの移植は 現実的では **なかった** • コーディングエージェントの進化で 状況が変わった
7 Goに移植しよう!
方針 8 はてな匿名ダイアリーのすべて、お話しします…… • SQLクエリ、ロジックは基本的に変更なし • 外観もできるだけ維持
方針/技術選定 9 はてな匿名ダイアリーのすべて、お話しします…… • Perl ◦ httpd/mod_perl・独自Webフレームワーク ◦ 独自ORM •
Go ◦ Echo ◦ sqlc • アプリケーション以外はそのまま
方針/コーディングエージェント 10 はてな匿名ダイアリーのすべて、お話しします…… • Claude Codeで統一 ◦ それまでは、チーム内でコーディングエージェントの 使い方がバラバラだった ◦
PRのレビューや簡単なタスクにはCopilotも
11 Goに移植した
生まれ変わったanondをご覧ください 12 はてな匿名ダイアリーのすべて、お話しします……
生まれ変わったanondをご覧ください 13 はてな匿名ダイアリーのすべて、お話しします……
移植サマリー 14 はてな匿名ダイアリーのすべて、お話しします…… • Perl 約22,000行 ⇒ Go 約15,000行 ◦
Goはテスト込みで 約25,000行 • およそ 2人・2か月(開始から完全切替まで)
移植サマリー/開発・実行環境の改善 15 はてな匿名ダイアリーのすべて、お話しします…… • ビルド時間 ◦ コンテナイメージ作成のフローがキャッシュなしで 10分 ⇒ 2-3分に短縮
移植サマリー/開発・実行環境の改善 16 はてな匿名ダイアリーのすべて、お話しします…… • 実行環境・パフォーマンス ◦ レスポンス時間: 約150ms ⇒ 約50ms
◦ コンテナメモリ使用量: 約1.8GB ⇒ 約40MB ▪ コンテナ数も減少 ◦ ※Perl vs Goというよりはアーキテクチャの違い
移植サマリー/Perl版からあった不具合の解消 • LaTeX記法・コードブロック • カテゴリ・キーワードページ 17 はてな匿名ダイアリーのすべて、お話しします……
18 どうやった
移植HOWDUNNIT/流れ • Perlコード調査 • Project・Issue作成 • 実装・テスト・動作確認 19 はてな匿名ダイアリーのすべて、お話しします……
移植HOWDUNNIT/Perlコード調査 • 「アプリケーションの機能をまとめて。...」 • 「エンドポイントごとの詳細をまとめて。...」 20 はてな匿名ダイアリーのすべて、お話しします……
移植HOWDUNNIT/Perlコード調査 • 「アプリケーションの機能をまとめて。...」 • 「エンドポイントごとの詳細をまとめて。...」 21 はてな匿名ダイアリーのすべて、お話しします…… • 独自フレームワークでもOK ◦
「設定より規則」寄り & 継承を駆使 ◦ ファイルの行き来が多い ◦ 規則さえ分かればAIには簡単
移植HOWDUNNIT/Issue作成 • Issueを作ってProjectに 22 はてな匿名ダイアリーのすべて、お話しします……
移植HOWDUNNIT/実装 • Claude Codeで実装 • コーディング時のスキル・プラグインは? ◦ ⇒ 特になし ◦
素の状態でじゅうぶん賢い ◦ 決定的な方法でコード品質を担保する 23 はてな匿名ダイアリーのすべて、お話しします……
移植HOWDUNNIT/実装 • Claude Codeで実装 • 決定的な方法でコード品質を担保する 24 はてな匿名ダイアリーのすべて、お話しします…… • Lint
◦ golangci-lint • テスト ◦ E2EもAIに作ってもらう
移植HOWDUNNIT/レビュー • 書いた(書かせた)人間のチェック • GitHub上のCopilotレビュー • 別の人間のレビュー 25 はてな匿名ダイアリーのすべて、お話しします……
移植HOWDUNNIT/テスト・動作確認 26 はてな匿名ダイアリーのすべて、お話しします…… • E2E ◦ testcontainers • Visual Regression
Testing ◦ Perl・Go両方を動かし、 playwright-cliで要素・スクショ比較 • 脆弱性チェック ◦ 匿名性とXSSを重点的に
27 学び
学び • VRTは便利だけど…… • 目視確認・テスト条件の網羅性不足があった ◦ タスク分解→AI実装→レビューの繰り返しのため、 全体像の把握がおろそかになりがち ◦ 「エントリ文章内の記号が二重でエスケープされる」
◦ 「モバイル表示は2ページ目以降で 人気エントリセクションを表示しない、の見逃し」 28 はてな匿名ダイアリーのすべて、お話しします……
学び • コード外の見逃し ◦ ログ形式が変わったことで、 ログクエリによる集計が失敗 29 はてな匿名ダイアリーのすべて、お話しします……
30 まとめ
まとめ • コーディングエージェントの進化で、 レガシーコードの移植が現実的になった • 決定的な品質担保(Lint・テスト)で 非決定的なAIがより活きてくる • 目視確認、テストの作り方は依然重要 31
はてな匿名ダイアリーのすべて、お話しします……
32 ご清聴 ありがとうございます