Saya yakin banyak dari kita telah melihat nama metode seperti ini pada satu titik atau yang lain:
UploadTheFileToTheServerPlease
CreateATemporaryFile
WriteTheRecordToTheDatabase
ResetTheSystemClock
Yaitu, nama metode yang juga kalimat bahasa Inggris yang benar secara tata bahasa, dan memasukkan kata-kata ekstra murni untuk membuatnya dibaca seperti prosa. Secara pribadi, saya bukan penggemar nama metode "literal" seperti itu, dan lebih suka succint, sambil tetap sejelas mungkin. Bagi saya, kata-kata seperti "a", "an", dan "the" hanya terlihat canggung dalam nama-nama metode, dan itu membuat nama-nama metode tidak perlu panjang tanpa benar-benar menambahkan sesuatu yang berguna. Saya lebih suka nama metode berikut untuk contoh sebelumnya:
UploadFileToServer
CreateTemporaryFile
WriteOutRecord
ResetSystemClock
Dalam pengalaman saya, ini jauh lebih umum daripada pendekatan lain untuk menuliskan nama-nama yang lebih panjang, tetapi saya telah melihat kedua gaya dan ingin tahu apa yang dipikirkan orang lain tentang kedua pendekatan ini.
Jadi, apakah Anda berada di "nama metode yang bertuliskan seperti prosa" camp atau "nama metode" yang mengatakan apa yang saya maksud tetapi membacakan dengan keras seperti kamp terjemahan bahasa asing ke bahasa Inggris yang buruk?
sumber
WriteTheRecordToTheDatabase
. Jika seseorang memeriksa ini, mereka akan diajak bicara serius.Please
"? WowJawaban:
Saya akan setuju bahwa metode prosa mengisap dengan satu pengecualian:
Kasus Uji Satuan
Ini umumnya tidak pernah dipanggil dalam kode Anda dan muncul dalam laporan pengujian. Karena itu, sangat berguna untuk melakukan pembacaan dengan prosa yang lebih banyak:
Bahkan ini harus dilakukan dengan hemat, tetapi saya bisa melihatnya sebagai setidaknya satu kasus di mana penambahan gramatikal dapat membuatnya sedikit lebih mudah untuk mengekspresikan apa yang berlalu dan apa yang gagal. Ini, tentu saja, kecuali bahasa / kerangka kerja Anda menyediakan mekanisme yang baik untuk deskripsi-tes dalam pembacaan tes selain nama metode, dalam hal ini abaikan juga yang ini.
sumber
MethodUnderTest_Condition_ExpectedBehaviour
konvensi penamaan unit test yang disarankan Roy Osherove . misalnyaAddOrder_WithInvalidCustomerId_Fails
,CreateItem_WithOutOfBoundsPrice_ReturnsError
danDeleteEvent_EventExistsInSeason_Succeeds
.._AdditionFails
dan.._DeletionSucceeds
harus lebih baik. Saya memang memasukkan hasil metode, tetapi seperti yang Anda tunjukkan mereka bisa bingung dengan terminologi pengujian lulus / kegagalan.Mengutip Lawrence dari Office Space ...
sumber
Nama "panjang" seperti itu tidak terdengar seperti prosa . Ketika sendirian — mungkin, tetapi disertai dengan sisa kode, mereka hanya membuat lebih berantakan. Coba lihat:
Yuuuuk! ..
Ini bukan teks bahasa Inggris yang valid, dan dalam bahasa pemrograman apa pun tidak akan terlihat seperti itu. Jadi tidak ada gunanya menghabiskan byte untuk artikel.
sumber
bool ResultOfTheGentlyUploadOfTheFileToTheServer
Dari perspektif pemrogram, "UploadFileToServer" lebih masuk akal dan lebih mudah dibaca dan dipahami daripada "UploadTheFileToTheServerPlease".
Lebih dari tata bahasa Inggris, keterbacaan dan pemahaman lebih penting dalam pemrograman!
sumber
UploadTheFileAndProcessItAndEmailTheOrdersToTheCustomers
, meskipun mudah-mudahan tidak ada yang cukup buruk bahwa dalam kehidupan nyata.Mengingat berapa banyak kesalahan ketik fitur hidup saya, saya akan berakhir dengan
Serius, saya bahkan akan melihat apa nama kelas saya juga. Jika kelas saya disebut "File", saya mungkin hanya akan pergi dengan
Jadi itu akan terjadi
Hanya contoh sepele, tapi mudah-mudahan itu cukup ilustratif.
sumber
File.UploadFileToServer
... ugh).Saya pribadi tidak peduli. Saya telah melihat mereka dan mereka tidak mengganggu saya. Saya bahkan tidak memikirkannya sampai programmer lain terus mengoceh tentang mereka. Saya menemukan itu mengejutkan bahwa seseorang akan sangat peduli tentang sesuatu yang sangat penting. Maksud saya dia benar-benar marah tentang hal itu. Tapi itu awal karir saya, sekitar 11 tahun yang lalu, dan sejak itu saya menemukan bahwa pengembang marah tentang hal-hal kecil sebenarnya cukup umum. Itu sebabnya manajer pengembang dibayar dengan sangat baik. Mereka harus berurusan dengan pengembang setiap hari.
Dan saya lebih suka melihatnya daripada "UL_FlToSrv".
sumber