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
...czy kiedykolwiek, w praktyce, potrzebowaliście namespaców?
- nie.

Cytat
Nigdy nie było nawet ryzyka zaistnienia jakiejkolwiek kolizji nazw.
- standardy typu PSR przewidują, że nazwa klasy to nazwy folderów plus nazwa pliku a ponieważ w jednym folderze może być tylko jeden plik o jednej nazwie... Nie widzę tu związku z używaniem namespace.

Moje doświadczenia z pracy z projektami gdzie używa się namespace (niezależnie od tego, czy nazwy klas są zgodne np. z PSR-3 jak np. w fw z1 czy nie):
1. Zaśmiecenie początku pliku definicjami "use" - dodatkowy czas (na skrolowanie i zarządzanie tym, mam klasy gdzie jest po 100 "juzów", ktoś zapomni "juza" dodać, ktoś usunąć itp. itd. etc.).
2. Potrzeba tworzenia aliasów - mamy np. dwie klasy "user" ale z różnych namespace, co teraz?
3. Poświęcenie przejrzystości kodu dla zwięzłości (jestem przeciwnikiem tego paradygmatu) - potrzebuję więcej czasu by widząc w kodzie klasę "user3" ustalić jej pełną nazwę, w dodatku argument zwięzłości też się sypie gdy okazuje się, że 99% "jusów" dotyczy tylko jednej użytej w kodzie klasy, w 99% mamy po prostu nazwy klas w dwóch miejscach i tyle dodatkowych linijek, ile tworzymy obiektów - jaka tu zaleta dla programisty?
4. Wydłużenie nazw klas - kiedyś klasy nazywało się A_B_C, teraz A_B to namespace a C w kodzie nic nie mówi, więc nazwa klasy jest: A_AB_ABC (co znamy dobrze choćby z fw s2) po to, aby wilk (trend w programowaniu) był syty i owca (programista) cała (IMG:style_emoticons/default/facepalmxd.gif)

Cytat
jakoś to do mnie nie przemawia
- do mnie też (IMG:style_emoticons/default/thumbsdownsmileyanim.gif)
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(Pilsener @ 4.09.2014, 00:10:53 ) *
- nie.

- standardy typu PSR przewidują, że nazwa klasy to nazwy folderów plus nazwa pliku a ponieważ w jednym folderze może być tylko jeden plik o jednej nazwie... Nie widzę tu związku z używaniem namespace.

Moje doświadczenia z pracy z projektami gdzie używa się namespace (niezależnie od tego, czy nazwy klas są zgodne np. z PSR-3 jak np. w fw z1 czy nie):
1. Zaśmiecenie początku pliku definicjami "use" - dodatkowy czas (na skrolowanie i zarządzanie tym, mam klasy gdzie jest po 100 "juzów", ktoś zapomni "juza" dodać, ktoś usunąć itp. itd. etc.).
2. Potrzeba tworzenia aliasów - mamy np. dwie klasy "user" ale z różnych namespace, co teraz?
3. Poświęcenie przejrzystości kodu dla zwięzłości (jestem przeciwnikiem tego paradygmatu) - potrzebuję więcej czasu by widząc w kodzie klasę "user3" ustalić jej pełną nazwę, w dodatku argument zwięzłości też się sypie gdy okazuje się, że 99% "jusów" dotyczy tylko jednej użytej w kodzie klasy, w 99% mamy po prostu nazwy klas w dwóch miejscach i tyle dodatkowych linijek, ile tworzymy obiektów - jaka tu zaleta dla programisty?
4. Wydłużenie nazw klas - kiedyś klasy nazywało się A_B_C, teraz A_B to namespace a C w kodzie nic nie mówi, więc nazwa klasy jest: A_AB_ABC (co znamy dobrze choćby z fw s2) po to, aby wilk (trend w programowaniu) był syty i owca (programista) cała (IMG:style_emoticons/default/facepalmxd.gif)

- do mnie też (IMG:style_emoticons/default/thumbsdownsmileyanim.gif)


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.

AD2. Ale ten alias stworzyć możesz, bez przestrzeni nazw, tego aliasu stworzyć nie możesz i musisz zmieniać nazwę swojej klasy.

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.

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.

Też miałem kiedyś problem z namespace, ale zrozumiałem że to nie jest problem namespace samego w sobie (w innych językach istnieją tylko namespace), a jest to problem edytora i najwyższy czas przestać klepać w notatniku. Zmieńcie swoje notatniki na jakieś konkretne edytory, to odczujecie różnice. Osobiście praktycznie nie piszę use wcale, całą robotę odwala za mnie edytor. Tak samo kasowanie nieużywanych use. W normalnych edytorach takie rzeczy (i wiele więcej) można sobie ustawiać. W notatniku to sobie możesz.. W sumie nic nie możesz.

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..

Ten post edytował by_ikar 4.09.2014, 19:19:31
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 17:29