Polski alfabet ma dziewięć liter z własnymi znakami diakrytycznymi — ą, ć, ę, ł, ń, ó, ś, ź, ż — z których każda ma odrębną wielką formę (Ą, Ć, Ę, Ł, Ń, Ó, Ś, Ź, Ż). W przeciwieństwie do tureckiego i/İ, zamiana wielkości liter dla polskich znaków działa w każdym języku programowania w pełni przewidywalnie — problemem nigdy nie jest samo mapowanie wielka/mała litera, tylko to, że w identyfikatorach kodu te znaki niemal zawsze się pomija.
Główne style
- camelCase — pierwsze słowo małą literą, każde kolejne wielką, bez separatorów:
userName. Standard dla zmiennych i funkcji w JavaScript, Java, C#. - PascalCase — to samo, ale też pierwsze słowo wielką literą:
UserName. Używany dla klas i komponentów niemal wszędzie. - snake_case — słowa oddzielone podkreśleniami, wszystko małymi literami:
user_name. Standard w Pythonie i dla nazw kolumn w bazach danych. - kebab-case — słowa oddzielone myślnikami:
user-name. Standard dla adresów URL, klas CSS i atrybutów HTML, ponieważ podkreślenie jest mniej typowe w URL.
Dlaczego to nie tylko estetyka
Nazwa zmiennej ilość jest technicznie równie poprawna jak ilosc w każdym nowoczesnym języku programowania, ale niemal nikt jej tak nie zapisuje — konwencja pomijania polskich znaków w kodzie wzięła się z czasów, gdy kodowanie znaków (na przykład stare strony kodowe zamiast UTF-8) bywało niekompatybilne między systemami, a nie z jakiegoś technicznego ograniczenia współczesnych języków. Liczy się przede wszystkim spójność stylu dla linterów, autouzupełniania IDE i generatorów dokumentacji.
Do czego potrzebna jest konwersja
- Mapowanie pola z API JSON (zwykle camelCase) na nazwę kolumny bazy danych (zwykle snake_case).
- Zmiana nazw zmiennych przy portowaniu kodu z jednego języka do drugiego z inną konwencją.
- Generowanie sluga kompatybilnego z URL lub klasy CSS z tekstu nagłówka, również polskiego.
Niejednoznaczność ze skrótami
Identyfikator taki jak userID czy XMLParser stawia konwerter przed wyborem: traktować skrót jako jedno „słowo” czy rozbić go na osobne litery. Różne narzędzia rozwiązują to inaczej — ten konwerter rozpoznaje ciąg wielkich liter jako osobne słowo (XMLParser → XML + Parser), ale warto sprawdzić wynik ręcznie, jeśli nazwa trafi bezpośrednio do kodu produkcyjnego.