Talk:Meeskond:vertigo

From ICO wiki
Jump to navigationJump to search

Meeskonna Valar Morghulis retsensioon meeskonnale Vertigo

Meeskonnale Vertigo xml-faili sisuks on IMBD andmete sarnane filmiandmete nimekiri. Kindlasti võib see kasutamist leida ka antud aine järgnevate osade juures.

Main.xml - vastab igati nõuetele. Rohket CDATA kasutamist mina veaks ei pea erinevalt kuna filmide kirjeldused, kompaniide nimed jm võivad sisaldada keelatud märke.

Main.xsd- ga on palju vaeva nähtud, peale atribuudi id tüübi "unsignedInt"-iks muutmise on määratud ka andmetüüpide miinimumpikkusi ja (vajaduse korral) ka nende maksimaalset esinemiste arvu.

Actors.xslt - on kasutatud if-testi sorteerimaks näitlejaid atribuudi väärtuse järgi kahte gruppi.

ShorterMovies.xslt - on loovalt kasutatud if-testis XSLT funktsioone position() ja last(), et tekitada komadega eristatud nimekiri. Kui antud koht koodis oleks kirjutatud kujul

<xsl:if test="position() != last()">, </xsl:if>

mitte

<xsl:if test="position() != last()">
  , 
</xsl:if>

siis oleks saanud vältida ka ebavajalikku tühikut enne koma.

SmallVersionXML.xslt - on valitud alamhulk Main.xml-is olevatest andmetest.

HTML transformatsioonidel (Actors.xslt ja ShorterMovies.xslt) on vaid üks viga. Neil pole deklareeritud dokumenditüüpi. Kui kasutada W3C HTML validaatorit http://validator.w3.org/check tuleb see selgelt välja.

Line 1, Column 1: no document type declaration; implying "<!DOCTYPE HTML SYSTEM>"

Sellest saaks üle lisades xslt-failidesse vahetult enne <html> elemendi algust järgmise rea

<xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>

Muidu väga hea töö mis väärib maksimumpunkte.


Veebiteenuse retsensioon meeskonna Taandarendajad poolt

Lisaks Identity kasutamisele on meeskond loonud 6 mudelit veel juurde. String tüüpi atribuutidel on ära määratud ka maksimaalsed pikkused, aga pole lisatud veateateid. See võib tekitada pärast andmete sisestamisel arusaamatusi, et miks ei õnnestu mingit stringi sisestada. Muidu on kõik atribuudid nimetatud korrektselt.

WebAppEFContexti failis on näha, kuidas luuakse mängu jaoks andmebaas. Hetkel tundub, et kasutajatel on võimalus ainult mängu mängida, mitte uusi küsimusi postitada. See võiks muidu tore funktsionaalsus olla, mida kunagi juurde lisada. Artworkide filelocationi atribuudist jääb silma, et meeskond on pildid ise kuhugi üles laadinud, et vältida imelike olukordade teket, kus näiteks google-ist leitav pilt on ära kustutatud vahepeal. Kasutusele on võetud interface-d, repod ja UoW, nagu nõutud oli. Ühestki interface-ist ainult ei õnnestu mul leida custom meetodeid.

Meeskond on loonud ka BLL projekti. Iga mudeli jaoks on eraldi DTO loodud, mis pole seotud virtuaalsete listidega. Kahju on näha, et taaskord toimuvad ainult ALL päringud ja ei ole mingit sorteerimist enne. Väikse andmebaasi puhul sellega probleemi ei teki, aga suurema projekti juures muudaks see päringute tegemise väga aeglaseks. Näiteks GetAllWorkNamesByCategory meetodi esialgse päringu võiks teha ära DAL-is, kus oleks võimalik peale DbSeti kohe sorteerida Where-iga. Hea on näha muidu, et meetoditele on ka kommentaarid lisatud.

Web API-s on kasutatud ninjecti nagu nõutud. Siin tundub, et on juba rohkem vaeva nähtud. Kasutatud on ka admini teenuse turvamiseks, mis on suur pluss. Igas meetodis tagastatakse ka BLL-is loodud DTO-sid.

