Talk:Iread

From ICO wiki
Jump to navigationJump to search

Retsensioon meeskonna Iread veebiteenusele ja klientrakendusele meeskonnalt R0ds

Valisime retsenseerimiseks selle projekti teil ei ole ühtegi retsensiooni.

Veebiteenuse retsensioon

Koheselt on näha, et veebiteenuse solutionis on kasutusel 6 projekti. Projektis BLL on hakkavad silma vajalikud failid selle kihi jaoks. Ja positiivse poole pealt on DTO's näha kuidas on ilusti kirjutatud kõik MaxLength, Reqiured ning ka teised atribuudid. Oli ka näha mõningal määrab koodi kommenteerimist, kuigi seda oleks võinud olla igas failis. Service failid oleks võinud olla eraldi Service kaustas, et oleks silmale parem jälgida, aga see otseselt ei häiri. Tore oli näha, et ka Service failidele olid tehtud Interface failid. Me küll täpselt ei tea kas Servicitele eraldi oli vaja teha neid aga vähemalt on pingutatud.

Projektis BookLibrary on näha kõik EF jaoks vajaminevad failid. Failides on kirjas kõik vajalikud propertid ning kõik on kommenteeritud väga eeskujulikult. Olemas on 7 olemit, järelikult on täidetud piirang milleks oli vähemalt 6 olemit veebiteenuses. Ka nendes failides on olemas nii MaxLength kui ka Required atribuudid, samuti on mõndades failides kasutusel Range atribuut.

DAL'is on näha õppejõu poolt nõutud Interface, Repository, Factory ja UOW kihid. Näha saab ka Andres Käveri poolt tehtud asju ning mida ta soojalt soovitas kasutada meie projektides. Samuti ei tundu, et oleks tehtud üleliigseid reposid. Interface failides on näha milliseid andmeid tahetakse edasi saata.

Projekt on External API Client on meie jaoks natukene segane. Tundub, et see kiht on vajalik selleks, et raamatute ja autorite andmeid saaks võtta ka välistest andmekogudest(mitte ise sisestatud andmed).

Projekt Identity on puhtalt üle võetud Andres Käveri tehtud näitest.

Viimases projektis nimega minuraamat on olemas kõik vajalik et solution töötaks internetis korralikult. Disin ei ole põhiline selle kodutöö raames ning seega on jäetud see võimalikult minimalistlikuks. Sisselogimine on tehtud väga turvaliseks, selle all mõtlen parooli piiranguid(peavad olema suured tähed, väiksed tähed ja numbrid). Oleks tore kui parooli piirangud oleks kohe registreerimise juures kirjas ja ei pea proovima kas sobib. Aga hea, et kasutajanimi ja emaili aadress ära ei kao kui parool ei vasta nõuetele. On olemas ka kontrollerid, kus on realiseeritud vajalikud meetodid ja samuti on väga palju kommenteerimisi.


Klientrakenduse retsensioon

Klientrakendust tööle pannes tekib kohe probleeme. Kui täidan kõik väljad ära tuleb error, millega öeldakse "One of the fields is probably not valid.". See ei ole just kõige parem veateade, mida kasutajale edasi anda. Proovisin teha kasutajat mitmete andmetega kuid alati on sama veateade. Kuigi probleemi lahendiks oli see, et tuleb panna enne API tööle ja seejärel klient. Seega oleks võinud selle algse veateate asemel anda midagi mis annab teada, et API ei tööta.

Klientrakenduses saab vaadata enda niiöelda lemmikute listi lisatud raamatuid ja neid seal kõikvõimalikul moel järjestada, on ka võimalus raamatuid sealt eemaldada. Olemas on ka funktsioon, millega saab andmebaasist raamatuid juurde otsida ja neid lisada lemmikute listi. Otsing töötab väga hästi. Häirib see, et rakenduses ei saa akna suurust muuta vaid peab kerima vasakule/paremale.

Failide poole pealt on näha, et oli kasu eelmise aasta C# ainest, kus õpetati kirjutama korralikku koodi mitte spagetti(on olemas ViewModel ja Model kaustad). Kui API solutionis olite väga agarad oma koodi kommenteerima, siis tundub, et klientrakenduses sellele enam nii suurt tähelepanu ei ole pööratud.


Retsensioonid meeskonna IRead veebiteenusele ja klientrakendusele meeskonna KTT poolt

Veebiteenuse retsensioon

Solution avatud ning vastu vaatab 6 projekti. Lähemalt uurides selgub, et kasutusel on kõik, mida õppeaine raames on nõutud ning need kõik on jaotatud eraldi projektidesse : Identity, BLL, Library, DAL, Veebiteenus ning External API Client, mille otstarve jääb antud hetkel segaseks.

Alustades algusest, BookLibrary-st, siis kokku saab lugeda 7 olemit, mis on antud aine raames täiesti piisav ning lisaks nendele ka Identity-ga kaasnevad tabelid. Vaadates igat klassi lähemalt, siis selgub, et kõiksugu maxlengthid, required ja muud vajalikud atribuudid on peale märgitud. Lisaks sellele on veel lahti kirjutatud kommentaaride näol foreign key-d ja suhted teiste tabelitega.

