Cayman Islander | Diary of a Freelance Programmer traveling the world

Cayman Islander's blog - Diary of Freelance Programmer

RAD Tools pomáhají rychle vytvářet Web aplikace aneb jak na kvalitní Web development?

Follow your dreamsZavedl jsem novou RAD Tools kategorii zde na blogu, kde se budu průběžně snažit upozorňovat na různé zajímavé nástroje z oblasti Rapid Application Development (RAD), které by mohly někomu pomoci.

Neustále se totiž podivuji, v čem někteří odborníci tvoří Web stránky, jak píšou ručně veškerý ten HTML / XHTML / DHTML, PHP, ASP, NET, Java, JS nebo CSS kód, který by mohl nějaký nástroj bezchybně a rychle vygenerovat.

Divím se, v čem i zkušení vývojáři programují Desktop aplikace, jak z "neznalosti" používají zastaralé nástroje, tvoří aplikace v Excelu, či nemají ani tušení, co všechno za technologie se nabízí v oblasti tvorby aplikací. S podivem také sleduji, jak se plno lidí nechá "oslnit" všemi těmi nástroji a tooly na tvorbu aplikací zdarma, že skočí na každý open-source nástroj, neboť si myslí, že když je něco zdarma, tak že nějak ušetří.

Mnohokrát jsem si totiž ověřil, že je to právě naopak. Většinou všechny ty open-source tooly na první vyzkoušení fungují, ale ty následné úpravy, customizace a opravy, snad ani nejsou možné, když něco vyprodukuje nějaký amatér, který ani netuší, jak má vypadat kvalitní aplikace pro desktop, či kvalitní Web aplikace.

Málokdo si také uvědomuje, že prvotní návrh jakéhokoliv IT řešení tvoří jen zlomek celkových nákladů, neboť zákazníci až časem zjišťují, že potřebují něco upravit, změnit, příp. že by rádi dělali nějaké změny sami. Světe div se, jejich Web stránky tohle neumožňují, původní dodavatel už nějak není schopen rychle řešit požadavky na rozšíření, ceny najednou nějak stouply, nic není tak jednoduché a rychlé, jak dodavatel sliboval.

Kolikrát jsem si také ověřil, že základem VŠEHO je servis, úpravy na míru, rychlé rozšiřování prvního prototypu dle reálných potřeb, umožnění vlastních sestav a výstupů bez omezení, vlastních úprav obsahu i designu všech stránek, otevřené API,...

Většinou na to ale naivní zákazník přijde až po čase, kdy se už nechal napálit, zaplatil tučnou sumu za "polotovar" a za nedodělanou aplikaci, no a pak se diví, že najednou není všechno tak levné, jak zpočátku vypadalo a jak bylo líčeno v růžových barvách dodavatelem.


Proč je dobré (nutné) využívat RAD tools?

Nejprve je potřeba zdůraznit, že žádný vyspělý vývojový nástroj nepomůže amatérům, kteří nemají znalosti, zkušenosti, či nadání. (Žádný drahý fotoaparát nezajistí nikomu kvalitní fotky, sebedražší telefon nezlepší komunikaci, když dotyčný neumí mluvit.)

Je jasné, že je potřeba mít dobré základy tvorby aplikací, je nutné umět psát kód ručně v textovém editoru, je nutné vědět, co to jsou databáze. Potom můžou RAD tools pomoci zvýšit výkon a produktivitu, eliminovat manuální práci a umožní větší soustředění se na business logic a na tvorbu user-friendly Web nebo Desktop aplikace.

Dobré RAD tools dokážou nejen rychle navrhnout funkční prototyp pro zákazníka, umožní také rychlé úpravy na míru, rychlé změny struktury databáze i aplikace, umožňují spolupráci více vývojářů na tvorbě, dokážou zapojit koncového uživatele (zákazníka) do procesu analýzy i vývoje a dávají mu do rukou veškeré nástroje na vlastní úpravu grafického i textového obsahu.

