Soluţii software eficiente în Java (J2SE/J2EE)

Diese Webseite auf Deutsch
See this web site in English

Competenţe

Găsiţi aici o enumerare pe scurt a tehnologiilor şi instrumentelor de dezvoltare de software cu care am lucrat de-a lungul carierei mele.
Descărcaţi lista detaliată (deocamdată doar în limba germană) în format Word aici şi în format PDF aici.

Limbaje şi medii de programare
Servere de aplicaţii JEE/J2EE
Tehnologii de programare
Biblioteci de programe
Baze de date
Sisteme de operare
Programe utilitare (Tools) şi alte programe

Principii

În cadrul activităţii mele în domeniul IT mi-am format o serie de principii după care mă orientez zi de zi. Pentru ca ele să se cristalizeze a fost nevoie de un drum lung şi anevoios, cu urcuşuri şi coborâşuri, cu decizii corecte şi cu decizii greşite (ale mele sau ale colegilor mei). În esenţă am ajuns la aceste principii sintetizând experienţele pozitive şi pe cele negative ale activităţii mele precedente.

Cele mai importante dintre aceste principii sunt: eficienţa şi simplitatea.

Eficienţa

Informatica are ca principal scop eficientizarea activităţii de management al informaţiei. Având în vedere acest lucru, ne-am aştepta ca activitatea informaticienilor să fie una dintre cele mai eficiente posibil. Cu atât mai mult ne surprinde faptul că în dezvoltarea de software se lucrează de multe ori mult mai puţin eficient decât în multe alte domenii. Mulţi dezvoltatori de software editează fişiere de script cu Notepad, compară conţinutul a două directoare manual ş.a.m.d. Aceştia par să uite că pentru a dezvolta programe eficiente, trebuie în primul rând ca dezvoltatorul să lucreze eficient. Numai în acest fel va putea să ţină sub control imensa cantitate de muncă pe care o presupune realizarea unui software de calitate.

Pornind de la acest principiu încerc în permanenţă să găsesc şi să utilizez uneltele software cele mai eficiente pentru fiecare activitate în munca mea de zi cu zi. Sunt conştient că nu există o unealtă (tool) software universală, ci doar unelte software bune pentru activităţi (task-uri) individuale: "Best tool for the job".

Simplitatea

Motto: Less is more

În munca la un proiect este întotdeauna mai bine să folosim produse/instrumente/tehnologii software pe care le înţelegem. A înţelege un produs/instrument/tehnologie este cu atât mai greu cu cât acesta este mai complex(ă).

Cunoaştem aceste "evidenţe" din (propria) experienţă şi ele nu sunt valabile doar în domeniul software. Totuşi există încă mulţi dezvoltatori de software care continuă să le ignore. Rezultatul: se dezvoltă produse software de o complexitate inutil de mare, fără a se ţine cont de implicaţiile acestui lucru asupra dezvoltării produsului în viitor: costuri mari de întreţinere, efort ridicat necesar pentru înţelegere, predispoziţie la erori şi dificultatea depistării acestora, dificultatea refactoring-ului şi a implementării de Change Requests, ca să enumerăm doar o mică parte. Aceasta în condiţiile în care acelaşi produs poate fi obţinut cu o complexitate substanţial mai redusă.

De aceea încerc în permanenţă să păstrez complexitatea programelor la care lucrez la un nivel cât mai redus, prin următoarele metode:


Limbaje şi medii de programare


Servere de aplicaţii JEE/J2EE


Tehnologii de programare


Biblioteci de programe


Baze de date


Sisteme de operare


Programe utilitare (Tools) şi alte programe