ホームページ  >  記事  >  Java  >  Java プログラマーに読む価値のある良書を推奨する

Java プログラマーに読む価値のある良書を推奨する

伊谢尔伦
伊谢尔伦オリジナル
2016-12-05 10:46:471225ブラウズ

「学ぶには本を読むのが一番。」 これは、独学で勉強して経験を積んでからの初めての経験です。個人的に、本を読むメリットは2つあると思っています:

出版できる本は、思考、推敲、レビューを繰り返している必要があるため、専門的な観点から見ると、良い本の価値は他の情報をはるかに上回ります。
本を見てください 自分でコードを入力するときに便利です
「本を読んだ後に自分自身を向上させるための最良の方法は、関連する優れたブログ投稿を読むことです。個人的には、これは学習の 2 番目のステップだと思います。」多くの場合、数百ページにわたる優れたブログ投稿は、読んで勉強した後のいくつかの要約と洗練であり、学習内容を整理するのに非常に役立ちます。もちろん、これは私自身の学習方法に関するものではないので、ここでは触れません。詳細。

多くのプログラマーは、本を読みたいという衝動に駆られることがよくありますが、どの本を読めばよいのかわかりません。以下に Java プログラマーにおすすめの本をいくつか紹介します (各本の著者は太字で強調表示されています)。私が普段読んでいる本についての短い要約と考察とも言えます。

デザインパターンを解説した本はたくさん市販されていますが、本を読むのが一番だと言いましたが、デザインパターンに興味のある友人にはこのブログをお勧めします。このブロガーのデザイン パターンは非常に優れており、コンテンツの 90% は問題なく、学ぶ価値があると思います。 デザイン パターンを説明する一般的なルートは次のとおりです。

1. 記事を開始してデザイン パターンを指摘します。定義

2. このデザインパターンの構造を画像とテキストで説明します

3. このデザインパターンの実装を詳細なコード形式で記述します

4. このデザインパターンの利点と欠点を説明します

For デザインパターンについて私たちが注目して学ぶ知識ポイントは上記だけではないでしょうか?

しかし、同じデザインパターンを書くにも多くの方法があることをネチズンに思い出してもらいたいのですが、特定の方法で書くことだけがこのデザインパターンであるという意味ではありません。アダプター パターンを例に挙げると、アダプター パターンに注意を払う必要があるのは、アダプター パターンの記述方法ではなく、アダプター パターンが何であるかに注意する必要があります。アダプター パターンはアダプター パターンではないことを覚えておいてください。デザイン パターンを学ぶと、コードで使用されるデザイン パターンについての理解が確実に深まります。

「Java 仮想マシンの深い理解: JVM の高度な機能とベスト プラクティス」

if...else... しか書けない Java プログラマーであることに満足できず、さらに前進したい場合は、いくつかの例を示します。

1. Java コードの基本的な動作メカニズムを理解する

3. システム全体のさまざまなパフォーマンス チューニングを実行する

4.問題

5. より高度なレベルでは、独自のプロジェクトに適した仮想マシンをカスタマイズします

次に、Java 仮想マシンは学習する必要があるテクノロジーです。 『Java 仮想マシンの詳細: JVM の高度な機能とベスト プラクティス』の著者は Zhou Zhiming です。この本は、私が過去 6 か月間で執筆した Java 仮想マシンに関する最高の本と言えます。少なくとも5回はこの本を読んでください。中国の仮想マシンに関する本はこの本以外にも実は何冊か購入しているのですが、ざっと見た感じでは『Java 仮想マシンの徹底理解』にも多くの内容が載っています。 JVM の高度な機能とベスト プラクティス」。

『Java 仮想マシンの徹底理解: JVM の高度な機能とベスト プラクティス』という書籍は電子形式で入手可能であり、オンラインで検索してダウンロードできることにも言及する価値があります。ただし、興味のある友人には、この本を購入して読むことをお勧めします。ダウンロードした電子版は、『Java 仮想マシンの詳細: JVM の高度な機能とベスト プラクティス』の最新改訂版と比べると古いバージョンです。 、著者による新規追加が多数あり、知識点はありません。

「HotSpot Practical Combat」

すべての Java 仮想マシンは、「Java 仮想マシンの詳細: JVM の高度な機能とベスト プラクティス」の Java 仮想マシンの仕様に従っています。この本で説明されているマシンは特定の仮想マシンを対象としたものではなく、Java 仮想マシンの仕様の観点から Java 仮想マシンについて説明しています。

