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 eeesmärgipäraselt nimetatud, lähtudes kasutusotstarbest ja seetõtu hõlbustavad koodi lugemist.


Koodi puudused

Koodi on vähe kommenteeritud. Puudub osaliselt sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel. Päringute tegemisel antakse meetodisse kõik propertid üks haaval (nt AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teba uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte üks haaval.


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 database struktuur projekti töökindluse ja paindlikkuse. Puudusena siis ainult kontrollide puudumine andmete sisestamisel. Oleks võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis. Oleks tagatud parem UI keskkond. Soovitanud oleks tulevikku arvestades, et MVVM oleks jaotatud projektide vahel, mitte folderite vahel.


Retsenseeris meeskond Agraarbeib

Liikmed:

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