\

Školení Návrhové vzory, OOP a UML


 Saturday, 30 July 2005
Řešení hádanky "Znáte dobře návrhové vzory"

Protože nikdo nedodal kompletní řešení k hádance z 26.7., zde je odpověď.

  1. Třída MessageReceiverBase - událost MessageReceived, návrhový vzor Observer.
  2. Třída MessageReceiverBase -metoda CreateMessage, návrhový vzor Factory Method. Metoda CreateMessage vrací přímo instancí třídy Message nebo její potomky. Potomci třídy MessageReceiverBase mohou metodu přepsat a vrátit z metody například instanci OrderMessage, aniž by byly dotčeny vysokoúrovňové scénaře pracující pouze s rozhraním Message a deklarované na úrovni MessageReceiverBase.
  3. Třídy MessageReceivePoint, MessageReceiverBase a její potomky můžeme považovat za participanty návrhového vzoru Bridge. Třída MessageReceivePoint je abstrakcí - logickým přístupovým bodem, který dokáže přijímat data na daném URI a který interně využívá konkrétní fyzický přístupový bod, jímž je potomek třídy MessageReceiverBase zapouzdřující detaily komunikace po zvoleném přenosovém protokolu. Metoda Listen třídy MessageReceivePoint deleguje volání na metodu Listen třídy MessageReceiverBase. Samozřejmě lze o potomcích třídy MessageReceiveBase uvaživat i jako o strategiích, jak zaznělo v diskuzi o spotu, i když si myslím, že vzor Bridge lépe vyjadřuje role tříd.
  4. Třída AddMesageAttributesProcessor - jak vyjadřuje její název, jedná se o realizátora vzoru Content Enricher - k přijaté zprávě dodává další informace, které nebyly přímo její součástí ale které jsou důležité pro další zpracování zprávy. Příklad - messagingový systém přijme objednávku a Content Enricher ke zprávě doplní údaje o platební morálce zákazníka.
  5. Třída FilterMessageAttributesProcessor - opět dle názvu můžete usuzovat, že jde o návrhový vzor Content Filter. Procesor z přijaté zprávy odstraní všechny informace, které nejsou důležité pro další zpracování a které by pouze zbytečně vytěžovaly zdroje serveru. Příklad - messagingový systém přijme obrázové přílohy, které není třeba posílat k dalšímu zpracování, ale pouze se archivují v DMS, takže nemá smysl hnát obrázky celým procesem vyřizování objednávky. Content Filter obrázky ze zprávy před jejím dalším zpracováním odstraní.

Jak někteří z vás (Petr :) ) správně vytušili, diagram také svádí k tomu, aby byl rozšířen o Intercepting filter nebo o vzor Pipes&Filters - tyto vzory v něm ale v současné podobě nalezneme poze jako latentní možnosti, které můžeme uskutečnit doplněním a úpravou vztahů mezi existujícími třídami.



Saturday, 30 July 2005 17:22:25 (Central Europe Standard Time, UTC+01:00)       
Comments [0]  Návrhové vzory | Programátorské hádanky


 Friday, 29 July 2005
OT: Řidičák :)

Jedna soukromá zpráva, ale mám opravdu radost, takže se o ní s vámi podělím. Po poměrně velkém úsilí ;) se mi podařilo udělat zkoušku z jízd, takže už mohu začít konečně oficiálně;) používat svoje auto a skončí tak moje cesty do Prahy vlakem a busem, které už byly časově neúnosné. Hlavně spolehlivost Českých drah mi pravidelně pumpovala povinnou dávku adrenalinu do žil. Potřebujete stihnout nějaké jednání, vstanete kvůli tomu o hodinu dřív, nastoupíte do vlaku plni optimismu v kvalitu veřejných služeb dotovaných v míře větší než malé z vašich daní a o stanici dále a půlhodině čekání nějaký pologramotný zaměstnanec drah zakoktá, že "lokomotiva je rozbitá, vole a dál se nejede".

Aby to nebylo úplně OT, v mezičase před složením řidičáku jsem stihl otestovat navigační systémy Pocket Kim, SmartMaps a Dynavix, takže brzy se zde objeví nějaké srovnání.