私たちが通常使用し、商用でも使用している Java 仮想マシンのほとんどは、Sun の HotSpot です。cmd を使用してコマンド ラインを入力し、「java -version」コマンドを使用すると確認できます。 Java 仮想マシン仕様に基づいて仮想マシンの一部の詳細がどのように実装されるかをより深く理解したい場合は、Chen Tao 著の書籍『HotSpot Practice』を読むことができます。ただし、HotSpot のソース コードは C/C++ で記述されているため、読者は C/C++ の十分な基礎を持っている必要があります。これら 2 つの言語にあまり慣れていない場合、この本を読んでもあまり役に立たないかもしれません。あなた。

最後に、興味がある場合は、最初に OpenJDK をオンラインでダウンロードすると、HotSpot のソース コードが含まれます。

『実践 Java 同時プログラミング』

この本は Java プログラマー必読の本ベスト 10 によく入っていますが、個人的にはあまりお勧めしません。

『Java Concurrent Programming in Practice』の著者は Brian Goetz です。私はこの本を 2 回ほど読みました。

1. テキストが多く、コードが少ないです。説明と練習を増やす 少なくする

これは外国人が本を書く特徴かもしれないと思います。Java は北米諸国 (カナダ、米国) で開発および保守されているため、外国人は Java の理論的知識体系のあらゆる側面を非常に明確かつ徹底的に把握しています。この本を開いて、マルチスレッドとは何か、デッドロックとは何か、競合とは何か、スレッドの安全性とは何かなどを読んでください。知識ポイントのあらゆる側面が大量のテキストで説明されているため、人々は非常に退屈で理解しにくいと感じます。読者は大幅な進歩を遂げました。この本は2回読みましたが、1回で10行の意味があり、気になったところを中心に紹介していきます。

いずれにせよ、Java プログラマーの必読書トップ 10 によく入る本なので、皆さんにお勧めしなければなりません。

「Java マルチスレッド プログラミング コア テクノロジー」

「Java マルチスレッド プログラミング コア テクノロジー」著者 Gao Honyan 氏。マルチスレッドを学びたい友人には、この本を強くお勧めします。私の個人ブログの 20 以上のマルチスレッド ブログ投稿は、この本に基づいて洗練され、要約されています。

この本は、『実践 Java 並行プログラミング』とは対照的に、大規模なコード + 小規模な正確な説明が特徴です。これは、中国人によって書かれた本の実践的なスタイルに関連しているかもしれません。本書はスレッドセーフ、同期、リエントラント、タイマーなどを詳細なコードで解説しており、大きな知識の下に複数の小知識が詳しく解説されており、非常に実践的です。

興味のある方は、本書のコードに従って、入力、実行、思考の 3 ステップを踏んでいただければ、マルチスレッドの使用と理解は確実に大きく前進すると思います。

ただし、この本の欠点は、CountDownLatch、Semphore、CyclicBarrier、Future、Callable などの Java 同時実行パッケージの一部のクラスについては言及していないことです。主要な CAS と AQS については触れられておらず、実装原則についても触れられていません。主要なクラスについては言及されていません。もちろん、これは非常に奥深いものであり、この本を読んだ後もこの知識の学習と研究を続けることができれば、非常に強力なマルチスレッドの専門家に徐々に成長するでしょう。

『Effective Java 中国語版』

これは私が買わなかった唯一の本です。私がこの本を初めて知ったのは、私のブログ投稿「Java コードの最適化 (長期更新)」でした。その時、友人がこの本についてコメントで言及していましたが、購入する時間がありませんでした。この 2 か月間、本屋に買い物に行きました。残念ですが、今後必ず時間を見つけてこの本を購入します。

『Effective Java 中国語版』の著者は Joshua Bloch さんです。この人は Google のチーフアーキテクトで、超技術専門家レベルです(笑)。私はこの本を読んでいないのでコメントできませんが、この本の人気と著者の経歴(もう一つ言うと、この本はJavaの父であるジェームズ・ゴズリング博士の推薦本でもあります)から判断すると、これは読む価値のある良い本に違いないと思います。

