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
69
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
53
極小Reactで描画を理解しながら追う
iwonder118
0
89
マフィアを目指そう※超健全
iwonder118
0
250
Tamagawa.dev #3 OP&ED
iwonder118
0
280
経験談から伝える! AIによって既に変わってしまった転職事情
iwonder118
7
3.8k
多摩川.dev #2 OP&ED
iwonder118
0
67
「積極的_無職のすすめ」ー U39
iwonder118
0
310
多摩川.dev OP&ED
iwonder118
0
380
今更RSCについてのお話 Full RSC vs RSC as Data Next.jsとTanStack Start比較
iwonder118
0
44
Other Decks in Technology
See All in Technology
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
180
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
140
2026-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
0
630
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
200
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
1
120
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
510
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
420
顧客の成果創出とプロダクトの成長を 両立するためのFDE
sansantech
PRO
0
670
Futexes the good, the bad, the ugly
ennael
PRO
0
110
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
100
20260930_Gemma4_Hands-on
tsho
0
220
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
340
Featured
See All Featured
Accessibility Awareness
sabderemane
1
230
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Everyday Curiosity
cassininazir
0
340
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
430
Skip the Path - Find Your Career Trail
mkilby
1
240
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
Deep Space Network (abreviated)
tonyrice
0
350
Agile that works and the tools we love
rasmusluckow
331
22k
Amusing Abliteration
ianozsvald
1
320
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
The World Runs on Bad Software
bkeepers
PRO
72
12k
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のリクエストを受け付けなくなる