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
我々はなぜ中間表現を作るのか
Search
iWonder118
September 21, 2025
Technology
930
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
我々はなぜ中間表現を作るのか
iWonder118
September 21, 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
クラウドサインを止めずに Nuxt へ 次の10年のために先に決めたこと
bengo4com
1
150
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
2
1.2k
CSS2026:OWS研究会・招待講演「世界観を、実装する」
atsush1_sada
2
330
データマネジメント × 法務で作りあげる、 freeeの新しいデータガバナンスへの軌跡
freee
PRO
1
420
Metadata - Section 2: Simple Metadata & Meta Tags
mohab1
0
140
導入から定着へ ~コーディングエージェントを日常業務に組み込む実践知~
yukisakai1225
0
230
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
240
AWSDirectConnectの構築の進め方を整理してみた
masa_my
1
190
「社外イベント=意識高い」の壁を壊せ!元々無関心だった僕らが部内で社外イベントを民主化して15人を連れ出すまで
say_no_w
0
130
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
250
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
240
契約で守るコンパウンドプロダクトのデザインシステム
yug1224
1
1.4k
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
Believing is Seeing
oripsolob
1
250
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
510
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Paper Plane
katiecoart
PRO
5
54k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
550
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
580
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Transcript
我々はなぜ中間表現を作るのか in React Tokyo #9 2025/9/19
社内システムを改修したり、インフラを作ったり、APIを生 やしたり...etc 趣味:#トンチキ技術グッズを作ったり 河村 直樹(@iwonder118) 自己紹介
皆さん!中間表現といえば??
よく目にする (?)中間表現 JSX 引用:https://ja.react.dev/learn/writing-markup-with-jsx
JSXとは JSXとは JavaScript XML の略で、JavaScriptの中にHTMLのような構文を書 ける仕組み 1. 可読性が高い HTMLのようにUI構造を書けるので、フロントエンドの見通しがよくなる 2.
宣言的なUI 「何を表示したいか」をコードでそのまま表現できる
JSXとは JSXとは JavaScript XML の略で、JavaScriptの中にHTMLのような構文を書 ける仕組み 1. 可読性が高い HTMLのようにUI構造を書けるので、フロントエンドの見通しがよくなる 2.
宣言的なUI 「何を表示したいか」をコードでそのまま表現できる
つまり YAMLやJSONで仕様書 を書いているに過ぎない(暴論) 何ならJava、C#関係の設定ファイルはXML。それを書いているのと同じ... あれだけデータ通信で憎み、JSONに追いやられたXMLを我々は書いている矛盾 JSXを書くということは......
もう一例 Fiber Tree JSX Fiber Tree(イメージ)
Fiber Treeとは JSXから作成した React Elementの木構造を内部構造に最適化したもの 1. 状態管理を内包 各ノードが props・state・更新キューを持ち、コンポーネントの状態を追跡できる 2.
差分計算の単位 新旧の Fiber Tree を比較して、更新が必要な部分だけを効率的に抽出する 3. スケジューリング可能 優先度情報を持ち、重たい更新を分割したり後回しにすることで UI を滑らかに保 つ child・sibling・return の参照を持ち、木を巡回しながら中断・再開できる
両者の共通点 1. AとBそれぞれの中間においての抽象化を行っている 一方向ではなかったりも(可逆性ある場合) A B 中間表現 2. AとBの間に入ることで依存度を下げて、疎結合にしている つまり
Interface…. 副次的に疎結合であるからこその拡張性が獲得できている
相違点 逆に目的が違う JSX = 認知負荷を下げたい Fiber Tree = 効率的な仮想DOMのレンダリング 人 DOM
JSX Fiber Tree React 仮想 DOM etc… React Element
他の事例(言語) - TypeScript - 我々の素晴らしい表現力 ()で悪魔のJavaScriptを従えさせさせる契約文 ※意訳 - 安全なJavaScriptの生成のためのスーパーセットとしてのAltJS -
コンパイラ (例としてC言語) - 高級言語を機械語へ変換するためにアセンブラを挟んでいる - JVM系 - 言語とJVMのJavaバイトコードを挟んで機械語を動かしている - そのお陰でKotlin、Scala、Groovyが存在している。さすがJavaバイトコー ド - WASM(Web Assembly) - 多言語を中間の機械言語を介し、バイナリをブラウザで動かす
他の事例(設計) ※これはどちらかというと中間”層”として - Webの3層構造 - フロントから見た場合、サーバサイドがDBの中間表現(処理)となっている - DDD(ドメイン駆動設計 ) -
ドメイン知識をコードとして表現することで、ドメインエキスパートと技術者間の業務 に対する共通理解を形成 - ACL(腐敗防止層 ) - それぞれの関心事を中間層のオブジェクトを挟むことによって、分離をしている - BFF - クライアントごとに最適化された API を提供する
他の事例(インフラ) - IaC - 想像しているインフラをYAMLやJSONなどで起こし、それをツールを通すことで 実態としてのクラウドインフラができる - Kubernetes - あらかじめ決められた構成をSpecのYAMLで作成し、Kubernetes
APIを通すこ とで実態としてのコンテナがオーケストレーションされる - DNS - 人間が認知できるように名前をIPアドレスにつける - CPUの命令セット (ISA) - x86-64のバイナリがx86の命令セットを使うことで、IntelやAMDなどのCPUが使 える
他の事例(現実) - お金 - AさんとBさんの価値交換を共通の数値で表す表現 - 言語 - 自分の認知と物体を他者に伝えるための表現 -
足の追加板を机と認知しているがそれを他者にも同じ概念で伝えるために 「机」という単語を使う - etc… - このスライドも僕の考えの抽象化と聞き手の理解のための中間表現(オチ)
結論(暴論2) この世は中間表現でできている