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
ní
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