書籍メモ「Persistence Best Practices for Java Applications」Chapter 7
https://learning.oreilly.com/library/view/persistence-best-practices/9781837631278/
Part 2: Jakarta EE, MicroProfile, Modern Persistence Technologies, and Their Trade-Offs
Chapter 7 The Missing Guide for jOOQ Adoption
・Data-driven and object-oriented programming in Java
・What is jOOQ?
・Using jOOQ with Jakarta/MicroProfile
jOOQ はJava Object Oriented Querying の略で、軽量でありながら堅牢な Java ライブラリであり、開発者が型安全な SQL クエリを流暢かつ直感的に記述できるようにする。
jOOQは、SQLの複雑さをカプセル化するドメイン固有言語(DSL)を提供し、開発者が簡潔で読みやすいコードを書くことに集中できるようにします。
jOOQは、開発者がJavaコード内でSQLのフルパワーを活用することを可能にし、従来のオブジェクト・リレーショナル・マッピング(ORM)フレームワークでは実現が困難だった柔軟性、パフォーマンス。
データ駆動型プログラミングとOOPの決定的な違いは、プログラム設計へのアプローチにある。
OOPでは、実体とその振る舞いをモデル化し、オブジェクトとその相互作用を中心にコードを構成することに重点が置かれる。
データ駆動型プログラミングは、データ構造の操作と処理を優先する。
データベースやデータ中心のアプリケーションなど、大量のデータを扱う場合に有益である。
オブジェクト指向よりもデータ駆動型のアプローチの方が適している場合
・データ処理と分析
・データベース駆動型アプリケーション
・構成駆動型システム
・ルールベースのシステム
データ駆動型プログラミングに関連するトレードオフ
・複雑性の増大
・カプセル化の減少
・限られた表現力
jOOQ は、エンタープライズ・アプリケーションのコンテキストにおいて、OOP とデータ指向プログラミングのギャップを埋める強力な Java ライブラリです。
jOOQは、開発者がSQLのパワーを活用し、Javaコード内でデータ駆動設計原則を活用するためのエレガントなソリューションを提供します。
jOOQの使用に関連するトレードオフ
・学習曲線
・コードの複雑化
・データベースの移植性の制限
・パフォーマンスの考慮
・メンテナンスとアップグレード
・基礎となるデータベースの抽象化が限定的
・潜在的なインピーダンスの不一致
JOOQ
https://www.jooq.org
jOOQはあなたのデータベースからJavaコードを生成し、その流暢なAPIを介して型安全なSQLクエリを構築することができます。