CodeGym コミュニティの皆さん、こんにちは! 個人的な経験を通じて証明された、コードを改善する 10 の方法 - 1今日はコードの品質について話します。はい、親愛なる皆さん。完璧な人はいません。誰もが、ある時点でコードをもっと良くできる可能性があることに気づきます...しかし、この状況ではどうすればよいでしょうか? 少なくとも、この問題の調査を開始してください。しかし、あなたはすでにここにいます。つまり、このトピックに興味があるはずです。それでは、行きましょう。今日は、コードをより良く、よりクリーンにする方法について説明します。したがって、将来的に現在のコードを恥じることはありません。:) これらの方法はすべて、プログラマが優れたプログラマになるのに役立ちます。個人的な経験から証明された、コードを改善する 10 の方法 - 2

1. コードを改善したい場合は、他の人のコードを読んでください。

プログラミング スキルを劇的に向上させたい場合は、他のプログラマが書いたコードを読む必要があります。信じるか信じないかは別として。しかし、リスクを冒せば、費やした時間に見合った報酬が得られると私は約束します。たとえば、HashMap、ArrayList、LinkedList などがどのように機能するかについて、medium.com で読まないでください。代わりに、ソースコードを読んで自分で理解してください。読むべきクラスのリストは次のとおりです。
  • 面接で最もよく聞かれる質問は HashMap に関するものです。コードを理解し、必要な知識を得ることができるので、一石二鳥です。
  • ArrayList についても同じことが当てはまります。複雑なことは何もありませんが、ソース コードは読んで理解する価値があります。
  • 文字列はその良い例です。なぜ不変なのかを理解してください。
  • AtomicInteger は優れたクラスです。Integer オブジェクトに対するアトミックな操作を定義します。
  • その後、すべてのクラスを順番にリストすることができます:)
もっと真剣に、Pivo​​tal のコードを読むべきです。そこの人々は、Java の世界で最も需要の高いエコシステムを作成しました。彼らのコードは間違いなく読む価値があります。Spring Coreから始めることをお勧めします。馴染みのないソースコードを読むのは難しいですが、やりがいのある作業です。:)

2. コード規則に従う

個人的な経験から証明された、コードを改善する 10 の方法 - 3コーディング規約は、開発チームによって作成された一連のガイドラインです。これらには、コードのあらゆる側面のコーディング スタイルとテクニックに関するガイドラインが含まれています。これらの規約は、会社全体または特定のプロジェクト向けに作成される場合があります。通常、コーディング規約は各プログラミング言語に固有であり、ファイル構成、インデント、コメント、宣言、演算子、スペース、命名規則、プログラミング手法と原則、プログラミング ルール、アーキテクチャのベスト プラクティスなどが含まれます。特定の標準の主な利点は、コードが同じように見え、同じスタイルで記述されるという事実です。これにより、コードが読みやすくなり、プログラマが別のプログラマが書いたコードを理解しやすくなります。コーディング標準が遵守され、開発プロセス全体を通じて一貫して適用される場合、将来的には、コードの保守と拡張、リファクタリング、統合の競合の解決がより簡単になるでしょう。コーディング規約は、次のようなさまざまな理由からプログラマにとって重要です。
  • ソフトウェアのコストの 40 ~ 80% はメンテナンスに費やされます。
  • ソフトウェアの作成者がその生涯を通じてメンテナンスを行うことはほとんどありません。
  • コーディング規約により、プログラマーが新しいコードをより早く理解できるようになり、ソース コードの読みやすさが向上します。
正直に言うと、私はコーディング標準の大ファンです。私にとって、それについて議論したり議論したりすることに時間を費やすのは理にかなっています。それは将来の時間と労力を節約する貴重な活動だからです。コードの規約は頻繁に見直す必要があります。ルールは「必須」から「オプション」に、またはその逆に変更できます。それらの一部が期待どおりに機能しない場合は、ガイドラインを改訂するか、ガイドラインから削除する必要があります。

3. コードレビューを使用する

コード レビューは、コードを改善するための最も強力なツールの 1 つです。個人的な経験から証明された、コードを改善する 10 の方法 - 4なぜ?なぜなら、コードを書いたわけではない専門家がコードを調べることになるからです。そして新鮮な見た目は非常に便利です。そして、コード レビューは、まったくひどいコードの作成を防ぐのに役立つことがよくあります。コード レビューが常に可能であるとは限らないことは承知しています。コード レビューを行う意欲のある別の人を見つける必要があるからです。ただし、このツールの使用を省略する必要があるという意味ではありません。まったく逆です。コード レビューは、コードの品質を向上させる必要がある同じ考えを持つ人々を見つける理由になります。ところで、CodeGym でそれらを見つけるのを誰が止めるでしょうか? 誰もがプログラマーになりたいと思う場所です。

4. 単体テストを作成する

コードを改善するための私のお気に入りのテクニックは、間違いなく単体テストを作成することです。たくさん書けば書くほど良いです。コンピューター プログラミングにおける単体テストは、ユニットと呼ばれるテスト可能な最小のソース コード部分が個別かつ独立してテストされ、期待どおりに動作するかどうかを確認するソフトウェア開発プロセスです。これは、コードをリリースする前にアルゴリズムやロジックの障害を発見するのに役立ちます。単体テストではコードが適切に構造化されている必要があるため、コードをより小さく、より焦点を絞った関数に分割する必要があります。それぞれが、複数の異なる操作を実行する大きな関数ではなく、データセットに対する 1 つの操作を担当します (単一責任の原則)挨拶します...)。十分にテストされたコードを作成する 2 番目の利点は、既存の機能に小さな変更を加えるときにコードの破損を回避できることです。単体テストが失敗すると、何かが間違って書かれたことがわかります。一見すると、単体テストの作成に費やされる開発時間は追加コストのように見えます。ただし、単体テストにより、将来的にはデバッグの時間が節約されます。これは段階的なプロセスである必要があります。それでは、笑顔でもっと前進しましょう — すべてのメソッドとクラスのテストを書きます :D

