Talk:Meeskond: Premium

From EIK wiki

Retsensioon meeskonna Premium projekti HomeLibrary analüüsile

https://wiki.itcollege.ee/index.php/Meeskond:_Premium

Koostaja: Meeskond Scary Spooky Skeletons

On näha, et loodava rakenduse funktsionaalsus on detailideni läbi mõeldud. Loodud on ka kasutajaliidese esialgsed sketch’id, mis ilmselt on olnud ka analüüsi koostamisel suureks abiks (pilt ise on küll kõrvalise vaataja jaoks üsnagi raskesti hoomatav, st tundub olevat arutelu käigus valminud mustand).

Analüüsi loetavust hõlbustaks teksti parem liigendamine (nt bulletpointide kasutamine, oluliste mõistete esile toomine jmt). Palju annaks arusaadavusele juurde ka see, kui lõpus toodud vaadete joonised oleks kajastatud kohe vastavate analüüsi peatükkide juures.

Peamine küsimus, mis analüüsi lugedes tekib, on et kellele on rakendus mõeldud? Kui koduse raamatukogu pidajale (st näiteks kui mina tahan oma olemasolevaid raamatuid hallata ja vahel välja laenata), siis milleks on vajalik kasutajakontode loomine (ja parooliga sisse logimine)? Vaevalt, et te olete plaaninud oma kodu nurka iseteenindusterminali paigutada :) Kui see on mõeldud nö välisele laenutajale (st näiteks mina tahan sõbra „raamatukogust“ omale raamatuid laenutada), siis kuidas mina sellele tarkvarale ligi pääsen? St kas on olemas mingi keskserver, millele ma rakenduse kaudu saan ligi pääseda? Või soovite rakenduse luua veebipõhisena? Arusaamatuks jääb ka see, kust kasutaja oma soovitud raamatu lõpuks füüsiliselt kätte saab.

Kokkuvõtteks, on näha, et olete palju vaeva näinud ja rakenduse üsnagi põhjalikult läbi mõelnud. Kui suudate ära vastata ka ülaltoodud küsimustele, siis võib sellest täitsa tore töö tulla (st midagi, mida saaks ka praktikas kasutada).

PS. Analüüsi lõpus toodud diagramm on vast siiski ERD-diagramm, mitte UML :)

https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model

https://en.wikipedia.org/wiki/Unified_Modeling_Language

Retsensioon meeskonna Premium esmasele prototüübile

Koostaja: Meeskond TTT (Trellid Teevad Tugevaks)


Business Logic Layer BO-d on paksult täis service´te koode. Meetodid tagastavad alati ühe või mitu BO-d ja kõik need BO-d, mis on tagastatud, on muuhulgas juba laetud. Meetod, mille nimi sisaldab sõna „load“ jätab mulje, justkui tuleks laadimist eraldi teha. (See peaks olema tegelikult servise´is) Näiteks createBook teeb iseenda klooni, aga meetodi nimi ise sellele kuidagi ei vihja.

Rakendus ise Rakenduse üldmulje on väga hea. Tore, et on jõutud tegeleda graafilise poolega. Hetkel on töökorras (st avanevad) Book Lending ja Log. Aga kuna BLL on võrdlemisi tühi, siis ei ole võimalik lõpuni funktsionaalsust testida.

Andmebaasi struktuur Lending ja Person tabelite vahel on kaks sidusust, kuid Lending tabelis ei ole välju, mis seda võimaldaks. Vea parandamiseks soovitame enne diagrammi uuendamist vana diagramm ära kustutada. Wiki analüüsis Lisa 2 kujutatud andmebaasi struktuur ei vasta reaalsele andmebaasi struktuurile?

Lisamõtted Meetodite nimed võiksid olla rohkem ette ennustatavad, ehk siis võiks luua ühtsema nimede süsteemi. Näiteks, kui mul on meetod, mis annab kõik raamatud, siis selle nimi võikski olla „annaKõikRaamatud“. Autoformat´it võiks ka kasutada alati enne Commit´imist (nt üleliigsed tab´id jms) Lisakiitus wireframe joonistuse ja põhjaliku Wiki lehe eest!

Retsensioon meeskonna Premium lõpptootele

Koostaja: Meeskond TTT (Trellid Teevad Tugevaks)

BLL

BO'd tegelevad otse DAL'iga, kuigi selleks peaks olema ainult Service'id. DAL ei puutu ju äriloogikasse. Samamoodi ei peaks uue BO loomine olema BO enda asi. BO peaks olema kas lihtsalt initsialiseeritav või peaks Service käituma factory pattern'i laadselt ja looma teatud meetodiga sulle sobiva BO instantsi. BO ise on juba konkreetne instants ja ei peaks ise ennast looma. (Kattub mõningal määral probleemiga, et BO tegeleb üldse DAL'iga) Service'id on praktiliselt tühjad, vaid mõned üksikud list'i getterid on. (pea-asjalikult "getAll" stiilis meetod) Ka on kõikvõimalikud "delete" tegevused puhtalt BO's.

Nimekonventsioonid on jätkuvalt problemaatilised. Ei ole aru saada sedagi, kas mingi meetud tagastab andmeid, või teeb (muudab) andmetega midagi.

Autoformatit pole jätkuvalt kasutatud. Osaliselt on koodi treppimine täiesti sassis.

On huvitav, et BLL'is on olemas Program.cs, mis on samas tühi. Kui selline fail olemas on, oleks lootnud mõnda kiiret testikoodi vmt sealt leida.

DB

Lending tabelis on foreign key millegi pärast AuthorsBook pihta, mitte Book pihta. Üpris kindlasti see nii mõeldud polnud.

Rakendus ise

Booklending -> Lend Book vaates on list view'd muudetavad. (Peaks vist olema read-only) Search'i kasutada ei osanud. (Pole valmis ja väljad puudu?) Kui üritasin raamatut laenata sain koodist vastu päid ja jalgu mõnel korral. (Ilmselt seetõttu, et listid on muudetavad ja ma sudisin neid ka)

Disaini osas on nupud mingi huvitava disainiga nii, et peab hiirt paar sekundit peal hoidma, et nad oma animatsiooni ära teeks, enne kui saab nuppu vajutada.

Kõige põhilisem funktsionaalsus samas justkui eksisteerib. Kui kõike õigesti teha, siis saab lisada inimesi ja raamatuid ning seejärel saab inimese ja raamatu omavahel siduda läbi raamatu laenu. Hiljem näeb ka logist üht-teist.

Autorite osas on äärmiselt oluline autori nime õigesti kirjutada, et ei tekiks andmebaasi sama autorit mitu korda. Parem lahendus oleks autoreid eraldi hallata ja raamatute juures juba eelnevaid autoreid valida. Kui raamat kustutada, jääb autor alles. Pole otseselt samas probleem.

WIKI

Personi ja Lendingu vahel on andmebaasi diagrammi järgi jätkuvalt 2 viidet, millest aru ei saa. Diagrammis on ka sidusus Lending ja AuthorsBook vahel. Kas see tähendab, et kui raamatul on mitu autorit, siis ma saan laenutada selle raamatu ühe konkreetse autoriga? (lending peaks olema seotud raamatuga)