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
【ORM不要論の歴史】「ORM」と呼ばれているものが3つある
Search
赤神青空
PRO
September 09, 2026
Video
Programming
85
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【ORM不要論の歴史】「ORM」と呼ばれているものが3つある
赤神青空
PRO
September 09, 2026
Video
More Decks by 赤神青空
See All by 赤神青空
【AIニュース】OpenAI の「dots」とは何か
akagami
PRO
0
3
【AWS AIF対策】責任あるAI
akagami
PRO
0
13
【AWS AIF対策】基盤モデルの評価
akagami
PRO
0
19
【AWS AIF対策】モデルの学習とファインチューニング
akagami
PRO
0
10
【AWS AIF対策】プロンプトエンジニアリング
akagami
PRO
0
15
【AWS AIF対策】RAGとベクトルデータベース
akagami
PRO
0
14
【AWS AIF対策】基盤モデルの選び方と推論パラメータ
akagami
PRO
0
18
【AWS AIF対策】AWSの生成AIサービスの全体像
akagami
PRO
0
26
【AWS AIF対策】エージェント型AIとMCP
akagami
PRO
0
26
Other Decks in Programming
See All in Programming
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.4k
AHC070解法紹介
eijirou
0
150
setup-vp GitLab対応の裏側
naokihaba
0
150
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
420
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
270
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
250
SREの越境 / SRE Collaboration
y0hgi
2
290
すこし踏み込む CancellationToken
htkym
2
1.6k
App Intentsのビルドプロセスを支える技術
kntkymt
0
490
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
460
Workers Cache を知る
syumai
0
320
iOSDCのペンライトを自動制御したい!
akkeylab
0
340
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
560
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
First, design no harm
axbom
PRO
2
1.3k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
730
Making the Leap to Tech Lead
cromwellryan
135
10k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Making Projects Easy
brettharned
120
6.8k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
340
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
310
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Transcript
2026年9月 ORM不要論を、20年ぶんさかのぼる 第1回 「ORM」と呼ばれているものが3つある 赤神 青空
▪3つのパートに分けて見ていきます この動画で扱うこと SNSで「AIがSQLを書けるならORMは要らない」という話が流れてきます。 この主張がどこから来ているのかを、順にさかのぼります。 01 02 03 同じ名前で呼ばれている別物たち 20年前に何が問題とされたか 今回は何が新しいのか
ORMとは何か 今ココ はじめに 2006年の論争 2026年の論争 2/13
▪持ち帰ってほしいのはこれ1つです 先に結論 ORM不要論は20年前から続いている。 AIは新しい根拠ではなく、新しい言い方である。 新しく見える 「AIが書くから」という前提は確かに今までなかった。 でも論点は同じ 20年前から批判されてきたのは同じ箇所。 だから、20年前の議論を知っていると今の議論が読めます。 今ココ
はじめに 3/13
▪この動画で行き来する時間の幅 20年をひと目で 2004 2006 2026.01 2026.09 20 年 TechEd後の立ち話で エッセイ公開
記事が火をつける 番組から 「ベトナム」と言われる 6つの逃げ道が並ぶ AI時代にORMは要るか 生SQL回帰論 結論は同じ。理由の付け方だけが、そのつど更新されている 2004年の立ち話から、2026年9月の波まで 今ココ はじめに 4/13
01 ORMとは何か まず、言葉の指す範囲を揃える 今ココ ORMとは 5/13
▪オブジェクトとリレーショナルデータベースの橋渡し ORM=Object-Relational Mapping 名前のとおりなら、オブジェクトと関係モデルの間を埋めるもの。ただし実物はかなり違う姿をしている。 オブジェクト側にあるもの … クラス、インスタンス、参照、継承 関係モデル側にあるもの … テーブル、行、外部キー、集合演算
この2つは前提が違うので、そのままでは繋がらない 繋ぎ方の選択が、ライブラリごとの性格の差になる 今ココ ORMとは 6/13
▪テーブルがクラスになり、行がインスタンスになる ① ActiveRecord(Rails) user.posts と書くだけで関連レコードが取れる。SQLは表に出てこない。 ruby user = User.find(1) user.name
= "asahi" user.save user.posts.each { |post| puts post.title } 今ココ ORMとは 7/13
▪クラスではなくクライアント経由でデータを取る ② Prisma include がJOINになるのか別クエリになるのかは、書いた側からは決められない。 typescript const user = await
prisma.user.findUnique({ where: { id: 1 }, include: { posts: true }, }); 今ココ ORMとは 8/13
▪SQLの構造がそのまま残っている ③ Drizzle 返ってくるのはオブジェクトのグラフではなく、JOINした結果の行の集まり。 typescript const rows = await db
.select() .from(users) .innerJoin(posts, eq(posts.userId, users.id)) .where(eq(users.id, 1)); 今ココ ORMとは 9/13
▪議論が噛み合わない一番の原因 この3つが同じ「ORM」 ActiveRecordを思い浮かべている人と Drizzleを思い浮かべている人が、 同じ言葉で違うものを議論している。 「ORMは要るか」という問いは、この時点ですでに雑です。 今ココ ORMとは 10/13
▪論争の中で引かれた、ある研修資料の分類 広義のORマッパーは4種類 さっきの3つも、この分類の上に置くと位置が決まる。 JDBCラッパー型 … JDBCを薄くラッピングしただけ SQLマッパー型 … SQLとクラスの詰め替えに特化 クエリビルダー型
… クラスやメソッドでSQLを記述する (狭義の)ORマッパー型 … リレーション重視、SQLを自動発行 Java以外の言語では3か4がほとんど、という個人の見立ても添えられていた ネット上の議論は、Javaでいう「JPA or JDBC」の対立になりやすい 今ココ ORMとは 11/13
▪SQLからの距離で並べ直す どこを指しているかで話が変わる SQL に近い オブジェクトに近い 生 SQL SQL マッパー型 クエリビルダー型
狭義の OR マッパー ライブラリを挟まない Dapper / MyBatis Drizzle / Kysely ActiveRecord + Zod + テスト sqlc / SQLx jOOQ Hibernate / EF Core この3つが、まとめて「ORM」と呼ばれている 議論の対象になりにくい 批判が集中するのはここ Prisma はクエリビルダー型と狭義の中間。書き方がSQLから離れるぶん、やや右寄り 同じ「ORM」でも、思い浮かべている位置が人によって違う 今ココ ORMとは 12/13
▪第2回 次回 なぜ生まれ、20年前に何を言われたか 同じ語が、3つの別物を指していた。 ではそもそも、なぜ生まれたのか。 ORMなしのコードを見てから、2006年のエッセイに入ります。 今ココ おわりに 13/13