コードの仕様についてまず話、多くの企業が本当に多くありません、実際には、かなり厳しい行われ、これに言及。中小企業はそれについて話しているもちろんのこと、どのように書く方法を書き込みます。
あなたは、コードの仕様に必要なのはなぜ?
二つの質問自問してください:
50の以上の行は、あなたが単純に2分が、その前に自分の思考や論理を理解することができ、数ヶ月で1.書き込みコード、?(ここでは論理的な思考を言わなかった、書かれたコードについて話)
2.あなたが他の人のコードが表示されたら、何の心のMMPがあまりにもありませんか?
ない場合は、左の兄を行ってください、あなたの貴重な時間を無駄にしないでください。もしそうなら、お勧め3冊「コードの単純な道」「復興を見て - 」既存のコード(読んヘクタールに影響を与えませんが、Javaコード)を向上させる「効果的なC#:50 C#コード改善の有効な方法を。」
私はこの問題のコードで、自身の主観的なノイズの多い1の時間で、中規模企業では、自分自身の個人的な経験について話します。
結論として、私の見解を迅速に行うことができ、書き込みコードにですが、コード自体が道徳的な制約が、特定の仕様が必要ですが、それは少なくとも、これはあまりにも深い穴を掘ることができない、農家も基本的な識字ヤードです。
ビューのリーダーシップのポイントは、より興味深いものです、彼は最初のテキスト、核兵器のない目は言いました。
私は、これが真実であると主張しているが、コードが水平に書かれているか、一目で、少なくとも第一の点、一見混乱感じていない(C、C ++書き込みアルゴリズムにと言わないようにここではC#について話をします)。
いいえでたらめありません、コードを特定(自分のコードが掲載されていない、何の客観性がない、我々は公式のオープンソースである取ります):
これは公式のコードで、アドレス https://github.com/dotnet/runtime/blob/master/src/libraries/System.Collections/src/System/Collections/Generic/Queue.cs 105〜133行(検索)あまり複雑であり、より明確に書かれて
公共 ボイド CopyToの(T []配列、INT arrayIndex) { 場合(配列== NULLで) { スロー 新しい例外ArgumentNullExceptionを(がNameOf(配列))。 } 場合(arrayIndex < 0 || arrayIndex> Array.lengthと) { スロー 新しい例外ArgumentOutOfRangeException(がNameOf(arrayIndex)、arrayIndex、SR.ArgumentOutOfRange_Index)を、 } INT ARRAYLEN = Array.lengthと。 もし(ARRAYLEN - arrayIndex < _size) { スロー 新しいをArgumentExceptionが(SR.Argument_InvalidOffLen)。 } INT numToCopy = _size。 もし(numToCopy == 0)リターン。 INT FIRSTPART = Math.Min(_array.Length - _head、numToCopy)。 Array.Copy(_array、_head、アレイ、arrayIndex、FIRSTPART)。 numToCopy - = FIRSTPART。 もし(numToCopy> 0 ) { Array.Copy(_array、0、アレイ、arrayIndex + _array.Length - _head、numToCopy)。 } }
私は道を上記のコードを読んでいない、と何の障害物、明確な目的が、私はロジックのコードの内容と実施の行を変更しないでください、私は見ているスタイルが変更された見てきた、コードの行数の最小値:
公共 ボイド CopyToの(T []配列、INT arrayIndex) { もし(配列== NULL)スロー 新しい例外ArgumentNullExceptionを(がNameOf(配列))。 もし(arrayIndex < 0 || arrayIndex> Array.lengthと)スロー 新しい例外ArgumentOutOfRangeException(がNameOf(arrayIndex)を、arrayIndex、SR.ArgumentOutOfRange_Index)。 int型 ARRAYLEN = Array.lengthと。 もし(ARRAYLEN - arrayIndex <_size)スロー 新しいArgumentExceptionが(SR.Argument_InvalidOffLenを)。 int型 numToCopy =_サイズ; もし(numToCopy == 0)リターン。 INT FIRSTPART = Math.Min(_array.Length - _head、numToCopy)。 Array.Copy(_array、_head、アレイ、arrayIndex、FIRSTPART)。 numToCopy - = FIRSTPART。 もし(numToCopy> 0)Array.Copy(_array、0、アレイ、arrayIndex + _array.Length - _head、numToCopy)。 }
重要なことはたくさんカザフスタンコードの行数を減少させたが、コードのロジックの可読性を持っていない、もう少し複雑なビジネスロジックた場合、どのように混沌と想像し、簡単です。
個人的な経験:必要な有効性パラメータ、ビジネスロジック、明確にコードを書く人は、Aをしていた理解できる3つの大きな、適切な空白行の戻り値:書き込みコードは大きなブロックを持つように、通常の機能がありますどのような部品