Java SE 8 tarihlerini, tanıştırmak için yeni bir mekanizma ile gelir LocalDate
, LocalTime
ve LocalDateTime
zamanın anlarının temsil etmek sınıflar. : Böyle anları işlemek için yöntemler bütünüdür verilir LocalDate.plusDays(...)
, LocalDate.minusDays(...)
böylece ve.
Her zaman iyi uygulamanın, amaçlarını tanımlayan fiillerden sonra yöntemleri isimlendirmek olduğunu düşündüm, çünkü yöntemler, aslında yapılacak işlemler, bir eylem gerçekleştirecek bir şey. Eğer böyle sınıfları dikkate duyarsanız, sadece söz StringBuilder
örneğin, yöntemlerinin isimler append
, insert
, delete
...
Bu benim için bir yöntem adlandırma doğru gelmiyor neden plusDays
yerine sumDays
, minusDays
yerine subtractDays
. Sadece benim çok sinir bozucu buluyorum? Ne düşünüyorsun?
Düşünebilmemin tek nedeni, tarihlerin değişmez nesneler olmasıdır, bu nedenle çağırdığınızda plusDays
orijinal nesneye günler eklemiyor, yeni özelliklerle yeni bir tane yaratıyorsunuz, ama bu çok ince.
sqrt
programcıların tanımaları ve bilmeleri beklenen bir kelimedir. Bu arada İngilizce kelime "karekök" tir. Ancak, şeyleri İngilizce'de doğal olana göre adlandırmak iyi değildir. Örneğin, "yasadışı" kelimesini mükemmel bir şekilde ingilizce kelime olarak alın. Bununla birlikte, eğer biri kendi yöntemini seçerse isIllicit
, bu yöntem çağrısına her baktığımda gözlerimi yırtmak isteyeceğimi düşünüyorum. Sadece korkunç görünüyor ve fikri ifade etmenin daha iyi bir yolu olmalı.
sum
bu bağlamda yanlış geliyor. Net'i tercih ederim AddDays
.
Math.addExact(1, 2)
çünkü "1 ve 2 ekle" diyorsun. tomorrow.plusDays(2)
çünkü "yarın artı 2 gün" diyorsun. Bir şekilde addExact
üye Integer
olsaydı, olurdu 1.plusExact(2)
.
plusDays
yeni bir tarih x gün sayısını geleceğe döndürmek addDays
beklenirken, orijinal nesneyi değiştirmeyi bekleyebilirim. Bu sadece benim olsa, Java ile aşina olan ben değilim.
sqrt
karekökü alan bir yöntem düşünün . Bu yöntemitakeSqrt
adlandırmak kuralınıza göre mantıklı görünebilir, ancak bunu adlandırmak yöntemi daha okunaklı hale getirmez ya da netleştirmez.