Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> URL shortener - Symfony 4.
smk
post 17.08.2018, 16:34:55
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 15.06.2018

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


Witam.
Prosiłbym Was o code review aplikacji do skracania adresów smile.gif Czym więcej feedbacku, tym lepiej!
https://github.com/selfmadeking/URL-shortener-Symfony-4
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pyton_000
post 25.09.2018, 16:58:11
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Nie ma takiej sytuacji że nie da się tego opisać jednolitym typem danych. IMO kwestia znalezienia rozwiązania.
Go to the top of the page
+Quote Post
athabus
post 7.10.2018, 14:55:56
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


Cytat(Pyton_000 @ 25.09.2018, 17:58:11 ) *
Nie ma takiej sytuacji że nie da się tego opisać jednolitym typem danych. IMO kwestia znalezienia rozwiązania.

Ale uważasz, że zawsze jest sens walczyć o silne typowanie? PHP to jest język dynamiczny i KIEDY MA TO SENS warto korzystać z możliwości, które daje. O ile jestem zazwyczaj przeciwnikiem funkcji zwracających wszystkie możliwe typy danych, to czasami na to po prostu sens - np. wspomniana konfiguracja, która może przechowywać zarówno typy proste jak i obiekty. To bardzo generyczny obiekt i MZ nie ma sensu dla idei walczyć o typowanie. Oczywiście jeśli się mylę, to chętnie poznam argumenty i jakieś sensowne podejście do tego tematu w PHP.

Zaciekawił mnie kolejny wątek - czyli null (+ wartości domyślne, z którymi się poniekąd wiąże). Co do zasady jestem zwolennikiem, że funkcja nie powinna zwracać null, gdy jest to możliwe. Sztandarowy przykład - wolę zwrócić pusta tablicę niż null. Oczywiście znów nie zawsze jest sens o to walczyć i w praktyce mimo wszystko często stosuję null (zamiast np. stosować null object), ale zawsze 2 razy się zastanawiam, czy nie da się tego rozwiązać lepiej.
Exceptiony MZ zazwyczaj nie są dobrym wyjściem - Exception jak sama nazwa wskazuje powinien obrazować zjawisko wyjątkowe, a np. brak odczytanych rezultatów z bazy zazwyczaj nie jest zjawiskiem wyjątkowym - np. brak produktów w sklepie w danej kategorii. Oczywiście może takim być - np. loguje się użytkownik i nagle się okazuje, że nie ma tabeli z jego ACL'ami, a logika aplikacji zakłada, że każdy użytkownik ma tam jakieś wpisy - wtedy oczywiście Exception jest ok.

Ostatnio też miałem dość ciekawą rozmowę na temat domyślnych wartości argumentów w funkcjach. Do tej pory stosowałem je na potęgę z 2 głupich powodów:
- mniej pisania w kodzie klienckim
- w czasie refactoringu, gdy dochodził parametr stosowałem wartość domyślną aby nie trzeba modyfikować kodu klienckiego

Rozmowa otworzyła mi oczy, że głupio robiłem. Po pierwsze kod kliencki musi wiedzieć co chce zrobić i im mniej tam przerzucania odpowiedzialności na "inteligencję" swoich klas/funkcji tym lepiej, bo pomaga to zapobiegać efektom ubocznym. Przeróbka koda klienckiego przy refactoringu dzisiaj też jest prosta, więc nie jest to argument za stosowaniem wartości domyślnych. Przede wszystkim jednak ciekawym doświadczeniem było zaprzestanie używania wartości domyślnych w swoim kodzie. Po 2-3 dniach okazało się, że w 95% przypadków można pozbyć się tego brzydactwa.

Dlatego ogólnie na dzisiaj moja opinia jest taka - null / wartości domyślne powinno się stosować ale z umiarem. Zawsze się warto zastanowić czy robimy to z wygody, czy z realnej potrzeby.

