Apa cara yang baik untuk memberi nama metode yang memeriksa apakah X perlu dilakukan, dan apakah X jika perlu?
Misalnya, bagaimana memberi nama metode yang memperbarui daftar pengguna jika pengguna baru telah masuk? UpdateListIfNeeded
tampaknya terlalu lama, sementara sederhana UpdateList
menyiratkan operasi yang mungkin mahal dan tidak perlu dilakukan setiap saat. EnsureListUpdated
adalah varian juga.
C # memiliki bool TryXXX(args, out result)
pola (misalnya int.TryParse(str, out num)
) untuk memeriksa apakah X mungkin dan melakukannya, tetapi itu agak berbeda.
RefreshUserList()
selamaLoginUser()
danLogoutUser()
, dan tidak selama, katakanlahGetUser()
(di mana daftar tersebut harus sudah mutakhir), maka tentu saja saran di bawah ini berlaku.Jawaban:
Saya cenderung menggunakan
Ensure
. Itu membawa arti memastikan bahwa sesuatu diurus, namun itu perlu dilakukan. Jika sudah baik-baik saja, periksa saja dan kita selesai. Kalau tidak, lakukanlah. Either way, hanya memastikan bahwa itu dilakukan .sumber
Preferensi saya adalah
UpdateList
. Jika tidak ada yang perlu dilakukan, ya sudah. Pengeluaran harus selalu diminimalkan, jadi jikaUpdateList
melakukan lebih dari yang diperlukan, ada yang salah dalam implementasinya.Pada dasarnya itu adalah kata kerja yang memberi tahu Anda apa yang harus dilakukan metode ini.
CalculateX
harus selalu menghitung ulang X.GetY
harus selalu mengembalikan Y, tetapi hanya melakukan pekerjaan mengambilnya jika perlu. Demikian juga,UpdateZ
meminta pembaruan Z dengan asumsi itu dilakukan dengan cara seefisien mungkin.sumber
Panggil aku "Mungkin"
Terpilih dari cuplikan Haskell yang pernah saya lihat, coba
sumber