Standard Nazewnictwa Repozytoriów
Wszystkie repozytoria w organizacji pl.rachuna-net są organizowane w namespace’ach (katalogach). Każdy namespace ma jasno zdefiniowany cel, a repozytoria w nim zawarte podlegają spójnym regułom nazewnictwa.
Cel utworzenia standardu
Section titled “Cel utworzenia standardu”W miarę wzrostu organizacji, liczba repozytoriów rośnie znacznie szybciej niż struktura zespołów. Bez jasnych reguł nazewnictwa organizacja szybko staje się chaotyczna:
- 🔍 Trudne wyszukiwanie - trudno znaleźć repozytorium, gdy nazwy są losowe
- 😕 Brak spójności - każdy developer wymyśla własny format nazw
- 🤝 Słaba kolaboracja - nowe osoby nie wiedzą gdzie szukać kodu
- 🚀 Problemy ze skalowaniem - CI/CD pipeline’y, automation i skripty zakładają spójne nazwy
- 📚 Dokumentacja rozmyta - trudno mapować repozytoria do dokumentacji
Korzyści ze standardu:
Section titled “Korzyści ze standardu:”- Samo-dokumentujące się - nazwa od razu mówi o celu repozytorium
- Spójne - wszyscy wiedzą jak powinno się to wyglądać
- Skalowalne - łatwo dodawać nowe repozytoria bez chaosu
- Szybsze odnajdywanie - logiczna struktura ułatwia nawigację
- Łatwa automatyzacja - skrypty mogą zakładać spójne pattern’y
Notacja Reverse DNS
Section titled “Notacja Reverse DNS”Struktura namespace’ów opiera się na koncepcji Reverse DNS Notation (odwróconej notacji DNS). Ścieżka w systemie plików bezpośrednio mapuje się na przestrzeń nazw podobnie jak w:
- Java packages (np.
com.example.myapp) - Kubernetes namespaces (np.
com.rachuna-net.apps.docs) - Konwencjach Industry Standard (Go modules, Rust crates)
Praktyczna korzyść:
Ścieżka w w gitlabie (full_path):
Struktura Namespace’ów
Section titled “Struktura Namespace’ów”Główne namespace’y organizacji:
Zastosowanie
Section titled “Zastosowanie”-
Wewnętrzne naming - Aplikacje mogą używać
pl.rachuna-net.apps.docsjako:- Docker image tags:
pl.rachuna-net.apps.docs:latest - Kubernetes namespaces:
pl-rachuna-net-apps-docs - Package names:
pl.rachuna-net.apps.docs(Java) - Module names:
pl.rachuna-net.apps.docs(Go)
- Docker image tags:
-
Wersjonowanie aplikacji - W fazie development:
- Feature branch:
pl.rachuna-net.apps.docs-feat-auth:v0.1.0-dev - Release candidate:
pl.rachuna-net.apps.docs:v1.0.0-rc1 - Production:
pl.rachuna-net.apps.docs:v1.0.0
- Feature branch:
-
Automatyzacja - Skrypty mogą zakładać hierarchiczną strukturę:
Dzięki temu wszystkie narzędzia (Docker, Kubernetes, CI/CD) mogą pracować z jednolitą konwencją bez dodatkowej konfiguracji.
Reguły Nazewnictwa
Section titled “Reguły Nazewnictwa”Ogólne Zasady
Section titled “Ogólne Zasady”- Małe litery - Wszystkie nazwy repozytoriów używają tylko małych liter
- Kebab-case - Słowa oddzielane myślnikami (nie underscores, nie camelCase)
- Opisowe nazwy - Nazwa powinna jasno opisywać cel repozytorium
- Bez liczb na początek - Nazwy nie zaczynają się liczbą
- Bez polskich znaków - Tylko ASCII (a-z, 0-9, -)
Przykłady Poprawnych Nazw
Section titled “Przykłady Poprawnych Nazw”❌ Niepoprawne:
MyApp- camelCasemy_app- underscoremyapp- zbyt krótkie, niejasne1-app- zaczyna się liczbąmoja-aplikacja- polskie znaki
✅ Poprawne:
docs- czytelne, jasnevault-scrapper- jasny cel, kebab-casegitlab-ci- standard, descriptivek3s-gitops- descriptive, versioning