Difference between revisions of "Talk:Bob's Burgers"

From ICO wiki
(Klientrakenduse retsensioon)
(Veebiteenuse retsensioon)
 
(7 intermediate revisions by the same user not shown)
Line 13: Line 13:
  
 
= Veebiteenuse retsensioon  =
 
= Veebiteenuse retsensioon  =
Retsenseerib meeskond '''Redundant Rappers'''
+
 +
Antud projekti ideeks oli teha abivahend turniiride läbiviimiseks, mis tundub igati värske ning ühtlasi ka suure potentsiaaliga idee. Sarnaseid lahendusi on küll olemas, kuid kui seda edasi arendada, siis saaks sellest kindlasti väga konkurentsivõimelise lahenduse. Kindlasti tuleks kasuks ka selle eestikeelne versioon, mis oleks suunatud rohkem ka Eesti kasutajaskonnale.
 +
 +
Veebiteenus on jagatud mõistlikult ning loogiliselt eraldi kihtideks, mille jaoks on tehtud 7 eraldi projekti: BL, DAL, Domain, Front, Identity, Interfaces ja WebApi.Server. Antud projektide liigituse puhul on selgelt aru saada, kus asub andmebaasimudel, veebiteenus ning klientrakendus. Kõik projektid on lõpptulemuse toimimiseks vajalikud projektid, see tähendab üleliigset projekti, mida veebiteenus üldse ei kasuta, ei ole. Võib juurde mainida, et Identity on ainuke projekt, mis ei ole oluline osa veebiteenuse funktsioneerimiseks, küll aga kasutatakse seda kasutaja autoriseerimiseks ning autentimiseks ja seetõttu on eraldi projekti loomine selleks mõistlik.
 +
 +
Vajalik funktsionaalsus on olemas. Kood on samuti lihtsasti loetav, kuid mõned üksikud välja kommenteeritud koodijupid on alles jäänud ning kood on enamjaolt kommenteerimata ehk dokumenteerimata. Projekt on hästi ja mõistlikult struktureeritud ning on jälgitud tunnis ette näidatud praktikaid. Küll aga on väike ettepanek interface-ide osas: kui on eraldi projekt interface-ide jaoks, siis võiksid pigem service-i interface-id ka seal olla, mitte BL-i projektis. Kindlasti ei mõjuta see veebiteenuse toimimist, pigem on see soovitus, et projekti jaotus oleks veelgi lihtsam. WebApi.Server-i controller-ites on rakendatud kõiki CRUD meetodeid ning kõigi komponentide puhul need ka toimivad - andmebaasis tekivad, muutuvad ja kustuvad kirjed. Projekti domeeni osa on samuti kodeeritud detailselt ehk olemitel on juures annotatsioonid, mis takistavad veebiteenuse sisendis ebakorrektseid sisestusi (liialt pikki väärtusi, tundmatuid sümboleid). Samuti on hästi tehtud domeeni osas veateadete tagastamine.
 +
 +
Antud projekti puhul on õnnestunud andmed tabelites omavahel siduda. See joonistub välja nii domeeni osas, kus on klassid sisaldavad teiste klasside ID-sid ning ühtlasi on ka annotatsioonis defineeritud ära  Key-d ja ForeignKey-d. Ühtlasi saab selle õnnestumises kinnitust ka andmebaasi vaadates, kus kirjed tekivad omavahel seotud tabelitesse, mitte ainult põhiandmetabelisse, kuhu andmed reaalselt sisestati.
 +
 +
Kokkuvõttes on tegemist eeskujuliku lahendusega ning sellise realisatsiooniga, milles ei ole samas ka mingit liigset keerukust.
 +
 +
 +
Retsenseeris meeskond '''Redundant Rappers''' 15.06.2017
  
 
= Klientrakenduse retsensioon  =
 
= Klientrakenduse retsensioon  =
  
