Apakah metode atau nama variabel saya terlalu panjang? [Tutup]

15

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.

Bryan Harrington
sumber

Jawaban:

31

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 miliki blockedList.getBlockedSquares(). Demikian pula, isCurrentSquareNextToAtLeastOneBlockedSquare()menjadi currentSquare.isAdjacentToABlockedSquare().

Adam Lear
sumber
Berdekatan adalah kata yang saya cari! Terima kasih =)
Bryan Harrington
@Bryan: Sama-sama. :)
Adam Lear
11

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.

Jeff Siver
sumber
5

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++) {...}menggunakan idan itu cukup umum. jadalah 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" kepada currentSquareNextToBlockedSquare?, jika saya melakukannya di Ruby.

Manusia Timah
sumber