1、名前の記事
- 以下のような紛らわしい名称、使用しないでください
List
命名される変数の型をaccountList
、彼らは混同されるため、小文字と大文字OのLという名前の変数を使用していないと数字1と0; - 名前の変数を使用するには、言葉の意味を区別する必要があります。例えば、
ProductInfo
とProductData
区別はない、Info
とData
のようなthe
、a
、an
ナンセンスの混乱であるように、変数名が表示されない場合Variable
、テーブル名が表示されません。Table
- クラス名は表示されません
Manager
、Processor
、Data
、Info
クラス名は名詞でなければなりません。クラス名のこのタイプは、 - より新しいオブジェクトを作成するために工場を使用し
new
、より良いオブジェクトを、コンストラクターがあることもprivate
、このようなのComplex.fromRealNameNumber(23.0)
割合new Complex(23.0)
優れています - 各概念は、1つの単語だけを使用しています。たとえば、
fetch
、retrive
およびget
可能な限り、意味を表すと同時に、複数の発生しません
2、機能の論文
- 機能は最高の20行をキャッピング、短くする必要があります
- 機能を分割し続けることができた場合にのみ、一つのことを行う必要があります関数は、それは関数が1つ以上のことをすることを示しています
switch
文が長すぎる場合は、使用を検討して多态
代わりに- 長い関数名を恐れてはいけません、それは説明的な名前を使用するのが最善である、そしてうまく、そのような機能の意味を表現することができます
- 関数のパラメータ:
- できるだけ関数パラメータは、好ましくはつ以上、3つまたはそれ以上のオブジェクトとしてパッケージ化されるわけではありません
- 単一パラメータ渡しの関数については、一般的な役割は何かを行うには、このパラメータを使用することであり、他方は動作パラメータそのものです。この状況は、最良のパラメータ名は、二つの形式を区別することができ、例えばされ
String transform(StringBuffer in)
、読者に所望の入力および出力の種類を教えてください。 - あなたはブール値関数を渡す必要がある場合は、我々は、機能の使用は2つの機能に分かれて検討することができます
- 以下のような動詞の名詞から最高の関数名
write(name)
ほど良好ではないwriteFiled(name)
、良い後者はをよく知っname
ていますfiled
- 明確に混乱をもたらし、発信者に事故を防ぐために行われたすべてのものの機能を説明関数名
- 代わりに、エラーコードを返すの例外を使用してください。エラーコードは、エラーを処理し、すぐに発信者を求めている、例外処理は背後統一することができます
- 使用する
try...catch
コードブロックは、好ましくは、単一の関数から引き出され、その後、混乱にメインフローを避けるために、彼に電話されます - 重複したコードの除去
3、記事のコメント
ように、失敗したコードで表現意図を持って私たちの出会いを作る役割ノートコメントは失敗です!
あなたは状況がコメントを書き込む必要が発生した場合、あなたは次のような、表現するための変数やメソッド名を使用することができれば、第二の発現が良いだろう優先順位を付けることができます。
// 判断员工是否合法,并且年龄大于65岁 if(employee.flag && employee.age > 65) if(employee.isEligibleForFullBenefits())
コメントの良い使用:
- 表示法、著者情報
- このようなコメントなどの所望の形式に一致する正規表現の抽象関数のコメントとして、有用な情報を提供
- 解説、より理解することは困難または戻り値パラメータが記述されています
- 警告、いくつかの重要なコードの警告のためのコードを変更するために他人を防ぐために
// TODO
未完の仕事の注釈- 公開API Javadocの
悪い注釈インスタンス:
このようなコメントはコードの明白な意図しているかどうかなどのサープラスノート、
実際の動作とコードを満たしていない誤解を招くコメント、
そのようなすべての機能を必要とするよう手に負えない型注釈は、Javadocコメントを持っている必要があります
関数や変数名は、ノートを使用していないことができた場合
ノートの後ろに括弧の後、意図は良いですが、根本的な解決策は次のようになり、長さを短くする機能
while(xxxx){ ....... if(xxx){ ...... } // if } // while
、コメントアウトコードを削除しないでください恐れが持ち帰ったことはありません
4、フォーマット紙
パケット間で使用されるステートメントは、各インポートステートメントおよび機能空白行は、改良されたコードのビジュアルを離間します
- 品質関係は「親密」のコンセプトは、相互でなければなりません近い空行で区切られたのではなく、
- 宣言した変数は、あるべきに近い使用場所
- クラスメンバ変数がクラスの先頭で宣言する必要があり、ループ変数は、括弧内に宣言する必要があります
- 相関関数そのような機能としては、上に一緒に、好ましくは、AとB、AとB、次に、関数Bを呼び出し
各ラインの長さは、好ましくは80文字、または文字100〜120として、好ましくは長すぎません
5、データ構造、オブジェクトおよび記事
クラスプライベート変数値や評価者は、それはまだされている場合に晒さ
デメテルの法則:内部モジュールは、オブジェクトの動作状況を理解する必要はありません。つまり、オブジェクトは、その内部変数さらさアクセサを変更しません。より正確には、デメテル法則が言う、クラス
C
メソッドは、f
次のオブジェクトのみ呼び出すことができます方法
。- C
- Fによって作成されたオブジェクト
- オブジェクトfにパラメータとして渡さ
- Cのオブジェクトのメンバ変数
それは、この方法は、任意のメソッド関数はオブジェクトを返す呼び出すべきではありません、ある見知らぬ人に話をしない、友達とだけ対話
6.その他
- 小切手の使用を避ける、制御機能を返さないでください。
- nullを引数を渡さないでください
- サードパーティのAPIの大多数が例外をスローした場合は、次のパッケージを使用して検討するかもしれません
説明:この記事は、ビューのブック点のコンパイルされて、私は少し厳しい感じビューのいくつかの個人的なポイントは実用的ではない、いくつかのセクションに直接スキップ。詳細を知りたい、オリジナルを参照してください。