DALis on olemas kõik õppejõu poolt nõutud : Interfaced, repod, helperid, UOW-d ja Identity-ga kaasnevad klassid. Lähemalt uurides on näha, et interfacedes on nii mõnigi custom meetod, millest vöib järeldada, et tööd on tehtud küll. Struktur DALis on perfektne ning midagi negatiivset ei oska/ole välja tuua.

BLLi avades vaatavad vastu DTO ja interface kaustad ning kõik vajalikud service klassid. DTO-si lähemalt vaadates on näha, et on pandud peale kõiksugu maxlengthid, required ja igasugu errormessaged, mida vajaduse korral kasutajale kuvada. Lisaks sellele on kood ilusti kommenteeritud ning arusaadamatuks ei jää miski. Interfacedes on olemas kõik vajalik. On kasutatud ka loggerit, mis paljudel meeskondadel puudus, siinkohal plusspunktid. Kuna DTO-d ja interfaced olid ilusti pandud eraldi kaustadesse, siis oleks vöinud seda teha ka servicite puhul, kuid kuna neid klasse ei ole väga palju, siis saab hakkama küll. Projekti kasvades peaks kindlasti kasutusele vötma eraldi kausta.

Identity projekti kohta ei ole kommenteerida midagi, sest see on üle võetud õppejõult Andres Käverilt, kelle töö oli meile kõigile suureks abiks.

External API Clientile ja selle mõttele ei saa me koheselt pihta, kuid kindlasti on see vajalik mingi eesmärgi täitmiseks.

Minuraamat projekt on meie arvates väga hästi ja põhjalikult struktureeritud. Kõik töötab esmakordsel käivitamisel ja testimisel. Kood on silmasõbralikult struktureeritud ning korralikult kommenteeritud. Nõutav turvaline parool on alati hea tava ning kasutajasõbralik on ka see, et sisestatud andmed ei kao ära, kui registreerimisel tekib mingi tõrge.


Kokkuvõtvalt ütleks, et aine raames edastatud teadmised on omandatud ning neid kõiki on antud veebiteenuse juures rakendatud. Tehtud on kõvasti tööd ning nokkida ei oska mitte millegi kallal.


Klientrakenduse retsensioon

Avades klientrakenduse solutioni vaatab sealt vastu vana hea ja tuttav WPF. Õnneks on projekti meeskonnal meeles ainest C# õpetatud MVVM struktureeritus ning seetõttu on väga tuttav ja lihtne erinevate klasside, vaadete ja teenuste vahel seilata. Aine Võrgurakendused 2 raames õpetatud teenuste mõistlik ja jätkusuutlik käsitlemine on täiesti olemas. Kuigi rakenduse välimust antud aine raames ei hinnata, siis see on küll kõik täiesti default, kuid sellegipoolest väga ilus ja kasutajasõbralik. Antud retsensioon peaks olema küll kõvasti pikem, kuid meie arust ei ole siia midagi kirjutada, sest kõik on nõuetekohane ja on selgelt näha, et häid tavasi on jälgitud. Tööd on tehtud vastavalt projekti vajadustele ning kõik töötab ja on meie arust täiesti piisav. Ainukese miinusena võib välja tuua selle, et klientrakenduses ei ole ühtegi kommentaari, kuid see-eest on kõik hästi struktureeritud ning ei olegi midagi keerulist, mida peaks kindlasti kommenteerima.

Retsensioonid meeskonna IRead veebiteenusele ja klientrakendusele meeskonnalt Artur ja sõbrad

Veebiteenuse retsensioon

Meeskonna „Iread“ veebiteenuseks on rakendus, millesse kasutaja saab lisada oma loetud raamatud, lugemisel olevad raamatud ning raamatud, mida kasutaja soovib tulevikus lugeda. Iga kasutaja peaks saama anda loetud raamatutele hinnanguid ning ülevaateid. Loetud raamatute list on seejuures avalik, teenuse eesmärgiks on luua profiil oma loetud raamatutest. Meeskond võttis omale ülesandeks luua veebiteenus, mille must-have funktsionaalsusteks oleksid järgnevad punktid: kasutajate autentimine, kasutajate registreerimine, raamatute lisamine, raamatute info vaatamine, kasutaja raamatulisti vaatamine, raamatute lisamine oma listi, kasutaja raamatute lisamine/vaatamine, hinnangute lisamine raamatutele, raamatutele ülevaadete lisamine, raamatute ülevaadete lugemine ning kasutaja info vaatamine. Lisavõimalustest on toodud välja raamatute lisamist/info täiendamist Google Books API abil, sõbralisti, lemmikraamatutele sarnaste raamatute suggest’imist, profiili/raamatute pilte ja ka filmide lisamise võimalust. Reaalsuses realiseeris meeskond aga järgnevad punktid: kasutajate autentimine, kasutajate registreerimine, raamatute lisamine, raamatu info vaatamine, kasutaja raamatu listi vaatamine, raamatute lisamine oma listi, raamatu ülevaadete lisamine, raamatu ülevaadete lugemine, kasutaja info vaatamine, raamatute lisamine/info täiendamine Google Books API abil juhul kui raamatut andmebaasist ei leitud, raamatute keskmine hinnang, raamatute eemaldamine enda listist, raamatute üleüldine eemaldamine, kasutajate kustutamine, hinnangute lisamine raamatutele, review’de listimine kasutaja kaupa, statistika ning päringute piirang ajaühikus, seega realiseeris meeskond kõik oma eesmärgid ja enamgi. Kasutajate autentimine põhineb token’itel; kasutajate registreerimine on avalik; raamatuid saab andmebaasi lisada ainult admin; raamatute info ja kasutaja raamatu listi vaatamine peaks olema avalik; ülevaateid kirjutada ja raamatuid oma listi lisada ja kirjutada saavad ainult autenditud kasutajad. Raamatu ülevaadete lugemine on avalik või osaliselt piiratud; kasutaja info vaatamine on avalik; raamatute eemaldamist ja kasutajate kustutamist saab teostada ainult admin; statistika on nii üldine kui ka by User.

