Talk:DevHelp
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.
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. Kasutusel on ka logimine ehk logitakse maha päringuid.
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.
Retsenseeris meeskond Agraarbeib
Liikmed:
- Kaia Runthal
- Marianne Trubetskoi
- Taavi Tilk
- Mihkel Matson