tak hezké odpoledne děkuju že jste přišli

té naší prezentaci který bysme chtěli a způsobem popsat i nějakou zkušenost kterou jsme udělali

s tím jak jsme vyvíjeli zkusil

věci který jdou do auta a jak to vyvíjely lidi který vlastně ta moje zkušenost

především s vývojem takovejch věcí s používáním takovej frame horku a tak dále takže

to co bych teda chtěl nějakým způsobem říct jak sme kupovali a mysim si že

některý ty věci na který jsme přišli je který o kterých tady budeme mluvit že

můžou bejt zajímavý pro ty co třeba nevyvíjejí věci do auta lidi věci normálně náhled

nebo a nebo pro sebe v rámci nějakých ale u tý experimentů a podobně

takže moje méno ještě tam mít já sem zase tom projektu byl co

zodpovědný za vlekem za programování javě kolega dokončen to ještě před převážně se věnoval se

věnoval von ten

vezmete společnosti jak na která a myslím že pro tady tu řeč asi důležitý jenom

to že ta se specializuje především právě na tady na enterprise aplikace a podobně tak

chtěl bych teda představit projekt projít o jak sem sbírali technologie a nějaký způsob se

pobavit potom je to čemu sme došli je asi celá ta celá ta věc von

současný době funguje

tak jenom na za pro začátek zkratka neuvidí která to má na začátku vlajka notaci

tak jo překládá se to nebo znamená tom menším interfejs a je to nějaká sada

se aplikuje je to problematika která se ti která se týká věcí jako

auto motiv průmyslu nebo obecně tam kde funguje nějaký stroj abych potřeb a zároveň je

tam uživatel kterým potřebujete zprostředkovat nejenom nějaké údaje toho sto nějaké ovládání

a to takže je to je to především user interfaces ale takový na který objekt

který není úplně pěkný protože to máte spoustu zařízení který vlastně normální čověk na stole

nemám je tam ovládání z volantu je tam několik displejů a tak dále tam na

tom obrázku jenom ilustrace toho abyste si představili co

která tfuj slov pojetí škodovky a eventuelně obecně u aut znamená vím machine interfejs tak

je to vlastně celý ten ta deska celé před vámi a co je před spolujezdce

kde to velké displej které jednak nese vinu dělalo jednat ukazují i nebo umožňují pracovat

jakým způsobem ovládat to auto klimatizace a to co to bude přehrávat nebo ho napadne

ta jaký styl jízdy

to co sme dělali je tak je to prototyp to znamená že jsme ani tak

nevadili na to je pěknej

stabilní nebo ta aplikace bude to vydrží ale řešili jsme spíš to je

že budeme často věci měnit že se bude zkoušet jestli uživatelů vyhovuje tohle nebo tohle

a ty věci se musím komentovat poměrně rychle a ty změny musím se musí do

toho gui do toho víčka pro se prosadit von rychle a často

jeden z důvodů proč tady sme že sme ho sem si vystačili s opensource technologie

mého sme se vším co jsme použili tak

je volně k dispozici přesto jsme měli možnost začátky týden nějaké proprietární technologie tak sme

rači využili tohle jsem si že

že nám to mnoha případech nepomohlo

tenhle koncepce který jsme měli pracovat je že

máme auto má nějakou aplikaci a tak se aplikace

pro uživatele zobrazujeme třeba tu o rychlost nebo podobný věci který kterýho zajímá jo

máme tam na server který ten trend rád bych chtěl vyhnout se napojuje na to

auto

a zobrazuje uživatele to co potřebuje vidět takže takle sme začínali představovali sme si že

vlastně budeme pracovat takže sme měli zadáno linux a stravu

a řekli jsme si je to víceméně za desktopové aplikace použijeme java fixed pro nějakou

základní komunikaci s tím okolím použijeme něco na úrovni socketů a

budeme používat nějakou standardní linuxovou distribuci

tak to byla taková původní představa samozřejmě vyšla

a nakonec metra skončili u toho že místo java fix máme stromy jo má to

potom o celou škálu technologií

a místo

to jaké deset desktopové aplikace tak máme jaký o hezkej kontejner

a webový server a pak sme se naučili spolu používat věci typu jedna a cože

nějaký přístup k aktivní knihovnám chtěli museli sme se poprosím že bys tu jinak sockety

používat různé trnové moduly které nejsou asi součástí standardního nastavení takže jsme to udělali takže

sme se s tím poměrně užili taky

ta architektura senát průběhu budu vyměnila jsme neřešili jedno auto ale víc aut

měli sme

displejů lidí co uživatelů právě pro nějaké uživatelské testování že

pro jednu skupinu uživatelů ta věc na vypadat tak pro jinou skupinu uživatelů měl vypadat

jinak ale no to všechno běžet na s jedním rána se jedním na jednom serveru

a pro třeba to jedno auto za že _e úvodní desktopové aplikace se to začalo

začal poměrně komplikovat

takže to čem jsme si prošli tím výběrem ta první byla umí platforma na začátku

sme zjistili že takže nové fixy je fajn pokud chcete dělat nějakou běžnou aplikaci typů

tlačítka tabulky vstupní pole tak to není problém ale pokud chcete mít něco zvláštního sestavit

mít nějakej fi jakou kde

grafickou podobu kterou si sami nadefinujete tak push to není tak už to není ono

navíc podpora multimédií ve smyslu něco nad rámec toho připustit a no a zůstali pustit

video tak tam taky ne nic moc takže jsme došli k tomu že tram jsme

už něco jinýho

hledali jsme a vyšla nám s toho stromy jo mu respektive to že jakýkoliv moderní

polohy prohlížeč že v dnešní době asi nejlepší nějaká platforma pro grafiku pro multimédia a

pro rychlý vývoj

určitě tady byla řeč na to je ta konference přál qtčko a podobných těch tak

ty věci určitě existujou určitě testovací lepší knihovny pro grafiku který to umí víc než

to chromej a to má tu výhodu že tam že na tým zas řada těch

