Java Backend Bookshelf

この本棚は主に Java バックエンド開発者とアーキテクチャ設計者を対象としています。

私が好むのは、短く分かりやすい言葉で、若手実務プログラマーに必要な基礎知識を補える薄い本です。有名な教科書の中には、退屈で冗長な語り口で大学講義を彷彿とさせ、眠気を催すものもありますが、そうした本は取り上げません。


1. オペレーティングシステムとネットワークの本
『Linux Kernel Development 第3版』
Robert Love は最小限の紙幅と読みやすい文体で Linux カーネルの主要アルゴリズムを明確に説明しています。『Understanding the Linux Kernel』や『Linux カーネルアーキテクチャ』などの分厚い本はコードそのものであり、カーネル専門の開発者向けではありません。これ 1 冊で十分です。

『Linux System Programming 第2版』
引き続き Robert Love の著作で、APUE に比べて薄いことでも知られ、重要なシステムコールを具体的に解説しています。

『Systems Performance』
オペレーティングシステムのパフォーマンスチューニング、モニタリング、ツール、方法論については、この 1 冊で十分です。十分に厚く、本書リストの中で最も分厚い本かもしれません。

『TCP/IP詳解 第1巻:プロトコル』
長年経った今でも、TCP に関する本はこれくらいしかなく、やや古くて読んでもまだよく理解できません。2011年に後続の著者による第2版が出版されました。

『Wireshark ネットワーク分析はこんなに簡単』と『Wireshark ネットワーク分析の技法』
この読みやすくて実践的な 2 冊を読んだ後、TCP の詳細を本当に理解している人がどれくらいいるでしょうか。

6b94fffc8723fd5ac7e7d5ebdfd6bb542c53bafb

追記:『Advanced Programming in the UNIX Environment』と『UNIX Network Programming』、つまり APUE と UNP は、超分厚いリファレンス書としての性格が強い本です。『The Art of UNIX Programming』は余談が多く、分厚いわりに実際にはさっと読めます。『Modern Operating Systems 第3版』は LKD が合わない場合に基本概念を振り返るのに役立ちます。退屈な『Operating System Concepts』(恐竜本)よりも読みやすい印象です。

『The TCP/IP Guide』は前述の Wireshark 本の著者が推薦しており、英語の無料版がインターネット上にあります。その後、中国語版の第1巻と第2巻も出版されましたが、章が非常に多く分厚いため、TCP と HTTP だけに注目して読むことになるかもしれません。『HTTP: The Definitive Guide』も分厚い目次から興味深い章を選んで読むのがよいでしょう。

なお、日本人や韓国人が書いた「図解 XXX」シリーズは好みではありません。



2. アルゴリズムの本
『データ構造とアルゴリズム分析 - Java 言語記述 第3版』
十分に薄く、データ構造とアルゴリズム分析の要点をほぼ網羅しています。サンプルコードが Java で書かれているのも気に入りで、第3版が新刊として出版されました。

『Algorithms 第4版』
前の本と比較しながら読めます。より分厚く図も多いですが、知識の網羅性では上記に劣ります。これも Java ベースです。

c3b07a84f4054e925cf9eb4fdda801e42034c45d

追記:『数学之美』と『プログラミングの真珠』はコラム記事の寄せ集めで体系的ではありませんが、興味深い読み物として楽しめます。

数学科は『アルゴリズム入門』を好みますが、非常に退屈で数式が多い本です。コンピュータサイエンス学科はこちらの実務的な『アルゴリズム設計と分析の基礎 第3版』を好みます。



3. アーキテクチャ設計の本
『Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives 第2版』
これも教科書です。注目すべきは、この古い本が10年ぶりに第2版へ改訂されたことで、はるかに生き生きとしており、おそらく最も読みやすいアーキテクチャ本でしょう。

『Just Enough Software Architecture - A Risk-Driven Design Approach』
人間には本来の慣性があるため、アジャイルという言い訳を得た後では、元来の科学的で精密な設計手法を維持するのが難しくなります。こうした背景のもと、本書はリスクが設計の度合いを決定すると提案しています。冒頭のリスク駆動の部分を除けば、標準的なアーキテクト向け教科書という印象です。

『SRE:Google流サイトリライアビリティの理論と実践』
広告のキャッチコピーは「地球上に運用保守を極限の高みに押し上げるチームが存在する」で、少し見出し的な誇張がありますが、見る価値のある内容が多く含まれています。