Je mnoho RAD nástrojů na světě, které tohle umí, takže pro začátek zmínka o jednom nástroji, který by se mohl někomu líbit, neboť umí generovat velmi rychle sofistikované databázové aplikace pomocí vizuálních nástrojů.


Iron Speed Designer:

IronSpeed RAD Tool for Web Applications

"Iron Speed Designer generates database-driven Web 2.0 applications for .NET straight from your database. Quickly create visually stunning, feature-rich applications with database access and security. Iron Speed Designer accelerates development by eliminating routine infrastructure programming, giving you easy to customize and ready to deploy Web applications in minutes."


Iron Speed Designer je dodáván ve třech verzích:

1. Free Edition (unlimited use)
  - Generates single-database applications up to 30 pages and 15 tables

2. Professional Edition (from $795)
  - Generates single-database applications of unlimited size

3. Enterprise Edition (from $1,995)
  - Generates multi-database applications of unlimited size


Kdo chce, tak může vyzkoušet základní Sample Applications, příp. mrknout na nějaké case studies v sekci Iron Speed Customers, jejichž výčet snad hovoří za vše.

Na závěr jen poznámka, že se nejedná o nějaký nový produkt, který by měl trpět nějakými neduhy, které jsou typické pro všechny nové produkty, kdy je rozumné počkat alespoň na verzi 1.1, příp. na první (druhý) service pack. První recenze a product reviews na Iron Speed Designer se objevily již už v roce 2002.

A zde ještě krátké video, jak jde jednoduše např. synchronizovat Web aplikaci po změně struktury tabulky v databázi:

- Synchronizing an app after modifying database schema




Viz také - Ideální CASE Tool pro software architekty

7 comments :

Anonymní řekl(a)...

No moc nesdílím tvé nadšený Caymane. Asi hodně záleží co právě tvořím za typ aplikace. Ale nějak si neumím představit RAD nástroje na projektu, který nemá úplně ASP.NET štábní kulturu.

Jako příklad můžu uvést to, že vyhodíš WebForms a nahradíš to nějakým enginem vhodnějším pro kešování. V tu chvíli už s RAD moc nepořídíš. Nebo máš aplikaci z jakéhokoli důvod rozvrstvenou tak, že RAD nemůže přímo projit UI prvky s databází apod.

No prostě nemyslím si, že pro projekty kde hraješ např. na dnes hodně zprofanované slovo škálovatelnost, výkonnost, či jen integruješ nějaká řešení jsou RAD ideální.

David Filip řekl(a)...

Na CRUD aplikace jsou tyto nastroje vyborne. Napriklad Ruby On Rails umoznuji neco podobneho. Jednoduse si vyberete tabulku, nechate si vygenerovat vsechny ty skripty okolo a pak uz jen jednoduse doupravite co potrebujete.

Pokud vsak clovek dela uz nejake i jen trochu slozitejsi veci, tak jsou tyhle generatory uz vetsinou k nicemu.

Cayman řekl(a)...

Velmi záleží na typu a druhu aplikace, a hlavně na kvalitě RAD nástrojů. Vůbec neříkám, že každý se hodí na všechno. Už vůbec bych netvrdil, že výše zmiňovaný tool je nejlepší. (Plánuji jich zmínit více, neboť jich používám asi deset, kdy každý se hodí na něco jiného.)

Co si stále dokola ověřuji, kudy chodím a s kým se na toto téma začnu bavit, tak existuje neuvěřitelné pomýlení a neznalost RAD nástrojů, které jsou vesměs mylně posuzovány jen jako generátory kódu, který je pak nutno upravovat.

TAK to ale vůbec nefunguje ;-)

Opravdu dobré RAD Tools umí obousměrnou synchronizaci (Project --> Code --> Database), ale i naopak (Database --> Code --> Project), dokážou návrh obecného projektu, který je možno kdykoliv doplňovat a rozšiřovat o speciální úpravy "na míru" i za ostrého provozu.

