Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy kiedykolwiek, w praktyce, potrzebowaliście namespaców?
konrados
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Cytat
AD1. Jeżeli masz w klasie 100x USE, to czas się zastanowić, czy twoja klasa nie jest bezsensu. Dodać use? Edytor dodaje to sam. Usunąć use? Edytor podkreśla nieużywane zmienne/klasy/przestrzenie/definicje etc. Warunkiem jest używanie IDE a nie notatnika.
- ona jest bez sensu, ale:
- nawet najlepiej napisana klasa z czasem wymaga refaktoryzacji (a ta majta na ostatnim wymionie bo w typowej firmie nie ma czasu nawet na zakodowanie połowy tego, co biznes chce)
- edytor nic nie robi sam, trzeba najczęściej coś kliknąć, użyć myszy a może i mózgu (by wybrać z listy właściwą klasę)
- i nie piszę kodu sam, projektów jest wiele a nierzadko też wiele zespołów i wiem, że jeśli popełnienie błędu jest możliwe to każdy prędzej czy później go popełni

Cytat
AD2. Ale ten alias stworzyć możesz, bez przestrzeni nazw, tego aliasu stworzyć nie możesz i musisz zmieniać nazwę swojej klasy.
- ja to wiem doskonale, ale rozchodzi się o to, że COŚ trzeba zrobić - np. pomyśleć chwilę (co boli) - a ja może wolałbym tą chwilę pomyśleć o dziewczynie albo siorbnąć łyka inki i nic nie robiąc osiągnąć taki sam efekt (IMG:style_emoticons/default/Lkingsmiley.png)

Cytat
AD3. W normalnym edytorze po najechaniu kursorem na klasę masz albo ścieżkę jej pochodzenia, albo jej przestrzeń nazw. O ficzerach jak: go to declaration, find usages, go to implementations - nawet nie wspomnę, bo takich rzeczy w notatniku nie ma.
- jak wyżej, co z tego jak trzeba jednak najeżdżać na te nazwy, to ja już wolę najeżdżać na nejmspejsy (IMG:style_emoticons/default/baaasmiley.gif)

Cytat
AD4. nazwa klasy się nie wydłuża. Nazwa klasy jest krótsza niż "zendowy" standard, dlatego że raz użyte "use" zwalnia cię z potrzeby pisania tego drugi raz. A_AB_ABC - chciałbym zobaczyć przykład.
- pisałem o zend 1 vs symfony 2, pierwszy lepszy link: http://symfony-docs.pl/cookbook/bundles/best_practices.html (ale czy te wszystkie praktyki są takie debeściarskie czy raczej niecne?) I use nie skraca de facto nazwy klasy (tylko jej zapis w miejscu użycia rozbijając nazwę klasy na dwie części) - nazwa klasy jest taka, jaką zwraca funkcja get_class (zbindowana u mnie od czasu wynalezienia ekstrakcji fabryki obiektów) i taka, jaka wynika ze struktury folderów + nazwy pliku z klasą. Przecież wiem, że w folderze "controller" są kontrolery, po co każda klasa ma się nazywać ..._controller_userController a plik xController.php? A może twórcy symfony używali notatnika? (IMG:style_emoticons/default/nerdsmiley.png)

Cytat
Zauważyłem że większość przeciwników namespaców, to są albo początkujący, dla których każdy dodatkowy schodek, to jest przepaść. Albo ludzie którzy zatrzymali się w pechapie na poziomie początków php5..
- nie zgodzę się. Właśnie początkujący rzucają się na te wszystkie najnowsze wynalazki by pokazać, jacy to są zaj... (IMG:style_emoticons/default/smile.gif) Starzy wiedzą doskonale, że każdy "usprawniacz" to wada w postaci dodatkowej komplikacji, co wydłuża czas projektu i zwiększa liczbę błędów - dlatego jak ktoś chce dołączyć do projektu np. composera to powinien mieć chyba jakieś argumenty za poza "przeskoczmy schodek, nie bądźmy wapniakami!" (IMG:style_emoticons/default/ohno-smiley.gif)

