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
SSG___CSRで乗り切るiframe内ルーティング_AIコーディング拡張版_in_...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
iWonder118
May 24, 2025
Technology
62
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
経験談から伝える! AIによって既に変わってしまった転職事情
iwonder118
6
3.4k
多摩川.dev #2 OP&ED
iwonder118
0
50
「積極的_無職のすすめ」ー U39
iwonder118
0
250
多摩川.dev OP&ED
iwonder118
0
340
今更RSCについてのお話 Full RSC vs RSC as Data Next.jsとTanStack Start比較
iwonder118
0
40
React Tokyo フェス 2026 の裏側
iwonder118
1
620
頑張ります!2026
iwonder118
0
84
イベント参加ふっかるになるための多摩川周辺.pdf
iwonder118
0
51
我々はなぜ中間表現を作るのか
iwonder118
0
900
Other Decks in Technology
See All in Technology
サービス内で複数のOP・ASを連鎖させる(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
420
会計事務所と顧問先の契約関係をOIDC・OAuthで表現する
terara
0
560
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
480
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
210
「面白い!」を信じ抜け。激動の時代を貫く、オンリーワン・エンジニアの条件
kizawa2020
2
570
ブラウザで変わるID連携(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
430
Genie Code ワークショップ 応用編 / Genie-Code-Workshop-advanced
databricksjapan
PRO
0
210
Microsoft MVP プログラムを紹介するから目指す人増えてくれ
tsubakimoto_s
0
160
Master Dataグループ紹介資料
sansan33
PRO
1
4.9k
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
3
830
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
1k
Point Cloud as a Foreign Language for Multi-modal Large Language Model
takmin
0
350
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
320
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
550
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
230
Large-scale JavaScript Application Architecture
addyosmani
515
110k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
400
Leo the Paperboy
mayatellez
8
2.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
530
Building AI with AI
inesmontani
PRO
1
1.2k
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のリクエストを受け付けなくなる