Registreerimine - kasutaja saab end registreerida kasutades kasutajanimeks ja parooliks ühte tähemärki. Sünnipäevale ei ole pandud piirangut saab registreerida tänase kui ka tulevase kuupäevaga.  
+
Visuaalselt näeb klientrakendus väga kasutajasõbralik ning moodne välja. Rakenduses kuvatud alalehed on liigitatud loogiliselt ning arusaadavalt ehk enne peale vajutamist on juba aimdus, mida seal kuvatakse. Küll aga võiks esilehel olla midagi huvitavat - näiteks info parasjagu käimas olevatest ja peagi algavatest turniiridest või kutse liituda stiilis Come sign up now! Hea alternatiiv avalehe täitmiseks oleks ka klassikaline “Tere tulemast!” tervitus. Avalehele sattudes on selgesti aru saada, kus saab sisse logida ning registreerida. Logimise puhul on õnnestunud kasutaja valideerimine ehk avalehele sattudes ei saa täitmata väljadega sisse logida.
Kasutaja sõbalikuse mõttes võiks kuidagi ära märkida, millised väljad on kohustuslikud. Kasutajanimeks saavad olla ainult numbrid - kas see on hea praktika?
 
  
Retsenseerib meeskond '''Redundant Rappers'''
+
Registreerimine - kasutaja saab end registreerida kasutades kasutajanimeks ja parooliks ühte märki. Sünnikuupäeva lisamisel on suureks plussiks kalendri komponent, mida on siin ja ka mitmel pool mujal kasutatud, see teeb kuupäeva valimise kasutajale mugavaks. Küll aga ei ole sünnikuupäevale pandud piirangut ning saab registreerida nii tänase kui ka tulevase kuupäevaga. Kasutajasõbalikkuse mõttes võiks registreerimisel kuidagi ära märkida, millised väljad on kohustuslikud. Kasutajanimeks saavad olla ainult numbrid või kirjavahemärgid - kas see on hea praktika? Turniiride leht - kuupäevad From ja To on otsingu vormil veidras formaadis ning ei ole arusaadav, kuidas oleks õige neid sisestada. Liialt kiirelt tegutsema hakkamisel, pärast rakenduse käivitamist, tekib rakenduses viga, kus nupud "Add new team" ja "Add new tournament" jäävad ilmumata. Season võiks olla ka kuidagi loogiliselt kas lahti seletatud, või kuidagi vormindatud, et võtaks kuupäevast aasta ning siis vastavalt winter 2017 näiteks. Muidu otsingud töötavad väga hästi: kui otsida midagi konkreetset, siis selle ka leiad. Ühtlasi ka järjestamine töötab kõikidel lehtedel - saab järjestada tähestikulises järjekorras ning numbreid kasvavas ja kahanevas järjekorras.
 +
 
 +
Klientrakenduses joonistus välja ka asjaolu, et registreeritud kasutajal on rohkem õigusi ning võimalusi kui registreerimata kasutajal. Registreeritud kasutaja saab lisada nii turniire kui ka meeskondi, millest registreerimata kasutaja ei saa teha kumbagi, küll aga saab anonüümne kasutaja kõiki andmeid vaadata ning kõiki otsinguid sooritada. Samuti on selle projekti puhul realiseeritud ka teenuse kasutusstatistika, mis kajastub klientrakenduses kasutajate punktide põhjal, mida nad on mängides saanud.
 +
 
 +
Klientrakendus on loodud TypeScript programmeerimiskeeles ning kood on jaotatud loogiliselt ja samas ka sarnaselt sellega, kuidas on reaalselt välja kuvatud. Hetkel on klientrakendus struktureeritud pigem olemite kaupa. Näiteks on hetkel kaust “Team”, mille sees on “TeamController” ja “TeamService”. Pigem oleks oodanud veebiteenusega analoogset struktuuri, kus oleks kaust “Controllers”, mille sees on kõik kontrollerid, kaust “Services”, mille sees on kõik ”Service”-id ning ka eraldi kaust “View”, kus sees oleksid kõik vajaminevad vaated (hetkel on kaustas “Views” ainult menüü). Kui võõras programmeerija leiaks kujunduses mõne lihtsama stiili või trükivea, siis leiab ta suure tõenäosusega selle parandamiseks õige kooditüki kerge vaevaga üles. Ehk klientrakenduse koodi on antud projekti puhul igati kerge hoomata, mis on väga hea pluss.
 +
 
 +
Kokkuvõtteks võib väita, et antud klientrakenduses on realiseeritud kõik vajalik ning sellele veel lisakski. Rakendus on ülesehituselt igati arusaadav ning kõigele lisaks ka mugav. Esinesid pigem üksikutel lahtritel (just kuupäevade puhul) mõned valideerimise vead.
 +
 
 +
 
 +
