Talk:Meeskond Vargamae

From ICO wiki
Jump to navigationJump to search

XML failide retsensioon meeskonna "Kirves" poolt

Meeskond Vargamäe on oma töö teinud elektroonikat müüva veebipoe Euronics eeskujul. Xml failis on olemas nõutav arv dimensioone ning vähemalt kolmel dimensioonil eksisteerivad ID-st erinevad atribuudid. Lisaks toodete nimekirjale on .xml failis kuvatud ka kasutajate kommentaarid. Kirjelduste ja kommentaaride juures on kasutatud ka CDATA tage. Samas on elemendi “toode” atribuudil “nimi” kasutatud jutumärki ekraani tollide tähistusena, mis paraku muudab atribuudi vigaseks. Seda oli märgata mitmes kohas. Näiteks: nimi="32" Full HD LED LCD-teler, Samsung / Smart TV".

Nõutud kahe .xsl faili asemel on meeskond teinud tervelt kolm. Neist kahe tulemuseks on .html failid; vastavalt üldise kaupade nimekirja ning teisel juhul detailsete kirjelduste, piltide ja kommentaaridega ning kolmandal esialgsest failist erineva ülesehitusega uus .xml fail. Lisaks tavapärasele elementide ja atribuutide väärtuste kuvamisele on kasutatud ka for-each tsükleid ja vahemuutujaid.

Kuna programmeerimine on inglise keeles, võiks jätkata sama keele kasutamist ehk siis kasutada inglisekeelseid parameetrite ja muutujate nimesid. See muudab koodi terviklikumaks ja kergemini loetavaks.

Kolmandas .xsl failis on kasutatud copy-of funktsiooni - seda on kül mugav kasutada, aga see on samas ka resurssinõudev.

Kui jätta välja probleem jutumärkidega atribuudi väärtuses, mille näol on arvatavasti tegemist lihtsalt väikse kahe silma vahele jäänud hooletusveaga, vastab esitatud kodutöö täielikult seatud kriteeriumitele. XML fail, skeemifail ja transformatsioonifailid on loogilise ülesehitusega ja kood korralikult trepitud.


XML failide retsensioon meeskonna "Udud" poolt

XML fail vastab nõuetele, ehk sellel on rohkem kui neli loogilist dimensiooni ja vähemalt kolmel dimensioonil kasutatakse atribuute, mis on enamat, kui lihtsalt ID. XML on loogiliselt üles ehitatud.

Esimene asi, mis XML-ist silma torkab on dimensiooni <toode> atribuut nimi="32" Full HD LED LCD-teler, Samsung / Smart TV". Siin on kahjuks kahe silma vahele jäänud jutumärkide kasutamine tollina, mis muudab selle vigaseks. 32“ asemel võiks näiteks kirjutada 32 inch, et saaks väljastada õige toote nime. Samas võiks faili paremini loetavuse pärast ka panna elemendi <saadavus> elemendi <toode> atribuudiks. Näiteks: <toode id="1" saadavus=“120“ hind="399" nimi="32" Full HD LED LCD-teler, Samsung / Smart TV">. Võib-olla võiks ka mõned kommentaarid lisada. Positiivse asjana võiks välja tuua, et XML failis on kasutatud ka CDATA tag’e.

XML faili skeemifailist tuleb ka välja, et osade atribuutide, mis ei saa kunagi negatiivsed olla (näiteks id ja saadavus) tüübiks on int. Selle asemel võiks kasutada tüüpi unsigned int.

XSL faile on tehtud piisavalt (kokku kolm). Tehtud XSL failide kohta ei saa nuriseda, nad on korralikult koostatud.

Kokkuvõttes võib öelda, et kõik tehtud failid olid päris hästi tehtud, ainult XML failis olid mõned väikesed vead.

Teenuse ja klientrakenduse retsensioon Meeskonna "MeilEiOleGrupinime" (alam-meeskond "Videofy") poolt

Klientrakendus(ed)

Esmalt saime Wiki-ist lugeda, et lisada tuleks ka koolid. Tehtud sai see otse andmebaasi, sest selle jaoks ei olnud implemeteeritud lisamist. Sama tegime ka kategooriatega ning sidusime need omavahel seosetabelis. Demoandmed oleks võinud lisada seed-is, seda eriti siis kui lisamist ei saa teha kasutajaliideses.

Konspekti lisamine