Ogólnie muszę przyznać, że dużo w moim kodzie poprawiło stosowanie się do zasady YAGNI i polubienie się z refactoringiem. Wiele problemów typu domyślne wartości parametrów często się same rozwiązują, bo np. zakładamy, że dzisiaj co prawda parametr będzie zawsze taki sam (i dlatego dajemy u default value) ALE KIEDYŚ to się zmieni. W praktyce okazuje się, że w 9 na 10 sytuacji to się nigdy już nie zmieni, albo funkcję przepiszemy jescze 3 razy zanim się zmieni i zostajemy z parametrem, który w ogóle nie jest do niczego potrzebny.
Go to the top of the page
+Quote Post

Posty w temacie
- smk   URL shortener - Symfony 4.   17.08.2018, 16:34:55
- - athabus   Kurcze, aż szkoda żeby taki fajny temat się zmarno...   23.08.2018, 21:25:44
|- - Lion   Cytat(athabus @ 23.08.2018, 22:25:44 ...   23.09.2018, 09:30:48
- - Pyton_000   Jedna uwaga do Form->isValid. Owszem sprawdza a...   24.08.2018, 08:07:15
- - athabus   No proszę, człowiek uczy się całe życie. Zawsze dl...   26.08.2018, 17:15:12
- - Pilsener   Jak powyżej, np. taka metoda: [PHP] pobierz, plai...   1.09.2018, 22:14:03
- - Pyton_000   Odniosę się do pkt.6 z którym się nie zgodzę. Nie ...   2.09.2018, 09:49:50
- - viking   Swoją drogą tam wzorzec na url jest niepoprawny. N...   2.09.2018, 09:54:35
- - athabus   Z if'ami każdy ma swoją teorię. Ja akurat też ...   2.09.2018, 15:22:32
- - Pilsener   Cytatdruga mnie trochę przyprawia o ból głowy - bo...   2.09.2018, 20:07:19
- - nospor   Cytat- jest taka zasada w programowaniu "don...   3.09.2018, 10:53:23
- - athabus   Kurcze Pilsener dla mnie 2 wersja jest bardziej cz...   3.09.2018, 15:07:55
- - Pilsener   Cytatodnosisz sie do wypowiedzi Pytona wyrwanej z ...   4.09.2018, 09:45:20
- - athabus   Zgadzam się, że nie można na zasady patrzeć ślepo ...   4.09.2018, 19:29:26
- - athabus   Ciekawe, że każdy ma swoje standardy w kwestii kod...   24.09.2018, 14:45:59
- - nospor   Na szczescie w nowym wydaniu php bedzie mozna typo...   24.09.2018, 14:49:29
- - athabus   Chyba czytasz w moich myślach, bo właśnie miałem n...   24.09.2018, 14:54:18
- - nospor   CytatNo to jeszcze poproszę return type mixed przy...   24.09.2018, 15:03:38
- - athabus   Czasami sa sytuacje, ze nie da sie w php przewidzi...   24.09.2018, 16:29:57
- - nospor   Jesli nie wiesz, co bedzie zwracac twoja funkcja, ...   24.09.2018, 18:41:44
- - athabus   Czy ja wiem czy zle zaprojektowany. Php ma w sobie...   24.09.2018, 19:22:12
- - nospor   CytatObject tu tematu nie rozwiaze, bo w takiej ta...   25.09.2018, 10:36:37
- - Pyton_000   Nie ma takiej sytuacji że nie da się tego opisać j...   25.09.2018, 16:58:11
|- - borabora   Cytat(Pyton_000 @ 25.09.2018, 17:58:1...   27.09.2018, 07:21:27
|- - athabus   Cytat(Pyton_000 @ 25.09.2018, 17:58:1...   7.10.2018, 14:55:56
- - Pyton_000   Null jest dość specyficzny. Ale taki prototyp fun...   27.09.2018, 07:34:34


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 Wersja Lo-Fi Aktualny czas: 23.04.2024 - 21:43