I ja chętnie tych argumentów "za" posłucham - poza pewnym ułatwieniem unit testów są jakieś inne WYMIERNE zalety? Poza tym każdy powinien zdawać sobie sprawę z wad jak i zalet rozwiązań, których używa i robić te wszystkie straszne rzeczy świadomie (IMG:style_emoticons/default/smile.gif)

I żeby nie było - nie jestem przeciwnikiem ani zwolennikiem (możliwe, że umiarkowanym sceptykiem), kodziło się strukturalnie, pseudo-obiektowo w PHP 4, prawie obiektowo w PHP 5 a teraz wstrzykuje się traity adnotacją i też nie działa.

Na co jutro sobie ponarzekam? Może będzie refleksja nad refleksją? Się zobaczy (IMG:style_emoticons/default/Lkingsmiley.png)
Go to the top of the page
+Quote Post
by_ikar
post
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Cytat
- ona jest bez sensu, ale:
- nawet najlepiej napisana klasa z czasem wymaga refaktoryzacji (a ta majta na ostatnim wymionie bo w typowej firmie nie ma czasu nawet na zakodowanie połowy tego, co biznes chce)
- edytor nic nie robi sam, trzeba najczęściej coś kliknąć, użyć myszy a może i mózgu (by wybrać z listy właściwą klasę)
- i nie piszę kodu sam, projektów jest wiele a nierzadko też wiele zespołów i wiem, że jeśli popełnienie błędu jest możliwe to każdy prędzej czy później go popełni

Refaktoryzacje w łatwy sposób przeprowadzić na poziomie edytora. Ludzie, poważnie, zatrzymaliście się na notatniku? Edytor może robić sam, wystarczy że odpowiednio go ustawisz. TO NIE JEST NOTATNIK. Do pisania w grupie używa się wersjonowania kodu git/svn i tam każdą zmianę łatwo wyłapać i cofnąć..

Cytat
- pisałem o zend 1 vs symfony 2, pierwszy lepszy link: http://symfony-docs.pl/cookbook/bundles/best_practices.html (ale czy te wszystkie praktyki są takie debeściarskie czy raczej niecne?) I use nie skraca de facto nazwy klasy (tylko jej zapis w miejscu użycia rozbijając nazwę klasy na dwie części) - nazwa klasy jest taka, jaką zwraca funkcja get_class (zbindowana u mnie od czasu wynalezienia ekstrakcji fabryki obiektów) i taka, jaka wynika ze struktury folderów + nazwy pliku z klasą. Przecież wiem, że w folderze "controller" są kontrolery, po co każda klasa ma się nazywać ..._controller_userController a plik xController.php? A może twórcy symfony używali notatnika? (IMG:style_emoticons/default/nerdsmiley.png)

Symfony to nie przestrzenie nazw, a same nazewnictwo kontrolerów możesz w łatwy sposób samemu zmienić. Nie wiem zupełnie jak to się odnosi do namespaców samych w sobie. Użyłeś argumentu który nijak nie odnosi się do przestrzeni nazw samej w sobie. Porównałeś jeden framework z drugim, co jest bezsensu.

Cytat
- nie zgodzę się. Właśnie początkujący rzucają się na te wszystkie najnowsze wynalazki by pokazać, jacy to są zaj... (IMG:style_emoticons/default/smile.gif) Starzy wiedzą doskonale, że każdy "usprawniacz" to wada w postaci dodatkowej komplikacji, co wydłuża czas projektu i zwiększa liczbę błędów - dlatego jak ktoś chce dołączyć do projektu np. composera to powinien mieć chyba jakieś argumenty za poza "przeskoczmy schodek, nie bądźmy wapniakami!" (IMG:style_emoticons/default/ohno-smiley.gif)

Jeżeli według ciebie każdy feature to wada w postaci dodatkowej komplikacji.. to lepiej żebyś zastanowił się jeszcze raz nad swoimi argumentami. Napisałem że albo świeżacy, albo sztywniacy którzy się zatrzymali w początkach php5. No a ty niejako potwierdziłeś to co napisałem.

