Riešenie domácich úloh
DU 1
- Riešenie E.Batmendijna bez dekorátotov: batmendijn1.zip
- Trieda Contestant by sa skôr mala volať ContestantInfo.
- Všimnite si ako veľmi pomáha čitateľnosti tento komentár:
# A dict containing all contestants, indexed by their name.
contestants = {}
- Riešenie A.Matejova s dekorátormi: matejov1.zip
- Vo väčšine odovzdaných riešení funkcie menia globálny stav. Menenie stavu nie je zrovna typickou vecou, čo od funkcií očakávame. Preto je pomerne dobré tento stav zaobaliť tak ako v tomto riešení do triedy. Od metódy je absolútne očakávateľné, že zmení stav objektu.
DU 2+4
- Riešenie T.L.Buia: bui2.zip
- Za povšimnutie stojí jasné delenie na vizualizáciu, interakciu s používateľom a logiku. Toto výrazne uľahčuje aj testovanie.
- To, že pozícia figúrok je uložená na dvoch miestach, podľa mňa pridáva komplexitu.
- Pomenovanie actor v namedtuple je neprirodzené.
- Riešenie P.Kvačkaya (iba implementácia): kvackay2.zip
- Stav obsahuje naozaj všetko.
- Trochu sa v programe prepletá parsovanie príkazu s logikou hry. Ťažko sa potom testuje.
- Riešenie A.Matejova: matejov2.zip
- Testy sa ľahko čítajú.
- Problémom je, že na to aby sa v testoch mutoval stav, sa tam celkom hackuje. Hackom sa je dobré vyhnúť
DU 3
- Riešenie J.Rosinu: rosina3.zip
- Nie je to síce nijak mimoriadne prešpekulovaný design. Pre aktuálnu implementáciu však je dostatočne dobrý. V prípade ďalšieho rozširovania sa refaktorizácia, vďaka dobrej logickej štruktúre, bude robiť veľmi ľahko. Takže, dobrý design tu ešte nie je, ale je to na správnej ceste.