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
SSG___CSRで乗り切るiframe内ルーティング_AIコーディング拡張版_in_...
Search
iWonder118
May 24, 2025
Technology
72
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SSG___CSRで乗り切るiframe内ルーティング_AIコーディング拡張版_in_Funabashi.dev.pdf
iWonder118
May 24, 2025
More Decks by iWonder118
See All by iWonder118
なぜuseEffectは悪者扱いされるのか 〜 useEffectを作ってみて〜
iwonder118
0
60
極小Reactで描画を理解しながら追う
iwonder118
0
110
マフィアを目指そう※超健全
iwonder118
0
270
Tamagawa.dev #3 OP&ED
iwonder118
0
290
経験談から伝える! AIによって既に変わってしまった転職事情
iwonder118
7
3.9k
多摩川.dev #2 OP&ED
iwonder118
0
71
「積極的_無職のすすめ」ー U39
iwonder118
0
320
多摩川.dev OP&ED
iwonder118
0
400
今更RSCについてのお話 Full RSC vs RSC as Data Next.jsとTanStack Start比較
iwonder118
0
46
Other Decks in Technology
See All in Technology
書き手が人でもAIでも正しくなる道、SREを埋め込んだDeveloper Platform / tech drivers day8
chmikata
4
750
自宅サーバと脆弱性
masakiokuda
1
110
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
240
DevelopersIO2026 -バックアップは“消されないこと”が9割-
yoshida0129
0
410
LLM Content Moderationを支える評価・改善ループの実践
suikabar
2
360
Adversary Infrastructure Hunting101
disconinja
0
160
Filter What the LLM Reads: RAG Governance with AgentCore Gateway
yakumo
0
110
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
240
AI時代のGraphQL
joere
3
400
Metadata - Section 2: Simple Metadata & Meta Tags
mohab1
0
140
日本AIベンチャーレポート2026
kentarofujii
0
230
BacklogのRAG 今ならこう作る - S3 Vectorsと自前パイプラインの勘所
revsystem
0
130
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
530
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
330
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Docker and Python
trallard
47
4.2k
Design in an AI World
tapps
1
360
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Paper Plane
katiecoart
PRO
5
54k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
560
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Transcript
自己紹介 社内システムを改修したり、インフラを作ったり、APIを生やしたり...etc 趣味:トンチキ技術グッズを作ったり 河村 直樹(@iwonder118) かわむら なおき
グッズ①:Rustyなカニペンホルダー
グッズ②:Pug(Data dogの置物) ※余談:名前は「STRIKE JADE」Pug記法で JADE
グッズ新作!:ラバーDuckDB 上か見るとロゴに
SSG + CSRで乗り切るiframe内ルーティング in React Tokyo LT 2025/05/17 1. なんのために?
業務系SaaS (ローコード/ノーコードプラットフォー ム) の機能的なカスタム限界 ・要望が出る ↓ ・ローコード /ノーコードの範囲でなんとか対応して みる ↓ ・とりあえずは納得してくれるが、画面構成上の都 合や業務 (ドメイン )などで細かいカスタムが必要に なる ↓ ・カスタム画面を作るしかないか ...←イマココ 大抵の業務系SaaSには外部リンク先をiframeで埋 め込める機能がある 2. どうやって? ・ Next.jsでSSGして、それをホスティング ・1つのパスのページ内でクライアントコンポーネン トを切り替えてルーティング 3. メリット ・共通コンポーネントを使って、複数の SPA画面を作 れる (1つのパスで1SPA) ・基本はSaaSのAPIで取得したデータを状態管理で API呼び出しを削減 ・今後、画面自体が肥大化し、別システム化すると きのリスクヘッジ ・CI/CDのパイプラインの恩恵 (SaaS依存の外) 4. 気をつけるところ ・SaaS独自ライブラリが親ページと内部 iframeと通 信機能のグローバル変数考慮 ・CRSですべてやるがゆえの状態管理とレンダリン グ対策 今回のターニングポイントは 画面遷移で状態を持つかどうか
8割(約2万行/1.5ヶ月)ぐらいをAI生成の Vibe Coding 1. 使ったもの ・v0 複雑な機能のコンポーネントがすぐに出力されるあ りがたみ (例:ソート機能を持ちつつ、カラムごとにドラッグア ンドドロップで並び変更ができるテーブル
) ・Cline (Anthropic 3.7) 言わずと知れたコーディングエージェント 2. 前提 ・画面のリプレース 生のJavascriptで作った画面(HTML 1000行、 JS 1500行 + Tailwind)はあった ・フロントエンドのスキル感 React、Next.js、TypeScriptは趣味で触っていて、 ジュニアに毛が生えた程度 3. 結果 ・useEffectまつり コンテキストに含んでいない state更新による循環更 新で無限ループクラッシュ ・重複コードの乱立 〇〇を参考にと言うとそのまま使い始める 生成された2万行ぐらいの内、20%ぐらいは減らせ られるのではないか Reactで書きたいのに元の Dom操作実装に引っ張 られる ・応答が遅い、金がかかる 生のJavascriptで作った画面をコンテキストとすると ウィンドウに収まらない 毎日5ドルを消費 合計で170ドル(2万円)ぐらい飛ん でった思い出
良かったところ ・なんとか動くものが作れる 詰まらずになんとか動くものができた ・知らないことを取り組む自信 なんとかなるだろうという変な自信で、1歩目が踏み出しやすくなった プログラミングを始めたてのときの万能感 (が得られれるかも...?)
つらみ① ・初速は速いがそれを維持できない
つらみ① ・初速は速いがそれを維持できない AIが書いたコードの理解 得られた効果 プログラマのコード Anthropicから の請求金額 (本来するべきだった) コードのデザイン 設計
AI驚き屋の表現、約束
つらみ② ・Next.jsのnpm run devとの相性が最悪 上から順にすべて書き換えてくので、そのたびに走るビルド 落ちるコンテナ 負荷のかかるボリューム、I/O ・コミットのタイミングを見失う 〇〇画面と〇〇機能+〇〇を修正みたいなコミットになってしまった ・理解していないコードのバグ修正
なんか知らないけど動いているコードの修正 意図していないところでバグが起きている モダンな構成なのにレガシーコードを修正している感覚
工夫点 ・コンポーネントごとの適切な要件の切り出し 体感200行ぐらいが限度 1000行を超えると応答でファイルが途切れだして無限修正課金編 ・SSGのファイルを配信で回避 AIの修正後に毎回ビルド 小さい画面規模なのでなんとかなる (10秒程度)が今後、ここの待ち時間が増大するおそれ ・AIの書いたコードを無視する勇気 とりあえず動いてくれて、それ改修していきたい気持ちが強くなる
(資産と錯覚する)が それよりも自分で制御できるところを増やす (AIのコーディング量)富豪プログラミング
教訓 ・習った漢字は書けなくても、読めるし、日常生活で使う (感覚でのコーディングになっていく?) ....が、初めて見る漢字は読めないし、使えない ・コードの 3定(定置・定品・ 定量) 最適なコードコンテキスト量の制御 (お金と精度 )のため
余談 朝9時過ぎにアクセスが多いのか、 APIのリクエストを受け付けなくなる