De prea multe ori mi-am pus intrebarea ce ar trebui facut. Numai ca niciodata nu mi-a trecut prin minte sa ma intreb de ce sa aleg o anumita tehnologie sau de ce sa aleg o anumita modalitate de programare.
Insa, in ultima vreme, 2 au fost lucrurile care m-au determinat sa privesc intr-un mod diferit lucrurile.
1. Multumita unei invitatii la un interviu de anagajare am avut placerea de a discuta cu 2 persoane cu o experienta mult mai mare in aceasta zona; si mi-au dat de inteles ca azi dar si in viitor nu trebuie sa ne mai punem problema de CUM sa facem lucrurile ci DE CE (mai departe sunt lucrurile pentru care sa ne punem aceasta intrebare: tehnologie, framework-URI, etc)
2. Un citat: codul pe care il scrii te face programator; codul pe care il stergi te face un programator bun; dar codul pe care nu trebuie sa-l scrii te face un programator grozav; deci unde va situati.
Eu va spun sincer ca eram in categoria a doua. Am ajuns la partea de curatare si optimizare codului.
De curand am primit un nou proiect in care trebuie schimbata un pic optica prin care priveam eu lucrurile. Avand in vedere ultimele tehnologii de la Microsoft, se poate acum face o aplicatie .NET si pune ca si Hosting pe un server Linux sau chiar pe Docker. Care ar fi optiunea pe care ati merge: server Linux sau container docker?
In momentul de fata sunt adeptul utilizarii framework-urilor care pot spune ca usureaza in mod evident munca unui programator. Pentru .NET framework as putea spune ca sunt 3 mari framework-uri:
- Linq
- NHibernate
- Entity Framework
Pe care l-ati utilizat, cat de mult si pe care l-ati recomanda?
Le luam pe rand.
Linq l-am utilizat intr-un proiect corporate pentru un WCF cu baza de date SQL. Avand in vedere faptul ca baza de date nu se putea atinge pentru a face anumite configurari sau modificari asupra tabelelor sau view-urilor s-a ales, ca si framework, Linq-ul.
NHibernate l-am folosit intr-un proiect la care, impreuna cu echipa mea, am stabilit totul. Practic, cel mai convingator argument a fost volumul foarte mare de date pe care aplicatia trebuie sa le proceseze in cel mai scurt timp posibil.
Aici am incercat si testat cele doua modalitati de mapping: by XML sau by code. Se pare ca mai eficienta ar fi maparea direct in cod, deoarece este direct integrat in DLL-ul aplicatiei.
In ceea ce priveste Entity Framework, sunt in curs de invatare. Dar deja pare a fi o alegere potrivita pentru orice tip de proiect.
Trendul vizibil in programare este acela in care nu trebuie sa mai scriem tot codul, ci sa ne folosim de tool-uri care sa faca acest lucru pentru noi.