ABONAMENTE VIDEO REDACȚIA
RO
EN
Numărul 159
NOU
Numărul 158
Numărul 157 Numărul 156 Numărul 155 Numărul 154 Numărul 153 Numărul 152 Numărul 151 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 159
Abonamente

Experts panel: Software optimization

Ovidiu Mățan
Fondator @ Today Software Magazine



INTERVIU

Cum putem să scriem un software mai bun și mai performant sau cum îl putem optimiza? Sunt câteva întrebări la care am încercat să răspundem în cadrul discuției de la panel. Alături de mine au fost:

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

Radu Lazin: Eu am început să programez în 1991, în clasa a 6-a. Am mers la UBB. Am lucrat și acolo în cercetare, în domeniul Informatică. Apoi, am lucrat la Montran, la 8&8, iar acum lucrez la BoatyardX.

Alexandru Hadar: Am terminat Matematică-Informatică, la UBB, în 2018. Apoi, am făcut un internship și m-am angajat în IT. Acum lucrez la P3. Am lucrat pe Mobile, iar acum lucrez în proiecte Automotive. Lucrez la sistemele de operare Android pentru mașini.

Girigan Mircea: Eu am terminat Automatică și Calculatoare. Nu am început să programez atât de devreme. Am lucrat la Garmin, iar acum lucrez de cinci ani la BoatyardX.

Care este ultimul proiect la care ați lucrat?

Girigan Mircea: Proiectul a pornit de la ideea că avem nevoie de un sistem prin care utilizatorii să își poată rezerva cât mai repede camera de hotel. Lucrez la o platformă de rezervări mai rapidă decât ceea ce există pe piață.

Radu Lazin: Legat de proiectul despre care vorbea Mircea, este important să înțelegem că acest cache stă ca un fel de Elastic Search în fața backendului. Comunicarea se face direct prin soluția noastră de cache, nu prin backend ca doar apoi să ajungă la cache. Din acest motiv, putem să deservim sute de utilizatori odată. Avem cache-ul din care oferim date, avem 100 de cereri, vedem că cererea crește, dar noi în spate tot mărim cache-ul, iar, pe măsură ce se mărește cache-ul, putem oferi date noi. Noi oferim continuu date. Avem tranzacționalitate full pe Redis, tot ce trebuie.

Girigan Mircea: Timpul de răspuns pentru API-ul folosit în producție este undeva la 150 de milisecunde.

Alexandru Hadar: Am tot respectul pentru ceea ce faceți. Dacă ceva se poate încărca mai repede este extraordinar. Dacă ceva mă supără în ziua de azi este faptul că totul durează mult mai mult. Avem procesoare din ce în ce mai bune, dar lucrurile se încarcă din ce în ce mai greu. Deschizi Postman. Din start îți ia 500 de mega de memorie, doar pentru că îl deschizi, deoarece el trebuie să randeze tot în spate. Dacă făceai așa ceva acum 10 ani, probabil că nimeni nu ți-ar fi cumpărat aplicația. Am omis optimizarea și am pus mai mult accent pe livrare.

Ține de noi să optimizăm sistemul. Totul depinde de timp. Alexandru, spune-ne mai mult despre proiectele la care lucrezi.

Alexandru Hadar: Lucrez pe softul din boardul de mașină. Lucrăm cu senzorii de peste tot. Noi îl alertăm pe utilizator. Facem software pentru noile generații de mașini. Înainte de a implementa ideile, mergem la echipa de securitate. Dacă ei nu dau undă verde, nu se implementează. Luăm securitatea foarte în serios.

Radu, din perspectiva ciclului de dezvoltare, aveți cicluri de optimizare?

Radu Lazin: Noi folosim Agile, despre care am o părere foarte proastă. Văd dau un exemplu pe care îl dau la toată lumea. Noi vrem să facem un avion. Noi umflăm un balon, începem să zburăm, iar, în timp ce zburăm, continuăm să construim avionul.

Înainte aveam Waterfall. Să zicem că un proiect dura șase luni. În prima lună nu făceai nimic, deoarece te recuperai din celălalt proiect. Acum, cu Agile, ești la foc continuu din prima zi. Mircea, din perspectiva Redis, cum arată ciclul de dezvoltare?

Girigan Mircea: Am obținut o variantă funcțională pe care am încercat să o îmbunătățim iterativ. Acum o componentă ce monitorizează performanța pe partea de API.

Radu Lazin: Am făcut și teste de performanță ca să testăm, de exemplu, că 98% din cazuri sunt sub acel 150 de milisecunde. Am dorit să știm, din timp, dacă soluția găsită de noi este fiabilă.

Ți-ai optimizat codul în funcție de sistemul de operare?

Alexandru Hadar: Dacă vorbim de platforma Kotlin, putem alege să optimizăm 99% din cod pe toate platformele sau putem alege ca pe o platformă să avem o implementare diferită de toate celelalte implementări. Eu cred că trebuie să optimizăm, nu să pre-optimizăm. Fac teste JVM server-side.

Folosiți design patterns?

Radu Lazin: Da, folosim. Și eu sunt de acord că este bine să nu pre-optimizezi. Cred în code testing, mai ales în componentele esențiale. Eu sunt sceptic când vine vorba de librării externe. Am avut probleme cu tranzacțiile și ne-am asigurat că tranzacțiile continuă să funcționeze chiar dacă se face un upgrade de versiune. Timpul investit în testare nu este niciodată timp pierdut.

Girigan Mircea: Chiar și testele de integrare folosesc un setup în care avem un cloud care are un cluster de Redis și trei master nodes. Facem un setup cât mai asemănător cu ceea ce vom avea în mediul de Producție.

LANSAREA NUMĂRULUI 159

Programarea, securitatea și AI-ul

Marți, 30 Septembrie, ora 18:00

msg systems Romania

Timișoara

Facebook Meetup StreamEvent YouTube

Conferință TSM

NUMĂRUL 158 - Software Optimization

Sponsori

  • BT Code Crafters
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • GlobalLogic

INTERVIU