Talk:SaanEndagaHästiLäbi

From ICO wiki
Jump to navigationJump to search

Meeskond „V“ retsensioon meeskond „SaanEndagaHästiLäbi“ XML-i kohta – 24.03.2013

Esmalt XML struktuuri vaadates jääb silma, et see on väga lihtsa ülesehitusega. Selline lihtne ülesehitus ei vasta ülesandes püstitatud nõuetele. XML struktuur on küll kohati 4 dimensiooniga, kuid enamus nendel puuduvad atribuudid täielikult. Samas ülesandepüstituses oli nõutud 3-el dimensioonil atribuute, mis oleks enam kui lihtsalt „ID“. Nii mõnegi elemendi oleks võinud atribuudiks panna, näiteks nagu „id“, „sex“.

XSD skeemifaili puhul hakkab silma, et isikukood kirjutatakse sõnena mille pikkus on piiratud 11 tähemärgini. Võibolla on pikkuse piiramine see põhjus miks kasutati sõne, kuid nii ei välistata tähemärkide sisestamist. Alternatiivina oleks võinud kasutada numbritüüpi ning „totalDigits“ piirangut, mis samuti piiraks numbrite arvu. Kuupäevamuutujate puhul jääb arusaamatuks, miks ei kasutada sisseehitatud ajatüüpe. Muus osas tegu väga põhjaliku skeemifailiga, mis ei jäta XML koostamisel eksimusteks ruumi.

XSLT-d ise käivitada proovides ilmnes, et üheski brauseris see ei funktsioneeri, mõningase uurimise järel selgus, et probleemiks on täpitähed. Kui täpitähed olid eemaldatud, siis XSLT kuvas XML-is peituva isiku info ilusti vormistatult. Ainus silma häiriv tõik on sünniaeg, mis kuvatakse kujul „198911118“, siinkohal oleks võinud selle paremini loetavaks vormistada. Meeldib idee, et sugulaste ID-d on lingid, mille kaudu võiks vajadusel ka nende info kohe kättesaadav olla, kahjuks selle lõpuni teostus oleks nõudnud juba mingisuguse teenuse olemasolu. XSLT stiilifaile oli ülesandepüstituses nõutud 2 või 3, seega on üks ülesande täitmisest puudu.

Kokkuvõtteks on meeskonnal küll mõningaid puudujääke, kuid kohati on tehtud rohkemgi kui vaja, näiteks väga põhjalik XSD fail. Oleks oodanud ka XSLT näidet konkreetse XML-i peal, kuid ülesandepüstitusel seda otseselt nõutud ei olnud. Töö tulemusestest jääb siiski mulje, et XML teema on läbi töötatud ning aru saadud selle rakendamise võimalustest.

Meeskond "V"

Klientrakenduse retsensioon meeskonnale „SaanEndagaHästiLäbi“

Meeskonnalt AFFA II

Klientrakenduse kirjutamise tegi eBay API kasutamine tõenäoliselt keerulisemaks. Enda kirjutatud teenuse kasutamine on mõnevõrra lihtsam, kui mõne teise osapoole pakutavat teenust kasutada ja seal tekkivaid probleeme lahendada.

Programmi struktureeritus on hea. On näha, et on kasutatud DAO mustrit, mis aitab andmete hankimist nende programmis kasutamisest eraldada. Samas on koodi kommenteerimine puudulik. Kommentaarid on ainult päringu koostamise klassis (Query.cs) ning need on pärit eBay API näitest. Koodi on suhteliselt vähe ja midagi väga keerulist ei ole, kuid kommentaarid teeksid kiire ülevaate saamise kergemaks.

Programmi kasutamiseks võiks olla lühike juhend kirjutatud. Näiteks võiks kirjas olla, kust ja kuidas saab ItemID, mis on programmi kasutamiseks hädavajalik. Väike selgitus, milleks ja kellele sellist programmi vaja on, oleks tore.

