ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 138
Abonament PDF

Experts panel: Software Performance

Ovidiu Mățan
Fondator @ Today Software Magazine



INTERVIU


Modul în care scriem software, cultura noastră, provocările și bineînțeles optimizarea acestuia au fost principalele subiecte dezbătute la Expert Panelul de luna trecută. Alături de noi au fost:

Ovidiu Mățan: Vă invit să vă realizați o scurtă introducere personală

Radu Moldovan: Lucrez de aproximativ douăzeci de ani în domeniu. Am intrat în Software Development de pe poziția de Quality Engineer. Am terminat profil tehnologic, dar nu neapărat orientat înspre domeniul development. După un an de QA, am început să cochetez cu partea de development. Am avut ghizi destul de buni care să îmi stârnească interesul.

Crezi că vom lucra până murim sau ne vom opri la un moment dat?

Radu Moldovan: Depinde foarte mult de nivelul de stres la care ești supus. Am observat că lumea se așteaptă să fii din ce în ce mai distribuit, pe măsură ce înaintezi în vârstă și experiență. De fapt, vârsta aduce câteva minusuri - puterea de concentrare mai scăzută, zgomotul ambiental care nu te lasă să te concentrezi. De exemplu, în ceea ce mă privește, am constatat că o dată cu trecerea timpului, eu am nevoie de mai multă liniște în jur ca să mă pot concentra mai mult.

Adelina, ești printre puținele fete care prezintă Java și care scrie articole.

Adelina Burnete: Mereu se spune că sunt mai puține fete în acest domeniu, dar eu nu am avut experiența aceasta. Am terminat mate-info, am făcut licența și masteratul la Politehnică. Mereu am fost 50-50 ca proporție. Lucrez de 8-9 ani în domeniu, iar în BoatyardX sunt angajată din prima zi de când a apărut în Cluj, adică de vreo cinci ani.

Darius Haș: Eu am terminat facultatea anul trecut. Sunt la masterat le Politehnică. Lucrez full-time undeva din anul 3 sau 4 de facultate. Din punctul meu de vedere, contează ce știi, nu ce diplomă ai. Lucrez pe backend, Java + Spring. Am lucrat și pe proiecte Big Data, Scala, Spark, Google Cloud. Am mai făcut și un internship unde am cochetat cu Blockchain.

Când lucram la o anumită firmă, în Java, era o nebunie cu fine tuningul serverelor. Paradigma s-a schimbat. Avem POD-uri și restartăm calculatoare când e nevoie. Mai bine punem cinci instanțe decât să analizăm codul ca să vedem unde sunt problemele de performanță.

Radu Moldovan: Fine tuningul s-a mutat în ecosistemul unde va lucra JVM-ul. Momentan, nu are sens să pui limite în calea unui JVM, deoarece nu știi unde vei rula. Are mai mult sens să faci reglaje acolo unde vei avea toată aplicația. Dai resurse Dockerului. Aplicația trebuie să fie capabilă să ocupe tot ce are la dispoziție, dar cine dictează limitele nu este aplicația în sine, ci containerul în care tu alegi să rulezi o aplicație.

Când scrii cod, cât de mult te gândești la performanță?

Radu Moldovan: Prima preocupare, mai ales în outsourcing este să-l faci să meargă. Uneori, poți face optimizări premature care, în timp, să se întoarcă împotriva ta. Clientul nu este dispus să stea după tine o lună de zile, deoarece tu ai făcut codul optim posibil care, la un moment dat, nu mai este aplicabil.

Adelina Burnete: Aș mai adăuga că nu scriem doar cod peste cod peste cod, ci ținem cont și de anumite procese.

Radu Moldovan: Într-adevăr, unele procese devin instinctive cu vârsta. Decurg de la sine și le faci fără să te gândești. Nu concatenezi stringuri într-un anume fel, deoarece știi că ai fost urecheat ca junior. Toate decurg din a-ți murdări mâinile cât mai mult posibil.

Ca să mă asigur că ceva merge, de multe ori îmi fac un prototip rapid. Voi mai faceți așa ceva?

Adelina Burnete: Dacă timpul îmi permite, abordez și varianta aceasta, deoarece este mult mai ușor să integrezi o funcționalitate despre care ai deja habar. Evident, lucrez doar la nivel local.

Folosești tooluri AI, precum Copilot? Cât de mult te ajută?

Adelina Burnete: Da, am folosit Code Whisperer de la AWS care te ajută cu codul și cu infrastructura. Practic, am folosit acest Code Whisperer ca să îmi ridic toată infrastructura, ca să fac deployment, dar eu mi-am scris codul. Folosind acest AI, am reușit să fac totul într-un timp foarte scurt. Da, este adevărat că un AI îți va genera și cod, dar trebuie să poți verifica ce s-a generat acolo. Aș alege StackOverflow în locul codului generat de AI.