5. ツールを使用してコードの品質を向上させる

一度も間違いを犯したことのない開発者はいません。通常、コンパイラは構文および算術上の問題を検出し、スタック トレースを表示します。ただし、コンパイラーが捕捉できない問題が依然として表面化する可能性があります。たとえば、不適切に実装された要件、不適切なアルゴリズム、不適切に構造化されたコード、またはコミュニティが経験から知っているその他の潜在的な問題などです。このようなエラーを見つける唯一の方法は、より上級の開発者にコードをレビューしてもらうことです。しかし、このアプローチは万能薬ではなく、大きく変わることはありません。チームのすべての新しい開発者に対して、コードを監視する追加の目を持たせる必要があります。幸いなことに、コードの品質を制御するのに役立つツールがたくさんあります。私はさまざまなプロジェクトの作業で Checkstyle、PMD、FindBugs、SonarQube を使用してきました。他にもあります。これらはすべて、通常、コードの品質を分析し、有用なレポートを生成するために使用されます。多くの場合、これらのレポートは Jenkins などの継続的統合サーバーによって公開されます。

6. シンプルでわかりやすいコードを書く

個人的な経験から証明された、コードを改善する 10 の方法 - 5常にシンプルで理解しやすく論理的なコードを作成してください。人々は、自分がそれを実行できることを証明するために複雑なコードを書く傾向があります。シンプルで論理的なコードは常に適切に機能し、問題が少なく、拡張性が高くなります。良いコードは最高のドキュメントです。コメントを追加しようと考えている場合は、「このコメントが不要になるようにコードを改善するにはどうすればよいでしょうか?」と自問してください。— スティーブ・マコーネル。

7. ドキュメントを読む

個人的な経験から証明された、コードを改善する 10 の方法 - 6優れたプログラマーの最も重要な習慣の 1 つは、ドキュメントをたくさん読むことです。仕様、JSR、API ドキュメント、チュートリアルなど、ドキュメントを読むことは、最高のプログラミングのための強固な基盤を構築するのに役立ちます。最後になりましたが、自分を他人と比較しないでください。自分を他人と比較することは、否定的な感情と不健全な競争につながるだけです。人はそれぞれ、独自の長所と短所を持っています。これは、彼らを知り、彼らと協力することが重要であることを意味します。自分自身を棚卸しし、自分の強みをリストアップし、それに取り組むようにしましょう。プログラミングは本当に楽しいものです。楽しんでください。

「ある人にとっての定数は、別の人にとっては変数である。」

アラン・J・パーリス

8. 興味深いブロガーをフォローする

世界中の何千人もの愛好家が同じテクノロジーを使用し、それについて執筆しています。ブログはプログラマー自身によって書かれることが多く、そのほとんどは個人的な意見や経験を共有しています。ブログを通じて、同じテクノロジーに対するさまざまな視点を見ることができます。ブログでは良い技術も悪い技術も見ることができます。少なくとも、Coding Dojo Blog と CodeGym の記事を読んでください :) 優れたブログをフォローし、投稿にコメントし、意見を共有してください。

9. その職業に関する本を読む

良い本に代わるものは何もありません。良い本は、基本的な概念をより単純な形で教え、現実世界の物事に適用できます。これらの著者自身も優れたプログラマーです。本を読むことで、他の人の経験から学ぶことができます。Joshua Bloch の「Effective Java」を読むことをお勧めします。この本では、プログラマーにとって不可欠な 78 の経験則、つまり毎日直面するプログラミング上の問題に対する最善の解決策を紹介します。これには、効果的で適切に設計されたプログラムを作成するための最も実践的で権威のあるガイドラインが含まれています。Java を始めたばかりで、プログラミングの経験がない場合は、「Sams Teach Yourself Java 2 in 24 hours」をお読みください。クリーンなコードを書くには、Robert Martin 著の「Clean Code」という優れた本があります。それを読んだ後、

10. コード!コード!コード!

本を暗記するだけでは優れたプログラマーになることはできません。理論的な概念について話すのは簡単です。ただし、コードを作成するときにのみ、言語の制限を学習したり、ベスト プラクティスを見つけたりすることができます。したがって、優れたプログラマーになるには、たくさんのコードを書く必要があります。初心者の場合は、フィボナッチ数列、回文、パスカルの三角形などの単純なタスクのプログラムを作成することから始めてください。次に、二分探索木などのより大きなタスクに進みます。 Java を練習するためのオンライン プラットフォームをお探しの場合プログラムについては、 「Coding Ground」を参照してください。プログラミング コースに取り組むことで、あなたのスキルがさらに向上することを保証します。もう 1 つのオプションは、ハーバード CS50 コースを無料で受講することです。

要約しましょう

間違いをしない人は、何もしない人です。だからこそ、私たちは忍耐を奮い立たせ、勤勉なバッタのようにコーディング スキルを磨きます。これを行うには、次のことを忘れないでください。
  • 他人のコードを読む
  • コードレビューの提供と依頼
  • 単体テストを書く
  • ツールを使用してコードを改善する
  • シンプルでわかりやすいコードを書く
  • できる人が書いたドキュメントを読んでください。
  • 興味のあるプログラマーをフォローする
  • 職業に関する本を読む
  • コード!コード!コード!