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
Hatena Engineer Seminar 37 jj1uzh
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
jj1uzh
June 30, 2026
Technology
5k
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
110
Other Decks in Technology
See All in Technology
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
320
AIテスト自動化と評価駆動開発EDD
happysamurai294
0
130
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
5
3.3k
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
8
5.2k
Don't write the architecture only in the prompt.
neohsu
0
290
Vibe-to-Spec開発_実践ガイド
happysamurai294
0
140
今から始めるAWS環境の暗号移行 - ポスト量子時代に備える
sato4mi
0
150
AIコーディングエージェント開発_全体像
happysamurai294
0
150
コードレビューをなくして見えたもの
henteko
0
100
"AWSはちょっと苦手"でも大丈夫。AWS Blocks で手軽に作る Flutter のバックエンド #FlutterKaigi
tacck
PRO
0
120
Vue で書く 空間コンピューティング、TresJS と WebXR を使ったXR デバイスのフロントエンド開発
hiranuma
0
150
AIエージェント統制はAPIから——押さえるべき5つの要素
nagix
0
110
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
550
We Have a Design System, Now What?
morganepeng
55
8.4k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.6k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Claude Code のすすめ
schroneko
67
230k
The SEO identity crisis: Don't let AI make you average
varn
0
620
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Producing Creativity
orderedlist
PRO
348
41k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Marketing to machines
jonoalderson
1
6k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
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 ご清聴 ありがとうございます