『Release It。 ソフトウェアの設計とデプロイ』
高信頼性ソフトウェアに関する部分、すなわち学校では教わらないが社会で直面せざるを得ない事柄について扱っています。英語の原題の方がより明確です。

『大規模 Web サイトの技術アーキテクチャ:コア原理とケース分析』
Taobao 発の大規模インターネットサイトに関する入門書です。

『高スケーラブル Web サイトの50原則』
これも入門書です。高可用性の50原則があれば完璧だったのですが。

『マイクロサービス設計』
マイクロサービスに関する本は多数ありますが、これだけは安易な商業本ではない印象です。

『ビッグデータ実践知識』
ここ数年、さまざまな技術カンファレンスに参加すれば、CAP、結果整合性、RWN、ベクトル時計、Paxos、コンシステントハッシュ、ゴシッププロトコルなどの言葉が耳に溢れます。しかし今では、自宅で静かに 1 冊の本を読むだけで済みます。もっとも、この分野は進化が速く、また 1 年が経ちましたが、今後も新版が出版され続けるでしょう。

5adb40b625c23d05bec45360e1e22bf05c8e6605

追記:デザインパターンについては、かつて GOF23、『エンタープライズアプリケーションアーキテクチャパターン』、EIP、POSA 全5巻、アンチパターン、JavaEE/SOA/Restful パターンなど多くの本を持っていました。しかし今では、新人には Java で書かれた『Head First デザインパターン』1 冊でデザインパターンが何かを理解するのに十分だと感じています。

『Software Architecture for Programmers』の著者は codingthearchitecture.com を運営しています。ただし、中国語版の「必読」というタイトルは少し大げさです。



4. Java 言語の本
『Java並行プログラミング実践』
Java 並行処理の古典的名著で、誰もが 1 冊持っているほどです。

『実践Java高並行プログラミング』
中国の新著で、流暢で読みやすく、内容も前出の本より新しいです。

『Java8 in Action』
Java 8 の新機能について最も包括的かつ詳細に解説しています。

『Java仮想マシンの深い理解 第2版』
仮想マシンの理解はそれほど難しくありません。Java プログラマーにとって実際には多くの知識が必要です。なお、同様のテーマの本が他にも数冊あり、相次いで出版されました。

『The Definitive Guide to Java Performance』
数年前のチューニングバイブルと比べて、より深く、現行の JDK に即しています。Java パフォーマンスチューニングの面接問題に向けた知識をここから抽出できます。

『効果的な単体テスト』
BDD を多用する上級書とは異なり、「良い」単体テストと保守性の高い単体テストの書き方に焦点を当てています。チームに共有すれば多くの議論時間を節約できます。

e3900adbc9ea67385fe750a98e35d50012a248a5

追記:『Effective Java』は外部から一様に称賛されていますが、少し過大評価の感があります。また、『Thinking in Java』はやや古く、著者の思考が散漫で、翻訳者の言葉も晦渋です。新しいプログラマーには『Java コア技術 - Core Java』の 2 巻を同時に読むことをお勧めします。



5. プログラマーの自己啓発
追記:最近新しい本を買っていないので、いくつかの古い本の話をします。

『プログラマー修行の道 - 職人から達人へ』、Pragmatic Programmer - 実務成果を重視するプログラマーの先駆的著作で、Maddavi による文体の翻訳も Xiong Jie と同様に優れています。

『Clean Code』と『プログラマーのプロフェッショナリズム』は、英語名がそれぞれ Clean Code と Clean Coder で非常に似ていますが、『Code Complete 2』に代わる必読シリーズとすべきです。後者は分厚すぎる上、時代遅れの内容も多く、自分で取捨選択する必要があるからです。

『Refactoring』は非常に分厚いですが、最も価値があるのは序盤の数章の概念刷新の章です。具体的な実装面では、薄い『Refactoring Manual』の方が実用的です。

アジャイル関連の本では、『Extreme Programming Explained - 変化を抱擁せよ』が非常に良く、スクラムのフローもこれ 1 冊で押さえられます。『The Art of Agile Development』も良い本です。

『伝道の道』は、組織内で新技術を推進する立場の人が読むと、7 つの懐疑モデルと馴染みのある顔ぶれが思い浮かぶでしょう。

追記:Weinberg の本はインターネットで高く評価されています(『Becoming a Technical Leader』など)。しかし、時代が古すぎて読むのが退屈だと感じます。1 つ 2 つの有益な洞察を本の中からゆっくり探すことになりますが、その時間があるなら他の本を読んだ方が効率的です。

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.