先日、JJUG CCCというJavaのイベントに参加しました。
詳細のURL↓
数多くのセッションの中で、過去の仕事経験を思い起こすような内容のものがありました。
・ドメイン駆動設計とSpringBootを使ったJavaアプリケーション開発
詳細についてのURL↓
下記のURLをクリックして、セッション一覧のボタンを押下するとセッション一覧画面に飛びます。
スピーカーは、現在yahoo!で働いている2年目のエンジニアの方でした。
早速内容に入りたいところですが、、、
タイトルからよくわからない言葉がたくさん出てきているため、そもそも、ドメイン駆動設計、JavaのSpringBootってなんだ?という話を一旦して次のカテゴリ更新でイベントの内容について書いていきます。
●ドメイン駆動設計について
・一言でいうと:ソフトウェアの設計手法のこと、
辞書的な意味としては、
「複雑なドメインの設計は、モデルベースで行うべき」であり、
また「大半のソフトウェアプロジェクトでは、システムを実装するための特定の技術ではなく、ドメインそのものとドメインのロジックに焦点を置くべき」であるとする
言い換えると、
「現実の複雑な問題解決領域をどの様にソフトウェアに落としこむか」というテーマのもと、組織、開発プロセス(どのような手順で作るか)、設計論(設計図を作る工程)に及ぶ
ソフトウェア開発哲学であり、その探求の過程で生まれたモデリングの戦略、戦術のパターン、思想が集まったものです。
ドメイン駆動設計について、もっとわかりやすく書かれた本が出ていますね。
■オブジェクト指向でなぜ作るのか
タイトルは、オブジェクト指向でなぜ作るのかとなっておりますが、ドメイン駆動設計のこともある程度書かれています。
そもそも、オブジェクト指向が進化したものとして、ドメイン駆動設計があります。
だから、オブジェクト指向について知った後に、ドメイン駆動設計について学んでみるとその理解が、深まると思います。
この本、私も読んでみましたが、分かりやすかったです。文章力のある人すごい......!!の一言に尽きる。
技術について知らない人がそれを理解でき、そして、それによって次の技術について興味を持てるような内容の技術書は付加価値が本当に高いです。
●JavaのSpringBootについて
・まずJavaから
一言でいうと:たくさんあるプログラミング言語のうちの一つ
プログラミング言語とは、コンピューターの世界の言葉と、人間の世界の言葉を橋渡しするための言語です。
端的に言ってしまうと、コンピューター内の世界で使われている言語のことですね。
このような言葉を使って、コンピューターは動いています。
・SpringBootについて
一言でいうと:Spring Frameworkベースのアプリケーションを手軽に作成することができるフレームワークです。
またまた、Spring Frameworkとか、フレームワークとかよくわからない言葉が出てきましたが、下にその意味をざっと書いておきます。
フレームワーク:ソフトウェアの分野では、ある領域のソフトウェアに必要とされる汎用的な機能や基本的な制御構造をまとめた半完成品のこと
詳しくは、こちらのサイトに載っています。
Spring Framework:上記で書いたフレームワークのうちの一つ。
調べてみると山のように情報が出てきます。
最後にこれらについて学ぶときに私が使った本について簡単に紹介しておきます。
※あくまでも個人の感想です。
●これらについて最初に読んだほうがいい!!本
・javaの文法について
■スッキリわかるJava入門
■すっきりわかるJava(実践編)
スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)
- 作者: 中山清喬
- 出版社/メーカー: インプレス
- 発売日: 2014/09/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る
この2冊は先代のJavaプログラマーの人たちも薦めています。
まず、対話型の講義形式で書かれているため、プログラミングについてよく知らない人にもとっつきやすい本です、
文章もわかりやすいですね。
・Javaのオブジェクト指向について
■オブジェクト指向でなぜ作るのか
上記で紹介したとおり、文章が本当にわかりやすい。
javaを学んでいくと、オブジェクト指向に関する話が出てくると思います。
こいつがまた厄介なものなんですよね......
いろいろな定義が本にも、ネット上にも人の中にもありますので......
正しくはどれなんだ?と
プログラミング研修の講師にもその説明をあきらめている方が多くいらっしゃいますね…
但し、この本は、各種いろいろな定義があることを前提に置いたうえで、オブジェクト指向が本来どういうものなのかをわかりやすく説明しています。
オブジェクト指向を知るならまずこの本かなと思います。