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
irmidjusz
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


Cytat(by_ikar @ 6.09.2014, 12:20:35 ) *
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.


Sam sobie przeczysz. W PHP namespaców kiedyś nie było, obecnie są. Tak samo jak są języki bez namespaców. Czy można w nich programować? Tak, można. Czy można w PHP programować bez namespaców? Tak, można. Twierdzenie, że nie można, jest zwyczajną bzdurą. Może to być kwestia wyboru, osobistych preferencji programisty, czy będzie pisał swój kod w PHP z użyciem namespaces, czy bez nich, czy to lubi, czy nie lubi. Dziwne mnie jak można tego nie rozumieć.

Cytat(by_ikar)
Nie potrzebujesz przestrzeni nazw? Zapewne nie, kiedy tworzysz 2-3 klasy na krzyż. W przypadku dużych projektów, takie rzeczy mają znaczenie.


To samo napisałem wcześniej; nie wiem, czy mi to tłumaczysz, czy powtarzasz to bo się ze mną zgadzasz? Dla uściślenia: moje stanowisko jest tu wyraźnie określone - uważam, że w wielu (głównie małych - ale gdzie granica?) typowych projektach, tzw. przeciętny programista nie potrzebuje przestrzeni nazw, w takim sensie, że nie ma z nich żadnego wymiernego profitu, może poza zaspokojeniem osobistych preferencji i przekonań tegoż programisty.

Kod można świetnie organizować bez użycia przestrzeni nazw, tak samo jest z ładowaniem zależności, autoloadingiem itp. Namespeces tylko pomagają, ułatwiają w niektórych z tych zagadnień. Nie są niezbędne.

Cytat(by_ikar)
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.


Mylisz się - moje stwierdzenie, że trzeba to pisać za każdym razem, nie jest, jak to pogardliwie określiłeś, jęczeniem, ale prostym stwierdzeniem faktu. Pytanie tylko, czy to rozumiesz. Fakt występuje niezależnie od Twojego czy mojego widzimisię. Inną sprawą jest moja czy Twoja subiektywna opinia, tudzież ocena tego faktu, a z opinią jeden się zgadza a drugi nie. Otóż jeśli Ty uważasz, że to jest naturalne, fajne i jak najbardziej w porządku, że na początku pliku znajduje się xx dyrektyw use, i wcale Ci to nie przeszkadza, to OK - nic mi do tego. Mi natomiast to nieco przeszkadza, i traktuję te sekcje use'ów jako swego rodzaju "zło konieczne" istnienia namespaces, bo lepiej tego do tej pory w tych językach nie wymyślono. Z dokładnie tego samego powodu nie lubię także ładowania klas instrukcjami require. Rzecz gustu, można by rzec (IMG:style_emoticons/default/tongue.gif)

Dyskutować to można nad tym czy użycie namespaców, które wiąże się z takimi a takimi kosztami, a daje takie a takie zyski, sumarycznie się opłaca w danym przypadku. No przepraszam, ale dla mnie ktoś, kto pisze wszystko, każdy, nawet najprostszy, jednoplikowy programik PHP zamknięty w namespace, to prawdopodobnie cierpi na nerwicę natręctw (IMG:style_emoticons/default/biggrin.gif) bądź robi to bezmyślnie niczym wyuczony nawyk.

Pytanie zadane na początku było: "czy kiedykolwiek potrzebowaliście namespaców?". Niech każdy za siebie odpowie. Ja nie potrzebowałem, choć raz zdarzyło się, że kilka klas w projekcie miało taki sam pierwszy człon nazwy, co pewna zewnętrzna biblioteka której dołączenie było rozważane - ale problem zniknął sam, bo zapadła decyzja użycia innej biblioteki. Więc muszę szczerze przyznać się, że nie nigdy tak naprawdę nie potrzebowałem przestrzeni nazw, choć to nie jest politycznie poprawne (IMG:style_emoticons/default/tongue.gif)

Chciałbym przypomnieć, że póki w PHP nie było przestrzeni nazw, wszyscy programowali bez przestrzeni nazw. Czy więc były potrzebne? Odpowiedź jest oczywiście tylko jedna: NIE - w sensie takim, że nie jest to element języka, którego istnienie miało by określać możliwość napisania programu. To jest proste i logiczne, czego tu można nie rozumieć?

Może problem w tym, że "potrzebować" ma kilka znaczeń. Drugie znaczenie "potrzebowaliście namespaców" jest takie, że chodzi o to, czy programista chciałby mieć możliwość pisania kodu z użyciem namespaców - bo ma taką zachciankę, bo tak jest w innym języku, bo tak jest modnie, bo tak w szkole uczą, albo tak lubi. I w tym sensie faktycznie można przestrzeni nazw "potrzebować" zawsze.

I wreszcie jest trzecie znaczenie "potrzebować namespaców" - gdy ich zastosowanie ulepszy kod, jego organizację i czytelność, itp. - poddajemy coś ocenie i według przyjętych kryteriów stwierdzamy, że tak lub nie. Ale to już wymaga wysiłku umysłowego i faktycznego zrozumienia tematu.

Mogę sobie też wyobrazić, że ktoś "potrzebuje namespaców" do napisania programu, bo bez nich po prostu nie da się tego oprogramowania napisać - no, nie da się zakodować rozwiązania i koniec - nic, zero, bez wyjścia, kaput. Tylko, że... nie widziałem jeszcze takiego przypadku w realu, aczkolwiek chętnie poznam. Mógłby ktoś podesłać link z jakiegoś case study o takim projekcie w PHP? (IMG:style_emoticons/default/smile.gif)

Niektórzy tu nie mają żadnych argumentów więc co robią? Wydają osądy i używają różnych epitetów pod adresem adwersarzy, co świadczy tylko o tym, że się nie ma żadnego sensownego zdania w temacie - a wiadomo: jak nie wiadomo co powiedzieć, to najłatwiej zmieszać z błotem, zasugerować, że ta druga osoba to albo nowicjusz, albo jakiś staruszek, który "klepie globale", czy inne takie. To naprawdę śmieszne. Paradoksalnie, to przynajmniej pod jednym względem jest dokładnie odwrotnie, bo to właśnie stary wyga będzie miał doświadczenie, dystans i własny osąd (plus zdrowy rozsądek), których to młodziakom czasem brakuje.
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: 12.10.2025 - 04:47