Talk:Meeskond: Travo 2.0

From EIK wiki

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Ü.

Retsensioon Klientrakendusele (Lebokeiss Core OÜ)

Sissejuhatus

Retsensioon põhineb Travo projekti githubist kloonitud koodile. Retsensioon tugineb projekti seisule kuupäevaga 22:00 09. Juuni 2016. Retsensioonis anname lühiülevaate, kuidas projekt käima saada, milline on kasutajaliides, milline on kood, ning mis oli hästi ja mis oli halvasti. Head lugemist.

Kogu kompoti käivitamine

Folderitele peale vaadates saab kohe aru, kus võiks olla veebiteenus ja kus võiks olla klient, mis seda teenust kasutab. Aga kuidas seda ilma vigadeta käima nüüd saada? Selle kohta oleks oodanud pisikest juhendit, mida ja kus installida, ning mida käivitada aga seda polnud. Õnneks arendaja vastas kiirelt ning andis põhikäsud, kuid osa tuli ka endal juurde leiutada. Juhendi leiate veebiteenuse arvustuse alamrubriigist

Kasutajaliides

Kasutajaliidese puhul torkab silma kohe minimaalsus, mis on kohati hea, ent kohati käib ka närvidele. näiteks konto registreermisel, ei viska mingeid error sõnumeid, lihtsalt registreeri nupp on disabletud..ning lahter, mis polnud valiidne oli punase raamiga(mida oli vähemalt mul raske märgata ja vähemalt mul jäi natukeseks ajaks segaseks, et miks registreerida ei saa. Nii et võiks mõelda siiski arusaadavamate error märguannete peale Ning teine märkus,ka pahade error sõnumite kohta, et olemasoleva kasutajanime registreerimise katse peale error teade "Oops, something went wrong." ei ole kohe kindlast piisav. Sisseloginuna võib märgata, et palju wikis lubatud funktsionaalsust on jäänud tegemata.. nt seadete leht ja ajaarvestuse süsteem. Lehed küll iseenesest olemas aga neid ehib TODO tag. Samuti jäi silma viga, et mõnikord ei näita paremal kasutajanime, mõnikord näitab. Paar korda jäi ka registreerimise kast peale registreerimist lihtsalt laadima.. kuigi andmed andmebaasi tekkisid. Nii, et probleeme veel süsteemis leidub. pole täiesti veatu ning tuleks üle testida. Samuti jäi arusaamatuks, miks oli vaja registreerimisel, et Nime minimaalne pikkus on 3 tähte.. kuigi sisselogimine oli emailiga. sel juhul võiks nimepikkus olla vaba.. kui ma tahan olla "J", las ma siis olla J. Kedagi see ei häiri. Kasutajaliides tundus ise muidu kiire ja sujuv. Ainult loading screen tundus olevalt häirivalt kaua ees, ent selles võib olla ka süüdi riistvara, kus peal ma serverit jooksutasin.

Kasutajaliidese edasiarenduse soovitused

Kasutusmugavuse poolt soovitaksin kindlasti lisada, et peale siltide või kaartide lisamist automaatselt hakkaks vastavalt järgmist silti, või kaarti sisestama, sest süsteemi testimisel vähemalt tundus, et oleks loogiline, et süsteem nii käituks(vähemalt trello käitub nii). Samuti sooviks siltide ja kaartide positsiooni vahetamise võimalus ja ka kaadi kirjelduse muutmisel võiks saada muuta vana kirjeldust, mitte, et kogu kirjelduse peab nullist uuesti kirjutama.

Koodi ilu

Klient oli kirjutatud Aurelias, mis on retsenseerija jaoks täiesti tundmatu põld. Aga kui rahulikult folderite süsteemis ringi klikkida võib juba nime järgi aimata, mis ees ootab: näiteks folderis assets on stiilid ja pildid, folderis lib on abiscriptid ning service kaustast võib leida põhiloogika, mis suhtleb web-serveriga. Koodi osa miinuspooleks tooks selle, et ühtegi koodikommentaari kuskilt silma ei hakkanud.

Kokkuvõtteks

Kuigi weebikliendi pole täies mahus realiseeritud(wiki lehes on esialgsed plaanid veidi suuremad), on kasutatud uudset tehnoloogiat ning nagu ma aru saan, on ka plaanis seda tehnoloogiat edaspidi kasutada. Nii et võib õelda, et projektimeeskond kindlasti sai sellest projektist kasu ning saab õpitut ka tulevikus rakendada. Koodi vaadates paistab, et seni tehtu on arhitektuuriliselt puhas ja loogiline, ning seda on lihtne tulevikus edasi arendada.. Samuti koodi vähesust vaadates tekib väike kadeduseuss hinge, et oleks võinud ka oma enda projektis kliendi programmiks massiivse asp.net-i asemel võtta veidi kergekaalulisema javascripti, ent ilmselt oleks meil jäänud oskustest veidi vajaka. Tarvole soovib meie meeskond tuult tiibadesse ning loodame, et näeme teda juba varsti selle lehe edasiarendusega projetiga Travo 7.0-ga maailmaturgu vallutamas. Tarvo, ole tubli poiss ja vii eesti maailmakaardile!

Peamised punktid lühemalt ning selgemalt (neile, kes pikka juttu lugeda ei viitsi).

plussid

  • uue platvormi kasutamine (Aurelia)
  • kood hästi liigendatud
  • kasutajaliides minimaalne
  • edasiarendatav
  • hea idee, mis võib kunagi jõuda ka teostuseni

miinused

  • puuduv dokumentatsioon
  • kõik lubatud funktsionaalsus pole ära tehtud
  • kohati errorteated liiga minimaalsed
  • kahtlased ootamatud vead
  • kasutajamugavus jätab soovida

Retsenseeris Lebokeiss OÜ.

Retsensioon server- ja klientrakendusele (Givela)

Kahjuks antud projekti ei õnnestunud käivitada ja selle jaoks puudus ka juhend. Klientrakenduse tööd nägime kaitsmise ajal ning töötas ootuspäraselt.

Tähelepanekud esitlust ja koodi vaadates:

Positiivne

  • Projekti koodi struktuur on arusaadavalt ülesehitatud ja oli lihtne koodi üle vaadata.
    • DAL, BLL, Domain ning Web osad on oma vahel loogiliselt ülesannete alusel ära jaotatud ja ei sisalda üleliigset.
  • Esitlusel programm töötas ja võimaldas märkmeid luua ning hallata.
  • Esitlusel näitas head API dokumentatsiooni.
    • Lisaks on wiki lehel välja toodud projektis kasutatavate tehnoloogiate õpetused ja juhised, mis olid projekti koostamisel abiks ning kasutatud.

Neutraalne

  • Ülesande täitmiseks kasutati rikkalikult tehnoloogiat, ehk kohati põhjendamatult.

Negatiivne

  • Wiki lehel selgub, et näiteks kasutajate registreerimist, kasutajaandmete ja parooli muutmisvõimalus on "Must have" funktisonaalus.
  • Aine nõutest täitmata punktid:
    • kasutajate haldamine
    • Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes
    • Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist
    • WebApi autentimise juures kontrollitakse kasutajanime ja salasõna asemel kaks korda kasutajanime olemasolu.
  • Tagasisidet ja veahaldust kasutaja tegevustele minimaalselt
  • Kommentaare minimaalselt

Kokkuvõttes on server ja klientrakendus hästi üles seatud ning funktsionaalsed, kuigi paraku osutus jooksutamine komistuskohaks retsenseerimisel. Olid ka mõned üksikud iluvead front-endi esitlemisel, kuid need on väga väike miinus.