vineri, august 12, 2005

Ce am facut - ce as vrea sa fac???

Folosind Struts am inteles foarte bine cum comunica browserul cu serverul si aspecte de nivel jos referitoare la aplicatitiile Web (validare, internationalizare, agregare de tile-uri, paradigma cerere-raspuns, stratificarea aplicatiilor). Sincer nu am facut niciodata o aplicatie completa bazata numai pe servleturi si JSP-uri si aproape ca nu imi pare rau. As fi ramas la un nivel prea primitiv de abstactizare (ar fi fost comic sa fac aplicatii care fac interogari SQL din servleturi). Folosind framework-uri m-am ridicat deodata la un nivel mult mai inalt de abstractizare care implica in mod automat si o arhitectura pentru aplcicatii. Nu cat ar trebui.

In procesul de dezvoltare al aplicatiilor WEb, cele mai mari probleme le-am avut la nivelului de prezentare. Tot ce tine de domeniul problemei si de baza de date au fost lucruri usoare. Majoritatea timpului am pierdut-o in juurul fluxului de control pe partea de client (chiar daca in principiu e vorba de JSP-uri din care se genereaza HTML pe partea de server). De aceea un pas pozitiv ar fi gasirea unor plug-in-uri Eclipse pentru partea de prezentare. Am sa incerc MyEclipse in acest sens (se poate testa o luna). Sau o sa trec mai departe la un framework bazat pe componente care sa permita RAD.

Librariile de taguri mi-au oferit cea mai mare putere de reutilizare. Tag-uri pentru vizualizarea tabelelor, meniuri, librariile de taguri standard, Struts, pentru chart-uri si altele, facute de altii si adaptate mi s-au parut cel mai bun lucru posibil. De aceea tind sa cred ca un model bazat pe componete reutilizabile are un viitor sigur; in acest sens a se vesea Tapestry si JSF. Deseori am facut refactoring in JSP-uri pentru a folosi tag-uri in loc de cod Java embeded. Un sistem de componente se potriveste de minune cu ideea unui nivel de abstractizare mai ridicat.


Suportul pe care comunitatile Open Source il ofera dezvoltatorilor este de asemenea ceva nemaintalnit. Sunt profund impresionat si cred in open source. Prin multitudinea de pasionati, cred ca in momentul acesta se depaseste suportul pe care poate o firma sa-l ofere pentru un produs pe care il vand. Suportul consta in forum-uri cu diverse teme, bug-tracking, liste de discutii, arhive ale listelor de discutii, documentatii, demo-uri, sand-box-uri, blog-uri, etc. Si sunt foarte, foarte multi oameni de calitate in opens ource, care impartasesc fara nici o restrictie ideile.

Ce m-ar interesa ar fi folosirea in productie a unor tehnologii de viitor. AJAX pare o alternativa convenabila pentru aplicatiile Web de intranet. AOP o solutie buna pentru tot felul de artificii peste POO. Framework-uri diverse adaptate unor nevoi concrete, iarasi par a fi un subiect de discutie. Test driven developement, pentru a accelera procesul de dezvoltare - ma chinui de un an sa bag acest principiu bun in viata mea. Ce m-ar interesa ar fi sa merg mai departe in problemele de arhitectura si design pattern, pentru a-mi solidifica cunostintele. Impresia mea este ca, tinand cont de experienta acumulata, intr-un momemt de liniste pot sa imi solidific cunostintele si sa le structurez mai bine. A exprima pe un blog, a le explica altora sau a scrie o carte reprezinta tot atatea metode de a merge mai departe.

Ce ma supara si am mira la oamenii din domeni: ignoranta (care vine din mandrie). Nu o sa stau mult pe langa astfel de oameni. Altceva ar fi neprofesionalismul si lipsa de rigurozitate tipic romaneasca. In rest numai de bine...