5 minuta kodiranja, 1 sat imenovanja, haha
„Erge, kakve su konvencije imenovanja u Javi?“ Sanmej je na licu imala slatki osmeh, počela je da se nada sadržaju koji sledi, i ovo je upravo ono što me čini veselim.
„Za nas Kineze, imena su takođe važna, na primer ja se zovem Chenmo Wang Er, a ti se zoveš Chenmo Wang San, haha.“ zabavljao sam se sa Sanmej.
Konvencije imenovanja određuju kakve identifikatore koristimo za imenovanje paketa, klasa, polja, metoda itd. Iako ovo pravilo nije obavezno, može se poštovati ili ne, ako se ne poštuje, donosiće mnoge nepotrebne probleme.
Dobro ime je kao odgovarajuća odeća, korisničko iskustvo koje se pruža potpuno je drugačije.
Dobo imenovanje može učiniti vaš kod čitljivijim, uključujući vas i vaše prijatelje, jedan pogled, bez mnogo razmišljanja, možete razumeti šta kod radi.
Uzmo moj pseudonim „Chenmo Wang Er“ kao primer, kad čitam, osećam da tečno teče, čitatelji vide ovaj pseudonim i znaku kakvu osobu sam — tiho prema nepoznatim ljudima, duhovit prema poznanicima, haha.
Naravno, ako privremeno ne zapamtite, nema veze, možete se vratiti kasnije da zapamtite.
01, Paket (package)
Imenovanje paketa treba da prati sledeća pravila:
- Treba da bude sve malim slovima
- Između tačaka postoji tačno jedna engleska reč sa prirodnim značenjem
- Ime paketa uniformno koristi oblik jednine, na primer
com.itwanger.utilne može biticom.itwanger.utils - U najnovijim Java programskim standardima, zahteva se od programera da dodaju jedinstveni prefiks pre imena paketa koje sami definišu. Budući da se domeni na internetu ne ponavljaju, većina programera koristi ime domena svoje kompanije (ili ličnog bloga) na internetu kao jedinstveni prefiks imena paketa. Na primer, ime paketa u primerima koda u mojim člancima je
package com.itwanger.
02, Klasa (class)
Imenovanje klasa treba da prati sledeća pravila:
- Mora početi velikim slovom
- Najbolje je da je imenica, na primer System
- Ime klase koristi stil UpperCamelCase (kamelino imenovanje)
- Pokušajte da ne skraćujete na prva slova reči, izuzev sledećih slučajeva: DO/BO/DTO/VO/AO/PO/UID itd.

