現場で役立つシステム設計と実装、リファクタリングに開発プロセスにOOPとDDDの本
ドメイン駆動設計(DDD: Domain Driven Design)の実践者としても知られる増田 亨さんの2017年7月の本。ネットでもかなり話題になったので読んだ人も多いのではないでしょうか。
続きを読む まだJavaで消耗してるの?という感じが2018年現在だと若干ありますが、依然として仕事のシーンではJava関連もよく出てくるので読んでみました。
第5版という通り今までも何度か出てきた本の2016年3月に出た最新版。
Java界隈での執筆時の2016年の最新状況、フレームワークが乱立気味の状況を踏まえ、主要な各フレームワークやツールを総なめ、どういうものか、実際の基本的な使い方の部分をサンプルコードと共に網羅しています。
586ページと分厚く、緑色の表紙が目立つのでよく大きい本屋でも置いてありますね。この記事では内容の整理紹介と、Java界隈のキーワードの最近の情勢をまとめてみたいと思います。
EclipseではじめるJavaフレームワーク入門第5版Maven/Gradle対応
諸々や師走のばたばたでしばらく更新ができず間が空いてしまいました。こちらの記事の続きです。
コードにしても設計クラスからメソッド、データ型の変数名のステートメントへ...と微細にコンプリートしながら今度は下巻。今度は出来上がったコードのテストや改良、リファクタリングなど、応用編的に続いていきます。
CODE COMPLETE 第2版 下 完全なプログラミングを目指して
コード・コンプリート。「エンジニア・プログラマー向けお勧め書籍X選」系の記事や業界の一線で活躍している方のインタビューや影響を受けた本・おすすめ本などで必ずと言っていいほど出てくる頻出の名著ですが、1ヶ月ぐらいかかってようやく読み終わったので感想など書いてみます。
著者のスティーブ・マコネル氏はアメリカのシアトル大で修士号を取得したりMicrosoftやボーイングでも働いていたソフトウェア工学の第一人者。初版が出たのが1993年、オブジェクト指向の考え方が入った第2版がその10年後、日本語版の2版が出たのが2005年。上巻が460P、下巻が360P余りと合計1000ページを超える(!)、手持ち武器に使えそうな分厚い本です。
CODE COMPLETE 第2版 上 完全なプログラミングを目指して
タイトルは「コード」となっていますがプログラミングだけではなく、上流は基本や要件定義から始まりプログラミングを徹底的に、最後はテスト、果てはプログラマーの職人気質まで、開発についてまるっと全部まさにコンプリート、ソフトウェア開発方法論を幅広く網羅した入門書となっています。
全7部で全35章、章の下に節、項まであって学術書のような趣もあります。それぞれの項は長くないので丸ごと一気に読もうと思わなくても分けて読んでいけます。
本屋でもよく見かける「なぜ」シリーズはよい本が多いのですがその中のベストセラーの名著の一つ。初版は2004年に出ましたがその後の歴史的変遷や内容の改善を踏まえ、全面的に書き直した2版が2011年に出ました。
350ページ強とけっこう分厚いのですがフォントも比較的大きく、左右に空白もあり、そして図表も豊富で文章も平易なので読みやすい本です。サンプルコードはほぼJavaですが、だいたいメンバ変数と標準出力をするメソッドを持つ簡単なクラス程度から始まるので、最低限のJava文法が分かれば読み進められます。
ターゲットは仕事で開発をする人ならだいたい新人~業界数年目の若手、あるいは非オブジェクト指向の世界から来た方なら何年目でも、そしてプログラミング自体の学習と一緒にオブジェクト指向を勉強したい方、でしょうか。
他の言語の最近のOOP本で言うとRubyの『オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方』はもりもり設計やコーディングしている中級者向けでそれよりはもっと初心者向け、『アジャイル時代のオブジェクト脳のつくり方 Rubyで学ぶ究極の基礎講座』と同じぐらい?ではと思います。
オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
アジャイル時代のオブジェクト脳のつくり方 Rubyで学ぶ究極の基礎講座
著者の方によるサポートページもあります。
続きを読むややこしいですが原題はPatterns of Enterprise Application Architecture、通称PoEAA, PofEAAと略されるアーキテクチャ設計系のバイブル。設計やリファクタリング本で有名なかのマーチン・ファウラーさんの本です。6000円ぐらいして紙だと分厚い本ですが、電子書籍でやっとこさ読了しました。いやー長かった。
エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)