Java SE 8には、時刻、インスタントLocalDate
、LocalTime
およびLocalDateTime
クラスを紹介するクラスを導入するための新しいメカニズムが付属しています。そのようなインスタントを操作するために、一連のメソッドが提供されます:LocalDate.plusDays(...)
などLocalDate.minusDays(...)
。
メソッドは、実際には実行される操作であり、アクションを実行するものであるため、良いプラクティスは、メソッドの目的を説明する動詞にちなんでメソッドに名前を付けることだと常に考えてきました。あなたのようなクラスを検討している場合だけに言及し、StringBuilder
例えば、メソッドの名前はappend
、insert
、delete
...
これが、私にとって、の代わりにメソッドplusDays
を命名するように聞こえない理由です。非常に迷惑なのは私だけですか?どう思いますか?sumDays
minusDays
subtractDays
私が考えることができる唯一の理由は、日付が不変オブジェクトであるためplusDays
、元のオブジェクトに日を追加するのではなく、新しいプロパティで新しい日を作成することですが、それは非常に微妙です。
sqrt
、プログラマーが認識して知っておくべき単語です。ちなみに英語の単語は「平方根」です。しかし、英語で自然なことに従って物に名前を付けるのは良くありません。たとえば、「違法」という単語を考えてみましょう。完全にすばらしい英語の単語です。しかし、誰かがメソッドに名前を付けた場合、isIllicit
このメソッド呼び出しを見るたびに眼球を引き裂きたいと思います。それはひどく見えるだけで、アイデアを表現するためのより良い方法が必要です。
sum
この文脈では間違っているように聞こえます。私は.netの方が好きAddDays
です。
Math.addExact(1, 2)
「1と2を追加」と言うからです。 tomorrow.plusDays(2)
「明日と2日間」と言うからです。どうにかしてのaddExact
メンバーだったら、そうだったInteger
でしょう1.plusExact(2)
。
plusDays
、新しい日付x将来の日数を返すことを期待しaddDays
ますが、元のオブジェクトを変更することを期待するかもしれません。それは私だけですが、私はJavaにそれほど精通していません。
sqrt
平方根を取るメソッドを検討してください。このメソッドにtakeSqrt
名前を付けることは、ルールに従って意味をなすように見えるかもしれませんが、これに名前を付けても、メソッドが読みやすくなったり、明確になったりすることはありません。