Pored toga, ako je reč o apstraktnoj klasi, koristite Abstract ili Base na početku; ako je reč o izuzetnoj klasi, koristite Exception na kraju; ako je reč o testnoj klasi, koristite Test na kraju.
03, Interfejs (interface)
Imenovanje interfejsa treba da prati sledeća pravila:
- Mora početi velikim slovom
- Najbolje je da je pridev, na primer Runnable
- Pokušajte da ne skraćujete na prva slova reči
Pogledajmo primer:
interface Printable {}Postoje i pravila između interfejsa i implementacionih klasa:
- Implementaciona klasa koristi sufiks Impl za razlikovanje od interfejsa, na primer CacheServiceImpl implementira interfejs CacheService
- Ili, AbstractTranslator implementira interfejs Translatable
04, Polje (field) i promenljiva (variable)
Imenovanje polja i promenljivih treba da prati sledeća pravila:
- Mora početi malim slovom
- Može sadržati više reči, prvo slovo prve reči malo, ostala reči počinju velikim slovom, na primer
firstName - Najbolje je da ne koristite jedan karakter, na primer
int a, osim ako nije lokalna promenljiva - Tip i srednje zagrade su neposredno povezani za označavanje niza, na primer
int[] arrayDemo, parametar niza znakova u main metodu ne treba pisati kaoString args[] - Za bilo koju promenljivu boolean tipa u POJO klasi, nemojte dodavati prefiks is, inače će parsing nekih okvira uzrokovati greške pri serijalizaciji, ja znam za fastjson
- Izbegavajte potpuno isto ime između članskih promenljivih podklase i nadklase ili lokalnih promenljivih u različitim blokovima koda, smanjuje razumevanje. Isto ime članskih promenljivih podklase i nadklase, čak i ako je tip public, može se prokompajlirati, pored toga, lokalne promenljive sa istim imenom u različitim blokovima koda iste metode su takođe legalne, ove situacije treba izbegavati.
Kontraprimer:
public class ConfusingName {
public int stock;
// ime parametra koji nije setter/getter, ne sme biti isto kao članska promenljiva ove klase
public void get(String alibaba) {
if (condition) {
final int money = 666;
// ...
}
for (int i = 0; i < 10; i++) {
// u istom telu metoda, nije dozvoljeno isti naziv kao money u drugim blokovima koda final int money = 15978;
// ...
}
}
}
class Son extends ConfusingName {
// nije dozvoljeno isto ime kao članska promenljiva nadklase public int stock;
}05, Konstanta (constant)
Imenovanje konstanti treba da prati sledeća pravila:
- Treba da su sva velika slova
- Može sadržati više reči, reči su povezane sa „_“, na primer
MAX_PRIORITY, težite da potpuno i jasno izrazite značenje, nemojte se bojati dužih imena - Može sadržati brojeve, ali ne može početi sa brojem
Pogledajmo primer:
static final int MIN_AGE = 18;06, Metod (method)
Imenovanje metoda treba da prati sledeća pravila:
- Mora početi malim slovom
- Najbolje je da je glagol, na primer
print() - Može sadržati više reči, prvo slovo prve reči malo, ostala reči počinju velikim slovom, na primer
actionPerformed()
Pogledajmo primer:
void writeBook(){}Pravila imenovanja metoda na Service/DAO sloju:
- Metode za dobavljanje jednog objekta koriste get kao prefiks
- Metode za dobavljanje više objekata koriste list kao prefiks, množina na kraju, npr: listObjects
- Metode za dobavljanje statističkih vrednosti koriste count kao prefiks
- Metode za umetanje koriste save/insert kao prefiks
- Metode za brisanje koriste remove/delete kao prefiks
- Metode za izmenu koriste update kao prefiks
07, Zaključak
Pored ovih pravila, postoje i neka zajednička pravila koja treba poštovati, na primer:
- Imenovanje u kodu ne može početi sa donjom crtom ili znakom dolara, niti se završavati donjom crtom ili znakom dolara. Kontraprimer:
_name / __name / $name / name_ / name$ / name__ - Sva imenovanja vezana za programiranje strogo su zabranjena da koriste mešavinu pinjina i engleskog, još manje je dozvoljeno direktno korišćenje kineskog. Kontraprimer:
DaZhePromotion [popust] / getPingfenByName() [ocena] / String fw[Fuva] / int nekapromenljiva = 3 - U kodu i komentarima izbegavajte reči rasne diskriminacije bilo kog jezika. Kontraprimer:
RIBENGUIZI / Asan / blackList / whiteList / slave - Imena metoda, parametara, članskih promenljivih, lokalnih promenljivih uniformno koriste stil lowerCamelCase.
- Izbacite potpuno nestandardne skraćenice, izbegavajte situacije gde se iz teksta ne razume značenje. Kontraprimer: AbstractClass „skraćeno“ na AbsClass; condition „skraćeno“ na condi; Function „skraćeno“ na Fu, ovakve proizvoljne skraćenice ozbiljno smanjuju čitljivost koda.
- Da biste postigli cilj da se kod sam objašnjava, prilikom imenovanja bilo kojeg prilagođenog programskog elementa, koristite što potpuniju kombinaciju reči za izražavanje.
- Prilikom imenovanja konstanti i promenljivih, imenica koja predstavlja tip stavlja se na kraj rečenice kako bi se povećala prepoznatljivost. Pozitivan primer:
startTime / workQueue / nameList / TERMINATED_THREAD_COUNT - Ako modul, interfejs, klasa, metod koriste dizajn obrasce, prilikom imenovanja treba odraziti konkretan obrazac. Odrazivanje dizajn obrazca u imenu pomaže čitaocu da brzo razume koncept arhitektonske dizajna. Na primer:
public class OrderFactory;public class LoginProxy;public class ResourceObserver; - Ime enum klase nosi sufiks Enum, imena članova enumeracije moraju biti sva velika slova, reči su razdvojene donjim crtama. Enum je ustvari specijalna klasa konstanti, a konstruktor je podrazumevano i neposredno privatan. Na primer:
ime enuma je ProcessStatusEnum imena članova: SUCCESS / UNKNOWN_REASON.
