コードに関してはホットなトピックがたくさんあり、時代に遅れずについていくことが常にトレンドです。良いものと悪いものを区別する方法を疑問に思っている場合は、私たちが解決します。必要なのは、読み続けるためのインスピレーションだけです。
次のコンテンツでは、2016 年のホットスポットと、今年さらにホットになるものについて見ていきます。もちろん、Java について話しています。さて、出航しましょう。
Java 6 のバグから始めましょう。このバグは Java 9 の機能になります:sun.misc.Unsafe。このライブラリは、低レベルの安全でない操作を実行するためのメソッドのコレクションです。たとえば、allocateInstance メソッドを使用すると、オブジェクトの初期化フェーズをスキップしたり、コンストラクターでの安全性チェックをバイパスしたりできます。
Oracle は Unsafe ライブラリを完全に削除することを検討しましたが、コミュニティは考えを変え、最終的に Unsafe ライブラリを Java 9 の機能として採用しました。
コミュニティが Java 9 や Java の将来のバージョンでの変更の可能性について話し合ったのはこれが初めてではありません。今年初め、Oracle の Java 言語アーキテクトである Brian Goetz 氏は、JEP 286 の調査結果を発表しました。
この提案では、Java アプリケーションの作成を簡素化するために、将来の Java バージョンにローカル変数型推論を導入することを推奨しています。物質?開発者の 74% は、冗長性を減らし、関連する型を指定せずに変数を宣言できるようにしたいと考えています。
Java 9 のリリースまでは 200 日以上あります (リリース日を指折り数えているので) さまざまな JEP を詳しく調べて、新しい機能や改善された機能を見つける時間は十分にあります。ここで、JEP 266 に遭遇します。CompletableFuture とエキサイティングな java.util.concurrent.Flow クラスの更新を含む、さらなる同時実行性の更新です。
Java 9 が過去 1 年間に見出しを飾ったことは疑いの余地がありません。2017 年に入ると、Java 9 への注目はさらに高まるでしょう。今私たちがしなければならないのは、再び遅れないことを祈りながら待つことだけです。
2016 年は、Java Enterprise Edition (Java EE とも呼ばれる) にとって重要な年になります。これは Java SE 上に構築されているため、グローバル Java コミュニティにとって混乱の原因となっています。公式には、これは「単なる」仕様であり、Oracle や Red Hat や IBM などの他のベンダーから実際に使用可能な実装が提供されています (Glassfish リファレンス実装など)。
Java EE には多くの問題がありますが、主にこれが「Oracle はエンタープライズ ソフトウェアを諦めたのか?」です。 Java EE への致命的な打撃は、Gartner の「アプリケーション プラットフォーム マーケット ガイド」レポートから得られます。 Gartnerはレポートの中で、Java EEは「時代遅れで、最新のアプリケーションのニーズを満たさなくなったモデル」向けに構築されたと指摘した。ああ〜
Java EE コミュニティは、Gartner は正しくないと述べ、これがこのバージョンに関する議論を引き起こしました。 Java EE 8 は 2017 年前半にリリースされる予定ですが、今それを賞賛するのは時期尚早であると考えています。これがどのように展開するか、そして Java EE がクラッシュするかどうかを確認する必要があります。
Java には Java 9 だけでなく、常に把握しておく必要のある多くのトレンドがあります。まずは 2016 年のトップ 100 Java ライブラリを参照して、過去 1 年間に見逃したものがないか確認するのが良いでしょう。
さらに、ライブラリに興味がない場合は、Google (Guava ではない) の興味深い Java ライブラリがいくつかあるので、チェックしてみる価値があります。
教育ルートに従うと、経験によってのみ学ぶことができる重要な要素がいくつかあるため、学ぶ準備をしてください。
挑戦したいと思っているなら、時間を費やす価値のあるプロジェクトがたくさんあります。これらの洗練された問題、文字列操作、さらには Java 音楽プレーヤーを解いてみて、学びながら学ぶことができます。もちろん、問題が発生したり、質問がある場合は、優れた Stackoverflow がいつでも対応します。ここでは、私たちが見つけた最高の質問を 7 つ紹介します。
楽しいちょっとした逸話: GitHub のトップ Java プロジェクトがログをどのように使用しているかわかりますか? 1,313 の GitHub リポジトリにわたる 779,236 の Java ロギング ステートメントを分析して、エラー、警告、または致命的?
コンテナは新年になって非常に便利になりました。また、サーブレットのライフサイクルを管理したり、URL を特定のサーブレットにマッピングしたり、URL リクエスタが正しいアクセス権を持っているかを確認したりするのにも非常に便利です。
多くの人が Java コンテナに興味を持っています。私たちが Alpine Linux と Docker の組み合わせに興味を持ってからわずか数か月後、OverOps だけでチャットがサポートされるようになり、その後、コンテナでそれを試すユーザーがますます増えました。
だからこそ私たちは、Linux から独立しており、musl libc (「マッスル」と発音) とbusybox をベースにした Alpine Linux を試してみることにしました。軽量であることに加えて、セキュリティ指向の原則に従っており、grsec/Pax を使用して Linux カーネルのセキュリティを強化しています。
Docker は依然として業界で最も人気のあるツールの 1 つです。同社はコードを出荷するという困難なタスクに取り組み、コンテナの使用をより速く、より簡単にしています。ただし、Docker で Java を使用したい場合は、(Java) の戒めに違反する可能性があるため、再考する必要があるかもしれません。
あなたが何を考えているかはわかります。このバズワードについて見てみましょう。 2016 年に私たちが遭遇した最も一般的なトピックの 1 つは DevOps でした。DevOps にはさまざまな意味と作業方法があります。その要点は、リアルタイム アプリケーションで何が起こっているかを知り、それを制御できるようにすることに重点を置くことです。
どうやってこれを行うのでしょうか?実稼働環境を監視することによって。パフォーマンスの問題、エラー、例外は常に発生しているため、何が起こっているのかを正確に把握する必要があります。しかし、何かが間違っているときとその理由をどうやって知ることができるでしょうか?ここで可観測性の概念が登場し、システムを洞察し、何が起こっているかを知るのに役立ちます。
これは DevOps ワークフローの一部であり、制御理論では、外部出力の知識を使用してシステムの内部状態を推測する測定です。ここで、インストルメンテーションという別の「流行語」が登場します。アプリケーションが私たちやユーザーに夢中になる前に洞察を得ることができるのは、インストルメンテーションです。
これらの構成要素を確立したら、アプリケーションのパフォーマンスの監視に役立つツールを提供します。アプリケーションが起動して実行されたら、エラーまたは例外がスローされるかどうか、いつスローされるかを知る必要があります。そのため、市場には多くのバグ追跡ツールが存在しており、必要なのは適切なものを選択することだけです。
注意が必要なのはエラーだけではありません。2016 年に残された最大の課題はログ ファイルの処理です。誰もがログ ファイルを使用して、アプリケーションのエラー、クラッシュ、例外を検索して理解します。直接的なアプローチを使用してプレーン テキストのログ ファイルを選別する人もいますが、ログ管理ツールを利用して log-haystack 内のエラーを見つける人もいます。
本番環境のエラーや例外をデバッグする新しい方法をお探しの場合は、OverOps (2016 年中に改訂) が完全なソース コードとコール スタック全体の変数状態を提供します。失敗の原因となるすべてのパラメータとすべての変数は、トランザクションまたはワークフローに渡されます。
マイクロサービスの動向を無視することはできません。これは単なる耐えがたい流行語だという人もいるだろうし、一枚岩を打ち破ったり、逆張りのアプローチをとってネガティブなことに焦点を当てたりすることの美徳を称賛する人もいるだろう。
どう考えても、最近は誰もがマイクロサービスを実行しているように見えます。あとは、マイクロサービスを使用するときに実稼働環境でそれに触れないように注意する必要があります。
サーバーレス コンピューティング アーキテクチャもここ数年注目を集めています。サーバーレス コンピューティングの概念には、サーバーではなくコードのデプロイが含まれます。サーバーを購入、管理、拡張する代わりに、クラウド プロバイダーが VM のリクエストを処理します。
したがって、依然としてサーバーが必要ですが、この新しいモデルがその役割を引き継ぎます。言い換えれば、サーバーへの展開やインストールされているソフトウェアの処理に手間がかかりません。基本的に必要なのは、マネージド クラウド サービスとコンピューターだけです。
そして最後の点は、人工知能と機械学習が世に出てしばらく経つにもかかわらず、まだ誰もがそれらについて話しているように感じます。これらは科学者や研究者の間ではもはや秘密ではなく、ほぼすべての新興テクノロジーに実装されていることがわかります。
この分野における最近の話題と進化のおかげで、研究者以外の人にとってもアクセスしやすくなりました。関連するアルゴリズムやツールに完全かつ簡単にアクセスできるようになりました。自分が何をしているのかを理解しておく必要があり、機械学習機能を使用してアプリケーションを強化する方がはるかに簡単です。
Java コミュニティを愛さなければなりません。なぜなら、それらは言語の将来のバージョンに影響を与えただけでなく、ミートアップ、記事、その他 Java 関連のあらゆるものを通じて私たちを豊かにしてくれたからです。 2016 年には、JavaOne、QCon などの非常に素晴らしいカンファレンスがいくつかあり、今すぐ再視聴できる素晴らしい講演が数多くありました。
ソフトウェア開発で新しいことを学ぶための主なリソースの 1 つは、オンラインの講義やビデオを見ることです。これは、快適なソファから離れて走り回る必要がなく、Java 専門家が経験を共有してくれる優れたプラットフォームです。
または、ビデオを見るのが苦手な場合は、Java デッキを閲覧することで最新のトレンドを知ることができます。
ピアサポートは私たちの仕事のあらゆる側面に関係しており、私たちは周りの人たちから多くを学ぶことができます。常に改善の余地があるため、重要な特性は生産性です。私たちがしなければならないのは、提案を受け入れ、話したい人の言うことに耳を傾ける準備をしておくことだけです。
コミュニティのもう 1 つの重要な要素は、オープンソース プロジェクトのサポートと促進です。実際、私たちは皆さんが待ち望んでいた (あるいは待っていないかもしれない) コマンド ライン ツール、Bullshiifier を正式にリリースしました。これは、数万の呼び出し深さ、数千のクラスを備えた途方もなく大規模なコードベースで一部の監視機能をテストするために使用され、最終的には異常なトランザクションが発生しました。
2016年は多くのテーマやバズワードに出会いました。すでに知っているものもあれば、まったく異なる方法で Java を見ることができる新しいものもあります。私たちは 2017 年の Java 9 を楽しみにしており、2017 年にはいくつかのアップデートやさらに素晴らしい機能、講演、プロジェクト、さらには Java に関する新しいバズワードが 1 つか 2 つ登場することを期待しています。
2016 年に一番気に入った Java の機能、講演、トピックは何でしたか?以下のコメント欄からご意見をお待ちしております。
英語原文: If You Wrote Java in 2016, Here Are the Trends You Couldn't Have Missed
以上がJava プログラマーが見逃せない開発トレンドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。