Retsenseeris meeskond '''Redundant Rappers''' 15.06.2017

Latest revision as of 16:10, 15 June 2017

XML/XSLT/XSD retsensioon

Retsenseeris meeskond Nope.

Meeskonna Bob's Burgers XML fail on korralikult koostatud ning omab vajalikke kriteeriume. Olemas on töökäsus nõutud dimensioonid ning loodud väljad on mõistlikult jaotatud. Eraldi tuleks tähelepanu juhtida atribuutidest puuduvale ID-le, mis hilisema töö käigus võib muutuda vajalikuks. XSD fail on korrektselt tehtud ning andmetüübid ja piirangud on tehtud väljade jaoks sobivad. Transformatsiooni käigus on kasutatud lisaks for-each lausetele ka parameetreid ning tingimuste kontrolle. Transformatsioon HTML-i on eraldi väljatoodud koos esitusega ning annab suurepäraselt edasi informatsiooni tavalise inimese jaoks loetavale kujule.

Suuremalt jaolt on nõutud kriteeriumid täidetud ning töö on korralikult tehtud.

27.03.2017


Veebiteenuse retsensioon

Antud projekti ideeks oli teha abivahend turniiride läbiviimiseks, mis tundub igati värske ning ühtlasi ka suure potentsiaaliga idee. Sarnaseid lahendusi on küll olemas, kuid kui seda edasi arendada, siis saaks sellest kindlasti väga konkurentsivõimelise lahenduse. Kindlasti tuleks kasuks ka selle eestikeelne versioon, mis oleks suunatud rohkem ka Eesti kasutajaskonnale.

Veebiteenus on jagatud mõistlikult ning loogiliselt eraldi kihtideks, mille jaoks on tehtud 7 eraldi projekti: BL, DAL, Domain, Front, Identity, Interfaces ja WebApi.Server. Antud projektide liigituse puhul on selgelt aru saada, kus asub andmebaasimudel, veebiteenus ning klientrakendus. Kõik projektid on lõpptulemuse toimimiseks vajalikud projektid, see tähendab üleliigset projekti, mida veebiteenus üldse ei kasuta, ei ole. Võib juurde mainida, et Identity on ainuke projekt, mis ei ole oluline osa veebiteenuse funktsioneerimiseks, küll aga kasutatakse seda kasutaja autoriseerimiseks ning autentimiseks ja seetõttu on eraldi projekti loomine selleks mõistlik.

Vajalik funktsionaalsus on olemas. Kood on samuti lihtsasti loetav, kuid mõned üksikud välja kommenteeritud koodijupid on alles jäänud ning kood on enamjaolt kommenteerimata ehk dokumenteerimata. Projekt on hästi ja mõistlikult struktureeritud ning on jälgitud tunnis ette näidatud praktikaid. Küll aga on väike ettepanek interface-ide osas: kui on eraldi projekt interface-ide jaoks, siis võiksid pigem service-i interface-id ka seal olla, mitte BL-i projektis. Kindlasti ei mõjuta see veebiteenuse toimimist, pigem on see soovitus, et projekti jaotus oleks veelgi lihtsam. WebApi.Server-i controller-ites on rakendatud kõiki CRUD meetodeid ning kõigi komponentide puhul need ka toimivad - andmebaasis tekivad, muutuvad ja kustuvad kirjed. Projekti domeeni osa on samuti kodeeritud detailselt ehk olemitel on juures annotatsioonid, mis takistavad veebiteenuse sisendis ebakorrektseid sisestusi (liialt pikki väärtusi, tundmatuid sümboleid). Samuti on hästi tehtud domeeni osas veateadete tagastamine.

Antud projekti puhul on õnnestunud andmed tabelites omavahel siduda. See joonistub välja nii domeeni osas, kus on klassid sisaldavad teiste klasside ID-sid ning ühtlasi on ka annotatsioonis defineeritud ära Key-d ja ForeignKey-d. Ühtlasi saab selle õnnestumises kinnitust ka andmebaasi vaadates, kus kirjed tekivad omavahel seotud tabelitesse, mitte ainult põhiandmetabelisse, kuhu andmed reaalselt sisestati.

Kokkuvõttes on tegemist eeskujuliku lahendusega ning sellise realisatsiooniga, milles ei ole samas ka mingit liigset keerukust.


Retsenseeris meeskond Redundant Rappers 15.06.2017