Ty dobré umí např. plnou synchronizaci se starým produkčním kódem, včetně konverze dat, když je potřeba, je možné volit libovolné výstupní platformy (ASP, PHP, Java, C++, NET,...), včetně libovolné volby databáze (Access, MySQL, SQL Server, Oracle, DB2, PostgreSQL, Sybase,...), ty nejlepší zvládají i generování plně customizovatelných vícevrstvých aplikací s rozložením na dB vrstvu, aplikační server a koncové GUI.

Neexistují méně nebo více složité věci, existují jen dobré nebo špatné RAD tools ;-)

Cayman řekl(a)...

Příklad pro zajímavost: Jeden zákazník z US kdysi požadoval Web aplikaci a bez ohledu na naše doporučení, že to nebude odpovídat jejich firemnímu stadardu, vyžadoval pro tento projekt MySQL dB a PHP aplikaci. Po asi měsíčním vývoji dostal a zaplatil, co chtěl.

Asi po roce se ozval, že by chtěl spojit několik rozdílných systémů, tj. data z té MySQL dB chtěl nahrát do celofiremní Oracle dB a nového klienta chtěl v Javě, místo původního PHP kódu, aby to odpovídalo company policy.

Postup = 2x checkbox:

1. Code generation: Java (místo PHP)
2. Data Script creation / update: Oracle (místo MySQL)

Výstupem byla nová GUI aplikace v Javě, kdy kód z obecného projektu, včetně validací a customizací se vygeneroval automaticky. Současně se vygeneroval scripty na export dat z MySQL a na import do Oracle do vlastního schématu, včetně transformace dat.

Časová náročnost: 1. den backup produkce a příprava testovacího prostředí, 2. den spuštění migrace, otestování, odsouhlasení, nasazení do produkce. Zákazník kromě těch směšných 2 dnů zaplatil (rád) letenky a ubytování pro 2 specialisty, kteří si chtěli udělat výlet do US, jinak by tu migraci šlo udělat i remotely.

Jak by se to dělalo bez dobrých RAD tools ani nedokážu odhadnout ;-)

dafodil řekl(a)...

Ja musim rici, ze me potesila myslenka vytvorit zde na blogu novou kategorii o RAD nastrojich. RAD se dozvim o toolech, ktere neznam a hodily by se... diky

Anonymní řekl(a)...

Neposuzuji RAD "jen jako generátory kódu, které je nutné následně upravovat". Posuzuji je jako generátory kódu. Kdysi jsem si ověřil jednu starou pravdu, kterou je, že nejlepší kód je kód generovaný :-) Od té doby se snažím kde to dává smysl mít generovaný kód, protože to nejenže zrychluje práci, ale hlavně to snižuje riziko chyb.

Každopádně si stojí za svým prvním příspěvkem 19. srpen 2008 2:56.

Generátory kódu ano, RAD tak jak je vnímáš ty ne, k tomu jsem ještě nedospěl :-)

Cayman řekl(a)...

Plně souhlasím, že i kdyby RAD nástroje byly "jen" generátory, tak to zrychluje práci a snižuje riziko chyb.

"Posuzuji je jako generátory kódu..." - v tomhle se ale naše pohledy liší :-)

RAD Tools nejsou jen "generátory kódu", neboť kromě funkce "Generate Code", umí i spoustu dalších věcí, které z nich právě dělají ty Rapid App Development tools.

Jen namátkou (je teď jedno, jak se dané fce nazývají v různých RAD), ale většina obsahuje např.:

- Application wizard
- Window / Browse / Form wizards
- Report wizard / Report writer
- Debugger
- Compilation / Code Generation
- Install / Setup Maker
- Licence Maker
- Database manager
...

Ten "generátor kódu" je opravdu jen jedna z funkcí RAD nástrojů a je škoda je degradovat. Vrátím se k tomu ale na konkrétních příkladech v extra článcích.

Okomentovat