Darius, voi, cei din generațiile noi, ați sărit niște etape. E un lucru bun, deoarece sunteți mult mai practici, dar, pe de altă parte, cât de în profunzime înțelegeți lucrurile pe care le faceți?

Darius Haș: Încerc să nu iau lucrurile ca atare și să le folosesc de-a gata. Eu mereu încerc să înțeleg lucrurile în profunzime, deoarece, altfel, nu investesc în viitorul meu. Mă joc cu multe tehnologii. Nu am programat niciodată în domeniul mobile, dar am început să învăț Flutter. Îmi doresc să fac niște aplicații native de mobile. Partea de AI este total nouă pentru mine și încerc să asimilez cât mai mult. Câtă libertate ai în Flutter?

Darius Haș: Soluțiile native, așa cum este și Flutter, îți dau un boost ca să începi, dar pe termen lung este mai util să folosești o platformă integrată cum este Swift de la AWS.

Ne limitează frameworkurile pe care le folosim?

Radu Moldovan: Este o provocare să alegi frameworkul potrivit. Sunt proiecte care au eșuat după un an de folosit un framework. Proiectul a trebuit transformat, iar transformarea a fost una anevoioasă. Cel mai bun indicator când alegi un framework este cât de mare și coezivă este comunitatea, cât de mult feedback găsești la o simplă căutare. Uneori, sunt atât de multe disensiuni în rândul oamenilor care trebuie să decidă cum va evolua un framework, încât se produce o bifurcație, iar din noile opțiuni timpul și comunitatea arată ce va supraviețui.

În școală, am învățat foarte multe despre algoritmi și metode. Folosești așa ceva în activitatea de zi cu zi?

Radu Moldovan: Foarte puțin. Am avut de câteva ori ocazia să mă lovesc de probleme matematice, după zece ani în care nu mai întâlnisem o astfel de problemă. A fost o provocare care mi-a dat satisfacție în cele din urmă. Trebuia să validez o bază de date de tip navigator cu foarte multe constrângeri. Trebuia să fac un graph pe Europa cu mai multe porțiuni de drumuri care nu erau legate la mai mult de 2-3-5 sectoare. Nu era algoritmică dusă la extrem, dar erau constrângeri care dictau ce fel de hardware să folosești.

Adelina Burnete: Proiectele la care am lucrat nu au avut nevoie de probleme matematice sau algoritmi, dar mi-ar plăcea să mă lovesc de o astfel de situație, deoarece ar fi ceva diferit față de ceea ce facem toată ziua.

Ce cărți de programare citiți și de ce?

Adelina Burnete: Îmi place să citesc cărți de specialitate ori de câte ori permite timpul. Recent, mi-am comandat de pe Amazon cele de clean code, de bune practici în Java, iar acum mă atrage foarte mult partea de AWS.

Faceți code review și ce tipuri de probleme găsiți?

Adelina Burnete: Da, găsim probleme și totul depinde de cât de mare este acel review și cât timp îți aloci. Depinde, de asemenea, de colegul cu care lucrez. Am avut recent o situație în care clientul a dorit să își aducă developerii săi, dar erau foarte multe traininguri de făcut cu ei. Mai mult ne-au încurcat și nu puteam avea încredere că acel cod va fi dus în producție fără să fie verificat.

Darius Haș: Nu am avut de-a face cu foarte multă algoritmică, dar mi-aș dori, deoarece acolo e frumusețea. Citesc multe cărți tehnice. Ultima carte pe care am citit-o și care m-a inspirat să scriu articolul este Reactive Programming in Spring. Am mai citit o carte suport pentru certificarea Java. Am avut nevoie să o citesc deoarece nu e ușoară certificarea. Eu nu sunt o persoană atentă la detalii și cumva certificarea aici încearcă să te prindă.

Cum vezi viitorul programării?

Radu Moldovan: Aș vrea să spun că văd stabilitate, dar, în momentul de față, lumea e foarte orientată înspre fast forward. Hai să mai scoatem încă o variantă de React. Va fi din ce în ce mai greu să alegi direcția bună a unui proiect. Vom avea din ce în ce mai multe frameworkuri din care să alegem fără a fi siguri că este cea mai bună soluție. Estimez că peste vreo cinci ani, această provocare va fi una reală.

Adelina Burnete: Cred că ne vom folosi din ce în ce mai mult de AI-ul care va deveni din ce în ce mai avansat.

Darius Haș: Sper să mă prindă pensia tot pe aici. Toolurile de AI scot toată distracția din joc.

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects