JavaRush /Java Blog /Random-JA /コーヒーブレイク#42。何かわからない場合はどうすればよいですか。生産性を最大化するベスト Java ライブラリ ...

コーヒーブレイク#42。何かわからない場合はどうすればよいですか。生産性を最大化するベスト Java ライブラリ 5 選

Random-JA グループに公開済み

何かわからない場合はどうすればよいですか

出典: Dev.to あなたが開発者であれば、遅かれ早かれ、問題の解決方法がわからない状況が発生したことがあるでしょう。これはキャリアのどの段階においても非常に不快な瞬間です。結局のところ、何かを知らないにもかかわらず、それでもタスクを完了する必要があります。この記事では、私の個人的な経験を共有し、そのような問題の解決策を見つけるのに何が役立つかを説明します。コーヒーブレイク#42。 何かわからない場合はどうすればよいですか。 パフォーマンスを最大化するベスト Java ライブラリ 5 - 1

質問をする

私も初心者の頃は質問するのが怖くて、最後まで自分ですべてを解決しようとしていました。私は問題の解決に膨大な時間を費やし、最終的に上司や顧客と話さなければならなくなるまで沈黙を続けていました。なぜ自分がそうしたことをしたのか理解できました。他の人の前で愚かだと思われたくなかったので、質問することを避けました。私を除く他の人はすぐに本質を理解し、それが何についてであるかを理解したように見えました。ようやく自分のプライドを捨てて、わからないことを聞くことができるようになったのは、同僚のおかげです。

Google と YouTube はあなたの親友です

私はかつて、Google がばかげた質問や面白い質問にどのように答えたかをビデオで見たことがあります。答えもとても面白かったのですが、何か質問があれば Google が必ず助けてくれるということがわかりました。したがって、行き詰まった場合は、この検索エンジンで答えを探すことを忘れないでください。YouTube は問題解決にも大いに役立ちます。特に、主題についてより深い理解が必要な場合に最適です。そこで話題の動画を常に探しています。

目がもう一つあっても痛くないよ

問題を解決できなくても、怒りやフラストレーションに飲み込まれないようにしてください。この状況のわかりやすい例としては、ドキュメントが不足しているためにリバース エンジニアリングを行わなければならない場合に、古いコード ベースを維持する必要がある場合が挙げられます。もちろん、これには多大な労力がかかります。コードベースを詳しく調べ、以前の開発者のスタイルを理解する必要があります。このような場合は、自分以外の人にコードをレビューしてもらうことを強くお勧めします。あなたが見逃していたことや理解していなかった点を、相手が指摘してくれるかもしれません。こうすることで、問題の解決を迅速化できます。

何かに行き詰まったとしても、自分を責めないでください。

これには特に注意を払いたいと思います。どこかで行き詰まったとしても、自分自身に腹を立てないでください。はい、問題を解決できないときは、あまり楽しいものではありません。インポスター症候群が悪化して無力感を感じ、自分が優れた開発者であるという自信を失う可能性があります。仕事で何かに行き詰ったことがない人は、それは単にその人が通常の行動を超えず、自分の快適ゾーンで行動しているからに過ぎないと私は確信しています。予期せぬ事態に備えるために、あなたの職業上の基準を高めるよう後押ししてくれる人々とコミュニケーションをとってください。準備ができていなかったことに遭遇しても動揺しないでください。このようなケースは、知識のギャップを特定し、それに応じて埋めるのに役立ちます。

休憩を取る

あまり生産的ではないように思えるかもしれませんが、大きくて複雑なことに取り組んでいるときは、短い休憩をとることがストレスを軽減するのに非常に役立ちます。15分間歩いたり、誰かと話したり、運動したり、昼寝したりしてみましょう。休息は心をリフレッシュするのに役立ち、さらに、この間ずっと脳はまだ働いており、潜在意識レベルのどこかで目の前のタスクを解決します。その結果、ただコーヒーを飲みながら、楽しい瞬間が訪れるかもしれません。

結論

問題を解決するときに最初に行うことは、自分が知っていることと知らないことのリストを作成することです。この後、このタスクを割り当てた人に明確な質問をする必要があります。おそらく、この段階で何かがより明確になり、「わからない」カテゴリーからいくつかの質問を削除できるでしょう。他の質問に対する答えは、Google または YouTube で自分で検索する必要があります。時間をかけて検索してください。自分だけで問題を解決できなかった場合は、遠慮せずに同僚に助けを求めてください。

生産性を最大化するベスト Java ライブラリ 5 選

出典: Medium Java でコードを書いたときに、「もっと良い方法があるに違いない…」と思ったことがあるでしょう。Java ライブラリは、このような問題の解決に役立ちます。私の意見では、生産性と作業効率を向上させる最高のライブラリを 5 つ紹介します。コーヒーブレイク#42。 何かわからない場合はどうすればよいですか。 パフォーマンスを最大化するベスト Java ライブラリ 5 - 2

1. ロンボク島

Project Lombokは、注釈を使用して定型コードを削減する Java ライブラリです。@Getter などのアノテーションを使用して、 getField()メソッドを自動的に生成できます。サポートされている注釈をいくつか示します。
  • @Getter と @Setter: ゲッターとセッターを生成します。
  • @EqualsAndHashCode は、 EqualsおよびHashCodeコントラクトに準拠するEqualsおよびHashCodeメソッドを自動的に生成します。
  • @ToString は、ClassName(fieldName = value, fieldName2 = value...) という形式に従うtoString()メソッドを生成します。
  • @Builder は、POJO の作成を容易にするためにビルダー パターンを自動的に実装します。
  • @Data は、@Getter、@Setter、@EqualsAndHashCode、@ToString、および @RequiredArgsConstructor の短縮形です。
他にもサポートされており、簡単にカスタマイズできる注釈が多数あります。これらを使用すると、定型コードを作成する手間が省けます。

2.グアバ

Guavaは、Google によって作成および保守されている Java ライブラリです。コードの操作に広く使用されるユーティリティが多数含まれています。Guava の機能のほんの一部を次に示します。
  • Multimap<k, v=""> などのコレクション拡張機能。Map は特定のキーに対して複数の値をサポートします。これは、よりクリーンな API を備えた Map <k, collection="" <v="">> と同等です。 ;</k, ></k,>
  • Graphs パッケージには、グラフィック データをモデリングするための多数のユーティリティが含まれています。
  • MoreExecutors、Atomics、ListenableFuture などの同時実行ユーティリティ。
Guava ライブラリにはたくさんのものが見つかります。Google のサポートにより非常に人気があるため、API は徹底的にテストされ、サポートされているので安心してください。Java の一般的な問題を解決する必要がある場合は、Guava を使用すれば必ず解決策が見つかります。

3.休止状態

Hibernateは、SQL テーブルと POJO の間の変換を気にせずにデータベースと対話できるようにするオブジェクト リレーショナル マッピング ライブラリです。Hibernate の Web サイトでは、このライブラリについて次の情報が提供されています。 「Hibernate を使用すると、継承、ポリモーフィズム、関連付け、合成、Java コレクションなどの自然なオブジェクト指向の原則に従って、存続期間の長いクラスを作成できます。Hibernate は、存続期間の長いクラスのインターフェイスや基本クラスを必要とせず、あらゆるクラスやデータ構造を永続化できます。」 Hibernate を使用すると、永続的なデータ ストレージが改善され、数千行のデータベース コードが削除されます。

4. ふりをする

OpenFeignは、Java で RESTful HTTP クライアントを簡単に作成できるようにする Netflix のライブラリです。Feign クライアントを作成するには、要求と応答の詳細を含むインターフェイスを記述するだけです。これを例で説明すると次のようになります。
@FeignClient(url = "https://github.com")
interface GitHubClient {
    @RequestLine("GET /users/{username}/repos?sort=full_name")
    List<repository> repos(@Param("username") String owner);

    @RequestLine("GET /repos/{owner}/{repo}/contributors")
    List<contributor> contributors(@Param("owner") String owner, @Param("repo") String repo);

    @RequestLine("POST /repos/{owner}/{repo}/issues")
    void createIssue(Issue issue, @Param("owner") String owner, @Param("repo") String repo);
}
</contributor></repository>
前述の GitHubClient インターフェイスは、メソッドで説明されている GET リクエストと POST リクエストを実行します。このクライアントは、デフォルトですべてのリクエストに JSON 形式を使用します。Feign クライアントには多くの設定があります。
  • エンコーダとデコーダは、ネットワーク上で POJO をシリアル化および逆シリアル化する方法を選択します。
  • 再試行ルールとロジックを指定する再試行者。
  • Cookie の受信や承認など、他の事前リクエスト タスク用の RequestInterceptors。
Feign を使用すると、HTTP クライアントを手動で作成する必要がなくなります。注: Spring を使用している場合は、 Spring Cloud OpenFeign を使用する必要があります。Spring との統合は OpenFeign 単独よりも優れています。

5. スプリングブーツ

最後になりましたが、ライブラリはSpring Bootです。Spring Boot は、実稼働対応の Java アプリケーションを作成するプロセスを簡素化します。それにより次のことが可能になります。
  • スタンドアロン Spring アプリケーションを作成します。
  • Tomcat、Jetty、Undertow を直接埋め込みます (WAR ファイルをデプロイする必要はありません)。
  • ビルド構成を簡素化するために「スターター」依存関係を提供します。
  • Spring およびサードパーティのライブラリを自動的に構成します。
  • メトリクス、ヘルスチェック、外部構成などのすぐに使える機能を提供します。
Spring Boot を使用するにはかなりの学習曲線が必要ですが、それだけの価値があることは保証します。Spring Boot はすべてのプロジェクトの開発時間を短縮し、その安定性、拡張性、読みやすさのおかげで利点を提供し続けています。

結論

Java は、新しい言語の機能の一部が欠けている「古い」言語であると多くの人が考えているという事実にもかかわらず、Java には多数のライブラリと巨大な開発者コミュニティという形で独自のサポートが備わっています。したがって、仕事上で発生する問題は大幅に少なくなります。Java ライブラリを使用すると、生産性を向上できます。車輪の再発明ではなく、コアコンピテンシーに集中してください。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION