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不要論の歴史】運用の問題は、いまの責務論に直結する
Search
赤神青空
PRO
September 11, 2026
Video
Programming
11
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【ORM不要論の歴史】運用の問題は、いまの責務論に直結する
赤神青空
PRO
September 11, 2026
Video
More Decks by 赤神青空
See All by 赤神青空
【ORM不要論の歴史】2026年の不要論は何を言っているのか
akagami
PRO
0
13
【ORM不要論の歴史】なぜ生まれ、20年前に何を言われたか
akagami
PRO
0
19
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
93
【ORM不要論の歴史】「ORM」と呼ばれているものが3つある
akagami
PRO
0
53
【Vitest5.0大解剖】Vitest5.0で消えた記法とAPI
akagami
PRO
0
24
【Vitest5.0大解剖】Vitest5.0で増えた書き方
akagami
PRO
0
32
【Vitest5.0大解剖】Vitest5.0で静かに変わる挙動
akagami
PRO
0
27
【Vitest5.0大解剖】Vitest5.0のTrace View
akagami
PRO
0
28
【Vitest5.0大解剖】Vitest5.0は何が速くなったのか
akagami
PRO
0
28
Other Decks in Programming
See All in Programming
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
160
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
170
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
0
400
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
260
AIとGame Jamで、ゲームを完成させた話
takahirosaeki
0
110
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
640
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
120
高専キャリア LT 発表内容
crysta1221
6
5.6k
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
180
業務時間外もAIに働いてもらう話
colorful12
3
10k
新卒PdEのリアル
ryu1013
1
440
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
130
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
So, you think you're a good person
axbom
PRO
2
2.1k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
410
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
870
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Scaling GitHub
holman
464
140k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
320
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Transcript
2026年9月 ORM不要論を、20年ぶんさかのぼる 第3回 運用の問題は、いまの責務論に直結する 赤神 青空
▪モデルではなく、運用と組織から来る問題 所有権と、二重スキーマ スキーマの所有権 最初は白紙のDBを自由に設計できるが、その状態は長続きしない 他部署のレポート要求とDBAの性能責任で、スキーマは凍結に向かう 判別用のカラムは、レポート生成ツールから見ると意味不明な列になる 二重スキーマ 同じ知識が、DDLとオブジェクト定義の2箇所に置かれる コードの修正よりDBの修正のほうが重い。既存データの移行が要るため 今ココ
2006年 2/11
▪取得の書き方は3種類あるとされている 2006年時点でのクエリビルダ批判 QBE(テンプレートを埋める)/ QBA(クエリオブジェクトを組む)/ QBL(SQL風の別言語)。QBAが、いま言うクエ リビルダ。 SQLの書き方に比べて、一般に冗長になる outer join のような書き方は、難しいか、そもそも表現できない
テーブル名もカラム名もただの文字列で、実行時まで検証されない QBLはQBLで、SQLの部分集合にしかならない SQLに似た言語を使うなら、SQLを使うのと何が違うのか、という話になる 今ココ 2006年 3/11
04 ORMは何を引き受けているか 名前で呼ぶのをやめて、中身を棚卸しする 今ココ 責務の分解 4/11
▪ORMと呼ばれるライブラリがやっている仕事 7つの責務 a b c d e f g クエリの組み立て
行とオブジェクトの変換 関連の解決 スキーマの単一情報源 マイグレーション インジェクション対策 トランザクション管理 今ココ 責務の分解 SQL文字列を直接書かずにクエリを作る 取得した行をオブジェクトに詰め替え、書き戻す 関連レコードを属性のように辿る テーブル定義を一箇所に置き、そこから型を導く スキーマの変更を差分として記録し、順に適用する 値をプレースホルダとして扱う 一連の操作をまとめて確定または取り消す 5/11
▪表で色を付けた2つ 批判が集中するのは b と c 2006年に「解けない」とされた食い違いは、 b(変換)と c(関連) に集中している。 bとc
構造から来るので解けない。今の不要論もここが中心。 a・d・e 争点にはなるが、別のツールに任せられる。 「ORM不要」と書かれているものの多くは、bとcを指しています。 今ココ 責務の分解 6/11
▪ひとまとめで提供されるものではない 責務は別々に取り外せる それぞれを単体で引き受けるツールが、実際に存在します。 dbmate … マイグレーション(e)だけ。素のSQLでup/downを書く Atlas … スキーマを宣言的に書いて差分を計算(d と
e) Kysely … TypeScriptのクエリビルダ(a・f・g)。b・c は持たない SafeQL … ESLintプラグイン。生SQLのまま、スキーマから型を検証する 今ココ 責務の分解 7/11
▪構成ごとに、どこを誰が持つか 責務の割り当てとして見る a b c d e f g 組み立て
変換 関連 情報源 移行 注入対策 トランザクション フルスタック ORM a から g までを1つのライブラリが抱える Kysely + Atlas Kysely なし 生 SQL + SafeQL 生SQL なし Atlas なし Kysely dbmate ドライバ 自分で担保 + dbmate 手放しているのは b と c だけ 「ORM を使う/使わない」は、実際にはこの割り当ての問題だった SafeQL は生SQLに型検証を足すもので、いずれかの責務を置き換えるものではない 責務ごとに、別のツールへ割り当て直せる 今ココ 責務の分解 8/11
▪特定のコミュニティの流行ではない 同じ形が、言語をまたいで並んでいる 【SQL前提の軽量ORM】SQLは開発者が書き、ライブラリはマッピングとバインドだけ Dapper sqlx MyBatis 実態はSQLを書く前提の軽量マッパー 標準ライブラリの薄い拡張 SQLを外に置いて結果を詰める C#
Go Java 【SQLファーストな型安全ORM】SQLを書く前提で、壊れないよう型で縛る sqlc TypedSQL SQLx jOOQ SQLからコードを生成する Prismaに載っている機能 コンパイル時にクエリを検証 SQL中心で型と高度なクエリ Go TypeScript Rust Java ORMを捨てたというより、ORMに期待しすぎない、という態度に近い 今ココ 責務の分解 9/11
▪まとめて決めなければならないものではない 実は組み合わせの問題だった ORMを外しても、d・e を Atlas に、a・f を Kysely に任せられる。 このとき手放しているのは
b と c だけ。 「ORMを使う/使わない」は、もっと細かい選択の集まりです。 今ココ 責務の分解 10/11
▪第4回 次回 2026年の不要論は何を言っているか 20年前の指摘は、責務の言葉に置き換えられる。 では今年、実際に何が言われたのか。 1月と9月、2つの波の中身に入ります。 今ココ おわりに 11/11