Avatar
TomBen
Redaktor
Avatar
TomBen:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

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
Redaktor
Avatar
Odpovídá na TomBen
Kit:

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
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

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
Redaktor
Avatar
Odpovídá na Kit
TomBen:

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
Redaktor
Avatar
Odpovídá na TomBen
Kit:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Kit
TomBen:

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
Redaktor
Avatar
Odpovídá na TomBen
Kit:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
TomBen:

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
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

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.