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





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

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


Z if'ami każdy ma swoją teorię. Ja akurat też jestem zwolennikiem przerywania jak najwcześniej. W "Czystym kodzie" był opisywany ten aspekt i tam Marti pisał, że jedno wyjście z funkcji to zaszłość z programowania proceduralnego z długimi i skomplikowanymi funkcjami. Tam faktycznie jeden return miał sens, ale w dobie tanich funkcji, gdzie piszemy (powinniśmy pisać) funkcje, które mają po kilka - kilkanaście liniejek, wg niego kilka wyjść z funkcji poprawia czytelność. Ja osobiście w swoim kodzie staram się jak mogę unikać "else" bo wg mnie psuje czytelność, więc tym bardziej stosuje wczesne returny.

Z drugiej strony rozumiem podejście, że funkcja powinna mieć jedno wyjście - po prostu nie zgadzam się z nim w przypadku krótkich funkcji.

Takie porównanie dla przykładu - funkcja przekształcająca daną wartość na tablicę (tak wiem, że bez sensu)

  1. public function transformToArray($val): array
  2. {
  3. if (is_array($val)) {
  4. return $val;
  5. }
  6.  
  7. if (is_object($var)) {
  8. return $this->transformObjectToArray($val);
  9. }
  10.  
  11. if (is_scalar($var)) {
  12. return $this->transformScalarToArray($val);
  13. }
  14. }
  15.  
  16. public function transformToArray2($val): array
  17. {
  18. $result = null;
  19. if (is_array($val)) {
  20. $result = $val;
  21. } else if (is_object($var)) {
  22. $result = $this->transformObjectToArray($val);
  23. } else {
  24. $result = $this->transformScalarToArray($val);
  25. }
  26.  
  27. return $result
  28. }


Moim zdaniem pierwsza funkcja jest znacznie bardziej czytelna, druga mnie trochę przyprawia o ból głowy. Czytanie pierwszej przerywam w momencie, gdy docieram do interesującego mnie przypadku, a w drugiej muszę scrollować od końca czy jeszcze czegoś nie robię z resultem przed zwróceniem itd. No ale jak pisałem koniec końcu pewnie kwestia preferencji - drugie podejście też ma jakieś poparcie w literaturze.

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: 16.10.2025 - 00:25