すべての Java プログラマーが追求すべきは、良いコードを作成することで、悪いコードを作成するよりもパフォーマンスが向上するということではありません。コードは柔軟であり、多くの潜在的な未知の問題を回避でき、コードがオンラインになった後の問題を回避し、メンテナンスに時間を費やすことができます。これは、時間コスト、人件費、リスク コストの点で非常に高くなります。

「Java Web テクノロジー内部関係者の詳細な分析」

「Java Web テクノロジー内部関係者の詳細な分析」、著者 Xu Lingbo、タオバオ エンジニア。

この本を一言で言えば、「完了」です。 HTTP、DNS、CDN、static、Jetty、Tomcat、Servlet、Spring、MyBatisなど本当に網羅的で、幅広い知識を網羅していますが、何かに特化した本という感じではありません。解説が非常に詳しく、Java Webで使われている技術の裏話などを短い文章で解説し、読者が合理的に技術を理解できるように工夫されていると感じました。これらのナレッジポイントの裏話。

とはいえ、一つ一つの知識のスペースは少ないものの、要点はほぼ網羅されており、本当に読み応えのある本です。これらの技術の詳細を知りたい場合は、関連する書籍を購入するか、オンラインで自分で情報を確認する必要があります。新しいアイデアを引き寄せようとしている、またはマスターに導かれているような感じです。自分で練習してください。

「大規模 Web サイトのテクニカル アーキテクチャの中核原則と事例分析」

この本の 1 語の評価、素晴らしい、この本の 2 語の評価、非常に素晴らしい; 。はは、分かった、このまま話し続けると、他の人は私を海賊だと思うかもしれない。

『Large Website Technical Architecture Core Principles and Case Analysis』の著者は、元 Alibaba の技術専門家である Li Zhihui です。

ほとんどの Java アプリケーションは Web 上で使用されています。現在、大規模な Web アプリケーションは分散システムでなければなりません。では、分散システムではどのようなテクノロジが使用されているのでしょうか。小さな Web サイトから大規模な Web サイトがどのように成長するのでしょうか?ウェブサイトを安全に保つにはどうすればよいでしょうか?分散システムではキャッシュが使用されます。どのようなキャッシュがありますか?キャッシュを使用する際の注意点は何ですか?

分散配布に関するすべての知識がこの本に反映されており、基本的には 1 回か 2 回読んで、どのように機能するかを知ることができます。起こりました。何度か読むと、流通に対する理解が確実に深まります。そして、分散された知識が含まれているだけでなく、優れた建築家になる方法についても非常に現実的な方法で書かれています。実際、これは建築家になりたい読者だけでなく、読者にもいくつかのヒントを与えるものだと思います。優れたアーキテクトになる方法、自分の意見をよりよく表現する方法、他人に自分の声にもっと注目してもらう方法、他人の長所を見つけてそこから多くのことを得る方法についての提案。

「大規模 Web サイト システムと Java ミドルウェアの実践」

「大規模 Web サイト システムと Java ミドルウェアの実践」の著者である Zeng Xianjie は、Taobao のテクニカル ディレクターであり、Alibaba では少なくとも P8 のはずです。

本書の内容の一部は、分散システムの進化、CDN、CAP理論、BASE理論など、李志暉氏の前著『大規模Webサイト技術アーキテクチャの核心原則と事例分析』と重複しています。これらは分散システムまたは大規模な Web サイトの焦点であり、もう一度学習することをお勧めします。

この本で強調すべき重要な点は、ミドルウェアという言葉です。分散システムでは、その最も重要な役割は、モジュール間の強い依存関係を軽減することです。モジュールが独自の機能を開発できることは、ソフトウェアエンジニアリング開発の目標であり原動力とも言えます。

そのため、本書の内容の一部はミドルウェアに基づいており、ミドルウェアやJMSに関するさまざまな知識を詳しく説明しています。分散システムに精通していて、ミドルウェアについて調べたいと考えている読者に適しています。

「Paxos から ZooKeeper への分散一貫性の原則と実践」

「Paxos から ZooKeeper への分散一貫性の原則と実践」、著者は Alibaba エンジニアの Ni Chao です。

この本は、上記の「大規模WebサイトシステムとJavaミドルウェア実践編」と同じく、分散コンポーネントの部類に入る、少し踏み込んだ内容です。個人的な興味。 。もちろん、優れた大規模 Web サイトのアーキテクトや企業のテクニカル ディレクターなどを目指すのであれば、この知識を習得する必要があります。

