web-dev-qa-db-ja.com

保守可能なソフトウェアのクラスのフィールドに関するガイドライン?

私は最近、JoostVisserによるBuildingMaintainable Softwareの本を読みましたが、彼らが議論していないことがあると感じています。タイトルは同じように示唆していますが、ガイドラインに従うことがフィールド/属性と関係があるかどうかはわかりません。関連するガイドライン:

-短いコード単位を書く

-コードベースを小さく保つ

好きな/必要なだけフィールドを作成できますか?そして、コメントやフィールドはどうですか?ガイドラインに従うとコメントは禁止されているので、それはフィールドにも当てはまりますか?

1
RabbitBones22

あなたはそれらのガイドラインの実際の内容を引用していないので、本を手に入れていない人にとっては質問に答えるのは難しいです。もっと一般的に答えようと思います。

「ガイドライン」または「ベストプラクティス」の重要な部分は、その背後にある理由を理解することです理解する理由コードを保守可能にするのに役立ちます。 =それをよく理解していれば、明示的に言及されていない状況にそれらがどのように適用されるかを推論することもできます。さらに重要なのは、それらがどこにあるかを知ることですしない適用します。

can必要な数のフィールドがありますが、コードをより保守しやすくするために、フィールドの数を制限する必要があります。クラスにフィールドが多すぎる場合は、クラスはおそらく大きすぎて、単一責任の原則に従っていません。

もう1つの方法は、フィールドを非表示のメソッドパラメーターとして誤用しないようにすることです。メソッドAでのみ書き込まれ、メソッドBでのみ読み取られ、AもBを呼び出すフィールドがある場合は、次のようにする必要があります。フィールドの代わりにBのパラメーター。これは、すべての状態の範囲を可能な限り小さくして、特定の場所で考えなければならない状態の量を最小限に抑えるための、より一般的なガイドラインに従います。

コメントに関しては、それらのガイドラインが「一種の禁止」であるとあなたに言うならば、私は本当にそれらの有用性に疑問を呈しなければなりません。確かにコメントは松葉杖だけの場合は悪い可能性があります構造化されていないコードをリファクタリングして理解しやすくするのではなく、理解しやすくするためですが、問題となるのは実際にはコメントではなく、構造が悪いコード。また、コメントは古くなる傾向があるため、コメントを必要としないコードよりも常に劣っています。

ただし、名前がその意味を理解するために必要な情報を伝えることができないフィールドがあり、コードをリファクタリングして理解しやすくすることができない場合(たとえば、列挙型を使用して可能な値を指定して名前を付けることによって)、あなた複雑なセマンティクスを持つフィールドにコメントすることができ、最も確実にコメントする必要があります。

7