Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> URL shortener - Symfony 4.
smk
post
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
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%)
-----


Jak powyżej, np. taka metoda:

  1. public function validate($value, Constraint $constraint)
  2. {
  3. if (null === $value || '' === $value) {
  4. return;
  5. }
  6. if (!is_string($value)) {
  7. throw new UnexpectedValueException($value, 'url');
  8. }
  9. $pattern = '/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?/';
  10. if (!preg_match( $pattern, $value, $matches)) {
  11. $this->context->buildViolation($constraint->message)
  12. ->setParameter('{{ url }}', $value)
  13. ->addViolation();
  14. }
  15. }


1. Metoda może rzucić wyjątek, zwrócić null albo być typu void - za dużo
2. Jak już oczekujemy stringa, to czemu nie użyjemy typizowania?
3. Po to jest walidator, żeby nie było wyjątków
4. Zachęcam do używania funkcji "empty" - sprawdza kilka rzeczy za jednym zamachem
5. I nie ma żadnych wbudowanych lub gotowych bibliotek do walidowania URLi?
6. Dobrą praktyką też jest używać return tylko raz i najlepiej na samym końcu metody, poprawia się czytelność i ułatwia debugowanie/rozbudowę, jeśli metoda co chwila nie przerywa swojego biegu w jakiś pozagnieżdżanych ifach

Kolejne rzeczy, które na pierwszy rzut oka mi się nie podobają:
- użycie migracji (to jest dobre gdy projekt jest na produkcji, tutaj nie ma takiej potrzeby, wystarczy wygenerować schemat z encji i użyć fikstur)
- wrzucanie do repo zakomentowanego kodu
- brak instrukcji instalacji apki w readme
- dużo kodu w kontrolerach i używanie ich jak serwisów (np. wystarczy serwis do redirectów zamiast tych dwóch kontrolerów, nie ma też większego sensu tworzyć kontrolera tylko dla jednej metody)
- zbyt opasłe metody, starajmy się zawsze, aby metoda była albo krótka, albo chociaż bardzo wyspecjalizowana


Poza tym całkiem nieźle, widać, że chyba spodobało się Symfony, kto umie taką apkę zrobić nie powinien się chyba za bardzo wstydzić.
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 Aktualny czas: 6.10.2025 - 18:43