Kokkuvõttes on loodud veebiteenus väga hea. Sellest andmebaasi päringute filtreerimisest võib hetkel mööda vaadata, sest hetkel pole seal palju kirjeid. Kõige rohkem meeldis mulle see, et BLL-i oli kasutatud otstarbekalt, mitte ei loodud seda lihtsalt sellepärast, et ta olemas oleks.


Veebiteenuse retsensioon meeskonna Tab poolt

Vertigo veebiteenuse solution sisaldab 5 projekti. Kohe on näha, et kasutusele on võetud Andres Käveri näide Identity kohapealt aines ASP.NET, mis on igati loogiline. Projektis on 6 erinevat mudeli klassi ja lisaks ka identity mudelid. Kõik stringi pikkused on piiratud ja kohati on ka kasutatud required annotatsiooni. Lisaks on domeeni projektis ka üks klass, kus on kirjeldatud ära ka admin kasutajanimi, parool ja ka ühenduse minutiline ja nädalane rate. Selle kasutajaga saab siis veebilehe aadressilt sisse logida ja erinevatele kasutajate admin õigusi määrata ja ka piiranguid muuta.

DAL projektis on korrektselt viidud sisse repository, factory ja uow muster. DAL projekti kihist leiab ka EFConfiguration folderi. Seal sees toimub juba mappimine ja see pärineb identity näitest. WebAppEFContextis on lisaks kasutatud ka Nloggerit ja seed meetodid. Seed meetodi puhul on sisestatud mingisugune põhi andmeid, et jälgida kuidas rakendus siis teenuse peal töötaks. Piltide kohapealt on hea, et pildid on vertigo kuskil endal olemas, mitte kuskil googlis. Selle tõttu on pilt koguaeg kättesaadav ja ei teki olukorda, et keegi on pildi kustutanud.

BLL kihis on samuti kõik nii nagu peaks. Positiivsest küljest võiks kohe välja tuua, et DTO service kihis on tehtud hulgaliselt Linq selekteerimist, et kontrollerite meetodisse anda juba sisse vajalikke andmeid.

WEB-API kohapealt torkab kontrollerite osapealt kohe silma, et DTO puhul ei ole kasutatud interface lahendust ja läbi ninjecti pole kohe konstruktorisse vajalikke service interface klasse sisse antud. Positiivse kohapeal torkab kohe silma, et kontrollerites on kasutatud lisaks ka cachemist.

Kokkuvõtlikult võib öelda, et tegemist on hea tööga. Vertigo on enda maksimaalsed punktid igati ära teeninud.


Klientrakenduste retsensioon meeskonna Tab poolt

Vertigo rakendus

Rakenduse kohapealt on selles meeskonnas rohkem vaeva nähtud. Ilmselt oli vaja tekitada rohkem tööd, kuna liikmeid on antud meeskonnas 5. Nimelt on Vertigo meeskonnal 2 rakendust. Üks neist on WPF rakendus ja teine on MVC rakendus.

WPF rakendus:

Rakendust käima pannes oli vaja kohe esmalt kasutaja luua, kuna WEB-API admin kontoga ei olnud võimalik sinna sisse logida. Kasutaja registreerimise osas külvas natukene segadust veateade, kuna registreerimine kohe esimestel kordadel ei õnnestunud. Nimelt veateade väitis mulle korduvalt "Oops! Something went wrong. Check if you have correct e-mail and your passwords match". Tegemist on väga üldise veateatega ja tegelik probleem oli selles hoopis, et minu valitud parool ei olnud piisavalt pikk. Muidu oli igati mõnus antud rakendust kasutada ja igati kasutajasõbralik. Logout nupu oleks võinud tuua ka main lehele, kuna kohe kõige esimese asjana ei leidnud seda ülesse.

Koodi kohapealt on rakendusel andmete vastuvõtmise kiht eraldi projektis nimega APIClient. APIClient projektis on lisaks mudelitele ka siis service klassid, et andmeid veebiteenusega vahetada. Service klasside osas on hea, et on loodud Base service ja siis ülejäänud service klassid pärivad seda. Config klassi on vastavalt sisse kirjutatud ka kõik urlid, mille poole pöördutakse. URL-ide kohapealt oleks võinud localhost osa kuskile eraldi muutujasse panna, et ei oleks korduvalt selle väljakirjutamist.