věcí jako je dokonce sestra to jako dyž tohle dáte dohromady tak ten prohlížeč s

těmi

vychází úplně ne

nicméně máme webový prohlížeč potřebujeme to malovat potřebné velké vycentrovat věcnost takže co použijeme

standardně ve firmě používáme servlety respektive se datové kontejnery a technologie kolik které se kolem

toho

způsobem existují a vyvíjejí nicméně pro tenhle případ to není úplně dopravní se znáte servlety

někdy ste s tím dělali k a přece jenom

když potřebujete pracoval více vláknech potřebujete pracovat s websockety je tak to není úplně to

co by to co nebo jako přitažlivý nebo jaký je to snadno použitelný

našli jsme vobědě jsme zkoušeli jsme ne ty co vše vlastně

knihovna která přes java ani ten io možné si tu komunikaci

možné trasy s asynchronní síťovou komunikaci pracuje na to

trap propracujem a soketu je ale

pracuje na nutnými asynchronně a existuje tam celýho toto proste k dokonce to pros o

a před ale i přesto vám to dá poměrně hodně nízkou do měli přístup vlastně

tomu soketu a kontrolu nad tím co se do toho soketu posílá co z něj

na co s ní padá zpátky

že to nebyl asi tak jako trefa uplně vedle tak třeba play frymburk případně sedět

co se teď hodně objevuje mi pro services taky tak to všechno vlastně pracujeme na

průměty takže to asi neni není úplně špatná volba

no a když už teda máme server tak že se potřeba ty věci nějak začít

jako paličkovat a

konfigurovat takže jsme zase hledali com nějaký kontejner a opět pak jsme se zbavili servletů

tak by byla chyba použít nějaký židlí aplikační server takže zase nějaká s vše nos

nebo spíš pohledu toho co se používá v té dané části

vývoje aplikačního na to motiv průmyslem obecně tedy zařízení jaks to vyšlo že _e jezděj

jestli to co se používá často a vcelku to jsou proto je dává smysl protože

ta věc je stavěna na to že nebereme strojů že se dá velice dobře konfigurovat

je za běhu a

neumí se umí se snadno přizpůsobit prostředí i vtom spíš tom smyslu že když třeba

se nainstaluje do jiného zařízení tak automaticky pozná ke to svoje okolí je podle toho

při

doinstalovat nebo dotáhne jaké dat knihovny nebo části aplikace a to všechno funguje víceméně automaticky

takže snad rozvojové smějí se tady zeptal víte někdo za máte zkušenost nebo být aspoň

o čem to je

dobrá tak to připoj do toho asi nebudu moc zabývat jenom bych chtěl říct že

je to

prvního přiblížení je do kontejnery je to bez které vydáváte s část svojí aplikace a

ten kontejner má na starosti bojové prostředí nějaké spojování s aplikací

to spojování vlastně funguje na dvou úrovních ta první je statická co jsou nějaké čemu

setra terminologie vezdili říká pan tady ta prakticky se na to jára který má ti

spratci s

určitým způsobem šíření manifest

a to rozšíření to manifestu se mimo jiné týká i závislosti na lidi přímo do

toho yumu říkáte na jaké jiné knihovně nebo na jaké jiné části toho systému závisí

a takže nepotřebujete zase takový to co je nejprve na podobně podle všech smluv můžete

zapsat cen navíc na vazbě kontejner s nim závislost neumí pracovat že jo když vidí

že

nějaký pan bill závisí na jeden bandu letem ta závislost automaticky natáhne umí tam řídit

číst u škol pomoc nějaké mechanismu vás pokuď se není tak důležitý ale důležitý je

že není

ty jednotlivé balíčky a co byl s tím nic včera případě jednoduché židovské aplikace nebo

ale i se do toho kontejneru prostě tam je ten pás over ploch tam musí

všechno co kde je nějakým adresáři této třídě na sebe navzájem to jezděj tam funguje

trošku jinak že vy můžete řídit přístup k tomu že řeknete že často doplatek h

to je privátní

no nemůže nikdo jinej tu od toho tu poskytujete dál

pak druhá druhý aspekt toho

běhového prostředí jsou takzvané služby a tady se na to dynamické závislosti které se řeší

za běhu o ty pangejty se svým způsobem natáhnu na začátku

a ale za běhu se pak řeší co s čím může pracovat kde ty závislosti

jsou teda dynamický je to dost podobný naučit určitým způsobem tak jako funguje dependance jenže

čím znamená jedna třída říká potřebuju jinou třídu a ten kontejner to nějak je mezi

sebou propojí

tady ale je rozdíl vtom že ty závislosti jsou dynamický to znamená že ty třídy

to slušný můžou za běhu přibejvat nemůžu vymyslet a ta a který vám poskytne jaký

mechanismus jak se s tím relativně snadno vypořádat jak jo fungovat jako _m dynamický si

měnícím prostředí

ta dynamika

tak to ta dynamika jí popíšu tady najednou vlastně základním vzorů který se hodně používá

tady postel oblasti jmenuje se to black on white world a ten a to sem

je to

variace na ten adept nemusí která jim version of kontrolou co tak někdo označil jako

politický princip a říká sedum kola svých kolegů

to znamená že vy programujete tak že zveřejní té jakou funkčnost a ne kdo ví

konzumuje ale vy ani nemusíte vědět kdo to je ta část která konzumujete funkcionalitu tak

to je ten ta ten dovolat

tady to funguje tak že ve smyslu zaregistruje té a ten když nějaká jiná část

_e zjistí že jí že je zaregistrován může použít

je tam nějaký mechanizmus servis registry který funguje tak že tak _e že která chci

registrovat třeba nějaké ovladače nebo něco co se týká ta

takže mám vznikáme třída ty kolo na tady instance ta se zaregistruje do toho registru

na základě toho

a tím vlastně říká chcete městem je použít sem tady sem dispozicím že takže ten

jeho

na základě toho se tam objeví to kolo tak se může někde jinde vlivy třída

