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
20260204_Midosuji_Tech
Search
Takuya Yonezawa
February 04, 2026
Technology
210
1
Share
20260204_Midosuji_Tech
Takuya Yonezawa
February 04, 2026
More Decks by Takuya Yonezawa
See All by Takuya Yonezawa
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
420
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
640
20260129_CB_Kansai
takuyay0ne
1
320
20260126_JAWS_Osaka
takuyay0ne
1
46
こんな時代だからこそ! 想定しておきたいアクセスキー漏洩後のムーブ
takuyay0ne
4
740
セキュリティは全員参加!_JAWSのイベントサイトで脅威モデリングを学んでみよう!
takuyay0ne
0
180
20250920_ServerlessDays
takuyay0ne
9
4.2k
20250913_JAWS_sysad_kobe
takuyay0ne
2
410
20250719_JAWS_kobe
takuyay0ne
1
320
Other Decks in Technology
See All in Technology
Kubernetesの「隠れメモリ消費」によるNode共倒れと、Request適正化という処方箋
g0xu
0
170
マルチモーダル非構造データとの闘い
shibuiwilliam
1
140
MIX AUDIO EN BROADCAST
ralpherick
0
140
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
200
互換性のある(らしい)DBへの移行など考えるにあたってたいへんざっくり
sejima
PRO
0
520
最大のアウトプット術は問題を作ること
ryoaccount
0
260
Sansanの認証基盤を支えるアーキテクチャとその振り返り
sansantech
PRO
1
150
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
4
840
自分をひらくと次のチャレンジの敷居が下がる
sudoakiy
5
1.6k
Babylon.js Japan Activities (2026/4)
limes2018
0
140
How to install a gem
indirect
0
2.1k
トイルを超えたCREは何屋になるのか
bengo4com
0
120
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
330
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
92
30 Presentation Tips
portentint
PRO
1
270
WENDY [Excerpt]
tessaabrams
9
37k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
700
4 Signs Your Business is Dying
shpigford
187
22k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Transcript
1 © 2026 Japan Digital Design, Inc. Takuya Yonezawa 2026.02.04
Reactぱふぉちゅー Midosuji Tech#8
2 © 2026 Japan Digital Design, Inc. 米澤 拓也 Software
Engineer Technology & Development Div. and Corporate Culture室 プロフィール SWEだが、案件でやってるシステムのAWSリソースが増えまくって インフラ専任になりつつある人(現在 800リソースくらい on CDK) Community Builder (Serverless) 2023~ 一言:何故かバズった takuya_y0ne
3 © 2026 Japan Digital Design, Inc. VercelさんがReactのべスプラSkillを公開した https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices
4 © 2026 Japan Digital Design, Inc. CRITICAL / HIGH
/ MEDIUM / LOW パフォーマンスへのインパクトごとにプラクティスが整理されている
5 © 2026 Japan Digital Design, Inc. 私の独断で気になるものを紹介
6 © 2026 Japan Digital Design, Inc. 1 バレルを避けよう CRITICAL
7 © 2026 Japan Digital Design, Inc. バレル? ディレクトリ内のコンポーネントや 関数をバレルファイル(index.ts)で
まとめてエクスポートするデザイン パターン 別ディレクトリからインポートする 際には、バレルファイル1つを参照す ればOKとなる → コードがスッキリする! バレルファイル
8 © 2026 Japan Digital Design, Inc. バレル? ディレクトリ内のコンポーネントや 関数をバレルファイル(index.ts)で
まとめてエクスポートするデザイン パターン 別ディレクトリからインポートする 際には、バレルファイル1つを参照す ればOKとなる → コードがスッキリする! バレルファイルが 無い 時 import文をいっぱい書かないといけない
9 © 2026 Japan Digital Design, Inc. バレル? ディレクトリ内のコンポーネントや 関数をバレルファイル(index.ts)で
まとめてエクスポートするデザイン パターン 別ディレクトリからインポートする 際には、バレルファイル1つを参照す ればOKとなる → コードがスッキリする! バレルファイルが ある 時 impor文を1つにまとめられてスッキリ!
10 © 2026 Japan Digital Design, Inc. バレル? ディレクトリ内のコンポーネントや 関数をバレルファイル(index.ts)で
まとめてエクスポートするデザイン パターン 別ディレクトリからインポートする 際には、バレルファイル1つを参照す ればOKとなる → コードがスッキリする! バレルファイルが ある 時 import文をいっぱい書かないといけない
11 © 2026 Japan Digital Design, Inc. 「バレル良さそうやんけ!」 と思ったそこの貴方、少し待って
12 © 2026 Japan Digital Design, Inc. 巨大ライブラリからバレルインポートすると話が少し違う バレル バレル
バレル コンポーネント Check X Menu バレル経由のインポートだと 余計なファイルまで読み込んでしまう
13 © 2026 Japan Digital Design, Inc. 巨大ライブラリからバレルインポートすると話が少し違う コンポーネント Check
X Menu 直インポートだと余計なファイルを 読み込まないので早い
14 © 2026 Japan Digital Design, Inc. バレルでの一括エクスポートを使うなら… ↓ 高凝集にする
(= exportされているファイルがまとめて使われる状態)
15 © 2026 Japan Digital Design, Inc. 【所感】 TypeScriptはビルドするとJavaScriptに依存部分だけ よしなにバンドルしてくれるので
コードの読みやすさ vs ローカルでの開発時の速さ/ビルドの早さ なのかなと思う
16 © 2026 Japan Digital Design, Inc. 2 async/awaitのパラレル化 CRITICAL
17 © 2026 Japan Digital Design, Inc. 例えば APIからデータを拾ってきたうえで画面描画を行うケース
18 © 2026 Japan Digital Design, Inc. 良いパターン いまいちなパターン すべて直列で処理を行う
並列で処理を行う fetchUser() fetchPosts() fetchComments() Time fetchUser() fetchPosts() fetchComments() Time
19 © 2026 Japan Digital Design, Inc. http://localhost:3000/async-await 【デモ】 http://localhost:3000/async-await-all
20 © 2026 Japan Digital Design, Inc. APIコールが別のAPIコールに依存するパターンは better-allなどを使おう Promiseの依存関係が増えた時にチューニングが辛くなる
https://github.com/shuding/better-all
21 © 2026 Japan Digital Design, Inc. better-all が 無い
時 better-all が ある 時
22 © 2026 Japan Digital Design, Inc. 3 モジュールの条件付き読み込み HIGH
23 © 2026 Japan Digital Design, Inc. 機能が 必要になった/呼び出された タイミングでモジュールを読み込む
↓ データ転送量の削減 初期レンダリングの高速化
24 © 2026 Japan Digital Design, Inc. パフォーマンス向上って観点だと正しい気もするが、 コードのリーダビリティが。。
25 © 2026 Japan Digital Design, Inc. Suspense + Lazy
Loadを使って 描画速度を向上させること自体は昔からあるし、アンチパターンではない
26 © 2026 Japan Digital Design, Inc. 条件付き読み込みは用法用量を守ろう 過剰な採用はリーダビリティを損なうことに
27 © 2026 Japan Digital Design, Inc. 4 データが多いときの content-visibility
HIGH
28 © 2026 Japan Digital Design, Inc. content-visibility? CSSのプロパティの1つ ▪
autoに設定すると。。 画面外(viewport外)に配置される コンポーネントのレイアウト処理を スキップさせることができる → 画面の初期描画速度が向上する (LCP : Largest Contentful Paint) (※) DOMツリー上には存在するので、 Accessibility/SEO的な問題はない View Port レイアウト計算やる レイアウト計算やる レイアウト計算やる レイアウト計算やる レイアウト計算スキップ レイアウト計算スキップ レイアウト計算スキップ
29 © 2026 Japan Digital Design, Inc. http://localhost:3000/content-visibility 【デモ】 http://localhost:3000/no-content-visibility
30 © 2026 Japan Digital Design, Inc. 5 まとめ
31 © 2026 Japan Digital Design, Inc. フロントエンドはユーザーとの信頼関係を築くレイヤー 処理が早いとユーザーは嬉しい!!!
Thank you. 32 © 2026 Japan Digital Design, Inc.