Francesco Allara 1108215d5e | ||
---|---|---|
bin | ||
config | ||
migrations | ||
public | ||
src | ||
tests | ||
.env | ||
.env.test | ||
.gitignore | ||
Makefile | ||
README.md | ||
composer.json | ||
composer.lock | ||
docker-compose.yml | ||
phpunit.xml.dist | ||
symfony.lock |
README.md
Ma questa e' una possibile implementazione della soluzione al test Ho preferito tenerlo semplice senza richieste HTTP, quindi non c'e' stato bisogno di aggiungere chiamate a cURL
Tutta la business logic del gioco e' nel modello Game
, quindi
tutta la logica e' in unit tests che e' possibile vedere in
tests/Service/GameServiceTest.php
ed e' possibile eseguire con
make phpunit
Per installare le dipendenze basta eseguire make composer_install
La ragione per la mancanza di un'interfaccia completa HTTP e' che in ogni caso non c'e' molto da testare poiche' io tendenzialmente uso controller slim e un service layer cosicche' sia possibile riutilizzare la logica fra diversi client, nel caso ci fosse una interfaccia CLI, http etc.
Per la mancanza di commenti, spero di aver utilizzato nomi di metodi, classi e variabili abbastanza chiari da non rendere necessario l'aggiunta di commenti io reputo i commenti un code smell poiche' di solito per me sono segno di codice non chiaro, e anche perche' i commenti rappresentano codice, pero' a differenza del codice non e' validato da nessun test, quindi nel caso il codice cambi e ci si dimentichi di aggiornare i commenti, sarebbero da considerare poi non veritieri
Comunque spero di avere la possibilita' di spiegare ogni decisione poi nel prossimo colloquio nel caso la soluzione sia considerata accettabile
A presto (spero)