IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
TomBen
Tvůrce
Avatar
TomBen:20.10.2012 17:29

K tomuhle bych měl jeden dotaz, čistě obecný, bez konkrétní náplně:

Když si představím nějaký proces, který může mít jednak začátek i konec
nebo může podle splnění určitých podmínek cyklovat věky. Ten proces bude
procházet určitými stádii asi jako vlak prochází stanicemi. Někde se zdrží,
někde projede. V každém stádiu se ovšem musí reagovat na změny v celkovém
prostředí a proto se řízení procesu právě v těch klíčových bodech, musí
umět změnit. Představa vlaku je tady taky na místě. Jako když ve stanici
přehodí výhybku a vlak z koleje 1 pojede prostě jinam.

Takže máme "vlak", "stanici", "díl trasy = kolej". Co bude mít jakou
podobu v objektovém pojetí? Řekněme, že stav systému by ovlivňovaly
eventy z GUI. Do těch by proces neměl zřejmě ani vidět. Trasa (kolej)
by měla mít informaci, odkud a kam vede, v jakém procentu z ní je proces
aktuálně. Stanice by měla vědět, že se proces blíží, měla by nějak předat
procesu svůj aktuální stav, ale neměla by rozhodovat o celkovém cíli procesu.
Neobjektově mi to přijde snazší vytvořit, ale příšerně by se
to pak udržovalo a měnilo. Jak byste se ten systém snažili vnímat
v objektech? Stanice by zřejmě měly být součástí třídy všech stanic.
Co bude proces? Objekt nebo metoda? A kolej? Atribut stanic nebo sólo?

Editováno 20.10.2012 17:30
Odpovědět
20.10.2012 17:29
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:20.10.2012 17:40

Máš jen zkažené myšlení neobjektovým kódem :) OOP je přeci takové, jaké je to ve skutečnosti. Stanice, vlak, to jsou normální objekty.

Trasu můžeš realizovat jako pospojování něčeho jako BodTrasy. Z toho bude dědit výhybka, ale taky stanice, prostě vše, co nějak ovlivňuje vlak. Trasa je tedy kolekce BodTrasy. Stačí jimi zasebou jet a dívat se třeba před sebe, co tam je dál.

Nahoru Odpovědět
20.10.2012 17:40
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:20.10.2012 17:41

Ještě ses ptal na to, co je to proces. To nám musíš upřesnit. Může to být třeba kolekce kroků, těžko říct, co to má dělat.

Nahoru Odpovědět
20.10.2012 17:41
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:20.10.2012 17:50

Kam se teda má proces dívat, když chce vědět, co bude dál?
Celková trasa není pevná, ani známá předem.

Nahoru Odpovědět
20.10.2012 17:50
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na TomBen
Kit:20.10.2012 17:51

Představa jednoho vlaku v objektech selhává. Spíš bych to přirovnal k tomu, že každá stanice může kdykoli (v případě eventu) vypravit vlak do jiné (povolené) stanice. Ta si ten vlak po přijetí rozebere a následně může (ale nemusí) vypravit další vlaky do jiných stanic. Proces nebude jeden, ale několik na sobě nezávislých. Vlastně se takový program chová jako operační systém v malém provedení.

Nahoru Odpovědět
20.10.2012 17:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:20.10.2012 17:53

Proces by měl být snad něco jako sada funkcí, jejichž parametry
by se četly z bodů trasy.

Nahoru Odpovědět
20.10.2012 17:53
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na Kit
TomBen:20.10.2012 17:57

To je celkem zajímavé. Víc procesů vypouštěných ze stanic by řešilo
dost otázek. Jen by to zas muselo něco kontrolovat. Jako třeba jestli
vůbec nějaký proces běží, jestli se nespustily dva procesy, které by
si navzájem kazily činnost, atd.

Nahoru Odpovědět
20.10.2012 17:57
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na TomBen
Kit:20.10.2012 17:58

Každá stanice (objekt) je proces, který se probouzí s přijetím dat (vlaku) nebo eventu (přijetí zboží místní produkce, zásah bleskem, ...)

Nahoru Odpovědět
20.10.2012 17:58
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:20.10.2012 17:59

Trasa musí být daná nebo musí být alespoň znám způsob, jak vzniká. Nic to na mém modelu nemění, jen budeš přidávat objekty do kolekce podle akcí vlaku (čím projel). OOP odpovídá tomu, jak chápou lidi svět a jak myslí. Když víš, jak to udělat, víš i jak to napsat objektově (většinou). Já tomu moc nerozumím, jinak bych ti to navrhl.

Nahoru Odpovědět
20.10.2012 17:59
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na Kit
TomBen:20.10.2012 18:01

A co data, která by bylo třeba vázat na proces, ale napříč více stanicemi.
Příkladně počet projetých stanic od začátku.

Edited:
Zdá se, že na tohle vlastně odpověděl sdraco...

Editováno 20.10.2012 18:02
Nahoru Odpovědět
20.10.2012 18:01
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na TomBen
Kit:20.10.2012 18:04

Samozřejmě nad tím je nějaký supervizor, který rozděluje eventy a sleduje provoz. Když žádný proces neběží a ani není žádný event, tak spí. Obvykle se pro tyto účely používá kooperativní multitasking. Tím se vyloučí možnost kolize.

Nahoru Odpovědět
20.10.2012 18:04
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:20.10.2012 18:06

Zdá se mi, že trasa vzniká procesem a proces čte z trasy, někde je problém :) Trasa by se třeba mohla pravděpodobnostně generovat podle minulého procesu a ten by se podle toho upravoval.

Nahoru Odpovědět
20.10.2012 18:06
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:20.10.2012 18:09

A co eventy? Ty jsou přece asynchronní.

Nahoru Odpovědět
20.10.2012 18:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:20.10.2012 18:14

Ty jsem pochopil jako že vlak na něco najede (tedy že jsou na trase). Ale jestli jsou asynchronní, pak tvoří trasu ony.

Nahoru Odpovědět
20.10.2012 18:14
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
TomBen:20.10.2012 18:15

Vlastně asi ano, trasa vzniká procesem a zároveň proces čte z trasy.
Zní to divně, ale tak nějak by to mělo být.

Nahoru Odpovědět
20.10.2012 18:15
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:20.10.2012 18:24

Eventy by měly způsobit změny v trase. Svým způsobem ji tak i tvoří.
Začínám mít pocit, že si to ještě musím nějakou dobu utřepávat v hlavě.
Než si to sedne na správná místa.

Nahoru Odpovědět
20.10.2012 18:24
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 16 zpráv z 16.