Cayman Islander | Diary of a Freelance Programmer traveling the world

Cayman Islander's blog - Diary of Freelance Programmer

Každý programátor ví, že databáze je základ a GUI ani Excel není databáze :-)

Keep Right Go LeftPřed časem jsem se zmiňoval, že "většina nových vývojářů se v posledních letech věnuje pouze Internetu a zajímá je jen vývoj Web aplikací". Když už programují pro desktop PC, tak navrhují "aplikace" v Accessu, příp. zkouší "aplikace" v Excelu.

Ta má kritika Excel "aplikací" nebyla ale myšlena jako odsuzování Excelu jako takového. Excel je dokonalý produkt, o tom není nutno polemizovat, jen se musí používat na to, na co je určen. Pro síťové databázové aplikace, kdy je potřeba online sdílet data mezi více uživateli v počítačové síti, či mezi firemními uživateli z celého světa na Intranetu, příp. se všemi uživateli na Internetu, se opravdu nehodí.


Databáze jsou a budou základ pro jakákoliv data!

Pro shromažďování dat s následným zpracováním ve formě výpočtů, statistik, grafů, tisku sestav, je naprostou nutností dobrá databáze. Tečka. Punkt.

Je úplně jedno, jaká to bude databáze, neboť většina dB systémů má skoro odpovídající funkce, kdy každý vývojář může preferovat jinou databázi. Základ je ale stejný a dobrý programátor si dokáže poradit s jakýmkoliv problémem a navrhnout odpovídají datový model.

Nechci vyvolávat žádnou diskuzi o kvalitách a výhodách jednotlivých databází, všechny současné dB na trhu jsou použitelné skoro na všechno. Každá má sice nějaké výhody např. v rychlosti vyhledávání, kvalitě a zabezpečení transakcí, replikacích, možnostech a funkcích SQL jazyka, v podpoře vývojových prostředí, ale všechny ty drobné rozdíly v jednotlivých dB systémech se plně srovnají, příp. jsou úplně zanedbatelné, když je použije nějaký "neznalý" programátor.

Ani sebelepší objektová databáze nepomůže, když přijde např. vývojář v Javě, který ani netuší, co je to databáze, udělá "aplikaci", kdy celé tabulky se načítají ze serveru do klientské aplikace a teprve tam se filtrují záznamy, kdy všechny výpočty se provádějí na klientské stanici a pak se hromadně updatuje (zamčená) tabulka v databázi ;-)

Stále ale platí, že data v databázi jsou základ každého systému, ať je to databáze, jaká chce, ať je klientská aplikace napsaná v čemkoliv.


Data jsou v databázi, co GUI nebo front-end rozhraní?

Myslím, že proti datům v nějaké databázi nikdo neprotestuje, může snad jen nastat diskuze o tom, jaká databáze se hodí na jaký objem dat, což je ale také velmi sporné.

Jsou-li data v nějaké "normální" databázi, což není ani Access ani Excel, tak je další základní nutností veškeré zpracování dat definovat na serveru. Takže dobrý vývojář využije všechny možnosti dB serveru a snaží se maximum manipulace s daty přesunout na server. Každá databáze dnes nabízí plno možností, ať to jsou Views, Stored procedures, Triggers, které se spouštějí automaticky před/po aktualizaci záznamů, příp. replikace dat, automatické zálohování nebo provádění naplánovaných úloh.

Co tedy zbývá? Jen to zanedbatelné GUI, tj. front-end rozhraní pro uživatele, které nyní může být již naprosto v čemkoliv, v jakémkoliv programovacím jazyce, vygenerované v libovolném GUI generátoru a upravené přesně dle potřeb zákazníka, neboť neslouží k ničemu jinému jak k zobrazování dat.

Je libo plnohodnotný desktop klient pro Windows, MAC, Unix? Web aplikace? Mobilní klient? Nebo raději všechno dohromady pro přístup k datům bez omezení?

Asi je každému jasné, že když je veškeré ověřování a zpracování dat prováděno na serveru, tak každý GUI "klient" je jen pouhý "ksicht", který ošetřuje vstupní chyby a se kterým si může hrát skoro kdokoliv. Sekretářka v účtárně, ředitel firmy, či student na praxi, můžou každý využívat své oblíbené nástroje, ať to je nějaký Report Writer, Business Intelligence klient, Excel nebo nějaká nová sofistikovaná aplikace pro mobilní telefon tvořená ve volném čase nějakým technologickým nadšencem.

Když tedy děláte nějaký front-end třeba v Excelu, ale data máte v SQL databázi, tak se nemáte vůbec za co stydět, když uděláte dobré a kvalitní rozhraní. Viz úryvek z jednoho emailu:

