• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[PHP][Symfony3] Ocena kodu gry przeglądarkowej

Object Storage Arubacloud
0 głosów
346 wizyt
pytanie zadane 13 grudnia 2017 w Nasze projekty przez DungeonCrawler Początkujący (260 p.)
edycja 4 stycznia 2018 przez DungeonCrawler
Cześć wszystkim,
mam do was prośbę - mianowicie chodzi ocenę mojego kodu. Tworzę grę przeglądarkową przy użyciu Symfony 3, póki co dodałem tylko część rozwiązań, ale zanim zabrnę dalej, dobrze by było gdyby ktoś bardziej doświadczony rzucił na to okiem.
Jako, że to gra - sporo rzeczy dzieje się po stronie klienta (JS), ale na razie do oceny przesyłam tylko kod PHP:

2 odpowiedzi

+1 głos
odpowiedź 13 grudnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Co to za pomysł, aby trzymać w repozytorium sam AppBundle? Jak dla mnie bez sensu. Gdzie reszta aplikacji?

Nie wiem pod jaką wersję PHP piszesz (ani nawet jaka wersja Symfony, nie ma composer.json), ale myślę ze niżej niż 7 w większości przypadków nie ma już sensu. Możesz więc wtedy zastąpić @return z phpDocumentora typem zwracanym z metody. A wszystkie array() zastąpić []. Routing moim zdaniem czytelniejszy jest w yamlu niż adnotacjach.

Wszelkie zapytania jakie są w Utils powinny być moim zdaniem w repozytoriach, od tego one są.

Nazwy commitów "code sample", "code sample no2" i "code sample no3" to raczej nie jest dobry pomysł.
komentarz 13 grudnia 2017 przez DungeonCrawler Początkujący (260 p.)

Hej, dzięki za odpowiedź.

Już się tłumaczę ;)

Co to za pomysł, aby trzymać w repozytorium sam AppBundle? Jak dla mnie bez sensu. Gdzie reszta aplikacji?

Cały projekt nad którym pracuje siedzi w innym, niepublicznym repozytorium. Do publicznego, którego tu udostępniłem wrzuciłem to co uważałem za najważniejsze.

Nazwy commitów "code sample", "code sample no2" i "code sample no3" to raczej nie jest dobry pomysł.

Dlatego też samo repo nazwałem code-sample, a w samych nazwach commitów się zbytnio nie rozwijałem.
Wersję Symfony podałem w poście i tytule wątku.

Możesz więc wtedy zastąpić @return z phpDocumentora typem zwracanym z metody.

Rozumiem, że chodzi Ci np, o coś takiego:

public function example($a, $b):  array 
{
    ...
}

Wszelkie zapytania jakie są w Utils powinny być moim zdaniem w repozytoriach, od tego one są.
 

Faktycznie, wygooglałem i nawet jest to opisane w dokumentacji:
https://symfony.com/doc/3.3/doctrine/repository.html

Dzięki za radę :)

Co do routingu, dla mnie osobiście bardziej intuicyjny jest ten w adnotacjach.

Dzięki za wszystkie uwagi. Jeżeli masz jakieś jeszcze, np. odnośnie formatowania kodu itp. to wal śmiało, pozdrawiam :)

komentarz 13 grudnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

Cały projekt nad którym pracuje siedzi w innym, niepublicznym repozytorium. Do publicznego, którego tu udostępniłem wrzuciłem to co uważałem za najważniejsze.

Rozumiem, szło to wywnioskować po tym co napisałeś w temacie, ale to jednak trochę mało, nawet do oceny. 

Dlatego też samo repo nazwałem code-sample, a w samych nazwach commitów się zbytnio nie rozwijałem. 

Czego byś nie wrzucał to takie nazwy commitów aż rażą w oczy :p

Wersję Symfony podałem w poście i tytule wątku.

Fakt, moje niedopatrzenie, wybacz. Co nie zmienia faktu że i tak composer.json czasem wiele może powiedzieć.

Rozumiem, że chodzi Ci np, o coś takiego:

Dokładnie. Od PHP 7 można określać typ zwracany jak i typy argumentów.

Faktycznie, wygooglałem i nawet jest to opisane w dokumentacji: 

Tak, to to. W dokumentacji Symfony jest chyba wszystko.

Więcej uwag specjalnie na razie nie mam. Formatowanie kodu wygląda ok, z tego co widzę PSR-2 przestrzegasz, więc spoko.

komentarz 13 grudnia 2017 przez DungeonCrawler Początkujący (260 p.)
edycja 13 grudnia 2017 przez DungeonCrawler

Rozumiem, szło to wywnioskować po tym co napisałeś w temacie, ale to jednak trochę mało, nawet do oceny. 

To wynika z tego, że to nie jest projekt "open-source" - dlatego właśnie staram się podawać najmniej info jak mogę :)

Czego byś nie wrzucał to takie nazwy commitów aż rażą w oczy :p

Jak tak teraz na to patrzę, to chyba masz rację :P

Dokładnie. Od PHP 7 można określać typ zwracany jak i typy argumentów.

