ABONAMENTE VIDEO REDACȚIA
RO
EN
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 133
Abonament PDF

Experts Panel: Java Software Architecture

Ovidiu Mățan
Fondator @ Today Software Magazine



INTERVIU

Ne-am bucurat de lansarea din luna iunie a revistei TSM pe acoperișul sediului celor de la msg systems Romania. Am discutat despre tehnologii și limbajul Java în special alături de invitații noștri:

Ovidiu Mățan: Farmecul panelului acestuia este că, spre deosebire de celelalte de până acum, nu am venit cu întrebările gata pregătite, ceea ce ne permite să fim mult mai spontani. Savurez acest moment de spontaneitate și pentru că în perioada asta, susțin un training de Java, ceea ce m-a obligat la mai multă rigurozitate. Tot cu ocazia acestui curs, am descoperit plăcerea de a vedea enumuri faine. În Java, enumurile erau, de obicei, chestiile acelea foarte plictisitoare în care ai valori și eventual un switch pe ele. Acum, în ultimele versiuni, enumul poate să implementeze interfețe, metode abstracte, dar și să-și creeze constructori etc.

Revenind la tema de astăzi, Denisa, spune-ne la ce proiecte lucrezi la MSG?

Denisa Lupu: Lucrez pe Insurence momentan și la un proiect de la Allianz. De asemenea, lucrez și la Career Start, ca mentoring, pe Java. Vă aștept, dacă urmează să fie studenți, la Career Start.

Paul Trestian: Lucrez la Accesa de vreo trei ani, pe proiecte din zona Financials. Proiectele la care am lucrat sunt în Big Data, zona de Cloud, GSP mai exact. În ultimul proiect care se termină mâine, Integrări cu provider de blockchain pentru bănci, are ca scop integrarea etherum ca blockchain, pentru început.

Ați făcut integrarea cu blockchainul sau cu un API?

Paul Trestian: Cu un API care e manageriat de un provider for super safe și o integrare spre alt provider. Integrările s-au făcut cu Java și comunicarea între aplicațiile interne prin messaging queues.

Legat de asta, unul dintre subiectele de la training era serializarea/deserializarea obiectelor Java și nu le găseam o utilitate practică. Oare se folosesc vreodată? Le-ați utilizat într-un proiect de producție? Eu nu le-am folosit, dar există și se cere, inclusiv, pentru certificare, cum să scrii și să citești un obiect Java.

Alex Popescu: Salut! Întâmplător, le-am folosit o dată în șaisprezece ani. Era un MQ de la IBM, care așa le trimitea el. Eu am lucrat foarte mult în banking și Insurance. Acum, de când am trecut pe automotive, totul e mai interesant, mai dinamic și mai axat spre Cloud. Am început un proiect nou, de două săptămâni, despre care nu pot spune foarte multe decât că este automatisation driving.

Folosiți microservicii în Java?

Alex Popescu: Da, câteodată.

Paul Trestian: Da, chiar pe proiectul acesta am folosit micro-microservicii. Specific, în acest caz, am făcut un fel de micro-microservicii, am făcut un parent spring boot wraper de care aveam nevoie, cu niște configurări. Fiecare operație de tranzacție sau de cerere de balance al unui wallet era într-un microserviciu separat.

Denisa, cum sunt la voi, serverele? Ai monolit, load balancer?

Denisa Lupu: Este mai layered, dar aș spune că folosim, mai mult, macroservicii. Am beneficiat de microservicii, dar ne descurcăm cu layerele noastre și chiar încercăm să implementăm ideea de evolutionary architecture, de a experimenta continuu și de a aduce, nu doar feature-uri noi, dar și de a crește calitatea proiectului.

În caz de failure, ce faceți? Restartați serviciile?

Denisa Lupu: Nu facem direct manage la realease-uri, e un pic mai complicat acolo, dar pentru partea de experimentare, este destul de verificată, încât să nu trebuiască să facem un failover.

Dacă ar trebui să menționezi un design pattern preferat, care ar fi acela?

Alex Popescu: Nu cred că am un design pattern preferat, fiindcă le aplici în funcție de nevoie și de context.

Paul Trestian: Dacă ar fi unul simplu, cu siguranță builder patternul, dar poate și pentru că l-am folosit, într-o perioadă, destul de mult.

Din postura de arhitect Java, când vine un proiect nou și te implici în el, care sunt primele cerințe la care te uiți și pe care le vrei definite cum trebuie?

Paul Trestian: Mie, de obicei, îmi place să pun câteva întrebări, de cele mai multe ori mă interesează utilizatorii, loadul, tipul de comunicare și merg destul de devreme în scenariile de error handling.

