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
RemoteFunctionを使ったコロケーション
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Matsumoto Kazutaka
October 24, 2025
Technology
480
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RemoteFunctionを使ったコロケーション
Matsumoto Kazutaka
October 24, 2025
More Decks by Matsumoto Kazutaka
See All by Matsumoto Kazutaka
個のパフォーマンスを上げるためのAIを使った取り組み
mkazutaka
0
240
GPTsより精度の高いRAGシステムの構築
mkazutaka
26
12k
LLMと連携したブログ書くエディタを作ってみた
mkazutaka
2
490
社内情報検索システムで用いられるRAGの4つの実装方法
mkazutaka
14
9.9k
ChatGPTを使ったSlackbotの実装いろいろ紹介
mkazutaka
2
2.8k
Development of Mercari's web in 2019
mkazutaka
0
1.1k
20181215 php-srcで遊ぶよ
mkazutaka
2
1.3k
メルカリ Backendエンジニアの日常 ~Backend Engineer Drink Meetup #1~
mkazutaka
0
2.2k
Other Decks in Technology
See All in Technology
noUncheckedIndexedAccess、3時間、1万円。 / noUncheckedIndexedAccess, 3 Hours, 10,000 JPY.
kaonavi
1
310
ブロックチェーン / Blockchain
ks91
PRO
0
110
LLMと共に進化するプロセスを目指して
ymatsuwitter
12
3.4k
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
590
新規事業を牽引する技術選定 〜フルスタックTypeScript開発の実践事例〜
nullnull
3
360
AIにフローを作らせようとして挫折した話
hamatsutaichi
0
210
Mastering Ruby Box
tagomoris
3
150
Claude Codeを組織で使いこなす— サーバサイドAIエージェント運用の実践知
techtekt
PRO
0
210
Agentic Defenseとともにセキュリティエンジニアが輝き続けるには / How Security Engineers Can Keep Excelling with Agentic Defense
yuj1osm
0
120
Databricks 月刊サービスアップデート 2026年05月号
tyosi1212
0
210
AIを「創る」と「使う」の循環 — HRテックが実践するリアルなAI組織実装
taketo957
0
1.7k
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
1.7k
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.9k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
690
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
570
Optimising Largest Contentful Paint
csswizardry
37
3.7k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
720
Abbi's Birthday
coloredviolet
2
7.9k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
Mobile First: as difficult as doing things right
swwweet
225
10k
For a Future-Friendly Web
brad_frost
183
10k
30 Presentation Tips
portentint
PRO
1
320
Transcript
1 1 Copyright© Explaza, inc. All rights reserved. RemoteFunctionを使ったコロケーション
Svelte Japan Offline Meetup #5 株式会社エクスプラザ 松本 和高
2 Copyright© Explaza, inc. All rights reserved. 自己紹介 松本和高(まつもとかずたか)
Twitter: _mkazutaka Github: mkazutaka 2018年株式会社メルカリに入社。バックエンドエンジニアとして、 リアーキテクチャやマイクロサービスを使った開発などに携わる。 その後、フリーランス等を経て、株式会社エクスプラザに入社。 2024年8月CTOに就任、生成AI Partner、Markといった 新規サービスの立ち上げ等を行っている。趣味、仮想通貨。 執筆・登壇 ▪ PHPWebのTemplateEngineをWebAssemblyに置き換えてみる ▪ 0からRust/Wasmを使ってブラウザで動くバーコードリーダを作ってみた話 ▪ GPT-4 Turboにドキュメントのチャンク分けを任せてみる ▪ 問い合わせメールをChatGPTで解析してSpreadsheetとNotionに転記する方法の紹介 ▪ 人形町生成AI忘年会「 LLMと連携したブログ書くエディタを作ってみた 」 ▪ LLM Application Meetup vol.4: 「 社内情報検索システムで用いられるRAGの4つの実装方法 」 ▪ LLM Application Meetup vol.5: 「 GPTsより精度の高いRAGシステムの構築 」 ▪ Software Design 2024年8月号: 第1特集「LangChainではじめるLLMアプリ開発入門 ▪ CTOがエンジニアにコーディング禁止というお触れを出した
3 Copyright© Explaza, inc. All rights reserved. 目次 • 会社紹介
• Formの実装 ◦ Superformsを使った実装 ◦ RemoteFunctionをつかった実装 • リモートファンクションをつかったフォームの実装例 • AIによる自動化
4 Copyright© Explaza, inc. All rights reserved. 会社紹介
5 Copyright© EXPLAZA Inc. All rights reserved. 00 01 Company
生成AIに関する 多種多様な問い合わせをいただいており、 お客様のニーズに合わせた 最適なソリューションを提案可能。 国内最大級AIメディアのAISmileyでも ”PRODUCT AWARD”を2冠受賞。 豊富な支援実績 一部取引先 生成AIをつかったプロダクトを作っております
6 Copyright© Explaza, inc. All rights reserved. Formの実装どうやってますか?
7 Copyright© Explaza, inc. All rights reserved. Form実装の悩み •
APIでリクエストするよりかは、formタグを使いたい • Superformsを使っているがコードが複雑になる ◦ 特に一つのページに複数のフォームがあるときにコード量が多くなる ◦ てなるとフォーム部分をコンポーネント化したいが... ▪ UI側はコンポーネント化できるがサーバ側の処理は、+page.server.ts にあり 見通しが悪い
8 Copyright© Explaza, inc. All rights reserved. それRemoteFunctionで解決できますよ
9 Copyright© Explaza, inc. All rights reserved. Remote Functionとは
• 2025年08月に発表 • あらゆるコンポーネントからサーバサイド上の関数を呼ぶことができる ◦ 今まで: +page.svelteでデータを取得、コンポーネントにバケツリレー ◦ Remote Functionによって コンポーネント単位で必要な情報をサーバサイドから取得可能 ▪ これはコロケーション だ!!
10 Copyright© Explaza, inc. All rights reserved. コロケーション(co-location) •
コロケーション: co-location ◦ 広義な意味だと ▪ 関連するリソース同士を近くに置く、という考え方 ▪ 例えば、テストファイルとテスト対象ファイルは同じディレクトリに 置きましょうみたいな形 • React + GraphQLには、Fragment Colocationという考え方もある ◦ => 次ページで紹介
11 Copyright© Explaza, inc. All rights reserved. Fragment Colocation
• GraphQL ◦ クライアントが「必要なデータだけ」をクエリとしてリクエストし、それらのみを取得できる • GraphQLのFragment ◦ クエリの一部を再利用可能にしたもの ◦ 様々なクエリからFragmentを利用することができる • Fragment Colocation: React Relayなら ◦ GraphQLのFragment機能をつかってつかってコンポーネント単位で 要求する情報を制御できる
12 Copyright© Explaza, inc. All rights reserved. Fragment Colocationの実装例 1/2
• 子コンポーネントの実装 • 子コンポーネントファイル内で Fragmentとコンポーネントを定義 参考: https://zenn.dev/gemcook/articles/2c8796761f2d02 Friend.tsx
13 Copyright© Explaza, inc. All rights reserved. Fragment Colocationの実装例 2/2
• 親コンポーネントで子コンポーネントの Fragmentを使う • 親コンポーネントは子コンポーネントが 何を必要としているかは知らなくて良い ◦ 理想的だ 参考: https://zenn.dev/gemcook/articles/2c8796761f2d02 SomePage.tsx
14 Copyright© Explaza, inc. All rights reserved. これがRemote Functionでできる
15 Copyright© Explaza, inc. All rights reserved. Form実装を比較する
16 Copyright© Explaza, inc. All rights reserved. Superformsを使った実装 Dialogの例
17 Copyright© Explaza, inc. All rights reserved. Superformsを使った実装例 / Dialogコンポーネントの定義
• shadcn-svelteのDialogコンポーネントを使っている DialogExampleBySuperform.svelteのScript部 DialogExampleBySuperform.svelteのBody部
18 Copyright© Explaza, inc. All rights reserved. Superformsを使った実装例 / 親コンポーネント
• +page.server.tsからform値を渡す ◦ 処理の流れ +page.server.ts => +page.svelte => DialogExampleBySuperform.svelte => +page.server.ts +page.svelte +page.server.ts
19 Copyright© Explaza, inc. All rights reserved. Superformsを使った実装の問題点 •
+page.svelteからform valueを引き回さないといけない • +page.svelteに紐づくフォームが複数になった場合に処理が複雑になる ◦ フォームごとの命名 / 引き回す処理 ◦ フォームが増えるたびに、+page.svelteのactionの項目が増える ▪ +page.svelteのactionとform コンポーネントが暗黙的に紐づく 参照: https://claude.com/pricing#api
20 Copyright© Explaza, inc. All rights reserved. RemoteFunctionを使った実装 Dialogの例
21 Copyright© Explaza, inc. All rights reserved. Remote Functionを使った実装
• shadcn-svelteのDialogコンポーネントを使っている DialogExampleByRemotefunction.svelteのScript部 DialogExampleByRemotefunction.svelteのBody部
22 Copyright© Explaza, inc. All rights reserved. Remote Functionを使った実装
DialogExampleByRemotefunction.remote.ts • form関数をつかって関数をエクスポート ◦ 処理の流れ: Component.svelte => Component.remote.ts
23 Copyright© Explaza, inc. All rights reserved. RemoteFunctionを使った実装 •
Formの変更に+page.svelteが絡まない ◦ form valueを引き回さなくて良い • フォームが複数になってもコンポーネント単位で境界づけられている 参照: https://claude.com/pricing#api
24 Copyright© Explaza, inc. All rights reserved. 表で比較
25 Copyright© Explaza, inc. All rights reserved. 表にまとめる 参照:
https://claude.com/pricing#api Superformsによる実装 RemoteFunctionによる実装 +page.svelteの変更 必要 不要 +page.server.tsの変更 必要 不要 +xxx.remote.tsの実装 不要 必要
26 Copyright© Explaza, inc. All rights reserved. AIで活用する
27 Copyright© Explaza, inc. All rights reserved. ClaudeCodeのAgent Skills(Claude Skills)でスキル化する
• Agent Skills ◦ ClaudeもしくはClaude Codeの機能を拡張する機能の一つ ▪ Claudeが参照するディレクトリの中に SKILL.mdを置き、それを起点に スクリプトや複数のマークダウンを一つのディレクトリに格納する ▪ それぞれもまとめりをモジュールとして扱えることができ、配布や利用ができる • Agent Skillsには、Agent Skillsを作るためのAgent Skillがある ◦ skill creator: https://github.com/anthropics/skills/tree/main/skill-creator 参照: https://claude.com/pricing#api
28 Copyright© Explaza, inc. All rights reserved. skill-creatorを使ってスキルを作成する •
プロンプトはシンプル ◦ いくつかの選択項目をセレクトするとスキルを作成してくれる 参照: https://claude.com/pricing#api
29 Copyright© Explaza, inc. All rights reserved. skill-creatorを使ってできたスキル: dialog-creator 1/2
SKILL.md assets/dialog-component.template.svelte
30 Copyright© Explaza, inc. All rights reserved. skill-creatorを使ってできたスキル 2/2
assets/remote-function.template.ts
31 Copyright© Explaza, inc. All rights reserved. dialog-creatorを実行する •
プロンプトはシンプル
32 Copyright© Explaza, inc. All rights reserved. 結果 • テンプレートを与えているのでいい感じにできる
CompanyRegistration.remote.ts CompanyRegistration.svelte
33 Copyright© Explaza, inc. All rights reserved. まとめ • Dialogの実装をRemoteFunctionでコロケーション化したよ
◦ コード量が少なくなったよ ◦ コンポーネントと関係ないところの編集が減ったよ • Claudeのskill-creatorでスキル化したよ ◦ コロケーションによって変更範囲が特定のディレクトリに収まるので AIでも書きやすい 参照: https://claude.com/pricing#api
34 Copyright© Explaza, inc. All rights reserved. 宣伝
35 Copyright© Explaza, inc. All rights reserved. 宣伝: エクスプラザでは絶賛採用中です! •
AIつかったプロダクト開発をしています ◦ 自社SaaS / クライアントワーク ◦ クライアントワークは自由に技術選定して開発できる自由度の高いもの ◦ 気になった方は、ぜひカジュアル面談 / このあとの懇親会でぜひお声がけください! ▪ ホームページもSveltekitつかっているよ: explaza.jp
36 Copyright© Explaza, inc. All rights reserved. ありがとうございました