Talk:Meeskond: Travo 2.0

From ICO wiki
Revision as of 23:46, 8 June 2016 by Kveskime (talk | contribs) (Retsensioon Travo Veebiteenus)
Jump to navigationJump to search

Retsensioon XML ülesande kohta

Meeskond Travo 2.0 on loonud ühe XML faili, mis sisaldab andmeid klasside, õpilaste ja kursuste kohta; selle XML faili skeemifaili ja ühe XSL transformatsiooni faili.

Antud kodutöö käigus on täidetud järgmised nõuded:

  • Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks ja selle XML faili skeemifail.
  • XML-il peab olema vähemalt 4 loogilist dimensiooni.

Kodutöö käigus on osad nõuded ainult osaliselt täidetud:

  • Tuleb esitada minimaalselt kaks sobivat XSL transformatsiooni faili. Meeskond Travo 2.0 on esitanud ainult ühe transformatsiooni faili. Samas luuakse selle faili abil 3 erinevat tabelit ja sisuliselt saaks ühe faili kolmeks jagada.
  • Transformatsioonid peavad sisaldama midagi enamat, kui ainult üks for-each klausel. Transformatsiooni käigus peaks kindlasti kasutama ka erinevaid tingimuste kontrolle. XSLT fail sisaldas mitut for-each klauslit, lisaks oli neid kasutatud ka üksteise sees. Samas ei ole kasutatud ühtegi if klauslit, tingimuse kontrolliks saab tinglikult lugeda vaid id-de kokku viimist õigete väärtustega.
  • 3-el dimensioonil tuleb kasutada atribuute, mis on enamat, kui lihtsalt ID. Antud XML failis on ID-st erinevad atribuudid olemas vaid ühel elemendil: Student.

Lisaks sellele, et osa kodutöö nõudeid ei ole täielikult täidetud, on antud kodutöö puhul järgmised puudused:

  • Loodud XML fail ei vasta esitatud XSD failile. XSD failis on elemendi „Course“ lapselemendi „Name“ väärtuse maksimaalseks pikkuseks märgitud 32 tähemärki, samas on XML failis üks selline element, mis ületab selle piiri: element, mille väärtus on „Võrgurakendused 2: XML-i algkursus C# baasil“.
  • Jääb segaseks, miks tudengite sünnipäevad on esitatud millisekundi täpsusega.
  • Klasside andmete esitamisel oleks võinud kasutada elementide nimesid, mis oleks rohkem seotud sellega, mida need andmed esitavad. Jäi segaseks, milliste andmetega täpselt tegu oli. Kas klassiruumide või õpirühmadega?
  • Oleks võinud rohkem erinevaid elemendinimesid kasutada, seeläbi oleks andmestruktuur selgem olnud. Näiteks ühe Group elemendi sees oleva teise Group elemendinimi oleks võinud olla hoopis Subgroup. Samuti oleks Studenti sees oleva Name elemendinimi olla StudentName, et see ei läheks segamini Course elemendi sees oleva Name-ga.

Positiivsena võiks välja tuua järgmised asjaolud:

  • Antud meeskond sisaldab ainult ühte liiget, mistõttu on mõistetav nõuete osaline täitmine.
  • Hoolimata eespool välja toodud paarist puudusest, on üldiselt XML failis elemendinimed hästi valitud. On selgelt arusaadav, milliste andmetega on tegu. Lisaks on kõik nimed ühetaoliselt suure algustähega.


Retsenseeris meeskond Enneaegsed


Retsensioon XML kohta

Meeskond Travo 2.0 on loonud XML faili andmete edastamiseks, selle XML faili skeemifaili ning XSL transformatsiooni faili. Töö teemaks on kool: klassid, õpilased ning kursused.

Tööd tehes on tähele pandud, et tagid on tõstutundlikud ning lõpetatud. Kood on töökorras ja lihtsasti jälgitav, (hästi disainitud). Elemendid on ühtselt ingliskeelsed, kuid meeskond on arvestanud kõigega: kommentaarides on ära märgitud ka eestikeelsed vasted. Ka elemendinimed vastavad reeglitele (pole ühtegi tühikut või numbrit) ning elemendid on kenasti grupeeritud kasutades alamgruppe ja id'sid (Groups -> Group (1, 2, 3); Students -> Student (1, 2, 3) jne). Samas, kui skeemifailis (XSD) on kasutatud paljusid erinevaid atribuute, siis XMLis jääb neid veidi puudu (kasutusel on vaid id ja elemendis Students veel birthDate). Transformatsiooni failis võiks samuti olla veidi enam kui for-each klausel ja value-of (tingimuste kontrolle jms). Transformatsiooni faile on ülesandes ette nähtud kahe asemel üks, kuid selle eest on failis tervelt kolm tabelit ning positiivne on, et XML failis on olemas 4 dimensiooni, nagu ülesandes kirjas oli.

Üldiselt arvab meie meeskond, et tehtud töö on kena ja konkreetne. Enam-vähem kõik ülesande punktid on hästi täidetud ning puudujääke ei panegi peaaegu tähele. Meeskond Travo 2.0 on ilmselgelt astunud sammu edasi ning tulevikus ootame vaid suuri tegusid! 2k16