volant nicméně ta třída ví že počtu že potřebuje dvě kola jinak toho moc ne

uřídí to znamená že tam jenom na pozadí někde áčka

a pak zase postupem času se třeba u druhé kolo zaregistruje se a ten okamžik

už patří do toho volantu už lidí že už by mohla fungovat tak že se

nějakým způsobem zveřejní a zaregistruje se tak jakým způsobem to se může být někdo kdo

potřebuje volantem se to tak dost o tom systému takové dál kdyby to kolo zmizelo

z nějakýho důvodu tak je zase zodpovědnost toho volantu aby i sám sebe vod registroval

tím pádem dal vědět že to auto třeba nejde řiditel řádce

něco dělat

architektura jak jsem říkal začátku stý původní myšlenky to bude hrozně jednoduchý tak se to

trošku zkomplikovalo nicméně pořád jsme si vystačili s tím že používáme linu s nějakým je

rašíd že nebo moduly do jádra

s autem komunitu _e třeskem sběrnice jsou se myslím že takových průmyslový standard

no a snad kernelem potom běží standardně řada démonů s tím že my sme se

použili nějaký který jsou specifický proto pro to co chceme a pak to je tak

žhavé sme si vytvářeli vytvořili teda nějaký vlastní mechanismus komponenta ten router a mluvit ještě

později s kolega

a za tímhle je tady nějaký ten do to socket server který funguje

pro komunikaci mezi tím jádrem back and _e a tím co běží prohlížeč

prohlížeči jsme použili gular nějaké vlastní prvky nebo vlastní nastavení auto je to tam jsou

tam teda ty komponenty

co se týče komponent

tady sme si řešili

řešili

se dá se říct dvě věci ta první věc je že jsme potřebovali ten po

ovládání které pro ten návrh toho mají dostat jakoby navíc displejů pro proto testování tomhle

případě displeje teda byly tabletu jo ten princip pořád ten samý

takže sme jedna potřebovali řešit aby se ta vyzval ovládací

místo zároveň aby ten stav byl vidět navíc místech

no a druhá restru jsme řešili bylo to že

se to auto onen nemáme pořád dispozice a nějako nemá moc smysl vidět něco autě

vyloženě mě třeba u toho jsme potřebovali se nějak s tím nic do toho že

vyvíjíme

a se na sucho na počítači a u toho že se případ přídeme k tomu

autu a tam sem začne pracovat

a zare jo a ještě třetí ve s trhů která snad tolik nesouvisí ale že

to uživatelský rozhraní bylo je poměrně komplikovaný to není jedna obrazovka se třemi tady ale

dávalo smysl prostě rozdělit to co vidíte náké komponenty z nichž každá zajistí

proč nějakou konkrétní část _e zobrazení aktuální rychlosti nebo něčeho takovýho

vyřešili jsme to tak že vlastně pracujeme

ne s nějakým

stavem co vše nějaký objekt uvnitř co jezděj který jeden který odpovídá nějaké konkrétní části

toho auta třeba motoru když je tam když se polynomu rychlosti

a ten tento stav je schopen změny komunikovat dál pět přes mechanizmus toho michael pattern

u

k těm komponentám které to zajímá máte komponenty zase na základě změny komunikují pak ten

stát komunikují učit se učit

druhé části komponenty která je prohlížeči a tohle tak tahle ta komunikace se vlastně je

za prvý asynchronní a za druhý je to

funguje nepoz svým způsobem dokola takže pokud uživatel tady provádí nějakou akci tak tady mi

přes u čas websockety nebo přes normálního toto to příde _m požadavek ta komponenta zpracuje

atribut

a holá nějaký

adaptér eventuelně emulátor byl sama se ještě neřek že hra která nula to jsou dvě

části které můžou měnit stát no a to je to dnešní stav autě je to

nějakej tím voltera to máme java kterým si ty hodnoty můžu nastavit tak jak chci

aby ty komponenty viděli

a dat _e to je věc krát která pracuje s tím autem jako takovým znamená

čte si z něj data případně posílá jakýho ovládacích po vás vchody dál ale to

chování je třeba pro tu komponentu je skrytý tý je to jedno to jestli tam

bude nainstalovaný adaptér nebo novátor to na to rozhoduje toho jezděj

a základě toho jaké banku tady mám k dispozici takže to zase běží skoro samo

tak ať sem chtěl pak říct že tedy komponenta komunikuje s

způsobem

že post že uživatel provede nějakou akci tak co se dostane sem a přes nějaké

rozhraní se zavolá adaptér nebo malátova ten tu akci s procesu je to obvykle vede

pomůže se mění nějaký ten obraz tady toho stavu a ten stav se podle odešla

zase komponent delta přes websocketů nebo já

po přes websockety informuje prohlížeč o tom že potřeba něco změnit

a tady jak jsem říkal tadyhle to kolečko neni synchronní je to asynchronní to znamená

že kdykoliv se mění stát

přes websockety všem komponentami ta zpráva se s aktualizovat

takže to potom i na těch výstavby letech funguje poměrně dobře protože z jednoho tabletu

vy pošlete takovoudle zprávu která svým způsobem končí vtom adaptéru ten pak provede něco autem

za část _m to auto vodpoví se to třeba povedlo což vede ke změně stavu

a to se pak vystrkuje všechno všech těch na všechny displeje

leda to kolečko je se ukázalo že poměrně robustní a stabilní že to skutečně obslouží

jíst displejů a je to i poměrně odolní vůči tomu když třeba ten tablet odpojíte

a pak znovu připojíte tak říkala

té úrovni těch událostí nebo jaké fronty událostí funguje

takže vyflákl slovo kolegové vám řek něco o tom from ten test

objevily spoustu věcí

tak dobrý den jmenuji menšence řekl kolega říkal tak mým úkolem na tomhle projektu byl

fronta prostě to o uživatelské rozhraní které pak se používalo tom autě na potrat nepoužívali

mi

a tak o to vám něco teď řeknu ale jestli se zeptám jestli tady mezi

