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
【ORM不要論の歴史】「ORM」と呼ばれているものが3つある
Search
赤神青空
PRO
September 09, 2026
Video
Programming
38
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 赤神青空
【ORM不要論の歴史】運用の問題は、いまの責務論に直結する
akagami
PRO
0
10
【ORM不要論の歴史】なぜ生まれ、20年前に何を言われたか
akagami
PRO
0
15
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
84
【Vitest5.0大解剖】Vitest5.0で消えた記法とAPI
akagami
PRO
0
23
【Vitest5.0大解剖】Vitest5.0で増えた書き方
akagami
PRO
0
30
【Vitest5.0大解剖】Vitest5.0で静かに変わる挙動
akagami
PRO
0
24
【Vitest5.0大解剖】Vitest5.0のTrace View
akagami
PRO
0
26
【Vitest5.0大解剖】Vitest5.0は何が速くなったのか
akagami
PRO
0
26
1MBの壁にぶつかった話
akagami
PRO
0
27
Other Decks in Programming
See All in Programming
Hono + Inertia + React で LP を構築した話
oukayuka
2
220
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
170
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
360
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
500
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
870
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
410
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
270
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
120
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
業務時間外もAIに働いてもらう話
colorful12
3
10k
不幸な GC
chencmd
0
890
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
640
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Cost Of JavaScript in 2023
addyosmani
55
10k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
Thoughts on Productivity
jonyablonski
76
5.4k
Deep Space Network (abreviated)
tonyrice
0
290
The Curse of the Amulet
leimatthew05
2
14k
A Soul's Torment
seathinner
7
3.6k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
How to Ace a Technical Interview
jacobian
281
24k
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