PowerPoint Presentation

Podobné dokumenty
PowerPoint Presentation

(Microsoft Word Zadanie na s\372\235a\236 KROS DESIGN AWARD .doc)

Microsoft Word - Priloha_1.docx

Objektovo orientované programovanie

Informačný systém pre externú časť a písomnú formu internej časti maturitnej skúšky Informačný systém pre EČ a PFIČ maturitnej skúšky Užívateľská prír

Identity Lifecycle Management

enum

Privátna zóna pre prevádzku Obsah Privátna zóna pre prevádzku 1 Obsah 1 Webová stránka 2 Úvodná stránka 2 Registrácia prevádzka/penzión

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

Microsoft PowerPoint - OOP_prednaska_10.pptx

eKasa

DediĊnosť

Princípy tvorby softvéru Programovacie paradigmy

Matej Kendera - PDF, word, lucene, java

Microsoft PowerPoint - CONNECT_R&A_76_sk

IT NEWS

Ponuka Štart

Prevádzka

Centrum vedecko-technických informácií, Odbor pre hodnotenie vedy, Oddelenie pre hodnotenie publikačnej činnosti Vyhľadávanie a práca so záznamami - C

Hellboy je 5-valcový, multi-líniový výherný video prístroj. Hrať možno, v závislosti od rozhodnutia hráča, na 1 až 20-tich herných líniách. V spodnej

Navigácia po úvodnej stránke elektronickej schránky Dátum zverejnenia: Verzia: 10 Dátum aktualizácie: Navigácia po úvodnej st

Príručka pre používateľa OTP tokenu Strana 1 z 8

”Reel Gems”

História

STRUČNÝ NÁVOD KU IP-COACHU

NÁVRH UČEBNÝCH OSNOV PRE 1

Funkcionálne programovanie Cvičenie 9 Funkcionálne programovanie v Jave Sergej Chodarev 22. november 2017 Technická Univerzita v Košiciach

Obsah tejto príručky Microsoft Prechod na program Access 2010 z programu Access 2003 Vzhľad programu Microsoft Access 2010 sa výrazne odlišuje od prog

PowerPoint Presentation

Architektúra a návrh Zdôvodnenie navrhnutej architektúry Systém si architektonicky môžeme rozdeliť na viacero vrstiev. Najpodstatnejšie je oddelenie z

Príručka pre používateľa bezpečnostného tokenu EZIO Pico Obsah: 1 Určenie 1 2 Popis produktu 1 3 Nesprávne zadaný PIN kód (PIN FAIL) 3 4 Použitie Aute

Podvojné účtovníctvo, fakturácia a sklad ekasa: štandardný predaj priamo z programu Pri predaji s priamym napojením na softvér je potrebné mať online

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

Konkurentné programovanie

7002

PowerPoint Presentation

PowerPoint-Präsentation

Alice in Wonderslots je 5-valcový, multi-líniový výherný video prístroj. Hrať možno na 20-tich herných líniách Hra je prístupná aj prostredníctvom mob

Finančné riaditeľstvo Slovenskej republiky 9/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor/Technik Inf

bakalarska prezentacia.key

Používateľská príručka elektronických služieb pre žiadateľov o štatistické informácie október 2016

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, Bratislava 4 Používateľská príručka Vi

Finančné riaditeľstvo Slovenskej republiky 10/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor Informácia

Microsoft Word - prirucka_katedry_nova

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Internet vecí v našich ž

Detail správy a súvisiace prvky Dátum zverejnenia: Verzia: 5 Dátum aktualizácie: Detail správy a súvisiace prvky UPOZORNENIE

UpRekrea manuál

Žiadosť o licenčnú zmluvu na podujatie Na adrese v sekcii hlavného menu kliknete na položku Používatelia. Zobrazí sa blokové menu,

Používateľský manuál EZP

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Metodika archivácie verzií HW Tímový projekt Stratos FIIT M

INTERNET BANKING Práca s tokenom VŠETKO, ČO JE MOŽNÉ with.vub.sk, Bank of

