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 (IMG:style_emoticons/default/smile.gif) Czym więcej feedbacku, tym lepiej! https://github.com/selfmadeking/URL-shortener-Symfony-4 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%)
|
Kurcze, aż szkoda żeby taki fajny temat się zmarnował, więc choć się nie znam, to pierwszy rzucę kamieniem - może bardziej doświadczeni koledzy się przyłączą ;-)
Po pierwsze bardzo nie podoba mi się brak typowania zmiennych i pól w klasie.
Dlaczego pola klasy nie mają docka z typami? Przecież korzystasz z phpstorma, a on potrafi wygenerować - stajesz na parametrach konstruktora i klikasz alt+enter.... Większość funkcji nie ma typowania zmiennych na wejściu, ale jednocześnie w niektórych miejscach masz typowanie na wyjściu, czyli używasz php 7.1+ - brakuje konsekwencji. W każdym razie mz w jakiś sposób trzeba parametry opisać - albo phpdock albo typowanie. Zaciekawiła mnie funkcja, którą wezmę jako przykład na warsztat.
$list - nie jest typowana na wejsciu. Co to jest - jakiś obiekt, zmienna skalarna, tablica? Lista czego? Dalej w tej samej funkcji masz:
Czyli co zmienna $userId jest tak na prawdę obiektem User, ale za chwilę zamieniasz ją na skalarne Id? Zupełnie bez sensu bo kompletnie psuje czytelność kodu. W tej funkcj imasz coś takiego:
Co tak na prawdę jest $userIdOfUrl = $list->getListOfUrls()->first()->getUserId(); Poczytaj o Lod (Law of Demeter) - raczej powinno być coś w stylu $list->getUser() lub $list->getUserId(); Zresztą nie sprawdzałem, ale mogę się założyć, że w innych częściach systemu robisz coś podobnego, aby sprawdzić użytkownika listy = duplika kodu, czyli tym bardziej warto to zrefaktoryzować. Po co rzutujesz wartość bool do bool w tym miejscu? To chyba zbędne.
Ogólnie ta funkcja to idealny kandydat do refactoringu na wielu płaszczyznach. Powinno się ją sprowadzić do 2-3 linijek. Kilka luźnych uwag: - servisy nie powinny raczej zapisywać niczego do flash - to rola kontrolera - serwis może być wykorzystywany w inny sposób (np. api/cli itp). - logując wyjątek logujesz tylko sam message - mało to przydatne przy debugowaniu lepjej zrobić $logger->error((string)$e) - w symfony if ($form->isSubmited() && $form->isValid()) możesz zastąpić if ($form->isValid()) - bo metoda isValid sprawdza między innymi czy form jest wysłany. To takie moje 0,05pln żaby rozpocząć temat. Niestety nie mam teraz czasu na wgryzienie się w Twój system i pisanie czegoś więcej o logice itp, dlatego tylko kilka uwag co do samego sposobu kodowania. Dodam, że raczej mistrzem kodowania nie jestem, więc traktuj moje uwagi jako wymianę zdań. |
|
|
|
smk URL shortener - Symfony 4. 17.08.2018, 16:34:55 
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 ![]() ![]() |
|
Aktualny czas: 31.12.2025 - 00:09 |