Esimese asjana tekkis segadus, et mis on kategooria. Koguvaatest selgus, et selle all on mõeldud õppeainet. Üritasime lisada konspekti. Kahjuks lisamine oli natuke katki. Projektiga me ei saanud kaasa kausta „Files“. Tegime kausta ise ning seejärel saime konspekti lisatud. Lisamisel märkasime, et meile antakse teada, et mõni väli tahab rohkem või vähem tähelepanu. Valideerimissõnumid olid head ja arusaadavad. Silma jäi ka failitüübi kontroll, faili lisamisel, kus lubatud oli vaid kindlad faililaiendid. Soovitusena: kirjelduseväli võiks olla suurem (ehk textarea). W8.1 rakenduses on lisamine isegi paremini implementeeritud. Näiteks siis kui valida kool hüppab sellest allpool olev kategooriaväli laht. Meie arvame, et nii on oluliselt selgem, võrreldes MVC-iga kus kategooria on koolist ülalpool. Samuti on ainekirjeldus suurema sisestuväljana kui teised. Sarnaselt MVC-ga, välju kontrollitakse ja vastu saame selgeid veateateid.

Konspekti redigeerimine

See vaade on kahjuks tõlkimata jäänud. Igal kasutajal on võimalus redigeerida kõiki konspekte olenemata konspekti omanikust/ loojast, kui ta teab konspekti Id-d. Kirjelduse väljal on nüüd puudu valideerimine, ning lisada saab väga pikka kirjeldust. W8.1 rakenduses on ka see võimalus olemas. Siin on kõik sarnaselt lisamisvaatega. Mingeid puudujääke ei avastanud. Siin on kirjeldusväljal olemas kontroll, mis ei lase väga pikka teksti lisada.

Konspekti vaatamine

Vaade on väga intuitiivne ja paitab silma. Ennist lisatud fail avamisel võis konsoolis näha õigustega seotud viga: Not allowed to load local resource: file:///C:/Users/<Kasutaja>/Desktop/Conspekto/MVC//Files/Real.docx Kui me püüdsime lisada konspekti lemmikute alla või siis kommentaari koos hinnanguga lisada siis ei juhtunud midagi. Midagi ei tekkinud baasi(POST läks sama Details actioni pihta, mis vaadet kuvas).
Võibolla oli tegemist demo ületõstmise veaga või erinev VS versioon aga parandus antud olukorrale oli järgnev:

  • Mõlemale vormile details vaates sai lisatud päisesse täpsustavaid parameetreid.
@using (Html.BeginForm("SubmitReview", "Conspectus", FormMethod.Post))
  • SubmitReview ja ChangeFavoriteState actionitelt võtsime ActionName annotationi küljest
Näide
Olnud kood


  • Mõlemas actionis lasime tagastada redirecti tagasi vaateactionile, kui andmed baasi salvestatud
return RedirectToAction("Details", new { id = review.ConspectusId, review = review });


Kui püüda lisada uut lemmikut inimesele, kes ei ole selle konspekti autor siis seda teha ei saa. Samas ei anta ka viga. Kasutaja hindamine on olemas nähtaval MVC-s kui ka W8.1-e rakenduses. Mingil põhjusel seda kasutada ei saanud.

API

Kohe alguses võib öelda, et WebAPI on väga hästi tehtud. Kõik kontrollerid ja meetodid on turvatud, ilma audentiga ei saa ligi peaaegu kuskile. Mis on väga hea.
API meetodid on dokumenteeritud. Abilehel on näha mida, mis link teeb ja tagasi annab. Kasutatud on DTO-si, mille tõttu me saame tagasi vaid vajaliku informatsiooni.
API-s ka kontrollitakse mida meile tagastatakse ja mida sisestati. Näiteks kui vasteid ei leitud siis tagastatakse Not Found (404) ja vale sisendi korral Bad Request (400).

Koodiosa

Üldpilt on hea. Enamasti on kood dokumenteeritud, mida meetod teeb, mis on tema sisendparameetrid, mida väljastatakse (enamasti kasutatud ///). Mõne koha peal MVC kontrollerites luuakse tagastatav model ActionResulti View meetodis, mis ei ole just kõige parem praktika. Kontrollereid on palju, mitte ei ole üks „peakontroller“ (seda nii MVC-is kui ka WebAPI-s). Lahenduse ülesehitus on loogiline. Klientrakenduse projektid on eraldi kaustas (peale MVC). Kasutatud on UoW-i, factory mustrit, DataTransportLayer-eid ja Objecte. WebAPI poolel on hea näha, et kontrollerid on puhtad. Neis ei ole äriloogikat, kõik on viidud TransportLogic kihti, kus neid kasutatakse, ning kus neid on hea muuta. Teenusega suhtluse klassid on viidud eraldi projekti, mida kasutab nii MVC kui ka W8.1 rakendus.
Teenuses on enamasti tagastustüübina kasutatud IHttpActionResult-i (märkasin vaid ühte kohta, kus oli tagastuseks DTO objekt). W8.1 rakenduses oli hea meel näha, et tagasinupp viis avalehele mitte eelmisele lehele. Tihti see unustatakse.

Lõpetuseks võib öelda, et teenuseosa oli väga hästi tehtud, aga MVC osa jättis vigade tõttu pooliku mulje.