この本は、分散システムの基本理論から始まり、Paxos アルゴリズムについて説明し、最後に Zookeeper を段階的に紹介します。もちろん、私はこの本の Paxos アルゴリズムの第 2 章をまだ理解していないため、現時点でこれ以上の意見を表明するのは都合がよくありません (Paxos アルゴリズムは確かにやや難しく、理解するのが容易ではありません)。 、次の章はまだ利用できません。

ネチズンが働いている会社が Zookeeper を使用していて、Zookeeper に興味があり、その原則を勉強したい場合は、この本が最良の選択となるでしょう。

「MySQL 5.6 をゼロから学ぶ」

「MySQL 5.6 をゼロから学ぶ」、Liu Zengjie と Li Kun 著。

Java プログラマーとして、データベースは DBA の問題であると考えてはいけないと思います。Java プログラマーにとって、データベースのパフォーマンス最適化に関する豊富な経験は、トップ プログラマーにとって必須の知識です。 。

現在主流のデータベースには Oracle と MySQL が含まれています。もちろん、MySQL が誰にでも推奨される理由は 2 つあると思います。

1. MySQL は Oracle よりも軽量で、インストールとアンインストールがより便利です。 SQL 実際はどれも同じです。データベースを学びたい場合は、自宅で簡単に学習できます。Oracle と MySQL の違いに注意してください。

2、2009 年の Alibaba の IOE への移行の進展に伴い、多くの国内インターネット企業は、使用するデータベースとして MySQL を選択するようになります。MySQL は無料であるため、コストを節約でき、何か問題が発生した場合に Oracle に依存する必要がありません

。 MySQL の学習にお勧めするのは、私自身も読んだ「MySQL 5.6 Learning from Scratch」です。この本の知識は非常に詳細で包括的です。ほとんどの読者は本を選ぶ基準が異なります。この2点だけでしょうか?

「Spring ソース コードの詳細分析」

「Spring ソース コードの詳細分析」、著者 Hao Jia 氏。

Spring フレームワークは非常によくできており、その機能が非常に強力であるため、多くの開発者は Spring しか知らず、ファクトリー、シングルトン、エージェントが何であるかを知りません (他の人にインタビューした私の実際の経験)。この強力なフレームワークには、内部に非常に複雑な実装が必要です。これにより、プログラムが Spring を使用すると、エラーや例外が発生したり、プログラムの実行結果が期待したものと異なったりする可能性があります。場合によっては、オンラインで情報を確認するか、他の人に尋ねる以外に良い解決策がないと思われることがあります。

Spring のソースコードを学ぶことは、多くの利点があると個人的に思います:

1. フレームワークの内部実装を理解した後は、他の人に依存せずに問題を積極的に解決できます

2. Spring フレームワークでは、多くのデザイン パターンと優れたコード設計アイデアが使用されており、これにより、コードの作成とデザイン パターンの理解が大幅に向上します。

3. Spring フレームワークを学習すると、コードを読む能力が大幅に向上します。Spring が内部でどのように実装されているかを明確に学習できれば、他のフレームワークのソース コードも難しくないと思います。コードを読むことは、普通のプログラマーと優れたプログラマーの大きな違いの 1 つだと思います。前者は他人が書いたものしか使用できませんが、後者はそれをうまく使用できるだけでなく、他人が持っているものを明確に知っています。最下層の実装方法は、問題が発生したときに簡単に解決できます。

Spring のソース コードについては、個人的には「Spring ソース コードの徹底分析」という本をお勧めします。本当に徹底的に勉強して Spring のソース コードを明確に書き留めたい場合は、3 ~ 4 冊の本では不十分だと思います。著者は Spring のソースコードを 400 ページ近くにわたって一生懸命説明しましたが、その実装方法を完全に説明することはできませんが、読者自身の研究と組み合わせることで、間違いなくより深く理解できると思います。 Spring の実装を理解する。

追記

上記は、Java 開発者にお勧めする、読む価値のある良書です。ただし、これらの本には Java の基礎や Java チュートリアルは含まれていません。お勧めしないわけではありませんが、Java の基本的な技術を自分で学んだのは数年前なので、勉強していたときに読んだものはすべて忘れてしまっています。私は自分自身が読んだことのない本を無責任にみんなに勧めます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。