Koodi poolelt on töö jaotatud kihtideks, olemas on Library, DAL ja BLL kihid, lisaks veel kiht Google Books API kasutamiseks. Library kihis on klassimudelid loogiliselt moodustatud, olemas on ka annotatsioonid andmebaasi jaoks. Kuna kasutatud on ASP.NET Identityt, on Librarys olemas ka Identity mudelid ja lisaks Identity kiht. DAL kihis on kenasti olemas interface’id, repository’d, Identity mudelite konfiguratsiooniklassid; kasutatud on Unit of Work’i ja seega on olemas ka UOW klass. Repository’des on olemas kõik vajaminevad meetodid info hankimiseks, nendes asuv kood on lihtne ja loogiline; lühike, ent samas teeb täpselt seda, mida vaja. BLL kihis on erinevad vajalikud Data Transfer Object klassid, nendes olevate väljade kirjeldamiseks on ka annotatsioone kasutatud. On olemas service klassid ja need implementeerivad oma interface’sid, kus on kõik olulised meetodid kirjeldatud. Service klassid võiksid olla eraldi kaustas, et paremini orienteeruda. DTO’de loomiseks on olemas vaid üks klass, ent kompaktsuse mõttes on see isegi hea, sest pole mõtet teha iga DTO klassi jaoks veel eraldi klass, kus DTO loomiseks on vaid üks meetod. DTO klassides on välju kommenteeritud, ent võiks kommenteerimist olla kasutatud ka teistes klassides (näiteks service klassides meetodite kirjeldamiseks). Projektis nimega ’minuraamat’ paistab olevat kõik vajalik: kontrollerid nii API kui ka klientrakenduse jaoks (sellest ning ka projekti käivitamisest järeldub, et teenus ja klient on ühes projektis, mida me pole enne näinud, kuid tundub päris kaval variant olevat). Olemas on ka logimine Throttle’i ja Nlogi kasutamise näol, API dokumentatsioonis on päringute aadressid koos kirjeldustega, et API kasutamist hõlbustada ja arusaadavamaks teha.

Klientrakenduse retsensioon

Olemas on minimalistlik MVC rakendus APIga ühes projektis, kus saab registreerida ja sisse logida, otsida raamatuid ja neid omale lisada (ja määrata, kas on loetud, lugemisel jne), anda hinnanguid. Raamatutel on ka lehekülg infoga selle kohta, lisaks hinnangu andmisele saab ka arvustusi kirjutada. Kui vaadata raamatu arvustusi, siis arustuse kirjutaja kasutajanimele vajutades tuleb error (minnakse aadressile /Users/Details, kuigi lõpus peaks ka /username olema ehk siis /Users/Details/username). Oma kirjutatud arvustust ei ole võimalik muuta/kustutada, aga kui lugeda seda, mida meeskond kirjutas valmis funktsioonide kohta oma veebiteenuses, siis seda ei olegi neil veel realiseeritud. Projektis on kasutatud vaatemudeleid. Kommenteerimist ei ole väga harrastatud, aga muidu kõik töötab, mis peab. Hiljem on valmis tehtud ka teinegi klientrakendus WPF’i abil, kus saab registreerida ja sisse logida, lisada raamatuid, kuid ei saa märkida, mis seisus raamat praegu kasutajal on (loetud, olemas, lugemisel jne); saab ka kustutada oma raamatute hulgast. Ei saa anda ka hinnanguid ning kirjutada arvustusi nagu teises rakenduses. Projektis on kasutatud vaatemudeleid, olemas on klassimudelid ning service klassid. Kood on kirjutatud loogiliselt ja korralikult, kõik vajalik töötab, vigu ei ole. Meeskond on oma projekti valmis saanud tähtajaks. Üldiselt arvame, et töö on teostatud hästi ja hinnanguks anname nii veebiteenusele kui klientrakendusele „väga hea.“