váma třeba nějaké frontend wavelet nedovede love by no má s tím zkušenosti výborně takže

nějaké spřízněné duše tady mám tak budete v čem mluvím

takže jelikož jsme teda webová firma jako říkali kolega tak a webu má prohlížeč mu

rozuměl proto tohle byla pro nás docela taková přirozená volba ty prohlížeče máte na neboj

vývoj

a takže takhle vlastně vypadal můj

moje vývojové prostředí nulový v prostředí toho to

toho projektu jako takový jo

takže základní bylo pro nás byl ten prohlížet ve kterých ne všechno vyvíjely nás to

vlastně byla ta platforma pro to uživatelské rozhraní

a

jak tady to neviděli tady pár kolegů z webu

takže týmem že za pravdu řek když mají možnost pracovat jenom s jedním jediným prohlížečem

který si sami vyberou

a takže to je proto byl vlivem fakt úplně nejlepší možný případ

a našem případě sme si vybrali a chromý jumped na protože to je opensource ale

zároveň je to jeden se nejmodernějších prohlížečů který podporuje moderní standardy a

na nejlepší podporu c z se javaskriptu a podobně

a tak ze co fungovalo tomletom prohlížeči to za mohli použít nemuseli sme se starat

o to jestli náhodou někdo nemá nějaké jiné prohlížet router bude fungovat tak vezme to

měli plně pod kontrolou

a další výhodou teda bylo to že ten prohlížeč jako takový jak jsem řekl neměli

potom trollové vezme mohli využít jinak experimentální featury které normálně ten člověk který se nainstaluje

prohlížeč jména nevíme pane potom tomto pod kontrolou všechny ty nastavení mohli z nenastala různé

flagy takže zrovna jedna z nic nepotřebovali kvůli a

kvůli práci s audia aby se mohli pracovat se ze zařízení zvuků a podobně

jako aplikační a frameu rok zná použili kolega už to zmiňoval jsme použili angola jazz

cože aplikační freeware který je vlastně com komplexní produkt který neumožňuje vlastně postavit dobu aplikaci

přímo pro svou ze vším všudy má routováním autíčko a na o podporu modelu kontrolérů

podobně takže vlastně všechno pod jednou střechou

o angola tě zajímá tram názvu děs tak je napsaný javaskriptu ale my sme se

rozhodli ještě jí s jo je dockeru o krok dál a použili jsme k tomu

ještě tak skript

kdo z vás tady třeba znát expit nebo vědět co té vybodnu

a potom tak ještě budu mluvit dál

no jelikož _m browseru tak vlastně veškeré víčko

ale s hezké jestli a to jak to vypadá dělané c z scan

zase že jsme o krok dál aby se na s tím trošku lépe pracovalo vlastně

zařízení neska žádná novinka ale mnohé věci nám to na ten a preprocesor ulehčil

no a pak nějaká nějak automatizace a nějaké byl by nazdar tady nepoužil velice jednoduše

node že se na nějakého základní nástroje použili jsme a kanál což je nějaký je

spouštěč rázků které si sami nadefinované

tak tady ze navíc no a lásku jakoby budování třeba zrovna toho tak skrytu do

javaskriptu studování c z s k a různé vás plánování těhletěch věcí do jednoho balíčků

a pak sme tam měli ještě třeba file počet který když jsem upravil nějaký

nějaký že vlastně nějaký soubor tak automaticky spoustu nějaké otázky které jsem potřeboval a mínus

pak stačilo jenom

no tak tohle za ten prohlížet

takže ten na

prohlížet prázdno trata platforma kde sme byli úplně všechno jenom krátkosti zkusím popsal to co

všechno vlastně ten prohlížeč tady v tomto případě

ulehčil nebo poskytoval prominou má výbornou o podporu všech moderních mapy jako to malo pět

apíčka různé animace transformace c z skot takže pokud nepotřebovali udělat něco není něco ne

hrozivá

nepotřebovali znáte dělat nějakým složitým javaskriptu mzdu mohli fakt jo bezproblémů použít otce tesco

a vydělíme že ten prolij že to zvládne a nemusím se bát jsou to někomu

rozbije toho zobrazit

taktéž nám prohlížeče umožnil jak kolega říkal dolítne prot ty tak a ten prototyp se

každou chvíli se neměnilo zadání pořád je tam něco zkoušeli zkusíme to takhle ne takhle

to bude lepší takže to nebyl že žádné projekt typu

a tady máme zadání a za půl roku dodáme ten hotově produkt práce tam něco

nezměnilo

prohlížet na tomletom o moc nepomohlo protože jemu vlastně stačí obyčejná ten alkohol nějaké se

z esko

zmáčkneš pět a mám zobrazené takže velice rychle sme byli schopni reagoval na ty změny

nějakého zadání

a nemuseli nevysloví tě nastavovat kompilovat pro se sme tam dali to a ta malá

fungovalo to

tom autě jako level říkal bylo víc těch displejů nebo víc těch tech zařízení

a některé z nich u nitry z nich se hodilo i ovládání prstama

finta čem

a s tím lety prohlížeče dneska už taky nemaj problém mají nějak etapy pro práci

s pláčem umožňujou jako symbol single ta různé vícevrstvové gesta slajd i a podobně takže

zase nemuseli jsme vymýšlet nějaké vlastní řešení prostě nepůjde co vtom no prohlížeči je

pomocí javaskriptu

a animizmech no

jedna z největších vývar aspoň pro mě co mi ten prohlížeče poskytl bylo velice jednoduché

ladění chtít

a my sme měli vývojové prostředí u sebe práci a taky pak samotné bylo to

do ten nějaký počítačové zařízení v autě

tyhlety zařízení byly identické ale určitě

mnoho z vás ví že když si nastavíte identické prostředí na více místech a tak

stejně podstatě identické není a za zjistíte že tady u mě to funguje a to

bude počítač kterej stejný tam nefunguje za

