第6章. データを本当に掘り下げる
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
データは、その構造や他のデータとの関係、取り扱い、保存、検索のオプション、適用可能なさまざまな標準、データベース・プロバイダーやメカニズムなど、考慮すべきことがたくさんあり、複雑なトピックとなりうる。データは、開発者がキャリアの初期や新しいツールチェーンを学ぶ際に触れる、開発における最も複雑な側面かもしれない。
何らかの形でデータがなければ、ほとんどすべてのアプリケーションは意味をなさないからだ。データをストアしたり、検索したり、関連付けたりすることなしに、価値を提供するアプリケーションはほとんどない。
ほぼすべてのアプリケーションの価値を支えるものとして、データはデータベース・プロバイダーやプラットフォーム・ベンダーの多大な技術革新を引き寄せてきた。しかし、多くの場合、複雑さが残っている。結局のところ、データは非常に深くて広いトピックなのだ。
Spring Dataの登場だ。Spring Dataの使命は、"データストアの特殊化を保ちつつ、データアクセスのための使い慣れた一貫性のあるSpringベースのプログラミングモデルを提供すること "である。データベースエンジンやプラットフォームに関係なく、Spring Dataのゴールは、開発者のデータアクセスを可能な限りシンプルかつ強力にすることだ。
この章では、さまざまな業界標準や主要なデータベースエンジンを使ってデータの保存と検索を定義する方法と、Spring Bootを介して、最も合理的で強力な方法でそれらを使用できるようにするSpring Dataプロジェクトと機能を示す。
エンティティの定義
データを扱う場合、ほぼすべてのケースで何らかのドメイン・エンティティが関わっている。それが請求書であれ、自動車であれ、あるいはまったく別のものであれ、データが無関係な性質の集まりとして扱われることはほとんどない。必然的に、私たちが有用なデータと考えるのは、意味のある全体を構成する要素のまとまりである。データであれ実生活であれ、自動車が有用な概念となるのは、それが唯一無二の、完全に属性化されたものである場合に限られる。
Spring Dataは、Spring Bootアプリケーションが使用するために、様々な抽象化レベルでいくつかの異なるメカニズムとデータアクセスオプションを提供する。開発者がどの抽象化レベルのユースケースを選択するかにかかわらず、最初のステップは、該当するデータを処理するために使用するドメインクラスを定義することである。
ドメイン駆動設計(DDD)の完全な探求は本書の範囲を超えているが、本章とそれ以降の章で構築されるサンプルアプリケーションに適用可能なドメインクラスを定義するための基礎として、この概念を使用する。DDDの完全な探求については、Eric Evansのこのトピックに関する代表的な著作であるDomain-Driven Designを読者に紹介したい:Tackling Complexity in the Heart of Software"を参照されたい。
ざっと説明すると、ドメインクラスは、他のデータとは独立して関連性と重要性を持つ主要なドメインエンティティをカプセル化する。これは、他のドメイン・エンティティに関係しないという意味ではなく、他のエンティティに関連付けられていない場合でも、単独で存在し、単位としての意味を持つことができるという意味である。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access