Din perspectiva codului, cum vezi partea de testare și integrare a codului?

Denisa Lupu: Recent am început să încerc să îi conving pe oamenii de pe proiect să schimbăm toată testarea cu Cucumber pentru că, fiind și automată, să fie business role-urile la vedere. Cred că tuturor de aici li se pare foarte importantă testarea.

Dacă ai avea de făcut, mâine, un release, care ar fi checkurile de validare urmărite?

Denisa Lupu: În ce privește partea de development, există mai multe layere de testare, mai multe fitness functions pentru că inclusiv un review poate fi un fitness function, dacă există un criteriu stabil și obiectiv pe baza căruia se face review-ul respectiv. Neavând o arhitectură în care backendul este 100% la noi, depindem și de alte componente cu care trebuie să ne integrăm.

Dacă mâine ai avea de făcut un proiect de streaming, la ce tehnologii te-ai uita?

Alex Popescu: Depinde, la cel de acum folosesc kafka și folosesc pentru parallel processing spark. De multe ori, nu alegi tehnologia deoarece, foarte rar, apuci să faci un proiect de la zero.

Folosiți A.I și dacă da, la ce?

Alex Popescu: Am avut o experiență interesantă, să construiesc o aplicație de la zero cu ChatGPT, să facă pentru mine tot, nu e perfect, dar e mult mai mult față de anul trecut. Știi la ce mi se pare foarte valoros, din ce am experimentat eu? La partea de learning. Spre exemplu, citesc un tutorial și, la un moment dat, am o întrebare și nu am pe cine întreba, atunci mă duc la el. Poți să dezvolți cu el și îți răspunde pertinent. Spre exemplu, în ceea ce privește codingul, este la nivelul unui junior, însă un junior care știe toate tehnologiile de pe lume.

Paul Trestian: Eu chiar îl folosesc și mi-a fost util. Am avut de modificat kubernetes deployments și de atașat un volum. Și cum nu știu kubernetes prea bine, pentru că sunt încă la început, am apelat la ChatGPT.

Alex Popescu: Sunt multe limbaje a căror sintaxă este dificil de stăpânit. Poate nu ai lucrat așa mult pe Devops și nu știi terraform. Dar cum nu este nici ceva așa de complicat, apelând la ChatGPT faci totul mai rapid.

E ca un fel de preview. Încă nu îți poate da o soluție completă, pe care să te poți baza și îți dă o soluție pe termen foarte scurt.

Denisa Lupu: Îl folosesc și eu atunci când am de învățat ceva nou, așa cum zicea Alex.

Revenind la tehnologii, dacă ar trebui să ne gândim la tehnologii noi, pe care să le avem în vizor?

Paul Trestian: Open AI API. Aș merge și pe soluțiile din Cloud, upgrade la Spring boot 3.

Denisa Lupu: Aș recomanda întotdeauna Spring, când se merge pe varianta cu Java, dar indiferent de tehnologie, trebuie să construim cumva un craftsmanship, pe baza căruia să utilizăm orice fel de tehnologie. Așa, skillurile vin și pleacă, uiți informațiile, reînveți, dar craftsmanshipul și modul în care sunt aplicate și construite proiectele pe baza acestui mod de a gândi și de a privi lucrurile, mi se par mai importante.

Alex Popescu: Eu am un story pe tema asta. Am lucrat la un proiect și l-am început un pic mai clasic, JSF. Iar clientul, din anumite motive, a zis să renunțăm la JSF și să folosim GWT, o chestie google web toolkit. Așa am aruncat șase luni de muncă la gunoi și am început să rescriem totul cu GWT, în același timeframe. A fost destul de enervant pentru developeri, iar proiectul a rulat ani de zile. Acum nu știu dacă mai există GWT, deși la momentul respectiv toată lumea zicea că google web toolkit e cel mai tare.

Eu sunt convins că ceea ce vedem noi acum cu ChatGPT o să fie la fel și peste doi ani nu o să mai vorbim de el. Nu zic că nu o să existe ideea de AI și nu o să folosim algoritmi dar așa cum e prezentat acum, cred că este multă reclamă și o să se întâmple ce a fost cu automotive.

Paul Trestian: Cred că și în zona de AI, acum, încep să apară din ce în ce mai multe soluții peste GPT, cu specific juridic sau e-commerce.

LANSAREA NUMĂRULUI 149

Marți, 26 Octombrie, ora 18:00

sediul Cognizant

Facebook Meetup StreamEvent YouTube

NUMĂRUL 147 - Automotive

Sponsori

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