Klientrakenduse retsensioon

Visuaalselt näeb klientrakendus väga kasutajasõbralik ning moodne välja. Rakenduses kuvatud alalehed on liigitatud loogiliselt ning arusaadavalt ehk enne peale vajutamist on juba aimdus, mida seal kuvatakse. Küll aga võiks esilehel olla midagi huvitavat - näiteks info parasjagu käimas olevatest ja peagi algavatest turniiridest või kutse liituda stiilis Come sign up now! Hea alternatiiv avalehe täitmiseks oleks ka klassikaline “Tere tulemast!” tervitus. Avalehele sattudes on selgesti aru saada, kus saab sisse logida ning registreerida. Logimise puhul on õnnestunud kasutaja valideerimine ehk avalehele sattudes ei saa täitmata väljadega sisse logida.

Registreerimine - kasutaja saab end registreerida kasutades kasutajanimeks ja parooliks ühte märki. Sünnikuupäeva lisamisel on suureks plussiks kalendri komponent, mida on siin ja ka mitmel pool mujal kasutatud, see teeb kuupäeva valimise kasutajale mugavaks. Küll aga ei ole sünnikuupäevale pandud piirangut ning saab registreerida nii tänase kui ka tulevase kuupäevaga. Kasutajasõbalikkuse mõttes võiks registreerimisel kuidagi ära märkida, millised väljad on kohustuslikud. Kasutajanimeks saavad olla ainult numbrid või kirjavahemärgid - kas see on hea praktika? Turniiride leht - kuupäevad From ja To on otsingu vormil veidras formaadis ning ei ole arusaadav, kuidas oleks õige neid sisestada. Liialt kiirelt tegutsema hakkamisel, pärast rakenduse käivitamist, tekib rakenduses viga, kus nupud "Add new team" ja "Add new tournament" jäävad ilmumata. Season võiks olla ka kuidagi loogiliselt kas lahti seletatud, või kuidagi vormindatud, et võtaks kuupäevast aasta ning siis vastavalt winter 2017 näiteks. Muidu otsingud töötavad väga hästi: kui otsida midagi konkreetset, siis selle ka leiad. Ühtlasi ka järjestamine töötab kõikidel lehtedel - saab järjestada tähestikulises järjekorras ning numbreid kasvavas ja kahanevas järjekorras.

Klientrakenduses joonistus välja ka asjaolu, et registreeritud kasutajal on rohkem õigusi ning võimalusi kui registreerimata kasutajal. Registreeritud kasutaja saab lisada nii turniire kui ka meeskondi, millest registreerimata kasutaja ei saa teha kumbagi, küll aga saab anonüümne kasutaja kõiki andmeid vaadata ning kõiki otsinguid sooritada. Samuti on selle projekti puhul realiseeritud ka teenuse kasutusstatistika, mis kajastub klientrakenduses kasutajate punktide põhjal, mida nad on mängides saanud.

Klientrakendus on loodud TypeScript programmeerimiskeeles ning kood on jaotatud loogiliselt ja samas ka sarnaselt sellega, kuidas on reaalselt välja kuvatud. Hetkel on klientrakendus struktureeritud pigem olemite kaupa. Näiteks on hetkel kaust “Team”, mille sees on “TeamController” ja “TeamService”. Pigem oleks oodanud veebiteenusega analoogset struktuuri, kus oleks kaust “Controllers”, mille sees on kõik kontrollerid, kaust “Services”, mille sees on kõik ”Service”-id ning ka eraldi kaust “View”, kus sees oleksid kõik vajaminevad vaated (hetkel on kaustas “Views” ainult menüü). Kui võõras programmeerija leiaks kujunduses mõne lihtsama stiili või trükivea, siis leiab ta suure tõenäosusega selle parandamiseks õige kooditüki kerge vaevaga üles. Ehk klientrakenduse koodi on antud projekti puhul igati kerge hoomata, mis on väga hea pluss.

Kokkuvõtteks võib väita, et antud klientrakenduses on realiseeritud kõik vajalik ning sellele veel lisakski. Rakendus on ülesehituselt igati arusaadav ning kõigele lisaks ka mugav. Esinesid pigem üksikutel lahtritel (just kuupäevade puhul) mõned valideerimise vead.


Retsenseeris meeskond Redundant Rappers 15.06.2017