Friday, 29 July 2005 11:22:22 (Central Europe Standard Time, UTC+01:00)       
Comments [8]  Ostatní


 Wednesday, 27 July 2005
Dotazy na vývoj aplikací pro Pocket PC

Na serveru CE4YOU můžete v v diskuzi Programování klást své dotazy, které se týkají problémů s vývojem pro Pocket PC a SmartPhone miláčky ;-). Nezáleží na tom, s jakým vývojovým nástrojem pracujete - takže se můžete ptát na vývoj v Compact .Net Frameworku 1.0 (2.0), na vývoj nativních aplikací v C++ nebo i na bastlení ve stařečkovi eVB.;-)

Specializovaná konference na Emwacu není a otázky kolem Pocket PC platformy zůstávají v obecných konferencích většinou bez odpovědi, proto si myslím, že tématicky úzce zaměřená konference bude pro všechny vývojáře pro platformu Windows Mobile příjemným a postupně znalostmi nabytým koutkem. :)

Informace poslední: Jsem moderátorem tohoto fóra, takže jej aktivně sleduji a pokud znám odpověď, nenechávám si ji pro sebe. ;-)



Wednesday, 27 July 2005 14:49:46 (Central Europe Standard Time, UTC+01:00)       
Comments [0]  Compact .Net Framework | Mobilitky | Ostatní


 Tuesday, 26 July 2005
Hádanka - znáte dobře návrhové vzory?

Dokážete na následujícím diagramu najít všechny použité návrhové vzory? ;-)

Pokud by to někomu přišlo trapně jednoduché, můžete dávat návrhy na vylepšení diagramu...

BTW: Ten diagram není z reálného projektu, takže můžete opravdu usuzovat na návrhové vzory jen podle vztahů, případně podle názvů elementů v diagramu. Je to jen hra ;-)

Stažení diagramu



Tuesday, 26 July 2005 17:01:52 (Central Europe Standard Time, UTC+01:00)       
Comments [14]  Programátorské hádanky


MDA IV už brzy. Snad...
Čekáte také na MDA IV? Jediného opravdového konkurenta symbianových Nokií 9500  a 9300,  který bude mít nejnovější operační systém Windows Mobile 5.0? Uvedení MDA IV je společností HTC plánováno na září, takže doufám, že se česká pobočka TMO pochlapí a nabídne MDA IV dříve než na Vánoce, abych mohl vysloužilé MDA II konečně vyměnit. Sice mi MDA II slouží spolehlivě, ale už docela zoufale mi na něm chybí Wi-Fi, protože Český Telecom k mému ADSL paušálu nabízí i přístup na své hotspoty a hotspoty Eurotelu. Také k mému domácímu Wi-Fi routeru bych Pocket PC s Wi-Fi potřeboval, protože SD Wi-Fi karta není zrovna pohodlné řešení, když musíte mít v SD IO slotu nutně paměťovou kartu.

Hlavní parametry, které se objevily v recenzích

Procesor - PXA270 520 Mhz
Bluetooth (1.2)
Infraport
UMTS (bohužel ne EDGE)
Foťák: 1.3MPx
Wi-Fi: 802.11b
ROM: 96 MB
RAM: 128 MB
SD IO slot

(via CE4YOU)



Tuesday, 26 July 2005 10:49:55 (Central Europe Standard Time, UTC+01:00)       
Comments [0]  Mobilitky


 Monday, 25 July 2005
Změna umístění blogu

Konečně jsem se dostal k přestěhování blogu na vlastní doménu. Děkuji Michalovi za dosavadní hostování blogu i za pomoc při exportování spotů z .TEXTu. Důvodem mého odchodu není nějaký truc vůči Michalovi, ale jak jsem psal již dříve, moje zvláštní úchylka, která se projevuje tím, že jsem nerad na komkoli závislý, byť by šlo o tak příjemného a vstřícného člověka jako je Michal. Myslím, že Nikos Kazantzakis v Řeku Zorbovi říká, že zvětšování naší svobody je jen iluze a že se jen zvětšuje délka provazu, na kterém jsme uvázáni, takže můžeme dělat stále větší okruhy kolem stromu, k němuž je provaz upevněn. I kdyby to bylo pravda, cítím se teď s delším (a ne snad šibeničním) provazem na krku lépe.