"Já sám jsem 'excelista', ale přesně díky takovým paskvilům, které popisujete, se za to skoro stydím! Kdykoliv někde před ostatními řeknu, že dělám v Excelu, hned vycítím ty útrpné pohledy, jak si každý v duchu říká 'zase jeden pitomeček, co vydává bastlení v excelu za opravdové programování'. Přitom si dovoluji tvrdit, že mé aplikace mají s podobnými bastly pramálo společného. Veškerá data ukládám do MS SQL, jádro aplikací je v .NETu a Excel je jen vnější obálka..."

Jen bych se nenazýval Excel programátorem, ale spíše dB návrhářem a zvážil bych omezení, kterými takové řešení trpí. Je plno jiných RAD tools, které umí udělat mnohem kvalitnější GUI jak nějaký Excel.


Jak integrovat Excel, Word, či jiné "nadstavby"?

Každé technologické řešení v dnešní době by mělo být maximálné otevřené pro případné rozšiřování, ať už za účasti původních dodavatelů, příp. třetích firem. Minimálně musí umožňovat import - export dat, či napojení na nejrozšířenější využívané aplikace. Standardem by tedy mělo být nějaké napojení na Excel, kde je možno provádět dodatečnou analýzu vybraných dat (to má každý manager rád). Výstup sestav do Wordu nebo i do jiných formátů (.PDF) by měl být také standardem.

Existence takových "podpůrných nástrojů" by ale neměla být základní podmínkou pro provoz jakéhokoliv informačního systému. Hrozí totiž přílišná závislost na cizích technologiích s následnými problémy, jež jsou způsobené rozdílnými verzemi takových produktů a naprosto mimo kontrolu dodavatele.

Je jasné, že žádný IT systém na světě nesplňuje všechna očekávání koncových uživatelů. Všechny varianty potřeb zákazníka nejde nikdy postihnout ani v analýze ani v následujících požadavcích na nové verze. Proto je dobré na tu otevřenost myslet již v analýze a dát uživatelům k dispozici i patřičné nástroje, které doplňují základní řešení (např. dobrý Report Writer).

Já se např. snažím do každé aplikace zabudovat sadu uživatelsky upravitelných Interactive Reports, které možnostmi nahrazují i překonávají Excel, přitom nevyžadují žádnou licenci na MS Office na každé klientské stanici:

Standard dB functions

Zde je v pravém menu vidět, že pro každou tabulku a každý pohled v databázi mohou být dostupné všechny standardní dB funkce, např. výběr / zrušení zobrazovaných sloupců, filtrování a třídění dle čehokoliv, nastavení součtů dle skupin libovolné úrovně, barevné zvýraznění sloupců, doplnění počítaných hodnot, zobrazení flash grafů, či výstupů v .CSV, .XLS, .PDF, .RTF pro další zpracování.

To vše bez nějakého programování :-)

Viz také - "Informační systémy" v Excelu bych zakázal

4 comments :

deep řekl(a)...

To "bez programovani" je trosku aj sarkazmus, pretoze pouzivat take nastroje a takymto sposobom dokaze len clovek co uz toho naprogramoval velmi vela. Chce to aj analyticke myslenie a vela skusenosti s navrhom aplikacii.

excelista řekl(a)...

Omezení Excelu jsem si vědom, ale za ty roky, co se s ním zabývám, jsem si ho přizpůsobil obrazu svému a nerad bych ho opouštěl, byť mi momentálně Microsoft verzí 2007 trochu zavařil.
S komerčními RAD nástroji zkušenosti nemám, testoval jsem jen různé sady component (datagridy, toolbary, reporty) a ve srovnání s nimi je Excel vcelku konkurenceschopný.
Navíc můj framework Pragmatik je hlavně o tom, jak udělat GUI zcela bez programování, takže je to svým způsobem také RAD tool.

Cayman řekl(a)...

2excelista: Vždyť jo, to chválím a mnohem více si cením borce, co umí programovat Excel na vyšší úrovni, jak nějakého amatéra, který se naučil "klikat" aplikace v nějakém vyšším RAD nástroji.

Kdo umí napojit Excel na SQL dB a k tomu udělat pěkné GUI, tak si myslím, že práce bude mít po celém světě ještě pěkně dlouho, neboť Excel je skoro všude a v každé firmě.

Ať se daří!

Anonymní řekl(a)...

Problém s Excelem není - je problém v tom, že v Čechách (a na Slovenku) 95% uživatelů excelu jsou přesvědčeni, že ho zanjí dokonale a pak zjistíš, že nejenom že neznají pojem kontingenční tabulka, ale ani neumějí používat filtrovací pravidla.

A když jim předvedeš nějaké pokročilé vychytávky stažené z Dataspectra (http://www.dataspectrum.cz) mají pocit, že používáš černou magii - chce to mnohem více osvěty a pořádná školení. O tom jsi tady ale už někde psal.

Okomentovat