tak sme potřebovali mít nějaký nástroj který nám umožní velice rychle hledat nějaké chyby

a ten prohlížeč dneska u skoro každej prohlížet má nějaký developer tu barvu na jakej

nějaké nástroj na ladění

a tohleto nám přišlo velice ho tak já jsem byl zase velice rychle schopen při

kus tomu našemu počítače nebo k tomu zařízení v autě je tam zobrazení prohlížeč a

tak sem se prostě zobrazovalo pro tu barák a hned jsem věděl jo tady chybí

nějaký element nebo tady vtom javaskriptu je nějaká chyba a nebo cokoliv jinýho

tady na tom obrázku je nějaká automatická

nejsem si kde sem si ho nějaký bri povídá a pak sem opravdu mohl ladit

jako v normálním programovacích jazyků moh sem krokovat tom kódu to všechno dělá a třeba

tím a tím způsobem o odhalit nějakou chybu že tady měla by nastavená ta proměnná

z nějakýho důvodu tam nastavena třeba není

co bych tady ještě chtěl zmínit že minimálně chromý nebo chróm a jednak jsou na

tom takže ostatní prohlížeče umožňují něco s čemu se říká remote nevadí

znamená protože ten prohlížet se spustí je v nějakém režimů kdepak na nějakým portu na

síti poslouchá já jsem už ze svým prohlížečem cesty do počítače a na ten port

připojit a pak já vlastně to co vidí ten prohlížeč v autě vidím na svém

počítač takže nemusím třeba být fyzických to máte může mi někdo vedle

a můžu vhodné ze svýho počítače ovládat vlastně to co vidí ten prohlížeč prohlížet v

autě

a pak bych tady rád eště zmínil jednu věc kterou jsme využili a kvůli který

zná vlastně vybrali to prominu

a

občas nepotřebovali a zaintegrovat nějakou aplikaci která běžela na ty město mnoho systému vtom linuxu

a jednak i kvůli úspoře času protože jak sem pořád měla nějaké zadání tak nebylo

nebo času ten všechno

a pak změny které ty aplikace potřebovali zaintegrovat a

najít nějaké řešení který nám zadal strašně moc času

a tady jsme použili tak trošku takovou fintu já tomu říkám

buď průhledného a nebo dělali prohlížet máme proměnný zkompilovaném takže na vlastně transparentní uličkou

a já pak to jít ty webový stránce nos ty webový aplikace sem byl jenom

schopen říct dobrá tady mám tu stránku ale tuhle tu část nechci ničit zakrývat tam

z nebude ale se tahle ta část vyděláš naprosto toho linuxu a my za dva

vlastně po ten prohlížeč a na pozice v ale nějakou aplikaci která tam pak viděla

a byla podstatě integrované prvky naší aplikace

velice důležitou částí tyhle ty aplikace v autě bylo jo vláda nějakej snímků a měli

sme tam naimplementovaný nějaký audio přehrávač

a tady jsme zpočátku o chtěli využít aha

nástrojů které jsou dispozici přímo tom na tom systému říkáme si linuxové nějaký ample nebo

něco podobnýho přece tady nebude žádnej problém

vpořádku to bylo pohodě ale časem začaly narážet na různé komplikace hledali sme na to

nějaké řešení pořád se takhle ne vracelo

a pak sme si to uvědomili no počkat dva milan vlastně k dispozici moderní prohlížeč

tak vlastně všechno toho uzlu mýtný prostě umí přehrávat zvuky umí není

nějaký audio přehrávač tak proč vlastně ne použito to neví všechno pod jednou střechou

takhle to zkusili a že se to ukázalo jako dobrej nápad

a

takže začali a začali to audio ovládat vás prohlížeče

na to sme pak potřebovali právě zapnul některé ty experimentální flek jak bysme mohli pracovat

celá píše nebo je operace takže ve period _e communication nebo media devices aby

protože kromě toho že jsme chtěli

nebo že sme měli více zdrojů toho přehrávání

no a když to je

aby jste nějaký media přehrávat jedna dcera léky písničky nebo někdo pak s tom autě

má spárovaný telefon a nikomu začne volat

nehoda systémové zvuky a bez nepotřebovali víc výstupu potřebovali sme říct svatou media přehrávači aby

hrál nějaké kde práci pak z nepotřebovali dřít šla systémový zvuku ať se přehrávají někde

jinde tohle nám umožňují umožňuje tyhlety apíčka takže ta parcela tímhletím kouskem a

tak světu který se pak snad transformer to javaskriptu jsem schopen si najít všechny a

zvukové zařízení které jsou systém k dispozici tom a případně na více a zvukové right

a pak říct každému tomu a to mohla udělal amen tu který otevřu bude přehrávat

říct mu ty se přihrávek tyhlety zvukový karty by se přehrává jsem a pak to

nic dalšího se už nemusí starat prostě vím že tohle to bude fungovat

teď bych chtěl zmínit pár věcí tomu tak skriptů proč nosil vlastně vybrali jsme začali

používat jakož některý z vás tady určitě ví a teď skript je podstatě nějaký a

super se to znamená množina javascriptů do toho javaskriptu se pak následně kompi letadlo výsledkem

toho tak skriptového kódu

jenže lásky který se pak to pane prohlížeči spouští

tak světě open source projekt

má za sebou velkýho hráče ten microsoft takže se to vyvíjí docela rychle

co nám co nám taky poskytuje poskytována za tě veškeré takové ty běžné věci s

klasického prober krvácí rizika které javaskriptu a ne jako třea třídy interfejsy nebo typy je

to je to typovaný jazyk

takže tohle všechno ze mohli využít kvůli tomu že to tipoval jazyka je tyhlety věci

na zároveň výbornou podporu editor nebo v déčka takže můžeme využít doplňování nějako statickou analýzu

případně odhalování chtít protože když a pak spustím ten a ten to pár tak velice

rychle se do to viděl někde mám chybu a nemusím tuhletu chybu pak odhalovat nebo

hledat

a kam prohlížeči

