Návrh aplikace

Zveřejněno 10 listopadu 07 09:24 odp.

Už jsem měl tu čest pokračovat ve vývoji aplikací, které byly v nějakém stádiu vývoje a potřebovaly dát nějakým způsobem do pořádku. Vývojáři, kteří nedbají na další rozšiřitelnost a údržbu kódu v aplikacích se stanou dříve nebo později zajatci svých aplikací. Projevuje se to zejména tak, že když přijde nový, celkem jednoduchý požadavek, typická odpověď je "No, ale to zabere tak nejméně tři týdny..." 

Vyvstává otázka: co je primárním cílem návrhu aplikace, či systému ?

Tím by měla být podle mého názoru rozšiřitelnost aplikace a minimalizace složitosti aplikace .

Mnoho vývojářů dává přednost řešením, které je ihned napadnou, např. aktualizuji profil zákazníka, aktualizuji taktéž jeho status pro export do nějakého externího systému. Je důležité aby jste se při aktualizaci profilu zákazníka nemusli zabývat dalšími věcmi jako je export do nějakých externích systémů. Tuhle problematiku lze řešit až v proceduře, která zpacovává Export.

Složitost aplikace lze minimalizovat tím, že se třída (pokud vůbec nějaká existuje) bude zabývat pouze aktualizací údajů o zákazníkovi. Na základě této akce se můžou vyvolat další funkce ostatních tříd, které budou mít svoji specifickou úlohu. Nutonstí je delegovat jednotlivé funkce specializovaným třídám a ne jedné proceduře.

Občas přemýšlím, že by bylo možní dobré napsat knihu "Jak neprogramovat" Aby něl každý možnost seznámit se s každým omylem se kterým si každý vývjojář prošel (a někteří bez povšimnutí dále a dále prochází). K čemu je vám, že znáte nové technologie jako LINQ, když neumíte pořádně navrhnout aplikace, která se bude bez problémů vyvýjet a rozšiřovat za 5-10 let ? V tom dnešním překotném vývoji mě tohle téma docela chybí....

Samozřejmě můžete namítnout, že na webu MS je spousta článků, kterých se zabývají architerkturou, mě to přijde přílliš všeobecné  a hlavně ne pro středně pokročilého vývojáře. Co vy na to ...

 

by opis

Komentář

# ernest said on listopadu 12, 2007 10:08:

To je neco, proc se dnes rozlisuji junior a senior programatori. Od senior programatora se takovy navrh ocekava. Souvisi to s tim, ze senior programator, aspon z meho pohledu, neni pouze clovek, ktery si nekdy neco precetl o navrhovych vzorech, ale ktery ma dostatek zkusenosti s architekturou aplikaci a chape, k cemu navrhove vzory jsou a dokaze je tim padem intuitivne aplikovat. A to treba ani nikdy nemusel zadnou knizku o navrhovych vzorech cist :)

Nicmene vzdy se muze objevit pozadavek, se kterym se od zacatku projektu nepocitalo a ktery muze navrh aplikace nekolikrat zeslozitit. Neexistence takoveho pozadavku mohl byt duvod, proc byl ze zacatku zvolen jiny navrh aplikace. Tim trpi hlavne stare systemy, u nichz se zakaznik pozaduje kontinentalni vyvoj, ale na nejaky refactoring neni cas ani penize.

Ale to asi neni vas pripad :)

# savara said on listopadu 12, 2007 10:18:

Obavam sa,ze ta kniha, "ako neprogramovat" bola velmi velmi velka :)

# v.suchan said on listopadu 12, 2007 15:22:

Myslím, že knížka jak něco nedělat není to pravé ořechové. Spíš by to chtělo knížku jak to udělat správně. Řekl bych že chybí knížka, která by jasně, a ne jenom v hodně obecné a abstraktní rovině, vysvětlila například jak aplikaci členit na jednotlivé vrstvy a ukázat co do každé vrstvy patří a jak se to prováže s ostatními vrstvami. A jak do toho zapadají návrhové vzory. Takový tutorial na nějaké aplikaci, který by předal znalosti na konkrétní demo aplikaci z reálného světa.

# ernest said on listopadu 13, 2007 9:10:

někdo se učí metodou pokus-omyl, někdo se učí přemýšlením a někteří se učí od těch, co už to umí :)

každý se učí podle svých předpokladů, metoda pokus-omyl je nejtěžší a chce hodně nervů, přemýšlení umožní vyvarovat se některým chybám, ale vyžaduje hodně času než se z informace vytvoří pochopení, kdežto třetí varianta je nejrychlejší, protože následujete někoho, kdo už prošel experimenty a přemýšlením

takže hned po knížce je nejrychlejší vypiplat si svůj vlastní vývojářský tým

Neregistrovaní uživatele nemužou přidávat komentáře.
Vyvojar.cz na prodej!