Wszyscy znamy konwencję nazewnictwa nazw pakietów Java. Tj. www.evilcorp.com
, Zgodnie z konwencją, wolałby mieć swoje pakiety Java com.evilcorp.stuff
.
Coraz bardziej mam tego dość. Jako programista komercyjny ciągle napotykam, że nazwa pakietu oprogramowania jest całkowicie nieistotna z powodu zmiany marki, nabycia lub podobnego.
W świecie open source jest mniej zmian nazw, więc ma to sens. Wydaje mi się jednak, że okres trwałości wielu programów (komercyjnych / wewnętrznych) jest znacznie dłuższy niż czas ich produkcji.
Problem często się pogłębia, gdy projekty oprogramowania podejmują decyzję działu marketingu, by używać nazwy du Jour, której używają, odnosi się do określonego projektu. Nazwa, która bez wątpienia zmieni 3 miesiące później, aby nowe ubrania cesarza wydawały się świeże i nowe.
Z tego powodu najczęściej przestałem używać odwrotnej domeny jako nazwy pakietu. To prawda, że jeśli odbywa się to na dużą skalę, istnieje ryzyko kolizji nazw, ale na pewno można to złagodzić, stosując albo „unikalne” nazwy oprogramowania, unikając słów ogólnych, albo wykorzystując domenę odwrotną do projektów przeznaczonych do sprzedaży / wydania jako biblioteki .
Inne przemyślenia?
We're all familiar with the Java package name convention of turning the domain name around.
- um .. nie jesteśmy ... :)com.java.etc.etc
. Apache (na stronie Apache.org) nazywa swoje pakietyorg.apache.etc.etc
. Widzisz wzór.Odpowiedzi:
Przytoczę radę Microsoft dotyczącą przestrzeni nazw (pakietów .NET), która nie ma konwencji nazw domen. Myślę, że to dobra rada także dla pakietów Java, ponieważ nie wierzę, że nazwa domeny reprezentuje solidną i stabilną tożsamość.
Jeśli nawet nazwa Twojej firmy jest niestabilna, możesz zacząć od nazwy produktu.
źródło
Patrzysz na rozwiązanie innego problemu, mianowicie jak uniknąć tego, aby programista X i programista Y stawiali sobie nawzajem palce, umieszczając pliki w tym samym pakiecie.
„Po prostu odwróć nazwę swojej domeny” rozwiązuje to w elegancki sposób, ponieważ jesteś pewien, że jeśli X i Y nie są ze sobą powiązane, nie wybiorą tej samej przestrzeni nazw pakietów.
źródło
Konwencja nie jest wadliwa. Ludzie mają wady, jak dobrze się zilustrowałeś.
Mogę wymyślić 2 korzyści:
źródło
Odwrócona nazwa domeny została użyta, aby uniknąć kolizji nazw w przypadku, gdy różne organizacje używają tych samych nazw klas w swoich bibliotekach. Jest to proste rozwiązanie i off-cource ma pewne wady (np. Co z kolizjami nazw dla klas w tej samej organizacji?).
Nie musisz go używać, jest to konwencja, a nie zasada „zrób lub umrzyj”. Na przykład niektórzy programiści Java nie przestrzegają konwencji Java Code .
Ale rozważ alternatywy. Jak na przykład chciałbyś otrzymać dwie w pełni kwalifikowane nazwy klas dla LogFactory:
lub
Tak więc, moim zdaniem, używaj tego, co chcesz, pod warunkiem, że obejmuje to zdrowy rozsądek i uwagę dla użytkowników twojej biblioteki.
źródło
Kiedy rozpoczynam nowy projekt, zawsze nalegam na wewnętrzną i niezmienną nazwę, którą marketingowcy mogą znać lub nie, ponieważ będzie o niej mowa tylko w kodzie źródłowym. W ten sposób nie muszę się martwić o zmiany nazw projektów i zanieczyszczenie przestrzeni nazw.
Ten scenariusz jest dla mnie odpowiedni, ponieważ kod źródłowy zwykle nie jest ważną częścią produktu, tzn. Projekty są zwykle zamkniętymi źródłowymi, zastrzeżonymi systemami. Jednak w projektach typu open source, w których kod źródłowy jest produktem, może to nie być możliwe.
źródło