Jangan pernah menggunakan kata yang panjang ketika yang kecil akan dilakukan.
Saya tidak berpikir tesis Anda tentang "panjang nama metode sebanding dengan panjang metode" benar-benar menahan air.
Ambil contoh yang Anda berikan: "getNumberOfSkinCareEligibleItemsWithinTransaction". Bagi saya itu terdengar seperti hanya melakukan satu hal: menghitung jumlah item dalam transaksi yang termasuk dalam kategori tertentu. Tentu saja saya tidak bisa menilai tanpa melihat kode sebenarnya untuk metode ini, tetapi itu kedengarannya seperti metode yang baik bagi saya.
Di sisi lain, saya telah melihat banyak metode dengan nama yang sangat pendek dan ringkas yang dapat melakukan banyak pekerjaan, seperti "processSale" atau "doStuff" yang populer.
Saya pikir itu akan sulit untuk memberikan aturan yang keras dan cepat tentang panjang nama metode, tetapi tujuannya harus: cukup lama untuk menyampaikan apa fungsi tidak, cukup pendek untuk dibaca. Dalam contoh ini, saya pikir "getSkinCareCount" mungkin sudah cukup. Pertanyaannya adalah apa yang perlu Anda bedakan. Jika Anda memiliki satu fungsi yang menghitung item yang memenuhi syarat perawatan kulit dalam transaksi dan lainnya yang menghitung item yang memenuhi syarat perawatan kulit dalam hal lain, maka "dalam Transaksi" menambah nilai. Tetapi jika itu tidak berarti apa-apa untuk berbicara tentang barang-barang seperti itu di luar transaksi, maka tidak ada gunanya mengacaukan nama dengan informasi yang berlebihan.
Dua, saya pikir itu sangat tidak realistis untuk menganggap bahwa nama dengan panjang yang dapat diatur akan memberi tahu Anda dengan tepat apa fungsi dari semua kecuali kasus yang paling sepele. Tujuan realistis adalah membuat nama yang memberi petunjuk kepada pembaca, dan itu bisa diingat kemudian. Seperti, jika saya mencoba menemukan kode yang menghitung berapa banyak antimateri yang perlu kita konsumsi untuk mencapai kecepatan warp, jika saya melihat nama fungsi dan melihat "calibrateTransporter", "firePhasers", dan "calcAntimatterBurn", cukup jelas bahwa dua yang pertama bukan tapi yang ketiga mungkin. Jika saya memeriksa dan menemukan bahwa itu memang yang saya cari, akan mudah diingat bahwa ketika saya kembali besok untuk menyelesaikan masalah ini lagi. Cukup bagus.
Tiga, nama panjang yang mirip lebih membingungkan daripada nama pendek. Jika saya memiliki dua fungsi yang disebut "calcSalesmanPay" dan "calcGeekPay", saya dapat membuat tebakan yang bagus yang sekilas pandang. Tetapi jika mereka disebut "menghitungMonthlyCheckAmountForSalesmanForExportToAccountingSystemAndReconciliation" dan "menghitungMonthlyCheckAmountForProgrammersForExportToAccountingSystemAndRconcination", saya harus mempelajari nama untuk melihat mana yang mana. Informasi tambahan dalam nama mungkin kontraproduktif dalam kasus tersebut. Ternyata pemikiran setengah detik menjadi pemikiran 30 detik.