tohle byly ustelu prohlížeče

tak pak jako ten koncový uživatel

tom autě zas vidím nějakou chybu která kterou se mohou tady tímhletím způsobem říkal jsem

to do toho auta dostal

tak slide jsem říkal se kompiluje javaskriptu

budeme se sami pak vybrat do jakýho javaskriptu pokud to víme že ty koncové uživatele

budou mít v

typu prohlížečů budou mít svá nějaké staré starší je těžko nebo něco podobnýho

tak můžeme může jít aby se zkompilován do vezdila si tu mastit si což je

takovej ten bezpečné že vás ke který dneska umí každý prohlížeč

anebo pokud _e tom našem případě víme že ten prohlížeč že

moderní

a kde si můžeme zvolit některé a některé novější verze javaskriptu které mají nějaké novější

featury který případě toho staršího javaskriptu se museli řešit nějaký no

ne jakýmkoliv i len nebo nějaký

nějakým tak _e

pak ještě v krátkosti k tomu samotnýmu půjčku kolega ostrá taky říkal že na měli

jsme více displejů taky znám tak na pořád řešili nějaké změny vtom uličku používali podstatě

něco podobnýho jako aby testování ten zase opravdu zvolili

tady máme jednu formu toho ulička tady mám druhou formu notebook po dobu a teď

přemýšlíme co s tohle pro ty uživatele lepší

takže proto proběhly průběžné nějaké testy uživatel na

takže potřebovali sme něco co nám umožní mít nějakou jednou implementaci ty funkčnosti prohlížeči ale

zároveň a poskytnout tom tomu uživateli na základě nějakého rozhodnutí jedno nebo druhé víčko

a

toho na toho na umožnili ta nula od nuly do puku

který nám to

ten umožnil mít s více šablony chceš ho šablona tím jedním aplikační kódem a nebo

to cestou která nám zase umožnilo na nějaké věci měnit

tohle to sem popisoval se velice podobá tomu diskuzi líčků _e určitě to nebo jo

a znají

a v našem případě se úplné neosvědčilo

protože jak jsem říkal _m za potřebovali opravdu často pramenit kompletně ten úhel přepne ovládacích

prvků a podobně a tomhletom případě nám to trestnou zimě víčko

a c z s moc nevyhovovalo

to neřekl naší aplikace nepoužil iterate nám koláče s

kde sme potřebovali komunikovat s červem a s těma komponenta má které to popisoval kolega

nakonec omezený když se půjdeme cestou kde prohlížeč vy server budou mít podstatě identickou sadu

těch letech proč

takže server syrový že má nemá k dispozici

ale nějakou sadu komponent a tu samou to sadu komponent na faktem proležet dispozici taky

a tyhle ty komponenty vzájemně komunikovat pomocí těch websocketů nebo pomocí u bylo to

co potřebují vydělat

a tady z nevýhodou právě využili ten tak si protože kdybych použil draslík tak by

měl nějaké ty komponenty bambula row ale ztratil bych tam hromadu informací o

hromadu informaci které popisu to komponentu na server

jsme použili té skryté jsme mohli mít o stejné třídy nebo velice podobné třídy tom

tak skrytou nebo prohlížeči

podobné jako byli na tom serveru taky na mohli použít stejně interfejsy mohli zneužít dědičnost

a podobně takže když jsem se pak podíval lesy _m kódu v prohlížeči anebo komponentu

tak jsem věděl

takže o komponenta tohodle toho roky po nebo tohle neexistuje naseru

pravděpodobně funguje tímhle způsobem protože mám tady nějak interfejs který to který to implementuje takže

potom neuměl sobě to hrozně zjednodušilo pak práci protože

a já jsem se velice rychle dokázal zorientovat tom kódu

angola jako takovej umožňuje to vytvořit komponenty oni tomu říkají direktivy což je vpodstatě takovej

balík

chtěla skryto violkou nebo nějakého ovladače

a jeho půjčka takže nějakýho to mohlo šablony která k tomu patří

a my za potřebovali něco více nějakou jako automatiku která tyhle ty komponenty bude vytvářet

protože zas proto sme si udělali něco četl čemu říkáme komponent vektory

a tahleta to na ten kus kódu na starosti to že já jsem si zaregistroval

nebo vytvořil na kolo komponentu

detektory pak dole tomhletom přidala do nějakého stromu komponent

a taky poslala nějaký request na server do toho peckem do kódu kterej zase zaregistroval

na základě informací které se mu poslal zaregistroval komponent na serveru

a řekl zpátky tomu prohlížeči ano už mám tom komponentu dispozici můžeš pokračovat hezky práce

autem měli de dva kusy kódu které o sobě věděli a mohli spolu mohli spolu

komunikovat

případě že ta komponenta nebylo potřeba přišel samé no stran kde už nemám co media

přehrávač tak automaticky se to uličkou uklidilo zavolali se nějaké vesměs traktory a zase poslal

se nějaký request na server který řekl půjčku tohle komponent on má možnosti zahodit taky

víte proč

všechny tyhle komponenty

mají pak dispozici všechno co tram byla nabízí takže mají k dispozici nějakej zkouškou což

je vpodstatě státy komponent na jsou uloženy všechny ty informace které potřebuje k tomu aby

se zobrazila se zobrazovat to půjčku

má k dispozici přístup přímo k tomu elementu který s toma prohlížeči proto komponentu vytvořen

byl atributu má vlastně ke všemu to

ke všemu co potřebuje proto pro svoji práci

takže tak vlastně krátkosti k tomu von ten turek se na pracovat nevyužili a teď

pokusím kolegů teda ještě na naši prezentaci schnout

říct o na závěr

uzavřem na sem měl se toho že

takže zkusíme rád nějaký věci který jsme se letech sme se fungujou tohodle snažení při

tom vývoji ne úplně typickým aplikace nebo systému naučili je takže to že prohlížeče supertwisted

pochopili asi vše věděli

takže linux je super to asi taky víte

bejt na druhou stranu není to úplně dokonalý protože

