![]() |
![]() |
![]()
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 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) |
|
|
![]()
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) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 21:27 |