MVC Client

MVC rakenduse kohapealt polegi midagi erilist välja tuua. Ehk näiteks seda, et WPF rakenduses oli kasutajal võimalik parooli muuta, aga MVC-s pole seda võimalust antud. Muus osas toimis rakendus korralikult.

Koodi osas kasutab MVC klientrakendus samuti APIClient projekti. Esimesena tekkis kohe küsimus, et kuna antud MVC klientrakendus on ka ASP.NET aine raamis, et miks seal ei kasutata nõutud mustreid? Kontrollerite osas torkab kohe silma, et service klasside sisse toomine kontrolleris on kuidagi lohakas. Oleks võinud ilmselt seda realiseerida kuidagi läbi konstruktori. Positiivsest küljest on kontrollerites kasutatud vaatemudeleid ja on vabanetud nendest "halbadest" viewbagidest. Lisaks on ka kotrolleritele peale pandud role annotatsioonid, mille tulemusena ei saa näiteks registreerimata kasutaja lihtsalt urli "/games" abil mängima hakata.


Kokkuvõtlikult võib siiski väita on mõlemad klientrakendused on hästi tehtud. Antud mängu ja disaini natukese edasi arendades on potentsiaalselt vaffa mäng valmis! :)

Meeskonna Valar Morghulis retsensioon meeskonna Vertigo veebiteenusele ja klientidele

Projekt on eelmisest aastast tuttav. Tore näha, et ühe õppejõu trikk kes kogu koolis viibitud aja kõigis ainetes sama projekti tegi, tuleb ka teistele tudengitele kasuks.

Veebiteenus

Domain

Nagu minu projektis on siingi kasutatud Identity Useri stringidega Id varianti. Vertigo projektis on aga nende endi kasutaja Identity kasutajaga integreeritud. Andmemudel sisaldab 6t tabelit mis on piisav. Juurdepääs veebiteenusele on piiratud kasutades sissehitatud võimalusi.

Identity

Projekt on kõigile niigi tuttav

DAL

Sisaldab hulgaliselt projekti liikmete poolt kirjutatud meetodeid ilma milleta on normaalse rakenduse loomine mõeldamatu. Ainuke miinus siin on fakt, et LINQ kirjutamisel on sageli kasutatud query expression’eid mitte method LINQt. Projektis on meetod testandmete sisestamiseks.

BLL ja WebService

Kontrollerid on kaitstud. Rakendatakse sisu cache’imist.

Kliendid

Mõlemad kliendid kasutavad ühist veebiteenuse projekti. Varem koodi kvaliteedi kohta öeldu kehtib siingi.

Üldine

Tundub, et projektis on kasutusele võetud kõik loengutes ja praktikumides õpetatu kaasa arvatud minifitseerimine. Kood on põhjalikult kommenteeritud. Ilmselt Resharperit kasutades on isegi liigseid usinguid eemaldatud.

Kasutamine

Ebamugavuste poolest võib mainida, et WPF kliendi kaudu polnud võimalik kasutajat registreerida, ühtlasi oleks võinud mainida kus paiknevad projekti seadistused (mul oli vaja muuta webapi porti, sest ma ei tahtnud oma projekti IIS serveri seadistusi üle kirjutada).

Kahetsusega peab ütlema ka seda, et WPF kliendi kaudu pole võimalik uut kontot luua. Küll on see aga võimalik veebikliendi kaudu. Mäng on sisuliselt sama mis eelmise aasta projektis. Silma jäi bugi, et WPF kliendis pakuti kasutajale ainult neid „Artworke“ mis olid selles mängus. See annab WPF kliendi kasutajatele eelise. Väljapakutavate „Artistide“ seas seda bugi polnud.

Üldkokkuvõttes võib tehtu võtta kokku sõnaga „Suurepärane“. Projekt (ja selle tegijad) väärib kindlasti kõrgeimat hinnet.