_e rozdíl přál moc windows o konkrétní příklad dostali jsme připojit a nechce čtečku

ve windows rychle připojí vůbec neví jako ona funguje

vobčas možná a na tom linuxu tam funguje taky ale nechtěli najde veškerou tu dokumentaci

a pochopí co je potřeba nainstalovat a co je teďka ta správná verze že se

to už nedělá přesně jako knihovna přes nějakýho démona a tak dále tak jako to

trvá ale zas na druhou stranu dá se to konfigurovat _e na ty nějaká vláda

léto

jakživ tomhletom jsme s tím bojoval já nejsem si že nakonec je to určitě lepší

že to na tom nebo co běží protože

máme jedna tohleto pod kontrolou jednak systém server lence že můžeme mít víc displejů na

tom jednom počítači

zobrazovacích ploch řekněme ne displej aby hardvéru ale těch na každý něco jinýho to že

nakonec sme se obešli yves kompilace kromě from yacc vše taky svědčí o tom že

správci balíčku

telecom výbornou práci takže

po tom co sme bejvali pokud budete mít někde něco to

podpoře to potřebovat javu a budete potřebovat spoji s něčím s tom systému je třeba

na nativní úrovni tak určitě doporučuju podívat se na je no a protože na rozdíl

od jinejch způsobů nepotřebujete kontrolovat a zásadě si nějakou tu nativní knihovnu a můžete provolávat

celkem rychle použijete vrátí

můžete dost nějaký předdefinovaný si kódu ceny to funguje

líbá s je zase

taky sme to měli je to je původně ne na to původně byla věc která

seděla to především pro uživatelský rozhraní je potřeba ty no mohli mezi sebou ty jednotlivý

části to uživatelských rozhraní komunikovat nicméně

a doba pokročila vlastně ta používá na spoustu věcí

třeba a se přes něj dá komunikovat právě sem tě nechce démonem bluetooth pro spojení

informace ovládání těch je zařízení přes díval se rozhodně lepší takže zas do neznáte doporučuju

se podívat a koukat je na to jestli nějaká část trhu s instalujete do linuxu

je součást tohoto poprvé

protože existuje propojení do javy cestu velice dobře udělaný pipe mu a víceméně

neutrální cestou se dostanete ke spoustě věcí vtom systému který byste jinak třeba se tím

dostávali těžko nebo vůbec

a poslední to bylo to byl se ten jsem bojovali ale sem že spíš chyba

javy takže jenom vy byste chtěli

ho používat

spouštět zvuky nebo proč se vzdělávej tak to nedělejte

ste na nějakej ten způsob

další věc co se myslím že celkem sme nějak

podcenili že to rozvod i rozhodnutí tady jsme dělali na začátku že se ukázaly že

nebyly tak špatný

rozdělení že to ovlivnilo samozřejmě ten styl vývoje a že to rozdělení do vrstev a

tak _e ta front ten server na jednu stranu to štve protože si nemůžete viděl

dělejte co chcete ale postupem času to ocení takže ohrozit dvě věci maják své konkrétní

úlohy

tam ten dva prostě zobrazuje dělá tam toho poměrně mě s tím zobrazováním proces ta

čem a tak dále a na server posílá jenom poměrně

malý mu zkusit dát a jaké _m se dělá to samý přestože za nimi to

připojení k autu a tak dále je to se osvědčilo

a _e jezděj představte si říkali že to nikdo nemáte zkušenost tak zase doporučuji se

na to podívat protože

kromě toho těch funkcí o kterých jsem mluvil tak na to s tu možnost nějakým

způsobem vynucovat nejenom doporučovat oddělení implementace rozhraní taky dobrá věc že zveřejnil té interfejsy implementaci

se schováváte takže můžete kdykoli změnit

a může celá kolega nebo to používat nic nosí na další třídy že prostě nemůže

trefit ste toho kromě toho dělení přes vás autor a není to jen ne dobrovolnost

o to nejde

modularita rozdělený na vandr je tak to asi to robustnost tam si mysim že to

s to jí za to zopakovat

že pokud dodržujete to návrh ty aplikace tak jako tomu hezkej má bejt rád počítáte

s tím že nějaká služba kterou chcete používat že tam přát bez bejt nemusíš tu

danou chvíli tom systému nebo no a pocitem v instance nevíte která lepší takže dyž

jako dodržíte těch pár principy který

který se do nějakých doporučené jich prentice tak

topic je tak vás tolik nestojí a ta aplikace vyřazení robustnější sem třeba

nedospěl u některých věcí do stavu kdy

to

to běželo a stačilo sto počítače vytáhnu kabel díky tomu jak se tam ta změna

zpropagovat tak seš na udičku třeba vyměnil vyměnilo něco co bylo vhodnější za obraz

rázek aby se to aby tam to víčko něco bylo a tak se provedlo obrázkem

se zatim nebo je co by to mělo sloužit zlatouško vypadl furt stejně ty vostatní

části fungovat že

jakoby takovoudle modularitu i s tím že třeba můžete když takle tu část jednáte

nebo

pak se zapoj tam byl seznam sme měli to můžete dělat i na úrovni toho

jezděj říct podle odinstalují todle předinstaluj takže může ta pole znova vlastně za běhu což

taky není úplně špatný

a taky stojí za to se nějakým způsobem po věnovat zjistit co

co sou teď

vytipla zvolit jestli se od měl k obědu kolem programování zná reaktivní ste jel asynchronní

komunikace tom co nám ničí s tou

na to máte něco do sebe a zejména ten co nám přístup na musíme spoustě

věcí pomoh protože s principu ta aplikace je více vlákno a tam se z jedný

stránce tam valí prostě konce vláknech na informace co se kde děje v autě kolo

takže to se s tím je potřeba to nějakým způsobem ní nalil hromady a rozhodně

se nám slečno víc než řešit to kde má bejt nějaký synchronizovány blok kde má

bejt tak sledovat ten funkcionální přístup kterej tomhle případě spočívá to může pracovat jestli mi

