• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: Protoze existuje nemaly mnozstvi komunikacnich sitovych protokolu, ktery si v datech nenesou meta-data o tom jaky data nesou. Proste se poslou data a druha strana si je ma "nasekat" spravne. Prikladem muze byt protobuf.

    Je sice hezky, ze z objektove spravne by jsi mel pouzit nejaky rozhrani IMessage, ale kdyz proste prijde pole bajtu kde jsou raw data bez meta-dat tak se muzes jit klouzat :).
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: pochopil jsem, ze do tech trid sahnout nemuze... "komunikacni protokol" ve mne nejak nic relevantniho k tomu problemu neevokuje. chce nejak handlovat furu ruznych messages, takze proc nemit neco jako chain of responsibility?

    IMessageHandler
    {
    bool CanHandle(object/IMessage message);
    void Handle(object/IMessage message);
    }

    desi mne predstava tridy MegaHandler + mega-switche, jestli jsem dobre pochopil navrhovane reseni :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: Jestli to ma pro komunikacni protokol, tak spousta z nich nedovoluje pretezovani funkci, ani polymorfismus. Takze se to pak obchazi prave zpusobem, kdy si pro kazdou z moznosti udelas zvlast metodu, ktera to resi.

    A protoze to je prave silenej opruz, tak je dobry ten kod generovat a nepsat ho rucne. Protoze to je v podstate jen ctrl+c, ctrl+v, ctrl+h.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    MAIMONIDES: "..na každou třídu specializovanou funkci.." - nechybi tam nekde dedicnost? pripomnelo mi to http://www.antiifcampaign.com/ , ale mozna jsem jen spatne pochopil zadani.. :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    MAIMONIDES: Cili na zaklade nejakyho objektovyho modelu chcete vygenerovat kod, kterej zajistuje komunikaci po siti? Na to jsou T4 celkem dobry.
    MAIMONIDES
    MAIMONIDES --- ---
    TENCOKACISTROMY: T4? podívám se, díky.


    MORMEGIL: Refaktorizace názvu těch tříd. A ne normální(správné) to neni, používáme samozřejmě na každou třídu specializovanou funkci, která je zavolaná právě podle typu třídy. Je to messaging system..
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    MAIMONIDES: Jedine nejakym generatorem kodu (napr. pomoci T4).

    Zhodnoceni jak spatnej/dobrej napad to je necham na tobe :).
    MORMEGIL
    MORMEGIL --- ---
    MAIMONIDES: To jsou ale furt obecný tlachy. Jak by ti to ušetřilo život? Normální je napsat jednu metodu s jedním názvem, která zvládne zpracovat všechny ty příslušný typy (typicky díky tomu, že je generická). Ale jak říkám: Pokud opravdu musíš, můžeš si tu metodu včetně názvu vygenerovat až za běhu dynamicky.
    MAIMONIDES
    MAIMONIDES --- ---
    MORMEGIL: GetType je chybnej příklad, jasně. Nejde mi o reflection nebo runtime věci, jde mi o to napsat název funkce jako složení názvu třídy a nějaké konstanty.

    No, dělal bych to protože by mi to v projektu usnadnilo život (údržbu...).
    MORMEGIL
    MORMEGIL --- ---
    MAIMONIDES: Ale jinak tohle samozřejmě můžeš vyrobit generováním kódu za běhu (reflection).
    MORMEGIL
    MORMEGIL --- ---
    MAIMONIDES: A proč bys to dělal? A nic takovýho, co píšeš tady, v céčku nejde: Vzdáleně podobná jsou makra (odkud máš ten operátor ##), ale v nich těžko můžeš odkazovat na výraz vyhodnocovaný v runtime (volání funkcí GetType() a ToString()!).
    MAIMONIDES
    MAIMONIDES --- ---
    Blbý dotaz..
    Mám nějakou třídu X. Chci udělat funkci, která se jmenuje
    HandleX.
    Lze nějak vytvořit jméno funkce pomocí X?
    něco jako public void Handle##X.getType().ToString()(int val)
    {
    ..
    }

    Bylo by to ohromně užitečný a v C to jde:)
    NECROMAN
    NECROMAN --- ---
    ANDY_WARHOL: nestaci. pokud chces delat Metro aplikace, musis mit Windows 8 bud fyzicky, nebo aspon jako virtualku.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    ANDY_WARHOL: Obecne receno - vyvijet na starsim systemu pro novejsi system neni moc vhodny. Ve chvili kdy chces pouzivat nejaky novy OS specific funkce, tak co s tim budes na tom starsim systemu delat?

    O andriodu ani nemluve ... to je system pro mobily, na tablety jen priohnutej, tam jsem byl prekvapenej ze tam vubec nejaky vyvojovy nastroje jsou k dispozici :).
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    NECROMAN: vs12 na win 7 nestaci ? pak mit treba na testovani virtualku s win 8 ? ale coz, jde mit vs ve virtualce rovnou, s dostatecne vykonnym kompem by to nemel byt problem
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Vsak to jsem myslel. Win8 tablet a na nem VS + SSMS.
    NECROMAN
    NECROMAN --- ---
    TENCOKACISTROMY: vyvoj pro Windows 8, na to muzes na Androidu zapomenout. Ani na Windows 7 to nejde - je treba Windows 8 a VS2012.
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    TENCOKACISTROMY: tak jako mit na driodu visual studio, nebo aspon monodevelop, tak je vsjo jasno :D To aide taky prijemne prekvapilo, ze v tom fakt neco malo splacat jde (resp pujde, az se mi vrati tabletka ze servisu)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Ja mam tedka Assus TF300 a chrochtam si. Jediny co mi tu chybi je VS a SSMS. Kdyz si tam chci neco vyvinout musim to udelat v AIDE v jave. Prekvapive to jde pouzivat celkem dobre.
    NECROMAN
    NECROMAN --- ---
    TENCOKACISTROMY: tak tablet uz mam (Acer Iconia W500), koncem roku vymenim asi za Surface RT. Jinak tablet se hodi maximalne na remote testovani. Na vyvoj je idealni dobry notebook a dost RAMky.
    MIRROR
    MIRROR --- ---
    NECROMAN: ja uz vyvijim a zalozil bych nove :-)
    Kliknutím sem můžete změnit nastavení reklam