Jeszcze tylko powiedz z jakiego edytora korzystasz i wszystko będzie jasne (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- konrados   Czy kiedykolwiek, w praktyce, potrzebowaliście namespaców?   31.08.2014, 09:50:39
- - Pyton_000   Namespace, composer, psr-4   31.08.2014, 10:00:38
- - konrados   Cytat(Pyton_000 @ 31.08.2014, 11:00:3...   31.08.2014, 10:05:55
- - Pyton_000   Nie, chodzi o przykład autoloadera opartego o comp...   31.08.2014, 10:07:53
- - konrados   Cytat(Pyton_000 @ 31.08.2014, 11:07:5...   31.08.2014, 10:12:34
- - Pyton_000   Możesz, dzięki temu masz odseparowanie swoich bibl...   31.08.2014, 10:19:31
- - konrados   Dzięki!   31.08.2014, 10:21:24
- - by_ikar   Use nie musisz wpisywać, jeżeli używasz jakiegoś n...   31.08.2014, 11:01:34
- - konrados   Cytat(by_ikar @ 31.08.2014, 12:01:34 ...   31.08.2014, 11:18:41
|- - !*!   Cytat(konrados @ 31.08.2014, 12:18:41...   31.08.2014, 11:52:02
- - Pyton_000   No widzisz, Ty szukałeś w n katalogach a mając dos...   31.08.2014, 11:47:24
- - konrados   Cytat(Pyton_000 @ 31.08.2014, 12:47:2...   31.08.2014, 12:17:15
- - Pyton_000   !*! psr-3 głównie traktuje o interfejsie k...   31.08.2014, 12:23:02
- - konrados   Dzięki!   31.08.2014, 12:27:43
- - Pilsener   Cytat...czy kiedykolwiek, w praktyce, potrzebowali...   3.09.2014, 23:10:53
|- - by_ikar   Cytat(Pilsener @ 4.09.2014, 00:10:53 ...   4.09.2014, 19:18:35
- - Spawnm   Kiedyś się pisało folder_folder_klasa, gdzie 100 r...   3.09.2014, 23:38:14
- - irmidjusz   Namespaces nie są takie złe, mają po prostu swoje ...   4.09.2014, 08:20:50
- - !*!   @Pyton_000 - ale w praktyce jest tak że PSR-4, róż...   4.09.2014, 08:43:44
|- - irmidjusz   Cytat(pedro84 @ 4.09.2014, 19:13:49 )...   4.09.2014, 19:23:54
|- - pedro84   Cytat(irmidjusz @ 4.09.2014, 20:23:54...   4.09.2014, 20:31:36
|- - irmidjusz   Cytat(pedro84 @ 4.09.2014, 21:31:36 )...   5.09.2014, 07:00:08
|- - pedro84   Cytat(irmidjusz @ 5.09.2014, 08:00:08...   5.09.2014, 09:55:46
- - Pyton_000   Racja. Use nie jest wymagane. Nie ma sensu pisać ...   4.09.2014, 09:12:51
- - destroyerr   Dlaczego cały czas piszecie o PSR-3 jako o czymś c...   4.09.2014, 10:13:34
- - !*!   @up - To bez znaczenia. Przyjętą zasadą jest samo ...   4.09.2014, 10:47:46
- - destroyerr   !*! o czym Ty bredzisz? Poprosiłem o źródł...   4.09.2014, 11:51:09
- - Pyton_000   @up oczym Ty bredzisz   4.09.2014, 11:57:49
|- - !*!   Cytat(Pyton_000 @ 4.09.2014, 12:57:49...   4.09.2014, 12:43:25
- - destroyerr   Dobrze, postaram się od początku: CytatTo zrezygnu...   4.09.2014, 13:20:33
|- - !*!   Cytat(destroyerr @ 4.09.2014, 14:20:3...   4.09.2014, 17:00:13
- - Turson   CytatCzy kiedykolwiek, w praktyce, potrzebowaliści...   4.09.2014, 13:41:17
- - MLukasz   Cytat(konrados @ 31.08.2014, 10:50:39...   4.09.2014, 13:53:52
- - Pyton_000   PSR dzieli się obecnie na 4 grupy. PSR-0 - które...   4.09.2014, 17:11:15
- - pedro84   Cytat(konrados @ 31.08.2014, 10:50:39...   4.09.2014, 18:13:49
- - viking   Cytat(by_ikar @ 4.09.2014, 20:18:35 )...   4.09.2014, 20:04:41
- - destroyerr   Cytatz drugiej ponowne zapisywanie klas jako strin...   4.09.2014, 21:17:54
- - Pilsener   CytatAD1. Jeżeli masz w klasie 100x USE, to czas s...   4.09.2014, 23:10:24
|- - by_ikar   Cytat- ona jest bez sensu, ale: - nawet najlepiej ...   5.09.2014, 16:56:18
- - gitbejbe   @Pilsener , mam podobnie jak Ty ; )   5.09.2014, 06:34:11
- - !*!   Po wypowiedzi mojego przedmówcy, teraz rozumiem o ...   5.09.2014, 07:52:24
- - nrm   Laravel 4.3 będzie "nejmspejsował" nawet...   5.09.2014, 12:00:43
|- - Turson   Cytat(nrm @ 5.09.2014, 13:00:43 ) Lar...   10.09.2014, 09:12:02
|- - nrm   Cytat(Turson @ 10.09.2014, 09:12:02 )...   10.09.2014, 12:03:18
- - SmokAnalog   Namespace'y to krok naprzód. Są bardziej elast...   5.09.2014, 12:06:17
- - Pyton_000   Nie ważne Jaki edytor, ważne Jak się nim posługuje...   5.09.2014, 18:31:17
- - irmidjusz   Ludzie, o co te kłótnie i święte oburzenie co niek...   5.09.2014, 19:07:33
|- - pedro84   Cytat(irmidjusz @ 5.09.2014, 20:07:33...   5.09.2014, 19:14:16
- - by_ikar   Tutaj nie rozchodzi się o to czy ty to lubisz czy ...   6.09.2014, 11:20:35
- - Janusz1200   W PHP nie używałem, w javie i .NET - nie było inne...   6.09.2014, 18:32:53
|- - pedro84   Cytat(Janusz1200 @ 6.09.2014, 19:32:5...   6.09.2014, 19:05:17
- - irmidjusz   Cytat(by_ikar @ 6.09.2014, 12:20:35 )...   6.09.2014, 23:06:31
|- - pedro84   Cytat(irmidjusz @ 7.09.2014, 00:06:31...   7.09.2014, 02:48:11
|- - by_ikar   Cytat(irmidjusz @ 7.09.2014, 00:06:31...   7.09.2014, 10:15:49
- - irmidjusz   Hehe, dobra chłopaki, ubawiłem się tymi komentarza...   7.09.2014, 10:39:46
- - !*!   Wygląda na to, że temat można zamknąć klasycznym: ...   7.09.2014, 10:53:57
|- - pedro84   Cytat(!*! @ 7.09.2014, 11:53...   7.09.2014, 14:14:34
|- - !*!   Cytat(pedro84 @ 7.09.2014, 15:14:34 )...   7.09.2014, 16:36:34
- - by_ikar   Taa przecież include_path wystarczy użyć raz, bez ...   7.09.2014, 15:29:29
- - Pilsener   Argumentów nie brak i krytyków namespace w PHP też...   9.09.2014, 21:05:01
|- - pedro84   Cytat(Pilsener @ 9.09.2014, 22:05:01 ...   9.09.2014, 21:17:17
- - by_ikar   https://pornel.net/phpns/pl - CytatNie da się im...   9.09.2014, 22:26:36
- - Crozin   Lepiej dać przykład - nieduży (!) projekt, wyk...   10.09.2014, 09:56:39


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 21:27