:
恐ろしいの命名規則は、命名規則は非常に非標準です。私が働いたほとんどの場所で、私が見てきたほとんどの規則では、メンバー関数とメンバーデータは同じ規則に従います:すべて小文字、アンダースコアで区切られた単語。
これらのInitialCaps識別子は、目に見えても読みにくいです。これに関する複数の人的要因の研究が行われてきた。 WordsSeparatedByInitialCapsは、words_separated_by_underscoresという人々が読むのがはるかに難しいです。視覚障害者のために、InitialCapsの使用は価値がないより悪いです。私が影響力を持つコーディング標準では、InitialCapsはクラス名とクラス名のみです。
ALL_CAPSはInitialCapsよりも読みにくいです。すべての法的契約には真に重要な法的条項があり、弁護士はこれを光栄に思って無視したいと考えています。これらの重要な節は簡単に見つかります。すべて大文字で表示されます。すべての大文字のテキストは、目撃者のために読むのが非常に難しいです。それが弁護士がそれを使用したい理由です。できるだけALL_CAPSを避けるべきです。マクロの場合のみALL_CAPSを予約し、ALL_CAPS以外のマクロは決して定義しないでください。これにより、プロセッサー名と識別子の衝突が最小限に抑えられます。
ハンガリー表記は、部分的に部分的にしか使用されていなくても吸う。
違反RAII
規格はRAIIに違反しています。ウィット(重点鉱山):
オブジェクトのコンストラクタで実際の作業をしないでください。コンストラクタの内部では、変数のみを初期化したり、失敗しないアクションのみを行います。構築を完了するオブジェクトのOpen()メソッドを作成します。 オブジェクトのインスタンス化後にOpen()を呼び出す必要があります。デストラクタデストラクタの
アドバイスに
非常に悪いアドバイスは、コンストラクタのアドバイスと同じくらい悪いです。
は
本当にデストラクタに慎重に投げ例外うか? 「破壊者に例外を投げないでください。このセクションから
より、
特別なケアは、オブジェクトの破壊時に発生する可能性が例外をキャッチするために取られなければなりません。オブジェクトが例外をスローするときにオブジェクトを完全に破棄するように特別な注意を払わなければなりません。
誰かがそれをやろうとしていますか?単純な答えは正しいものです:デストラクタに例外を投げないでください。これまで
これは私がその構築物を嫌い
/////////////////////////////// PUBLIC ///////////////////////////////////////
//============================= LIFECYCLE ====================================
XX::XX()
{
}// XX
XX::XX(const XX&)
{
}// XX
XX::~XX()
{
}// ~XX
//============================= OPERATORS ====================================
XX&
XX::operator=(XX&);
{
return *this;
}// =
//============================= OPERATIONS ===================================
//============================= ACESS ===================================
//============================= INQUIRY ===================================
/////////////////////////////// PROTECTED ///////////////////////////////////
/////////////////////////////// PRIVATE ///////////////////////////////////
愚か(6 == errorNum)ガベージ
こと真に恐ろしいです。それは醜いもので、カートの前に馬を置きます。ここで適切なことは、ウォールまたはより厳しい条件の下でコードをクリーンにコンパイルし、コンパイラが見つけることができない/見つからない追加の問題を検出するコードアナライザを使用することです。 20年前に何人かの馬鹿がif (errorNum = 6) ...
を書いたので、私は物事をベースにして書き直させてはいけません。
ブール型
の雄牛このセクションのタイトルは正しいです:それは雄牛です。彼が書いたものは時代遅れで間違っています。新しいコードを書く場合は、boolを使います。古いコードを維持している場合は、変更する必要がない限り変更しないでください。
ブールと真を比較しないように彼のアドバイスが正しいです。解決策は、ブール値をfalseと比較することではありません(またはさらに悪いのはif (FALSE != func()) ...
)。解決策はブール値を何かと比較することではありません:if (func()) ...
。
この規格の問題は次々と起こります。
これは使用しないでください。
特に分かりません。しかし、FYI、[私が推薦する本はここにリストされています](http://jcatki.no-ip.org/fncpp/Resources)。ホフがそのリストに載っていない理由があるかもしれません。 –
ありがとうございます。 :-)あなたは正しいかもしれませんが、ホフがリストに載っていない理由があるはずです。しかし、それはまた、この理由が興味深いです。 :-) –
特定のコーディング基準を推奨するかどうかを大勢の聴衆に問うことは、主題の回答を求めることになります。確かに、コーディングの標準設定は、私が開発者の間で考えることができる最も主観的な話題です。コードの可読性を向上させ、コードベースに一貫して適用することをお勧めします。 – razlebe