私のチームでは、数人のソフトウェアアーキテクトと緊密に連携しています。彼らは私たちのプロジェクトのすべての設計決定を承認し、コードレビューなどを行います。
私たちのプロジェクトは、主にSymfony 2フレームワークを使用してPHPで実装されたバックエンド機能で構成されています。そのため、構文的には、コード、命名規則、およびプロジェクト構造は、Javaがどのように見えるかとほぼ同じに見えます(Symfony 2はそのような構造を推奨しています)。Java固有の規則もこのケースに適用されるため(可能であれば)、これについて言及しています。
最近、彼らは私が非常に奇妙だと思うことを提案しました:すべてのメソッドはgetEntityOrNull
、例えば、setValueOrException
などの名前に接続詞を持つべきです
このような命名規則は私にとって非常に間違っているように感じますが、具体的な議論や、これに特に挑戦するオンラインの記事/ページを思い付くことができません。
私が思いついた唯一のものは:
- そのような情報は次のように、メソッドの注釈中に存在すべきです
@return
か@throws
- メソッド名に接続詞(「and」、「or」など)を使用すると、通常、単一責任原則が適切に尊重されないことが示唆されます。
この命名規則に対する他の具体的な議論は何ですか?
the use of conjunctions ("and", "or" etc.) in method names usually suggest that the Single Responsibility Principle is not properly respected
これは、あなたがリストした例では当てはまりません。そこでは、接続詞を使用して、障害を処理するために使用されるメカニズムを明確にします。最も狭く定義された関数でさえ、空のスタックをポップするなど、正当な障害条件を持っている場合があります。
Int32.TryParse
及びInt32.Parse
-整数に文字列を解析し、前者戻りブール成功を示す、後者が失敗した場合にスロー両方。
Try...
、...OrNull
、...OrDefault
。@EricLippert .netの唯一の規則ではありません。Single
対を検討してくださいSingleOrDefault
。これはOrNull
、提案されたOP に非常に近いものです。