Jestem na etapie przedpremierowym projektu PHP typu open source, który, mam nadzieję, zostanie wykorzystany przez innych programistów we własnych projektach. Projekt obecnie nie obsługuje przestrzeni nazw i staram się ocenić, czy powinien używać przestrzeni nazw lub konwencji nazewnictwa PEAR z Dir_Subdir_Class, która wydaje się mieć wszystkie te same zalety techniczne bez pewnych wad. Szczerze mówiąc, nie jest to łatwy wybór.
Niektóre uwagi dotyczące przestrzeni nazw:
- Jednym ze sposobów, w jaki mój projekt próbuje się wyróżnić, zapewniając prostszy interfejs API niż inne podobne projekty. Ponieważ przestrzenie nazw są nowe, a także dlatego, że są bardziej skomplikowane niż konwencja nazewnictwa PEAR, wprowadzenie ich do bazy kodu sprawi, że mój projekt będzie mniej prosty w użyciu. Wdrażając je, tracę pewne zróżnicowanie pod względem łatwości użytkowania.
- Chociaż widzę pewne korzyści dla przestrzeni nazw, wydaje się, że nie rozwiązują one problemu, który należy rozwiązać w nowoczesnym produkcie PHP korzystającym z konwencji nazewnictwa PEAR. Konflikty nazewnictwa podczas korzystania z mojego projektu powinny być minimalne, jeśli nie istnieją.
- W tym artykule zastanawiam się nad przyjęciem przestrzeni nazw, ponieważ ich implementacja była mniej niż gwiezdna.
- Waham się również, by wskoczyć na modę, która nigdzie się nie pojawi. Ponieważ przestrzenie nazw są nową funkcją PHP, nie jestem jeszcze przekonany, że staną się standardem.
- Zgodność. Prawie cały kod PHP, który kiedykolwiek został napisany, nie używa przestrzeni nazw, ponieważ jest to nowa funkcja. Inne biblioteki byłyby niezgodne bez konwersji.
Kilka punktów za korzystanie z przestrzeni nazw:
- Postrzeganie. Jeśli przestrzenie nazw staną się standardem i najlepszą praktyką, mój projekt może szybko zostać uznany za nieprofesjonalny i przestarzały bez nich.
- Konkurencja. Podczas gdy niektóre konkurencyjne projekty PHP zaczynają wykorzystywać przestrzenie nazw w swoich najnowszych wersjach, wiele jeszcze nie zrobiło skoku. Takie postępowanie może teraz zapewnić mojemu projektowi wsparcie w innych projektach.
- Przyszłe prace byłyby łatwiejsze, gdybym zmienił projekt teraz, zanim projekt zostanie upubliczniony, a nie później, w którym musiałbym przez chwilę obsługiwać dwie jego wersje.
- Chcę wspierać najlepsze praktyki i jeśli przestrzenie nazw staną się najlepszą praktyką dla PHP, mój projekt powinien z nich skorzystać.
Z tego co mogę powiedzieć, musisz wybrać jedną lub drugą drogę; nie możesz zrobić obu. Czy są jakieś punkty, których nie wziąłem pod uwagę? Czy są jakieś obiektywne znaki (proszę nie flamewars), które wskazują w kierunku przestrzeni nazw i stają się profesjonalnym standardem dla PHP? Byłbym wdzięczny za wszelkie spostrzeżenia i zasoby, którymi chciałbyś się podzielić, ponieważ muszę wkrótce podjąć decyzję.