Programmi ülesehitus võiks olla selline, et see mittesobiva sisendi korral ei jookseks kokku. Praegu jookseb vale toote numbri sisestamisel programm kokku. Ilmselt oleks mõistlik kasutaja sisendit kontrollida ja proovida mingit abistavat tagasisidet anda. Lihtsustusena võiks kasutaja saada sisestada ka URL-e.

Proovides lisada asja, mis on juba nimekirjas olemas, võiks programm kasutajat teavitada, et selline asi on juba nimekirjas või siis olemasolevat lihtsalt uuendada. Praegu saab terve nimekirja ühte ja sama asja täis kirjutada.

Kujundus on tehtud üsna minimaalne ja lihtne, kuid XAML-is saaks paremini kasutajaliidese elemente paigutada, et programmiakna suuruse muutmist arvesse võtta. Praegu avaneb programm sellises suuruses, et alumised nupud jäävad pooleldi teise elemendi taha peitu ning kõik on fikseeritud mõõtudega. Akent suureks tehes ei kasva DataGrid-i laius, väiksemaks tehes ei mahu see akna piiridesse ära ja mingisugust kerimisriba ei teki. Kui kujunduses oli ette nähtud, et programmi kasutatakse fikseeritud mõõtudega, siis peaks selle ka programmis rakendama. Samuti võiks väikeseid mugavusi lisada, näiteks kui tootenumber on sisestatud, siis enter-klahviga võiks toimuda lisamine. Uue asja lisamise alustamisel võiks TextBox-i algse sisendi ära kustutada.

Kokkuvõttes vajab klientrakendus veel arendamist. Üldiselt lahendatud funktsionaalsus töötab korrektsete sisendite korral ning kood on hästi struktureeritud, kuid ei ole kommenteeritud. Programmil võiks rohkem funktsionaalsust, et juba lisatud asju saaks eemaldada. Programmi sulgemisega kaovad kõik andmed. Lahendusest jääb kiirustatud mulje, programmi üldine maht ja teostatud funktsionaalsus on suhteliselt vähene, ei ole arvestatud võimalusega, et sisend ei ole korrektne.

Meeskond BitByBit retsensioon meeskonna „SaanEndagaHästiLäbi“ kliendirakendust

Nagu ka Wikis öeldud siis kliendirakendus polnud enda teenuse kohta tehtud, vaid hoopis Ebay veebiteenus. Teenusega saab ebayst igasuguseid tooteid nimekirja lisada, salvestada neid hindu vaadata ja lisaks saab valida eraldi ühe toote ja nupule vajutades selle lingile liikuda.

Alustuseks, oleks võinud olla mingi väike kasutusjuhend ka rakendusele. Küll aga välimuse peale väga ei panustatud tundub et rakendus teeb nii nagu kirjelduses oli öeldud. Koodi vaadates tundub et on otse vastu andmebaasi tehtud rakendus. Andmebaasi mudelile lähenemiseks läheb aga vaja vanemat sql serverit. Aga asi töötab siis nii et on olekas sihuke MainView kus on ära kirjeldatud üks rida (ehk ühe toote id hind pealkiri ja asukoht). Siis Mainwindow cs failis on loodud list nendest ridadest. Aga et kuvada seda mida saadakse Ebayst on ka tehtud meetod et neid ridu konverteerida kuvatavateks ridadeks. Kindlasti üks raskemaid kohti võis olla urli ehitamine mingi toote otsinguks (seda saab näha Query nimelises klassifailis). Veel on seal sihuke huvitav klassifail nagu DAO kus on paar huvitavat meetodi. Komenteerimine ja dokumentasioon on puudu seega usun, et need meeotid on mõeldud : esimene andmebaasist kõikide esemete listi tagastamine, kasutatud on päringut seal sees mis käivitamisel toob kõik esemed ja paneb nad listi, teiseks on uue eseme lisamine andmebaasi.

Natu vigane, asi mis arusaamatuks jäi oli esemete lisamine, sinna esiteks kuluks väike veahaldus ära, et kui sisestada näiteks negatiivseid arve, et siis ta ei hakaks kokku jooksma.

