Poznámka: Tento článek vyšel také jako doprovodný text ke stejnojmennému školení
Pokud řešíte nějaký problém, tak je opravdu velice výhodné, když znáte předem řešení.
O tom jsou obecně vzory v návrhu SW. Vzor totiž není nic jiného, než aplikace opětovné použitelnosti na řešení problémů. Obecně lze vzor v návrhu SW (a nejen v návrhu SW) definovat takto:
Vzor je opětovně použitelné řešení na opakující se problém.
Ve všech oblastech návrhu SW nalezneme vzory, ať už se jmenují jakkoliv, například jako Patterns, Tips and Tricks, Best Practices atd. Nejznámějšími jsou asi klasické vzory z objektového programování známé pod zkratkou GOF (Gang of Four). Jaké jsou hlavní výhody ve znalostech vzorů a jejich nasazení?
1. Vzor jako okamžité řešení
Vzory umožňují rychle najít řešení metodou „to už jsme přece dělali“ anebo podobně „to známe, to už někdo dělal a máme to tady v katalogu vzorů“. Díky tomu dochází k enormnímu urychlení vývoje a věci se neřeší metodou „vynalezneme již vynalezené“.
2. Vzor jako nejpraktičtější metodická příručka postupu řešení
Vzory umožňují zavádět ve firmách metodické postupy tou nejelegantnější formou, jaká je možná, a také z pohledu praktických vývojářů tím nejžádanějším způsobem. Kreativní pracovníci se většinou oprávněně brání byrokratickým metodám při vývoji SW, a jak jsem viděl na vlastí oči, zavádění byrokratických metod do tvorby SW může ve firmě hraničit až s opravdovým hororem. Oproti tomu zapálený vývojář většinou hodnotí zavádění opakovaných řešení pomocí vzorů velice kladně a dokonce je považuje pro svou práci (na rozdíl od byrokratických metodických blábolů) za velký přínos.
3. Vzor výrazně urychluje tvorbu dokumentace
Zavedení vzoru výrazně zjednodušuje dokumentaci. Vysvětlení řešení je totiž umístěno do samotného vzoru (a je tedy také opětovně použitelné) a tedy stačí se u daného konkrétního řešení odkázat do katalogu vzorů a pouze v použití vzoru napsat „kdo je kdo“ a dokumentace je tímto hotova. Čtenář buď daný vzor zná zpaměti anebo si dokumentaci přečte (pokud třeba) u daného vzoru.
4. Vzory jako nástroj zvýšení osobní prestiže vývojáře
Znalost vzorů a jejich neustálé rozšiřování vede k jednomu vedlejšímu, ale z pohledu profese vývojáře nezanedbatelnému efektu: Vývojář, který v oblasti své práce zná a používá hodně vzorů (navíc pokud je má ve své paměti) působí pochopitelně na okolí jako expert znalý věci. Ono není důležité, odkud jste získali svoje znalosti, zda vlastní zkušeností anebo studiem, resp. školeními apod. Důležitý je výsledek a tím je v daný moment praktická znalost řešení daného problému. Z toho důvodu považuji studium vzorů za něco jako „osobní zájem vývojáře“, který pak na okolí působí jako guru.
Analytické vzory
Není snad žádná oblast vývoje, kde by se vzory jako opětovně použitelné řešení nepoužívaly. Jmenujme jako příklady Design Patterns v OOP (známé tak jako GOF), Enterprise Architecture Patterns, Enterprise Integration Patterns, Real Time Design Patterns atd.
Mezi těmito oblastmi vzorů vyniká jedna oblast, která je svou povahou výjimečná. Jedná se o oblast vzorů zvaných jako Analysis Patterns neboli Analytické vzory. Je zvláštní v tom, že se týká již samotné fáze analytického modelování, tedy návrhu logické vrstvy aplikace. Znamená to, že všechna řešení, která tyto vzory nabízí, se týkají samotné podstaty logiky aplikace. Protože logický model v analytickém modelování má míru detailu implementace nula, tedy je implementačně nezávislý (tzv. Platform Independent Model neboli PIM), řešení těchto vzorů je aplikovatelné v libovolném prostředí, např. v PHP, JAVA, C#, atd. a následně v libovolné databázi, což výrazně zvyšuje jejich užitkovost.
Mohu z vlastní zkušenosti potvrdit, že znalost nasazení těchto vzorů v praxi (včetně jejich kombinací použití) mi mnohokrát pomohla vyřešit zdánlivě velmi složitý problém.
Z toho důvodu nabízíme jako nový typ školení Analytické vzory jako nástroj super rychlého vývoje IS
Katalog vzorů Analysis Patterns
Školení vás seznámí prakticky nejen se základními vzory analytického modelování, ale také nabízí řešení relativně složitějších problémů z dané oblasti. Začíná se těmi jednoduchými až po ty nejsložitější, které nejsou ničím jiným, než kombinací předešlých jednodušších vzorů. Z toho důvodu jsou i tato složitá řešení velmi snadno pochopitelná. Níže předkládám seznam vzorů, od základních až po ty složité
Basic Analysis Patterns
- CONCRETE CLASS alias DRAWER WITH CARDS
- META SHIFT (FLEXI TEST)
- COMPOSITION PERSON HAS ADDRESS (like in e-shop)
- COMPOSITION INVOICE HAS ROWS
- POINTER RELATION or POINTER TO LIST, CAR HAS COLOR
- SHARED AGGREGATION, GSM HAS SIM
- ASSOCIATION CLASS, MARRIAGE, PERSON – CAR – OWNERSHIP
- ALLOWED COMBINATIONS (GOODS – ALLOWED UNITS)
- N-ary ASSOCIATION CLASS (EXAM TEACHER SUBJECT ROOM)
- GENERALIZATION DOG – CAT – ANIMAL
- GENERALIZATION LISKOV’S GREEN ARROW
- GENERALIZATION HETEROGENOUS LIST
- GENERALIZATION POINTER TO TOP OF TREE
- GENERALIZATION ASSOCIATION CLASS ON TOP OF TREE
Advanced Analysis Patterns
- CODE LIST (řešení číselníků alias kódovníků, možné varianty)
- THE TRAIN HAS ITS WAGONS
- HISTORY OF POINTERS (historie odkazu)
- EMPLOYEES ASSIGNED TO THE ORDER (přiřazení pracovníků k zakázce a podobná přiřazení)
- STATE HISTORY (historie stavů)
- PARTY alias SUBJECTS, RELATIONS BETWEEN SUBJECTS (agenda Subjektů a jejich vztahů, kontakty, adresy atd.)
- ORGANIZATION HIERACHIES (hierarchie organizací, resp. obecná hierarchie)
- ELEMENTS IDENTIFIERS (identifikátory prvků v systému a jejich správa)
- DATE INTERVAL (interval datumů)
Complex Analysis Patterns
- STATE MACHINE (obecný stavový stroj použitelný všude)
- OBSERVATIONS AND MEASURMENTS (obecně měření, pozorování a jiné podobné jevy)
- ENTITIES WITH HISTORY (entity s historií, návod pro všechny entity tohoto typu, možnosti řešení od vysoké granulity historie až po hrubá optimalizační řešení, „kvantování času“ po krocích změn)
Napsat komentář