チームの全員が簡単に理解できるコードはクリーンです。クリーンなコードは、元の作成者以外の開発者が読み取って拡張することができます。理解しやすさには、可読性、変更性、拡張性、保守性が伴います。
一般的なルール
- 標準的な規則に従ってください。
- バカなことは単純にしておきましょう。シンプルであるほど常に優れています。複雑さを可能な限り軽減します。
- ボーイスカウトのルール。思ったよりもきれいになってキャンプ場を後にしましょう。
- 常に根本原因を見つけてください。常に問題の根本原因を探してください。
デザインルール
- 構成可能なデータを高レベルに保ちます。
- if/else または switch/case よりもポリモーフィズムを優先します。
- 個別のマルチスレッド コード。
- 過剰な構成を防止します。
- 依存関係の注入を使用します。
- デメテルの法則に従います。クラスは直接の依存関係のみを認識する必要があります。
理解のヒント
- 一貫性を保ちましょう。何かを特定の方法で行う場合は、同様のことをすべて同じ方法で行ってください。
- 説明変数を使用します。
- 境界条件をカプセル化します。境界条件を追跡するのは困難です。それらの処理を 1 か所にまとめます。
- プリミティブ型よりも専用の値オブジェクトを優先します。
- 論理的な依存関係を避けます。同じクラス内の他のものに依存して正しく動作するメソッドを作成しないでください。
- 否定的な条件文は避けてください。
名前のルール
- わかりやすい、明確な名前を選択してください。
- 意味のある区別を行います。
- 発音可能な名前を使用してください。
- 検索可能な名前を使用します。
- マジックナンバーを名前付き定数に置き換えます。
- エンコードは避けてください。プレフィックスや入力情報を追加しないでください。
関数ルール
- 小さいです。
- 一つのことをしてください。
- わかりやすい名前を使用してください。
- 引数は少なくしてください。
- 副作用はありません。
- フラグ引数を使用しないでください。メソッドを、フラグなしでクライアントから呼び出せるいくつかの独立したメソッドに分割します。
コメントのルール
- 常にコードで説明するようにしてください。
- 冗長にならないでください。
- 明らかなノイズを追加しないでください。
- 右中括弧コメントは使用しないでください。
- コードをコメントアウトしないでください。削除するだけです。
- 意図の説明として使用します。
- コードの説明として使用します。
- 結果の警告として使用します。
ソースコードの構造
- 概念を垂直に分離します。
- 関連するコードは垂直方向に密に表示される必要があります。
- 使用法に近い変数を宣言します。
- 依存関数は近くにある必要があります。
- 同様の関数が近くにあるはずです。
- 関数を下方向に配置します。
- 行は短くしてください。
- 水平方向の配置は使用しないでください。
- 関連するものを関連付けたり、関連性の低いものを関連付けたりするには、空白を使用します。
- インデントを崩さないでください。
オブジェクトとデータ構造
- 内部構造を非表示にします。
- データ構造を優先します。
- ハイブリッド構造 (半分がオブジェクト、半分がデータ) は避けてください。
- 小さいはずです。
- 一つのことをしてください。
- インスタンス変数の数が少ない。
- 基本クラスはその派生クラスについて何も知らなくてはなりません。
- 動作を選択するために関数にコードを渡すよりも、多くの関数を用意する方が良いです。
- 静的メソッドよりも非静的メソッドを優先します。
テスト
- テストごとに 1 つのアサート。
- 読み取り可能です。
- 早いです。
- 独立しました。
- 繰り返し可能です。
コードの匂い
- 剛性。ソフトウェアを変更するのは困難です。小さな変化が、その後の一連の変化を引き起こします。
- もろさ。単一の変更により、ソフトウェアは多くの場所で壊れます。
- 動けない状態。リスクと労力がかかるため、コードの一部を他のプロジェクトで再利用することはできません。
- 不必要な複雑さ。
- 不必要な繰り返し。
- 不透明度。コードがわかりにくいです。
私が思うのはこれだけですが、それだけではありません。
必ず全文をお読みください。
概要をお読みいただきありがとうございます。お役に立てば幸いです。
ウェブサイト:
https://kaleemelahi.co
CoFee を購入してください:
https://buymeacoffee.com/kaleemelahi
以上がクリーンなコードの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。