Saya sedang berdiskusi dengan konvensi pengembang kode senior untuk diterapkan pada proyek kami (terutama proyek Java / JEE). Saya tidak setuju dengan satu konvensi yang ia usulkan:
Nama variabel instan harus dimulai dengan "_", variabel lokal dengan "loc", dan parameter metode dengan "par", sehingga akan mudah untuk mengidentifikasi asal variabel dan ruang lingkup.
Sementara ia mengajukan argumen untuk memori jangka pendek dan keterbacaan, saya tidak setuju pada kenyataan bahwa itu agak mengurangi keterbacaan, IDE seperti Eclipse memformat variabel secara berbeda tergantung pada jenisnya, dan masalah ini akan dihindari dengan kelas yang bagus dan desain metode.
Apakah Anda memiliki pendapat, argumen, atau studi yang mendukung pendapat saya (atau menentangnya)?
Jawaban:
Seperti Wikipedia mengatakan tentang masalah ini - Aturan untuk penamaan java,
Menurut pengalaman saya dengan standar pengkodean, nama variabel Instance mulai dengan "_" tidak sebagus yang dikatakan standar wikipedia.
variabel lokal dengan "loc", dan parameter metode dengan "par", seperti yang Anda katakan akan mudah untuk mengidentifikasi asal variabel dan ruang lingkup, tetapi harus untuk Anda, bukan programmer lain yang mungkin pergi melalui kode Anda untuk pemeliharaan suatu hari nanti .
Sesuai spesifikasi Kode Bersih tentang metode ini harus pendek sebanyak yang dapat Anda lakukan untuk keterbacaan dan nama variabel tidak boleh dipetakan dengan pikiran, mereka harus relevan dengan operasi Anda yang dilakukan metode Anda.
Awalan Anggota / Lingkup, Anda juga tidak perlu awalan variabel anggota dengan m_ lagi. Kelas dan fungsi Anda harus cukup kecil sehingga Anda tidak membutuhkannya. Dan Anda harus menggunakan lingkungan pengeditan yang menyoroti atau mewarnai anggota untuk membuatnya berbeda.
Selain itu, orang dengan cepat belajar untuk mengabaikan awalan (atau akhiran) untuk melihat bagian bermakna dari nama tersebut. Semakin banyak kita membaca kode, semakin sedikit kita melihat awalan. Akhirnya awalan menjadi berantakan dan menjadi penanda kode lama.
sumber
Ini adalah pertanyaan lama, tetapi saya akan tetap memposting di sini. Saya memiliki lebih dari 20 tahun pemrograman dan berurusan dengan kode orang lain.
Saya pikir penamaan variabel Anda dengan indikasi singkat untuk ruang lingkup mereka benar-benar berguna untuk orang berikutnya (atau diri Anda sendiri) yang akan melihat kode Anda.
Seseorang belum melihat kode dalam IDE dengan warna cantik (dan saya tidak ingat apa arti warna dan IDE berbeda menunjukkan warna berbeda, dll).
Benar, metode harus cukup pendek sehingga tidak dimuat dengan banyak variabel dan banyak kode, tetapi bahkan pada pendek - ketika Anda melihat kode yang sama sekali tidak dikenal, kadang-kadang sulit untuk mengetahui apakah suatu variabel adalah variabel kelas, lokal variabel atau parameter metode.
Untuk dapat membedakan secara sekilas membuatnya sangat mudah untuk meninjau kode yang tidak Anda kenal.
Ambil contoh ini:
Sekarang, tentukan waktu Anda sendiri dan lihat kodenya (diekstrak dari ElasticsearchTemplate dari proyek spring-data-elasticsearch - kode yang saya ulas yang mendorong saya untuk mencari di Google apa yang orang katakan tentang konvensi penamaan)
resultsMapper
?requestBuilding
parameter?Berikut adalah saran sederhana saya tentang bagaimana variabel harus dinamai:
HOST_NAME
).resultsMapper
).a
(misalnyaaQuery
,aClazz
).my
(misalnyamyIndexName
,myType
).Kode di atas menjadi:
}
Apakah itu sempurna? Saya kira tidak. Tetapi hal di atas, sejauh menyangkut variabel, sekarang lebih mudah dibaca. Ada hal-hal lain seperti penjajaran dan spasi, yang tidak akan saya bahas dalam jawaban ini karena tidak terkait dengan pertanyaan, yang akan membuatnya lebih mudah dibaca juga.
Anda tidak suka Unta? Baik, gunakan garis bawah, dll, tetapi awali variabel lokal Anda dan parameter Anda untuk membuatnya berbeda dari variabel instance kelas.
Anda tidak suka
a
danmy
- baiklah, tetap konsisten dalam proyek Anda dan gunakan sesuatu yang lain ... tetapi gunakan sesuatu.Aturan # 1: konsistensi dalam proyek.
Aturan # 2: membuatnya mudah dibaca dan tidak mengharuskan pembaca untuk mengetahui segalanya sebelum dia bisa belajar.
sumber
Ini sebagian besar adalah masalah preferensi, dan karena itu tidak ada jawaban yang 'benar'. Jadi, pertanyaan ini mungkin benar-benar ditutup. Tetapi sebelum itu terjadi, izinkan saya memberi tahu Anda bahwa saya sepenuhnya setuju dengan Anda. Awalan mengurangi visibilitas sejauh yang saya ketahui. Apalagi fakta bahwa jika ada awalan, mereka harus digunakan untuk hal-hal yang lebih berguna, seperti maksud asli Notasi Hongaria , dan bukan untuk hal-hal yang IDE Anda dapat memberikan menyoroti untuk pula.
Saya menggunakan SentenceCase untuk data contoh (apakah variabel atau konstanta) dan lower_case untuk parameter dan variabel lokal, karena sebenarnya sangat sedikit, jika ada, perbedaan antara keduanya. Saya tidak pernah menggunakan headlessCamelCase karena lumpuh : pengenal komponen tunggal terlihat seperti huruf kecil, bahkan jika itu dimaksudkan untuk menjadi headlessCamelCase.
sumber