Javaの専門家向けの必須の本放送:
すべてのプログラマーには、プロの資料と呼ばれることが多いため、しばしば使い果たされる本がいくつかあります。次の本は、Java Language Programmersの本棚に必須の本でなければなりません。本は高価なので、私は意図的にこのリストを短くし、重要な本に限定しています。
Javaでの考え方(ブルース・エッケル)
Javaでの思考、第3版(Bruce Eckel; Prentice Hall Ptr、2002)
Javaプログラミング思考:第3版(Chen Haopeng et al。; Machinery Industry Press、2005年翻訳)
Eckelの本は、Javaロケールでオブジェクト指向のテクノロジーを使用する方法を学ぶのに非常に役立ちます。本の多数のコード例が、彼が紹介した概念を説明しています。テキストは、Javaテクノロジーが常に正しい答えだと思わない人から来ているため、非常に実用的です。 Eckelは、複数の言語で多くの経験を持ち、オブジェクト指向の方法で考えるための堅実なスキルを持っています。この本は、これらのスキルを実用的なJavaロケールに入れます。彼はまた、Enterprise JavaでThinkingという新しい本を書いています。
効果的なJava (Joshua Bloch)
効果的なJava:プログラミング言語ガイド(Joshua Bloch; Addison-Wesley、2001)
効果的なJava中国語版(Pan Aiminによる翻訳、Machinery Industry Press、2003年)
この本は、優れたJavaプログラミングの原則を理解するのに最適な本です。ほとんどの材料は、「Javaの学習」に関する他の本には単に見つかりません。たとえば、Blochの本の上書き等()に関する章は、私が今まで読んだ中で最高の参考文献の1つです。彼はまた、本に非常に実用的な提案を含めました。抽象クラスをインターフェイスに置き換え、例外を柔軟に使用します。 BlochはSunのJava Platform Libraryの建築家なので、彼はこの言語を完全に理解しています。実際、彼は言語で多数の有用なライブラリを書きました。この本を読む必要があります!
Javaプログラミング言語(Ken Arnold、James Gosling、David Holmes)
Javaプログラミング言語(Ken Arnold、James Gosling、David Holmes、Addison-Wesley、2000)
Java Programming Language(第3版)(Yu Wanrong et al。、China Electric Power Press、2003による翻訳)
これはおそらくあなたへの最高のJavaの紹介です。それは標準的な仕様ではなく、各言語の特性を紹介する読みやすい本です。この本は厳密かつ教育的に上位にあり、プログラマーがJava言語(およびその豊富な図書館)に迅速に惹かれることを可能にします。
Javaの同時プログラミング:デザインの原則とパターン(Doug Lea)
Javaの同時プログラミング:デザインの原則とパターン、第2版(Doug Lea; Addison-Wesley、1999)
Java Concurrentプログラミング - デザインの原則とパターン(第2版)(Zhao Yong et al。、China Electric Power Press、2004年翻訳)
すべての開発者がこのような並行性を綿密に理解する必要があるわけではなく、すべてのエンジニアがこの本のレベルに到達できるわけではありませんが、この本よりも並行性プログラミングの概要はありません。これに興味がある場合は、ここから始めてください。 LeaはSUNYのプロのプログラマーであり、同時性に関連する彼の作品とアイデアはJDK 5.0仕様(JSR166から引用)に含まれているため、Javaを効果的に使用することに関する彼のアドバイスは聞く価値があることを安心できます。彼はコミュニケーションの人がとても上手です。
専門家の1対1のJ2EEデザインと開発(ロッドジョンソン)
専門家の1対1のJ2EEデザインと開発(ロッドジョンソン)
WROX:J2EEデザインおよび開発プログラミングガイド(Wei Haiping、Electronics Industry Press、2003年翻訳)
J2EEに初めての人にとって、これはこのテクノロジーを本当に反映した唯一の本です。この本には、長年の成功と失敗の経験が含まれています。他の多くの著者とは異なり、ジョンソンは失敗体験を喜んで公開します。 J2EEはしばしば使いすぎです。ジョンソンの本はあなたがこれを避けるのに役立ちます。
リファクタリング(マーティン・ファウラー、ケント・ベック、ジョン・ブラント、ウィリアム・オプディケ、ドン・ロバーツ)
リファクタリング:既存のコードの設計の改善(Martin Fowler、Kent Beck、John Brant、William Opdyke、Don Roberts;
Addison-Wesley、1999)
リファクタリング:既存のコードの設計の改善(中国版) (Hou Jie et al。、China Electric Press、2003による翻訳)
Fowlerは、分析パターンを含む、現在公開されている最も人気のあるプログラミングの本をいくつか執筆しています。再建に関する彼の本は、この主題に関する基本的な本です。リファクタリングコードは、プログラマーが無視するトレーニングですが、プログラマーにとって最も直感的なアイデアです。リファクタリングは、コードの結果を変更せずに既存のコードの設計を改善することです。これは、コードを整頓するための最良の方法であり、この方法で設計されたコードは常に簡単に変更できます。いつリファクタリングされますか?コードが「味を感じる」とき。ファウラーの本には、Java言語コードの例がたくさんあります。多くのJava言語統合開発環境(IDES)(IBMの日食を含む)にはFowlerの再構築が含まれており、それぞれが再構成名で命名されているため、抽出方法などの再構築方法に精通する価値があります。
デザインパターン(エリッヒガンマ、リチャードヘルム、ラルフジョンソン、ジョンウリシデス)
デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素(Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides; Addison-Wesley、1997)
設計パターン:再利用可能なオブジェクト指向ソフトウェアの基本(Li Yingjun et al。、Machinery Industry Press、2005年翻訳)
これは、プロのプログラマーのサークルでより有名な本です。著者の一般的なニックネームに基づいて、この本は「ギャングオブフォー(GOF)ブック」と見なされています。パターンは、通常のプログラミングの問題を考えて解決するときに再利用する方法です。学習モデルは主題です。優れたモードを使用する(またはそれらを使用しないことを知る)ことはスキルです。パターンを無視することは間違っています。本のすべての例はC ++で表されていますが、Java言語はそこから生まれたため、Java言語プログラマーをJava言語でこれらのパターンを実装する方法に接続することは比較的簡単です。パターンに精通し、プログラミングを容易にするために良いパターンを使用する方法を理解してください。これにより、他のプログラマーとの通信も容易になります。一般的な問題の一般的なソリューションでは、パターンは互いに協力するソリューションの多数の関連するプログラミング概念を説明するショートカットです。工場法などのいくつかのより一般的な方法は一般的に存在し、Java言語自体にさえ存在します。賢明な使用でパターンを使用するトピックについては、Joshua Kerievskyのパターンへのリファクタリングを読むこともできます。
エンタープライズアプリケーションアーキテクチャのパターン(Martin Fowler)
エンタープライズアプリケーションアーキテクチャのパターン(Martin Fowler; Addison-Wesley、2002)
エンタープライズアプリケーションアーキテクチャモデル(Wang Huainin et al。、Machinery Industry Press、2004年翻訳)
小規模および1回限りのプロジェクトと比較して、企業開発は確かに大きな課題を表しています。それは、エンタープライズ開発によってもたらされるすべての課題が新たな課題であるという意味ではありません。実際、時には、この開発が以前に完了したことがあります。ファウラーは多くのそのようなプロジェクトを行ってきました。彼の本はいくつかの一般的な解決策に言及し、使用、妥協、オプションに関するガイダンスを提供します。 Fowlerには、モデルビューコントローラー(MVC)など、本のおなじみのパターンが含まれており、特定のページリクエストやWebサイトでの動作要求を処理するページコントローラーモードなど、理解できないパターンも提供します。ほとんどのモードを扱うと、多くのモードを読むと、「私はすでにそのモードを知っている」と思います。たぶんそうかもしれませんが、参照パターンの共通の表現を持つことは役に立ちます。このクラスの参照は、複数のコンポーネント(異なる人々によって開発された)を備えた大規模なプロジェクトで大きな助けになります。
uml蒸留(マーティン・ファウラー)
UML蒸留:標準オブジェクトモデリング言語の簡単なガイド(Martin Fowler; Addison-Wesley 2003)
UML Essence:標準オブジェクト言語の簡単なガイド(第3版) (Xu Jiafu、Tsinghua University Press、2005年翻訳)
プロのプログラマーにとって、UMLは重要な普遍的な視覚コミュニケーション言語ですが、使いすぎで急いでいます。 UMLコミュニケーションの使用についてあまり知る必要はありません。 MartinのUMLの洗練は、最も核となるものを提供します。実際、フロントカバーとバックのカバーページは、定期的に使用できるものすべてを提供します。この本のUML例のコードはJavaコードです。
テスト駆動型開発:例で(ケントベック)
テスト駆動型開発:例によって(Kent Beck; Addison-Wesley 2002)
テスト駆動型開発(中国語版) (Cui Kai、China Electric Power Press、2004年翻訳)
テストファーストプログラミングは、プログラミングに革命をもたらし、より良いプログラマーになるのに役立ちます。コードを書く前にテストを作成するのは難しいですが、それは強力なスキルです。テストに優先順位を付けることで、コードをより簡単にし、最初から機能するようにすることができます(ベックは、Javaの最も人気のあるテストフレームワークである共同執筆のJunit、彼の提唱されたテストの優先順位を実践しました)。ベックの本は権威ある参照であり、拡張されたお金の例もJavaで書かれています。ベックは、テストの優先順位で考える方法を詳述しています(これは多くのプログラマーが遭遇する最初の障害かもしれません)。
実用的なプログラマー:ジャーニーマンからマスター(アンディハントとデイブトーマス)
プラグマティックプログラマー:ジャーニーマンからマスターまで(アンドリューハントとデビッドトーマス、アディソンウェスリー1999)
プログラマーを練習する方法 - 小規模労働者から専門家まで(Mavida、Electronics Industry Press、2004年翻訳)
純粋なオブジェクト指向の開発者であることには、その利点があります。 Java言語開発者としての今日の複雑な社会では、タスクを完了するために妥協する必要があることがよくあります。狩りと
トーマスは、本当に重要なことを妥協することなく、タスクを完了する方法を探ります。これはJava言語に関する本ではなく、Java言語開発者にとって重要な思考読書です。たとえば、「問題を解決するためではなく、責任を軽減する」という正直なアドバイスから利益を得るプログラマーは、誇り高いアーティストのように彼の傑作に有名な名前に署名することはできません。
Peopleware:生産的なプロジェクトとチーム(Tom DemarcoとTimothy Lister)
Peopleware:生産的なプロジェクトとチーム(Tom Demarco、Timothy Lister; Dorset House、1999)
パーソナルドキュメント(第2版)(Umlchina Translation Group、Tsinghua University Press、2003)
このリストの他のすべての本は、少なくともテクノロジーにある程度関連しています。この本はそうではありません。すべての技術的な専門用語と頭字語の海では、時にはソフトウェア開発者やマネージャーが忘れることがあります。ソフトウェアを作ったのは人々です。 DemarcoとListerは、この事実とこの違いの理由を思い出させてくれます。これは特定のプログラミング言語に関する本ではありませんが、すべてのJava言語プログラマーが読むべき本です。 「疲れ果てたプログラマーがマネージャーをバックファイアにする方法」に関する他の多くの良い本がありますが、これは最高のものです。
Java言語を学ぶことは読書から始まります!