Veel , olgugi et disainikallal ei ole viisakas nuriseda, siis rakenduse käivitamisel olid nupudu pooleldi jäänud akna ääre alla peitu.

Mõteid asja edasiarendamiseks - Nagu enne sai mainitud siis vb kujundusele rõhku panna, et ei usu et oleks väga raske lisada sihukene dünaamiline kujundus juurde, mis lubaks kasvõi aknale mingeid kindlaid mõõte. Et sesmõtes on idee huvitav, võimalik teha oma nagu isiklik osukorv, mis võiks tulevikus näiteks olla telefonipeal, et kui oled online saad oma esemed kõik väljavalida ja hindu uurida, ja kustutada vajadusel ning siis kui järgminekord internetile lähedale saab et siis see sünkoniseeriks kasutajaga ära.

Kokkuvõtvalt on rakendus väga hästi ehitatud ja igati töökorras, et hea näide sellest et ei pea tingimata enda teenuse kohta ka kliendirakedust tegema, vaid saab ka teisiti. Lisaks ,et just sihuke väga huvitav teema valiti, ning et seda kõike tehti üksi. Kui aga peab nurisema siis võib öelda, et suuremosa koodi oli komenteerimata, ehk kui ma siin rakenduses millestki valesti arusain, siis vabandust. Veel on ka projekti failide hoidmine veits lahtine, et ühest kohast tuleb andmebaasi fail ja seal samas lähedal on kohe üks pilt mis käib vaatega kaasas.

Meeskond BitByBit retsensioon meeskonna „SaanEndagaHästiLäbi“ teenust

Nagu Kliendirakendues sai mainitud siis alati ei pea endatehtud teenus ja kliendirakendus kokku minema. Teenusest endast siis - põhimõteliselt peaks see olema võimeline inimeselt andmeid küsima ja siis neid salvestama kuhugi. Selleks on tehtud järgnevad meetodid: “personRequest” - mis pärib andmebaasist isiku isikukoodile, “createPerson” - mis loob andmebaasi isiku kirje vastavalt sisendanmetele, “updatePerson” - uuendab andmebaasi isiku kirjet vastavalt sisendandmetele, “deletePerson” - kustutab isiku andmebaasist.

Koodist rääkides, siis on väga hästi struktureeritud. Niih kui koodis vaadata (Iservice Interface) neid meetode siis esimesel kolmel meetodil on sisendiks person mingit liiki objekt. Kuid viimasel ehk deletil on sisendiks String tüüpi id, mis tundub veider, kuid kõik need meetodi kasutavad Data access layerit ning seal on delete ikkagi intiga. Kuid rääkides sellest andmebaasi kihist lähemalt siis ma võin jälle eksida vähese komenteerimise pärast, aga meetodid olid realiseeritud nii et inimeselugemisel tehakse query kus küsitakse kõiki person tüübi välju erladi, need moodustavad Dataoptions muutuja mida omakorda kasutatakse andmebaasist millegi laadimiseks. Peale seda käivitatakse pärin mis tagastab selle id koodiga person ja valitakse listist esimene. Personi lisamise meetod tundub tavaline nagu kooliski tehtud, aga update on jälle natu teistsugune, kus on lihtsalt meetodi nimi teine (attach) ja siis salvestatakse andmebaasi. Delete meetod on aga jälle huvitav lähenemine, kus võetkse decimal parameetrina ette ja otsitakse queryga list personitest. Siit ka väike segadus, et ta teeb uue muutuja listi neist personitest ja kui see list on suurem kui null siis teeb uue isiku muutuja mille ta väärtustab selle listist saadud isikuga ja muudab selle active state false’iks.

Kokkuvõtvalt tundus huvitav töö ja sai näha kuidas teisiti admebaasiga läbikäia, kuigi oli kohti kus tundus et kirjutati rohkem koodi kui oleks pidanud.