Talk:DevHelp

From ICO wiki
Jump to navigationJump to search

Meeskond: Agraarbeib

Sissejuhatus

Käesolev retsensioon on koostatud DevHelp meeskonna C# projektitööle.


Rakenduse kasutamise esmamulje

Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.

Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis "Kustuta projekt", kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, "Algus" ja "Lõpp" textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida. Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged("Users");). Kasutusjuhendi osas võiksid autorid seda täiendada, lisades juurde konreetsete tegevuste eesmärke ja lahtrite vajalikkust. See annab kasutajale parema ülevaate, teisalt ka juhtnöörid arendajatele.


Esialgne eesmärk ning sellele vastavus

Tänane rakendus vastab kenasti etteantud nõuetele, on olemas kasutajate lisamine, projektide ja iteratsioonide haldamine ning kasutajalugude genereerimine. Kasutusel on andmebaas ning Entity Framework, tegemist WPF rakendusega. Esialgne funktsionaalsus on peaaegu täielikult kaetud, ainsad puudused tunduvad olevat kasutajate grupeerimine ning kliendipõhine filtreerimine. Kasutusel on ka logimine ehk logitakse maha päringuid.


Koodi head omadused

Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate kihtide vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on eesmärgipäraselt nimetatud, lähtudes kasutusotstarbest ja seetõtu hõlbustavad koodi lugemist. Peab ära mainima, et kood on üllatavalt hästi kommenteeritud, mis annab kõrvaltvaatajale hea lisandväärtuse ja aitab ehk mõningaid kasutatud nüansse ja põhimõtteid paremini mõista. Edukalt on kasutatud OOP-i päriluse omadust ning kasutajavaadete poolelt bindingut.


Koodi puudused

Analüüsi käigus selgus, et osaliselt puuduvad sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel. Päringute tegemisel antakse meetodisse kõik propertid ükshaaval (nt AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teha uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte ükshaaval ning projekti loetavus ühtlasem.


Soovitused

Soovitaks BusinessObject folderi ja domain folderi luua eraldi projektidesse, samuti ka teenused. Kui näiteks tuleks nüüd luua veebirakendus ka veel, siis ei peaks eraldi neid kihte (DAL, Domain, BLL) looma hakkama. Soovitatav on ka kasutaja sisendi filtreerimine ehk erinevate väljade kontroll.


Kokkuvõte

Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik andmebaasistruktuur projekti töökindluse ja paindlikkuse. Puudusena saame siis ainult ära märkida kontrollide puudumise andmete sisestamisel. Lisaks eelnevatele soovitustele, oleks ehk kasutajakogemuse poolelt võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis ning veidi selgem kasutajaliides.


Retsenseeris meeskond Agraarbeib

Liikmed:

  • Kaia Runthal
  • Marianne Trubetskoi
  • Taavi Tilk
  • Mihkel Matson