![]() |
![]() |
![]()
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: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
@Pyton_000 - ale w praktyce jest tak że PSR-4, różni się tylko od PSR-3 ładowaniem klas i tylko to miałem na myśli, bo i tak w większości przypadków używając PSR-3, używa się wcześniejszych, więc nie ma znaczenia jaką liczbę wpiszemy. Choć uważam że powstanie PSR-4 było błędem i znakiem, że nawet mała grupa ludzi ma w swoich szeregach maruderów.
@Pilsener - świetna poprawa humoru z rana, dzięki (IMG:style_emoticons/default/smile.gif) Cytat Poza tym, konieczność pisania instrukcji use na początku klasy przypomina mi includowanie plików poprzez require_once - bardzo tego nie lubię, od czego w końcu jest autoloader? No i przejrzystość kodu czasem siada. Chyba nie bardzo zrozumiałeś działanie przestrzeni nazw i autoloadera. Poza tym kto Wam każe pisać "use" na początku pliku? To nie jest wymagane przy używaniu przestrzeni nazw. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Naprawdę do mnie nie trafia argument, przeciwko przestrzeniom nazw, że kiedyś pisało się A_B_C, a teraz trzeba A\B\C. To nie jest żaden argument. Czy dla Was czytelniejsze jest to: Symfony_HttpFoundation_Request niż to Symfony\HttpFoundation\Request? To działa także w drugą stronę. Co za różnica, czy napiszę A\B\C czy A_B_C. Liczba znaków czy czytelność obu jest dokładnie taka sama, a chyba nawet A_B_C jest dla mnie nieco czytelniejsze. Poza tym kto Wam każe pisać "use" na początku pliku? To nie jest wymagane przy używaniu przestrzeni nazw. Oczywiście, że nie jest wymagane, ale czym różni się używanie w kodzie tasiemców A_B_C_D od A\B\C\D? (IMG:style_emoticons/default/biggrin.gif) Jedynie zamianą znaku "_" na "\". |
|
|
![]()
Post
#4
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
To działa także w drugą stronę. Co za różnica, czy napiszę A\B\C czy A_B_C. Liczba znaków czy czytelność obu jest dokładnie taka sama, a chyba nawet A_B_C jest dla mnie nieco czytelniejsze. Ja tam wolę czystość i przejrzystość kodu, dlatego mam:
Jeśli wolisz pisać za każdym razem A_B_C to ok, o gustach się nie dyskutuje, ale nie jest to czytelniejsze. Naprawdę nieraz community PHP mnie zadziwia, niektórzy najchętniej by zostali przy funkcjach i potworkach typu CI czy stary Cake. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ja tam wolę czystość i przejrzystość kodu, dlatego mam:
Jeśli wolisz pisać za każdym razem A_B_C to ok, o gustach się nie dyskutuje, ale nie jest to czytelniejsze. Wiesz, zgadzam się, że w tak prostym, trywialnym przykładzie, jak ten, który podałeś, łatwiej, lepiej i przyjemniej jest użyć namespace i use. Problem w tym, że w praktyce nie rzadko człowiek trafia na klasy, które mają po 2000+ linii kodu, w których jest 20+ use i jak nie znasz takiego kodu, a musisz go przejrzeć, zrozumieć, nanieść poprawki, to przeglądanie tego jest zwyczajnie utrudnione, bo gdzieś tam w linii 893 $response = new Response() nić Ci nie powie, póki nie skoczysz do use i nie sprawdzisz, co to za Response. Owszem, IDE pomagają, ale: 1) co chwilę trzeba najeżdżać myszką nad nazwę klasy i czytać skąd pochodzi (aż do poznania i zapamiętania kodu); 2) uważam, że trochę głupie jest uzależnianie się od IDE z podpowiedziami, żeby wygodnie przeczytać i zrozumieć kod. Kod powinien być tak napisany, aby można go było łatwo przeczytać i zrozumieć po wydrukowaniu. I żeby nie było - lubię jednoczłonowe nazwy (w powyższym przykładzie użyłbym aliasa HttpResponse, bo jest bardziej zrozumiały), ale czy jestem zachwycony namespaces w PHP? Nie, to tylko taki ficzer (IMG:style_emoticons/default/wink.gif) żadna rewelacja. Na dodatek preferuję składnię importu pakietów z kropką jak w Javie, a PHPowe use \d\s\f\g zwyczajnie mi się nie podoba, ale cóż z tego... (IMG:style_emoticons/default/tongue.gif) Jest jak jest, nie ma co narzekać, i tak musimy korzystać z tego, co dostępne (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
1) co chwilę trzeba najeżdżać myszką nad nazwę klasy i czytać skąd pochodzi (aż do poznania i zapamiętania kodu); A czy nie korzystając z namespace nie musisz dużego kodu analizować? Też musisz. 2) uważam, że trochę głupie jest uzależnianie się od IDE z podpowiedziami, żeby wygodnie przeczytać i zrozumieć kod. Kod powinien być tak napisany, aby można go było łatwo przeczytać i zrozumieć po wydrukowaniu. Ale czemu uzależnione? Przecież możesz sobie spokojnie i bez problemu przeczytać kod nawet w Notepad++. 20 linii use to aż taki problem? I żeby nie było - lubię jednoczłonowe nazwy (w powyższym przykładzie użyłbym aliasa HttpResponse, bo jest bardziej zrozumiały), ale czy jestem zachwycony namespaces w PHP? Nie, to tylko taki ficzer (IMG:style_emoticons/default/wink.gif) żadna rewelacja. Na dodatek preferuję składnię importu pakietów z kropką jak w Javie, a PHPowe use \d\s\f\g zwyczajnie mi się nie podoba, ale cóż z tego... (IMG:style_emoticons/default/tongue.gif) Jest jak jest, nie ma co narzekać, i tak musimy korzystać z tego, co dostępne (IMG:style_emoticons/default/smile.gif) No bo to jest tylko ficzer i on nie ma dupy urywać (IMG:style_emoticons/default/smile.gif) PS. Też wolałbym z kropką. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 10:53 |