Tylko z tego co wygooglałem na szybko, można określić jeden zwracany typ (ew. dwa, ale z null), a niektóre moje metody mogą zwrócić jeden z dwóch typów, np. array lub int.

Więcej uwag specjalnie na razie nie mam. Formatowanie kodu wygląda ok, z tego co widzę PSR-2 przestrzegasz, więc spoko.

Code Sniffer robi robotę ;)

Dzięki za odpowiedź.

komentarz 13 grudnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

Ok, rozumiem.

Tylko z tego co wygooglałem na szybko, można określić jeden zwracany typ (ew. dwa, ale z null), a niektóre moje metody mogą zwrócić jeden z dwóch typów, np. array lub int.

Tak, to prawda. Może trzeba popatrzeć czy da się tak przebudować kod, aby zwracał wartość jednego typu ;)

1
komentarz 13 grudnia 2017 przez DungeonCrawler Początkujący (260 p.)

Tak, to prawda. Może trzeba popatrzeć czy da się tak przebudować kod, aby zwracał wartość jednego typu ;)

No właśnie tak pomyślałem teraz, że to może być kwestia złej budowy metod. Popracuję nad tym :>

+1 głos
odpowiedź 13 grudnia 2017 przez Ehlert Ekspert (212,670 p.)
  1. Nie widzę encji. Nie dołączyłeś do repo folderu Entity? 
  2. Korzystaj z QueryBuildera. 
  3. Nazwa Trait dla elementu logiki jest bardzo myląca, biorąc pod uwagę fakt, że jest to konstrukcja języka.
  4. Korzystaj z tego co już jest np. Fosuserbundle. Jeśli masz bardzo rozwiniętą logikę z potencjałem do rozwoju, to polecam MigrationsBundle.
  5. json_decode ma drugi argument. 
  6. $item_for_sale. To nie wygląda dobrze. 
  7. Bez PHP7? sad​​​​​​
  8. Ten switch ze stringami wygląda smutno. Instanceof byłoby bardziej przyszłościowe.

Ogólnie bardzo spoko, daj znać jak będzie jakaś alfa/beta.  

komentarz 13 grudnia 2017 przez DungeonCrawler Początkujący (260 p.)

Nie widzę encji. Nie dołączyłeś do repo folderu Entity? 

Nie dodałem. To wynika z tego, że to nie jest projekt "open-source" - dlatego właśnie staram się podawać najmniej info jak mogę :)

Korzystaj z QueryBuildera. 

Korzystam z obu funkcji. Z createQuery() przy prostych zapytaniach np. proste selecty, a z createQueryBuilder() przy bardziej złożonych, np. zapytania typu join czy złożone update. Jaki jest powód aby przerzucić się tylko na createQueryBuilder()?

Nazwa Trait dla elementu logiki jest bardzo myląca, biorąc pod uwagę fakt, że jest to konstrukcja języka.

Faktycznie, niezła wpadka :P

Korzystaj z tego co już jest np. Fosuserbundle. Jeśli masz bardzo rozwiniętą logikę z potencjałem do rozwoju, to polecam MigrationsBundle.

Na początku używałem FOSUserBundle, ale gdy chciałem go zmodyfikować wg. własnych potrzeb (dodawanie rekordów podczas rejestracji do trzech różnych tabel jednocześnie) to mi się odechciało :) MigrationsBundle nie znam, ale się zapoznam.

json_decode ma drugi argument. 

Ale czy jego podawanie na pewno jest konieczne? Bo nawet w przykładach w dokumentacji jest często pomijany:  http://php.net/manual/en/function.json-decode.php

$item_for_sale. To nie wygląda dobrze. 

O kurde, jakim cudem to się uchowało? :) Myślałem, że wszystkie kwiatki tego typu poprawiłem.
 

Bez PHP7? sad​​​​​​

Przepiszę kod na PHP 7 ;)

Ten switch ze stringami wygląda smutno. Instanceof byłoby bardziej przyszłościowe.

Hmm, rozumiem jak użyć instanceof wraz ze switchem. Natomiast nie wiem jak to ugryźć z innej strony. Tzn. musiałbym stworzyć klasy "armorer", "blacksmith" itd. których nie ma, a nie widzę potrzeby ich tworzenia dla samego switcha. Czy źle Cię zrozumiałem?

Ogólnie bardzo spoko, daj znać jak będzie jakaś alfa/beta.  

Dzięki, na pewno dam znać :)

Podobne pytania

+7 głosów
2 odpowiedzi 323 wizyt
pytanie zadane 26 kwietnia 2017 w Nasze projekty przez JojololomenPL Bywalec (2,580 p.)
+1 głos
2 odpowiedzi 260 wizyt
pytanie zadane 31 grudnia 2016 w C i C++ przez Patryk Krajewski Nałogowiec (26,170 p.)
+1 głos
3 odpowiedzi 1,139 wizyt
pytanie zadane 30 maja 2016 w C i C++ przez Rolnik Nowicjusz (220 p.)

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...