camelCase, snake_case, kebab-case: razvojni vodič za imenovanje
Kada imenujete varijable, funkcije, klase ili URL-ove, bitan je format koji odaberete. Različiti jezici i konteksti imaju različite konvencije: JavaScript koristi camelCase, Python preferira snake_case, CSS svojstva koriste kebab-case, a konfiguracijske konstante koriste CONSTANT_CASE. Razumijevanje svakog od njih i znanje kako pretvoriti između njih praktična je vještina koja vaš kod održava dosljednim i čitljivim.
camelCase: JavaScript standard
camelCase počinje malim slovom i velikim početnim slovom svake sljedeće riječi, bez razdjelnika. Nazivi varijabli i funkcija u JavaScriptu slijede ovaj obrazac: getUserById, calculateTotalPrice, handleSubmitClick. Većina JSON ključeva također je po konvenciji camelCase.
Naziv dolazi od "grba" koje stvaraju velika slova. Kompaktan je, čitljiv i de facto standard za JavaScript, TypeScript, Javu i C#. Kada trebate pretvoriti tekst u camelCase—bilo da gradite generator koda ili standardizirate nazive varijabli— pretvarač velikih i malih slova obrađuje to u jednoj pasti.
snake_case: Python i baze podataka
snake_case spaja riječi s podvlakama i drži sva slova malim slovima: get_user_by_id, calculate_total_price, handle_submit_click. Programeri Pythona koriste ovo za nazive varijabli i funkcija, prema smjernicama za stil PEP 8. Nazivi SQL stupaca i tablica također često koriste snake_case, kao i varijable okruženja u većini sustava.
snake_case je čitljiv čak iu obliku velikih slova (DATABASE_PASSWORD, MAX_RETRY_COUNT), zbog čega je CONSTANT_CASE—uppercase snake_case—univerzalna konvencija za konfiguracijske konstante i konačne varijable u svim jezicima.
kebab-case: URL-ovi i CSS
kebab-case spaja riječi crticama i koristi sva mala slova: get-user-by-id, calculate-total-price. Vidite ga posvuda u URL-ovima – članci slugs, stranice proizvoda, nazivi ruta – jer su crtice prijateljske prema tražilicama i manja je vjerojatnost da će ih parseri pogrešno protumačiti nego podvlake. Nazivi CSS klasa i prilagođeni HTML atributi također koriste kebab-case po konvenciji.
Izrada URL-sigurnih identifikatora ili naziva sličnih slug-u iz običnog teksta jedna je od najpraktičnijih upotreba. The slug generator pretvara fraze u URL-spremne nizove kebab-case, usput uklanjajući interpunkciju i naglaske.
PascalCase: klase i tipovi
PascalCase (ili UpperCamelCase) piše veliko prvo slovo: GetUserById, CalculateTotalPrice. To je konvencija za nazive klasa, definicije tipova i komponente u TypeScriptu, C#, Javi i Reactu. Kada radite s objektno orijentiranim jezicima ili komponentnim okvirima, to je ono za čim ćete posegnuti.
Pretvaranje između formata
Prijelaz s jedne konvencije na drugu zahtijeva dva koraka: prvi Split zatim identifikator u zasebne riječi ponovno se pridružiti njih sa separatorom cilja i kućištem. Tu alati pojednostavljuju proces.
Ako imate camelCase identifikator i trebate razumjeti njegove dijelove—možda ga preimenovati ili uskladiti s snake_case verzijom— split camelCase alat ga razbija: getUserById postaje get User By Id. Nakon što su riječi razdvojene, pretvarač velikih i malih slova možete ih preformatirati u bilo kojoj konvenciji koja vam je potrebna. Programeri također koriste ove alate kada refaktoriraju kod preko jezičnih granica ili kada prevode specifikacije API-ja i imena internih varijabli i obrnuto.
Kada koristiti svaku konvenciju
Pravi izbor ovisi o kontekstu, a ne o preferencijama. JavaScript i JSON koriste camelCase. Python, SQL i varijable okruženja koriste snake_case. URL-ovi i CSS koriste kebab-case. Nazivi tipova i klasa koriste PascalCase. Konfiguracijske konstante koriste CONSTANT_CASE na svim jezicima. Slijeđenje ovih konvencija čini vaš kôd trenutačno prepoznatljivim svima koji su upoznati s tim ekosustavom.
Dosljednost je važnija od specifične konvencije - ako miješate formate u istoj datoteci ili projektu, čitatelji moraju mijenjati kontekst i pogreške postaju lakše. Alati za pretvaranje i dijeljenje identifikatora pomažu vam da ostanete dosljedni kada radite na više jezika ili migrirate kod između projekata.