Pár základních informaci na úvod.

URL
http://blog.renestein.net

RSS
http://blog.renestein.net/SyndicationService.asmx/GetRss

ATOM
 http://blog.renestein.net/SyndicationServiceExperimental.asmx/GetAtom

  1. Blog již neběží na TEXTu, ale na DASBlogu. DASBlog jsem si vybral, protože mi přijde lépe napsaný a umožňuje kromě dalších vychytávek třeba publikaci spotů přes mail. Bohužel zatím ukládá data do XML, ale dá se žít i s touto drobnou vadou. Protože jsem do útrob DASBlogu dostatečně nahlédl. pokusím se pár spotů o DASBlogu napsat. Důvodem k přechodu na DASBlog bylo také odpoutání se od toho, co kolega Daniel Steigerwald v hyperbole nazval zárodkem fašismu v podobě .TEXTu v .NET komunitě. :)

  2. Při převádění spotů jsem je znovu všechny roztřídil do nových kategorií, protože staré kategorie nevyhovovaly a mnohdy nebyly ani v původních kategoriích spoty správně zařazeny.

  3. Trochu později jsem zjistil, že se mi zatím nepodařilo korektně převést všechny komentáře. Na tom budu muset ještě zapracovat.

  4. Přišlo mi docela dost emailů od lidí, kteří se ptali, kdy vyjde další článek o UML na Interval.cz. Dobrou zprávou pro všechny tazatele snad bude to, že další díl seriálu jsme již redakci poslal a snad se mi podaří v seriálu pokračovat rychlejším tempem než dosud. Dále díky benevolenci serveru Interval.cz a jeho šéfredaktora Viléma Málka budu moci s měsíčním zpožděném publikovat články z Intervalu na svých stránkách. Takže brzy se zde objeví všechny mé články v ucelené podobě.

  5. Články zmíněné v předchozím odstavci chci publikovat na samostatné subdoméně a moji ambicí je vytvořit stránky o návrhu, designu a vývoji aplikací, které budou v ideálním případě pro všechny zájemce ekvivalentem toho, co představují vynikající stránky JakPsátWeb pro html kodéry.

  6. Když už jsem u toho inspirování se jinde. Na weblogu je také sekce Zaujalo mě, ve které budou bez další kategorizace odkazy na kvalitní články, které mě v poslední době zaujaly. Zcela nepokrytě se přiznávám, že nápad jsem zkopíroval od Jirky Macicha.

  7. Frekvence publikování na blogu bude (snad) vyšší než doposud.

  8. Pár lidí mělo zájem o reklamu na blogu. Nyní je možné se na reklamě domluvit - kontaktujte mě a domluvíme si podmínky.

To nejlepší na konec: Jestliže se vám líbila Malá typologie českých vývojářů, a bylo vás asi dost, když do celkového počtu čtenářů započítám i rozzuřené emaily od jistých rozkošně se vyjadřujících anonymních přátel, můžete se těšit na pokračování.

Nikdy bych nevěřil, že spot, který jsem napsal za 20 minut kvůli katarzi a vůběc očištění od špatných nekřesťanských myšlenek týkajících se humánní anihilace špatných vývojářů sklidí takový ohlas a že se v něm tolik lidí pozná. Inu, co Čech, to vývojář:). Kromě typologie vývojářů se připravuje i typologie projektových vedoucích - sondu do světa SW firem je potřeba zasunout co nejhlouběji a nezůstat na povrchu.

Zajímavé a trochu smutné je, že moje technické spoty si přečetla přibližně jedna třetina z počtu čtenářů, kteří zhlédli typologii vývojářů - raději z toho nebudu induktivně dovozovat, proč se tak v Čechách daří bulváru a jinému škváru.

BTW: Také jste zaregistrovali, že seriál o VB.NET přestal konečně vycházet? Boží mlýny melou pomalu, ale nakonec nezapomínají ani na svět SW. ;)

Takže vítejte;)



Monday, 25 July 2005 13:32:16 (Central Europe Standard Time, UTC+01:00)       
Comments [4]