Bagaimana seharusnya satu kata terpisah dalam nama paket? Manakah dari berikut ini yang benar?
com.stackoverflow.my_package
(menggarisbawahi)com.stackoverflow.my-package
(tanda hubung)com.stackoverflow.MyPackage
(CamelCase)
Apa standar umum?
java
naming-conventions
package
Jigar
sumber
sumber
com.stackoverflow.my.package
Jawaban:
Inilah yang ditetapkan oleh dokumen konvensi penamaan resmi:
Referensi
Perhatikan bahwa secara khusus, apa pun yang mengikuti awalan domain tingkat atas tidak ditentukan oleh dokumen di atas. JLS juga setuju dengan ini dengan memberikan contoh-contoh berikut:
Kutipan berikut juga relevan:
Referensi
sumber
Ketiganya bukan konvensi.
Gunakan
com.stackoverflow.mypackage
.Nama paket tidak mengikuti casing unta atau garis bawah atau konvensi penamaan paket tanda hubung .
Selain itu, Google Java Style Guide menetapkan
com.stackoverflow.mypackage
konvensi yang persis sama (yaitu ):sumber
Siapa pun dapat menggunakan garis bawah _ (tidak apa-apa)
Tidak seorang pun boleh menggunakan hypen - (praktik buruknya )
Tidak seorang pun harus menggunakan huruf kapital di dalam nama paket (Praktek buruk)
CATATAN: Di sini "Praktek Buruk" dimaksudkan untuk secara teknis Anda diizinkan menggunakannya, tetapi secara konvensional tidak sopan untuk menulis.
Sumber: Penamaan Paket (docs.oracle)
sumber
Konvensi penamaan resmi tidak seketat itu, mereka bahkan tidak 'melarang' notasi kasus unta kecuali untuk awalan (
com
dalam contoh Anda).Tetapi saya pribadi akan menghindari huruf besar
dan tanda hubung, bahkan angka. Saya akan memilihcom.stackoverflow.mypackage
seperti yang disarankan Bragboy juga.(tanda hubung '-' tidak sah dalam nama paket)
EDIT
Menarik - spesifikasi bahasa memiliki sesuatu untuk dikatakan tentang konvensi penamaan juga.
Dalam Bab 7.7 Nama Paket Unik, kita melihat contoh dengan nama paket yang terdiri dari huruf besar (jadi notasi CamelCase akan OK) dan mereka menyarankan untuk mengganti hyphonation dengan garis bawah ("mary-lou" -> "mary_lou") dan awalan java kata kunci dengan garis bawah ("com.example.enum" -> "com.example._enum")
Beberapa contoh lagi untuk huruf besar dalam nama paket dapat ditemukan di bab 6.8.1 Nama Paket .
sumber
Garis bawah terlihat jelek dalam nama paket. Untuk apa nilainya, dalam kasus nama gabungan dari tiga kata atau lebih saya menggunakan inisial (misalnya:)
com.company.app.ingresoegresofijo (ingreso/egreso fijo) -> com.company.app.iefijo
dan kemudian mendokumentasikan tujuan paket dipackage-info.java
.sumber
Penggabungan kata-kata dalam nama paket adalah sesuatu yang kebanyakan pengembang tidak lakukan.
Anda dapat menggunakan sesuatu seperti.
com.stackoverflow.mypackage
Lihat Deklarasi Nama JLS
sumber