to no ta má máte vůbec ne

a že ten objekt jakmile se jednou vytvoří tak ne se ty data vždycky tě

potřebujete nádeníci ionizovala

a místo toho aby se implementovali nějaký

prostě algoritmy který jdou něco krok po kroku mění tak to nultého ten přístup jestli

o tom že vy definujete transformace ale neříkáte kdy jsem řekl že tady vše taky

dobrý protože jsou nějaký mechanismy který vtom systému vezmou ten váš nadefinované transformační řetězec

pustí ho _e vám jednou si nula jedna dvou vláknech

takže to je eště dobrý se na tohle podívat

a zároveň je se vlastně programování s látkama na ty nulové úrovni vyhnou protože existuje

spousta vyšších abstrakcí červený to konkurent nebo to co přináší ne ty tento ne jiný

knihovně jsou feature s a tak dále který právě nevyužívá je tady toho že

film říkáte co se má stát ale ne říkáte kdy se to stane že ten

systém se může rozhodnout že teď je ta správná

pustit tady mám vlákno tak tam šup nějakou tu činnost nějaký výpočet a

že to je příliš řešíte

jak ty v ní přístup tak to víceméně vyplynulo samo spousta ty toho systému protože

se to nedělá nic míň než to reaguje nějaký na nějaký změny že na jedný

straně tam říká změny stavu kterým sem byl toho auta druhý straně tam uživatel je

se posíla je tam to ne ty který je

vlastně s principu taky asynchronní to znamená že ne komunikujete takže řeknete pošle něco napsat

k č k něco zpátky a něco pošlete do soketu a přes nějakej lis na

dva někdy neurčitý budoucnosti příjde odpověď takže tohle do toho všechno docela dobře se spolu

zapadá a musím říct že s ti že

to vede na výrazně kratší to

a na výrazně spolehlivější podstatě ten času protože pravdu tam nebojujete s tím že se

k ní blokujete vlákna vo nebo žena pak je tam nějaký debil se tam něco

mezi sebou pere takže jakmile děláte systému kde není kde není tak to jestli oddělený

po

_e se v letech dycky v jednom vlákně se dělá pro ten request rozhodně doporučuju

tady to taky se na to podívat

používat že vosum takže tohle všechno je založení a landa výrazem sem povětšinou

a pes toho to pak není úplně čitelný takže to nám taky pohodě a se

čeho osum tý době byla dost ne

používat takže potom

o začít používat jako ty tyhlety principy který jako nejsou plně

java nebyly java vlastní tak se sem se naučil sim používat poměrně čas a snad

je dobře

takže ten vývoj když a poměrně rychle kupředu

takže tomuto

asi znát všechno

tak děkujeme za pozornost pohněte nám přednášku budete mít budete mít chuť

a vy to prostor pro dotazy

jedničku

na jedničku vyvolené hlavní význam začínaly se v tom

použijeme

tak tam byla dvojka ještě byla jenom ve fázi alfa a to

i když jsme viděli že budeme dělat prototyp je docela co si můžeme dovolit tak

alfa byla pro nás řeknu ještě nepoužitelná a toho zastavila

a testy jsme podstatě nedělali

takže

tady jednoduchá odpověď

s několika řikaj tam probíhal uživatelský testování takže

celkem

už to z nepodinvestované

a podstatě na to bylo jedno ale to většinou je to většinou je to nějaký

monitor a měli jsme d tablety bylo potřeba něco třeba jenom představitel nový nějaký pokrok

a tak byly dispozici tablety kde toho taky fungovat

primární zařízení nebo primární cíl nebo takle takže to je sme to a

a je tady ale to sme mluvili tento vtom prohlížeči se to dělá ta samotnej

vývoje mnohem rychleji spol argument tak oproti o vypral samozřejmě šlo by to udělal lidí

aplikace bylo by to asi šetrnější prazdroj toho tabletu _e na to

by prima

no třeba nebylo málo příkladů kdy znal proudu potřebovali něco přímo tom autě opravit nebo

nás nastavit změnit

tak nám stačilo opravdu jenom rychlé změny nějakej na koho tomu samému

nemuseli jsme

počítat s tím že na tom na tom počítači je nějaký nějaké prostředí které míst

je schopnost bylo hodně jako mobilní aplikaci nebo něco podobně

l takže velice rychle nebyli schopni reagoval na nějaké změny

jo dál

na bezpečnost své jsme neřešili protože je to pro účely je se teďka vyhovuje

dělali sme dělali ale je skoro vždycky děláme vady

jako beta která

poslední dobou rujeme je no ale že si to vždycky bylo víc

prostě nějaký rozlišení je se typy mají nějaký by zájem o protože pak při nějaké

riziko design a jestli je lepší je rozvod je tam nebo tam vždycky večer jsme

měli nic víc rozjetej no

hlavně tyhle ty rozdíly nebyly jakoby na úrovni celý ty aplikace že bysme

řekli tady je ta aplikace tyhle verzi a tady tyhle verzi

a opravdu to chodilo těch chtěj zadání chod klienta

dobrá tady máme ten filtr hlaváč m p trojek

tak to uděláme teď takhle

ale zkusíme tuhletu verze té sekvence do si rozhodovali na těch jednotlivých malých kouscích

nebylo to že by sme řekli máme teda ze celý aplikace a vyberme které lepší

postup ne nevybírali ty lepší řešení na úrovni těch malejch prvků

kudy se to a věřím tomu že jo teda nemám informace o tom že by

nějaký automobilový konkrétně používají

vím že ojezdili se používá

neví strojů

je to co by

děláte

takže

ahoj tou

je to možný ale to bude

jsem si že

by to šlo ale myslím si že ta aplikace musela bejt

si by se tam pak mohli měli sady nějaké testy

pokud nejsou další dotazy tak já taky děkuju za pozornost

říkal kolega běžte na program na konference a tam naší přednášky je malá hvězdička

budeme rádi za několi feedback nebo noci