
すべての良い一日。
「ボートを呼び出すと、フロートします」-関数、変数、クラスに非常に適したよく知られた有名なフレーズ。
見知らぬ人を何回読んで(時には自分のコードで、悔い改め、それは自分のコードで起こった)、マッシュに対処した回数。 変数、関数、さらにはクラスを割り当てることはまったく直感的ではありません。
変数があり、名前もあるように見えますが、その目的は明確ではありません。
例えば
enum Dates{
GET_FIRST,
GET_SECOND,
GET_BOTH,
None
}
したがって、このenamがコードで何かをすると考えてください。 リストの名前から、ケースが日付に関連していることが明らかであるようです。 2つの日付がメソッドに渡される可能性があり、そのうちの1つを選択する必要があります。 または、リストの最初と2番目の特定の日付のみを考慮する必要があります。 または多分何か、多くの意見があるかもしれません。
この場合、このコードが使用される場所を探しています。
Boolean IsInRange( DateTime date1, DateTime date2, Dates pDates) {
if (pDates==Dates.GET_BOTH) {
return date1 <= myDate && myDate <= date2;
}
if (pDates==Dates.GET_FIRST) {
return date1 <= myDate && myDate < date2;
}
if (pDates==Dates.GET_SECOND) {
return date1 < myDate && myDate <= date2;
}
return date1 < myDate && myDate < date2;
}
そして、エナムが左右の境界を考慮するかどうかを決定することを理解することができます。
しかし
、オブジェクトの意味を理解するために、それが使用されているコードを詳しく調べ始めると、名前には目的の本質が反映されません。 これは悪い名前です。
それはよりシンプルと呼ぶことができます:
enum DateIntervals{
Open,
Closed,
OpenLeft,
OpenRight
}
この場合、エナムを使用する場所を探してコードを登る必要はほとんどありません-彼の名前はすでに彼の性質を語っています。
コメントコメントは、名前が本質を反映していないことを示しています。 ほとんどの場合、適切なコメントではなく、関数の名前を反映する必要があります。
私はクレイジーで、すべてにコメントを書き、すべてが怠けていたのを覚えていますが、試しました。 それが明らかだった場所でさえ。 しかし、ほとんどの場合、それは有用ではありませんでしたが、ええと、hemo –ああそう。 だから、良い名前を書く-それは本当に時間を節約します。 完璧に制限はありません。 「ここにある」と言うまで、5回名前を変更することがあります。
音声名。これらの名前の発音はそれほど熱くありません。 しかし、本質とさらにそう。 ミドルネームはGetUaiUaiUaiUaiと発音できます。 「音、神、なぜ、まあ、なぜ...」
また、同僚が特定の操作を担当する機能を尋ねた場合、発音は完全に明確ではなく、最終的にどのように書かれているのかも完全に明確ではありません。
プレフィックス強力な開発環境がない場合(すべてが比較的有限)、プレフィックスが採用されました。
先頭の変数名には、特定のデータ型に対応し、小文字で記述されたプレフィックスが含まれている必要があります。 名前自体は大文字で始まります。
プレフィックスデータ型
- 配列(配列)
- b BOOLブール整数(1バイト)
- BYTE符号なし整数
- c文字(1バイト)
- Cクラス
- d倍精度数(double)
- ....
今でも、これは起こっています。 これにdulしないでください。 接頭辞をドラッグするのではなく、論理的に変数に名前を付けます。
名前の長さは?変数使用ブロックが3行に制限されている場合、変数にfirstIndexInUserCollectionという名前を付けることはほとんど意味がありません。 名前の長さは、ブロックの長さに直接比例します。 ブロックが大きいほど、名前が大きくなります。
関数名原則として、パブリック関数には短い簡潔な名前を付ける必要があります(もちろん理想的です)。 そうでない場合、外部からの各アピールは非常に重くなります。 逆に、閉じた関数には、その目的の目的を説明する長い名前を付けることができます。
要約すると:
- 意図を表す名前を使用してください。 その後、多くの時間を節約できます。
- コメントに従ってください。原則として、これは少しのリファクタリングの必要性を示しています。
- 名前は発音しやすいものでなければなりません。
- 自分だけが理解できる接尾辞と接頭辞を挿入しないでください。
- 関数には、動詞+名詞/形容詞から派生した名前を使用します
- 誤った情報を避ける-関数はその名前が意味することを行う必要があります。そうしないと、関数が行うことの定数メモリに変わります。
- 基本クラスには短い名前が必要です。 各相続人は通常単語を追加します。 そして相続人の相続人。 だから、長いパラボラになる可能性があります
ハッピーコディング。