![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Jak w pytaniu, czy kiedykolwiek, w praktyce, potrzebowaliście namespaców? Nie chodzi o używanie, tylko rzeczywistą potrzebę. Stworzyłem już parę średniej(?) wielkości serwisów (nie wiem jak to konkretnie zdefiniować, ale były to CRM, czy system mikrokredytów). I nigdy nie potrzebowałem użycia namespaces. W użyciu był tylko jeden framework, było sobie ~20 kontrolerów i ~20 modeli, oraz może z trzy zewnętrzne biblioteki. Nigdy nie było nawet ryzyka zaistnienia jakiejkolwiek kolizji nazw. Teraz przysiadam się do poprawek pewnego projektu w YII2 i wszędzie muszę wpisywać use siaki namespaces/podnamespace/podpodnamespace a potem kolejne use to i siamto tylko dlatego, że chcę użyć jakiejś klasy. To jakiś obłęd... Tu też w użyciu jest jeden framework, żadnych dodatkowych bibliotek a ja się muszę męczyć i tracić czas. Ja wiem, że to jest "pro" i w ogóle, ale tak w praktyce na 10 ostatnich projektów, w ilu wam to było naprawdę przydatne? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tutaj nie rozchodzi się o to czy ty to lubisz czy nie. W wielu innych poważnych językach przestrzenie nazw istniały od samego początku, i nic poza przestrzeniami nie ma. Więc rzucenie frazesem "jedni je lubią, inni nie lubią" jest całkowicie nie namiejscu. Przestrzenie nazw powstały po to żeby móc: lepiej organizować kod, nie martwić się o konflikt nazw, kontrolować zależności a dzięki PSR struktura katalogów czy nazewnictwa klas nie będzie wymyślana w każdym frameworku z osobna. Nie potrzebujesz przestrzeni nazw? Zapewne nie, kiedy tworzysz 2-3 klasy na krzyż. W przypadku dużych projektów, takie rzeczy mają znaczenie. A jeżeli ktoś dzisiaj się pyta o przestrzenie nazw, w momencie kiedy php 5.3 wydano ponad 6 lat temu, to są dwa wyjścia, albo jest nowicjuszem, albo starą wygą co wszędzie jeszcze klepie global. Jedyne o czym można tutaj dywagować, to nie jest fakt istnienia samych przestrzeni nazw (albo klepiemy, albo programujemy), lecz powiedzmy separator do tego użyty (backslash). Czy w innych językach trzeba pisać use? Raczej nie use, ale using, import jak najbardziej. Czy trzeba pisać do każdej przestrzeni? Nie, tak samo jak w innych językach, tylko w php działa to nieco inaczej. Czy w innych językach trzeba pisać N razy import/using ? Tak, jeżeli twoja klasa wymaga tyle zależności z innych przestrzeni to jak najbardziej. Więc jęczenie że trzeba to pisać za każdym razem, jest bardziej brakiem odpowiednich narzędzi które nam to ułatwią, albo zwykłej niewiedzy.
To nie jest coś co można akceptować lub nie, bo gdyby przestrzenie nazw istniały od samego początku, to nie było by takich problemów z nazewnictwem niektórych funkcji, np strstr, str_replace, substr, a mogłoby by to wyglądać tak: str/match, str/replace, str/substring etc. No ale grupka starych wyg/nowicjuszy zawsze będzie narzekać, bo dodadzą im jedną rzecz dodatkową do zapamiętania/nauczenia się.. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 16:19 |