Ako hrat Burlesque Queen V 1.4

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE Fakulta informatiky a informačných technológií STU Ústav počítačových systémov a sietí ZADANIE SEMESTRÁLNE

MO_TČOZ_TLY_2018_2019

User:Andrej Sedlacek

STRUČNÝ NÁVOD KU IP-COACHU

NSK Karta PDF

Manuál pre nastavenie tlače z VRP elio m500 Elio m500 Manuál pre nastavenie tlače -1-

IIS MH SR - Príručka k Portálu elektronických služieb

Vyhľadávanie v CREPČ 2 (aktualizované dňa ) Centrum vedecko-technických informácií SR Odbor pre hodnotenie vedy Oddelenie pre hodnotenie pub

eKasa

Agenda záverečnej práce pedagóg Celá agenda týkajúca sa záverečnej práce je dostupná v obrazovke Záverečná práca (menu Agenda pedagóga -> Záverečné pr

Návod na vytvorenie kvalifikovaného elektronického podpisu prostredníctvom občianskeho preukazu s čipom Dátum zverejnenia: Verzia: 1 Dátu

Používateľská príručka pre webovú aplikáciu ON!Track Príručka pre webovú aplikáciu, verzia 1.1

Obsah: 1. Registrácia do aplikácie Živá lúka online 2. Prihlásenie sa do aplikácie Živá lúka online 3. Všeobecné poznámky k mapovému podkladu 5. Rola:

Manuál pre nastavenie tlače z VRP Bluetooth, USB tlačiarne Bluetooth, USB tlačiarne Manuál pre nastavenie tlače -1-

gameDescription_bigApple

Resolution

eKasa

7011

Finančné riaditeľstvo Slovenskej republiky 12/ORP/2019/IM Postup pre overenie pravosti pokladničného dokladu Informácia je určená pre subjekty (zákazn

Manuál pre nastavenie tlače z VRP tlačiarní bluetooth Bluetooth Manuál pre nastavenie tlače z VRP tlačiarní -1-

sprievodca_exp.pdf

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

Sprievodný list SofCom s.r.o., Priemyselná 1, Liptovský Mikuláš Program basic.sk Verzia ( ) Dátum Autor Ing. J. Malíče

Intellectual Property, Psychology and Sociology

MediatelYext

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

Užívateľský manuál diaľkového ovládania, pre televíznu službu Fiber TV so Set-top boxom Arris

Start of the Week Call

sprievodca-priestor.pdf

Všeobecná zdravotná poisťovňa

Snímka 1

Portál VŠ a CEP

Prístup a Nastavenie pre KOMPAKT HOSTING

Slide 1

Microsoft Word - Manažment_tagov_tim24_tema12_2017.docx

EURÓPSKA KOMISIA V Bruseli C(2018) 6560 final ANNEX 1 PRÍLOHA k vyoknávaciemu rozhodnutiu Komisie, ktorým sa stanovuje metodika monitorov

Criss Cross je 3-valcový výherný prístroj, ktorý sa hrá až na 27 výherných líniách na všetkých pozíciách valcov. Hra je prístupná aj prostredníctvom m

0022-vub-mobilne-tokeny-200x200-v03.indd

Pravidelné úlohy verzia ku dňu SEAL IT Services, s.r.o. Kontakt: SEAL IT Services, s.r.o., Topoľová 4, Bratislava 1, tel.:

Madder Scientist Ako hrat v1.1

iot business hub whitepaper isdd_em_New.pdf

eKasa

Elektronické služby spoločných modulov ÚPVS a prístupových komponentov

MO_pred1

Prepis:

3. Biznis logika a používateľské rozhrania 30. 09. 2013 ÚINF/PAZ1c (Róbert Novotný)

Plán na dnes 1. generátor náhodného citátu 1. o biznis logike 2. cesta k trojvrstvovým aplikáciám 2. ďalšie okná do aplikácie: zoznam citátov s vyhľadávaním

BIZNIS LOGIKA

Na koho zakričať Vygeneruj citát!? DAO? Formulár?

Náhodný citát = biznis logika! vytiahnem dáta odniekiaľ vykonám nad nimi komplexné algoritmy rozhodovania spracovanie príkazy pošlem ich niekam DB Biznis UI

Komplexné algoritmy? šak vyberem nahodny prvok, ňe?

Komplexné algoritmy? úplne náhodný náhodný, ale nie taký, čo už bol eh! náhodný od jediného autora...

Kód do obslužnej metódy vo formulári? čo ak sa UI zmení / rozšíri? čo ak chceme viacero rozličných UI? Často používaný prístup, ale vedie k extrémne neprehľadnému kódu.

Kód do metódy DAO? čo ak chceme viacero rozličných úložísk? čo ak chceme viacero variantov algoritmu? Vhodný prístup pre jednoduché dvojvrstvové aplikácie, s výhradami.

Dizajn triedy pre náhodný citát schopnosti? vygeneruj citát! stav? teraz je druhoradý public class GeneratorCitatov { Citat vygenerujcitat() {...

DEMO!

Implementácia generátora citátov public class GeneratorCitatov { public Citat vygenerujcitat() { List<Citat> citaty =... java.util.collections.shuffle(citaty); return citaty.get(0); odkiaľ získať citáty?

Odkiaľ zoženie generátor svoje dáta? z DAO! Generator Citatov CitatDAO potrebuje

Kompletný kód Možno vymyslieť aj lepší algoritmus! public class GeneratorCitatov { private CitatDao citatdao = new PamatovyCitatDao(); public Citat vygenerujcitat() { List<Citat> citaty = citatdao.najdipodladatumu(); Collections.shuffle(citaty); return citaty.get(0); Hrubé pravidlo Čo je závislosť, to je inštančná premenná.

Čo potom s formulárom? HlavnyFormular CitatDao GeneratorCitatov potrebuje

Celá architektúra HlavnyFormular potrebuje GeneratorCitatov potrebuje CitatDao

Prezentačná vrstva používateľské rozhranie zobrazenie a získavanie informácií od používateľa Vrstva aplikačnej logiky biznis logika príkazy, rozhodovania, spracovanie dát three-tier application Databázová vrstva úložisko dát typicky relačná databáza/súborový systém

Rady starej matere 1. navrhujte jadro aplikácie tak, aby bolo nezávislé od používateľského rozhrania 2. navrhujte jadro aplikácie tak, aby bolo nezávislé od spôsobu uloženia dát

NÁVRHY TRIED POUŽÍVATEĽSKÉHO ROZHRANIA

Klasické textové GUI kedysi: údaje zadávané do programu postupne Enter username: novotnyr New UNIX password: ****** Retype new UNIX password: ****** passwd: all authentication tokens updated successfully. program si aktívne pýta údaje možnosť zmeny predošlých údajov je často nemožná

Udalosťami riadené programovanie údaje zobrazované v komponentoch oknách, ovládacích prvkoch, widgetoch... komponent pasívne čaká na interakciu Koľko komponentov je tu? ;-)

Koľko komponentov je tu? ;-)

Interakcia komponentov užívateľ interakciou s komponentami generuje udalosti komponent vie zareagovať na vhodnú udalosť a vykonať príslušnú akciu

Udalosťami riadené programovanie naprogramujeme metódy, ktoré sa budú volať z komponentov pri spracovávaní udalostí rýchle programovanie, nenáročné, ľahko pochopiteľné

Čo so zobrazovaním dát?

Zobrazenie dát jeden druh dát možno zobraziť viacerými spôsobmi akú metaforu zvoliť? čo je v danej situácii dôležité zobraziť? akým estetickým spôsobom?

Cesta k návrhovému vzoru Ako umožniť zobrazenie jedných dát viacerými spôsobmi? oddelíme dáta od spôsobu ich zobrazenia zavedieme objekt zodpovedný za komunikáciu medzi zobrazovačom a nosičom dát +

Dáta = model model = objekt, ktorý poskytuje komponentu dáta na zobrazenie viacero komponentov môže zobrazovať dáta z modelu odlišným spôsobom (v zozname, tabuľke,...)

Zobrazenie = view = komponent view = objekt, ktorý namaľuje dáta používateľovi obvykle komponent, widget, ovládací prvok

Návrh GUI text area tlačidlo zoznam

Reálne GUI

Krok 1: zobrazenie citátov public ZoznamCitatovForm() { vytiahneme dáta z DAO vrstvy initcomponents(); List<Citat> citaty = citatydao.list(); Object[] citatypole = citaty.toarray(); lstcitaty.setlistdata(citatypole); pridruženie dát k JListu prevod kvôli nešťastnému API

Krok 2: filtrovanie vezmeme kľúčové slovo zo vstupu odfiltrujeme dáta nastavíme ich zoznamu

Reálne GUI txtdopyt btnhladat

Dodanie obslužnej metódy obslužná metóda pre udalosť actionperformed na tlačidle btnhladat private void btnhladatactionperformed(actionevent e) { String dopyt = txtdopyt.gettext(); /* */ lstcitaty.setlistdata(najdenecitaty.toarray()); asociáciu medzi metódou a tlačidlom vyrieši NetBeans

prvý nástrel private void btnhladatactionperformed(actionevent e) { String dopyt = txtdopyt.gettext(); dáta od používateľa List<Citat> najdenecitaty = new ArrayList<>(); for (Citat citat : citatydao.list()) { if(citat.gettext().contains(dopyt)) { najdenecitaty.add(citat); filtrovanie lstcitaty.setlistdata(najdenecitaty.toarray()); dáta späť do GUI

private void btnhladatactionperformed(actionevent e) { String dopyt = txtdopyt.gettext(); List<Citat> najdenecitaty = new ArrayList<>(); for (Citat citat : citatydao.list()) { if(citat.gettext().contains(dopyt)) { najdenecitaty.add(citat); Spomienka! Často používaný prístup, ale vedie k extrémne neprehľadnému kódu = špagetový kód lstcitaty.setlistdata(najdenecitaty.toarray());

private void btnhladatactionperformed(actionevent e) { String dopyt = txtdopyt.gettext(); List<Citat> najdenecitaty = new ArrayList<>(); for (Citat citat : citatydao.list()) { if(citat.gettext().contains(dopyt)) { najdenecitaty.add(citat); rozhodovanie, spracovanie, príkazy = lstcitaty.setlistdata(najdenecitaty.toarray()); biznis logika!

Upratovanie v biznis logike biznis logiku treba uviesť do správnej vrstvy poriadne 3vrstvové aplikácie: servisná vrstva public class CitatService { List<Citat> vyhladat(string slovo) { return citatdao.vyhladat(slovo); CitatService deleguje filtrovanie na úložisko

Upratovanie v biznis logike v praxi: vyhľadávanie a filtrovanie sa často rieši v DAO lebo SQL databázy to vyriešia zadarmo public class CitatDao { public List<Citat> vyhladat(string slovo) { SELECT * FROM citat WHERE citat.text LIKE...

Dodajme do DAO public class CitatDao { public List<Citat> vyhladat(string slovo) { List<Citat> najdenecitaty = new ArrayList<>(); for (Citat citat : citaty) { if(citat.gettext().contains(dopyt) { najdenecitaty.add(citat); return najdenecitaty;

Sprehľadnená metóda! private void btnhladatactionperformed(actionevent e) { String dopyt = txtdopyt.gettext(); List<Citat> najdenecitaty = citatydao.vyhladat(dopyt); lstcitaty.setlistdata(najdenecitaty.toarray()); bonus 1: kra[t/j]ší kód bonus 2: vyhľadávanie vieme zlepšovať bez zmeny v GUI vďaka oddeleniu vrstiev

Odnesme si komplexná logiku vo obslužnej metóde formulára = niečo smrdí filtrovanie, triedenie, lopatovanie z kolekcie do kolekcie rozmýšľajme nad vrstvami

Otázky?