Jadi saya saat ini di tengah pengkodean, sayangnya bagi saya, saya berada di "The Zone" lalu saya berpikir, apakah metode / nama variabel saya terlalu lama?
POP keluar dari Zone I go!
Jadi saya datang ke sini untuk bertanya, apakah metode / nama variabel saya terlalu panjang? Anda menjadi Hakim! Bonus menunjuk ke siapa pun yang bisa mengetahui apa yang saya tulis, meskipun saya yakin seorang guru akan mengetahuinya dengan cepat!
Bagaimanapun, berikut adalah beberapa metode dan nama variabel saya.
Metode: searchBlockedListForBlockedSquares (), isCurrentSquareNextToAtLeastOneBlockedSquare (), cariBlockedListForBlockedSquares ()
Variabel: isNextToBlockedSquares;
Saya kira hanya ada satu variabel yang tampak terlalu panjang.
Jawaban:
Bagiku namamu sepertinya tidak masalah dalam hal panjang. Namun, cara mereka dinamai menunjukkan bahwa mungkin beberapa kelas baru sudah beres?
Misalnya, alih-alih
searchBlockedListForBlockedSquares()
yang bisa Anda milikiblockedList.getBlockedSquares()
. Demikian pula,isCurrentSquareNextToAtLeastOneBlockedSquare()
menjadicurrentSquare.isAdjacentToABlockedSquare()
.sumber
Saya percaya pada nama variabel deskriptif bahkan jika itu berarti nama variabel panjang. Dan dengan intellisense semakin populer, saya tidak percaya itu mempengaruhi banyak dalam hal produktivitas.
Saya benci singkatan karena mereka hampir mustahil untuk digunakan secara konsisten. Plus, mereka bisa ambigu dan mereka membuat hal-hal lebih sulit dibaca. Bahkan ketika mereka adalah bagian dari standar, saya tidak suka mereka. Plus, ketika tiba saatnya, mereka tidak menghapus banyak huruf kecuali Anda menyingkat banyak. Dan menyingkat banyak membunuh keterbacaan.
Masalah terbesar yang diperkenalkan oleh nama-nama panjang adalah bagaimana panjangnya baris kode. Memanggil fungsi dengan nama panjang dan meneruskannya dua atau tiga nama variabel panjang dapat membuat satu baris panjang kode. Karena itu, saya mencoba untuk menjaga nama saya sesingkat mungkin lagi, saya lebih suka memiliki nama deskriptif bahkan jika itu berarti membungkus garis atau menggulir.
Melihat nama contoh Anda, fakta bahwa semua diakhiri dengan BlockedSquares membuat saya berpikir bahwa bagian dari nama itu mungkin berlebihan. Bahkan, itu mungkin juga berarti bahwa barang-barang ini dapat dienkapsulasi ke dalam kelas mereka sendiri, mungkin bernama BlockedSquares. Perubahan itu yang membuat nama-nama itu sedikit lebih pendek.
sumber
Nama variabel adalah panjang yang salah ketika tidak jelas menggambarkan tujuan itu. Itu berlaku untuk menjadi terlalu pendek atau terlalu lama.
Nama variabel pendek dan singkat bisa ambigu, atau lebih buruk tidak memiliki hubungan dengan apa variabel itu. Pada masa BASIC yang ditafsirkan, kami dibatasi oleh penerjemah menjadi dua nama karakter. Sangat sulit untuk menghasilkan nama-nama yang bermakna dalam sebuah program besar. Nama variabel satu huruf sering digunakan untuk for-loop dan counter, tapi saya pikir mereka harus dihindari.
for (i = 0; i < 10; i++) {...}
menggunakani
dan itu cukup umum.j
adalah nama variabel sekunder.Nama variabel panjang terlalu panjang ketika mereka menjadi bertele-tele atau penuh dengan kata-kata kosong, membuat mereka lebih lama dari yang diperlukan. Jika saya memiliki banyak variabel dengan nama yang sama saya akan mencoba untuk menghapus bagian-bagian umum yang dapat disingkirkan dan menjaga bagian-bagian yang unik dari nama-nama.
Saya akan memberi nama "
isCurrentSquareNextToAtLeastOneBlockedSquare
" kepadacurrentSquareNextToBlockedSquare?
, jika saya melakukannya di Ruby.sumber