Retsenseeris meeskond Lebokeiss OÜ.


Retsensioon veebiteenusele (Lebokeiss Core OÜ)

Travo 2.0 ülesseadmine võtab natukene näppimist. Kliendi poolel on vaja käivitada järgmised käsud frontend projekti kaustas:
npm install -g gulp
npm install -g jspm
npm install -g typings
npm install
jspm install
typings install
gulp watch

Esmalt tekkis ka nendega probleem, sest paketid polnud kirjeldatud fixed versioonidega, kuid see sai kiire commitiga parandatud (Jei for version control). See osa konfiguratsioonist läks kiiresti ja valutult. Natukene keerulisem oli asi serveri poole seadistamisega või vähemasti ei olnud niivõrd palju teadmisi selle poole seadistamisega. Projekt kasutab enda käivitamiseks porti 8080, mis ei ole projekti enda URLi port, vaid ideaalses maailmas peaks projekti pordi üle kirjutama. Meie konkreetses arvutis, kus projekti üles seadsime juhtus selline lugu, et seda porti kasutas juba IIS default projekt. Selleks, et see tööle saada kasutasime ära VSi funktsionaalsust, mis automaagiliselt Virtuaalse kausta ise lõi täpselt õigesse kohta. Siinkohal märgiks ära, et arvame, et IIS seadistati ümber, aga automaagilise VSi tõttu kindel ei saa selles olla ja endal teadmisi napib antud valdkonnas. Samuti tuli uuendada andmebaasi(DAL kihis Package Manageris Update-Database). Veebiteenuse süsteem on ehitatud 4ks kihiks BLL, DAL, Domain ja WebAPI.

WebAPI

Kihis asuvad kontrollerid ja API konfiguratsioon. Kontrollerid on hästi eraldatud ja kood kontrollerites on loogiline ja heade tavade järgi kirjutatud. Kõik kontrolleri routed on käsitsi ise määratud, mis teeb route mõistmise selgemaks ka ilma ASPNETi WebApiConfigi tundmata. Kõigil õnnestunud juhtudel tagastatakse 200 HTTP statuscode, võiks mõelda ka teiste, nt 201 kasutamisele. Üldiselt on kõik väga puhas ja seksikas.

Domain kiht

Mudelid pole kõige paremini kirjeldatud koodi siseselt, aga on olemas wiki leht, kus on kirjeldused olemas. Mingil määral uuendamata info, aga siiski olemas. Olemid on hästi läbi mõeldud ja planeeritud. Piiratud on ainult kasutajate sisestatav informatsioon. Positiivne on ka regexi kasutamine, mis silma hakkas. Väga ilusti on isegi enumid eraldatud oma kausta, isegi kui projekti maht on selles staadiumis väikene.

BLL kiht

BLL kihis on täpselt järgitud servicite loomise ja DTO-de tagastamise loogikat. DTO-d on loodud factory klasse kasutades. Järjekordselt on väga hästi kõik DTOd, Factory-d, Helper klassid ja Serviced jaotatud teemade kaupa. Lisaks on veel loodud Service klassidele Interfaced. Serviced on veel tühjad ja pole väga midagi sealt vastu vaatamas, aga kõik, mis olemas on hästi läbi mõeldud.

DAL kiht

DAL kihis on projektile omaselt Dbcontexti klass ümber nimetatud TravoDbContextiks. Lisaks sellele ei saa märkimata jätta, kui minimaalselt kõik kood on kirjutatud. Less is more põhimõte on siin väga tugevalt tuntav. Repositoried ja nende Interfaced on ootuspäraselt korrektselt paika pandud. Migratsioonid nähtavasti on seadistatud toimumaks automaatselt, mis pole lõpptoote välja toomisel parim lahendus.

Kokkuvõte

Kokkuvõtvalt on veebiteenuse struktuur meie silmade läbi ideealne. Funktsionaalsust projektil pole palju, mis kõlab halvasti, kuid arvestame, et tegemist on siiski tööjärgus oleva projektiga. See projekt on nagu väikene roheline lill, mis on pääsenud päikese kätte ja kiire kasv on tulemas, sest põhi on valitud rikas ja mineraalirohke. Tuleb austada projektijuhi otsust teha eeltöö põhjalikult ja hästi, mis edasise funktsionaalsuste lisamise teeb oluliselt lihtsamaks. Omast kogemusest teame, et mulla peale väetist kallates midagi iseenesest kasvama ei hakka, keevita palju tahad.

Tundub, et projekti tegija nähtavasti ehmatas ära negatiivsest XML koostamise tagasisidest ja võttis projekti jaoks jalad kõhu alt välja. Johtuvalt probleemikohti projektil väga välja tuua ei oska. Natukene kahju oli retsensiooni teha, hakkas oma projekti koodiga võrdlusi tuues natukene kõht keerama. Töö tundub olema päris hea mall, kuidas kõige keerulistemas projektides talitatakse, et säilitada hallatav struktuur. Mainiks ära ka, et teenus pole multiplatvormne.


Retsenseeris Lebokeiss OÜ.