Ce reprezinta “Technology stack” sau “Tech stack”
Acest articol face parte dintr-o serie, in care ne propunem sa explicam in termeni cat mai simpli, o parte din notiunile folosite in industria IT.
Pentru ca o mare parte din termenii folositi in industrie sunt in limba engleza si nu au neaparat o traducere exacta in limba romana. De aici si confuzia multora in ceea ce priveste semnificatia multora dintre acesti termeni.
Asadar, astazi vom vorbi despre “Technology stack”, “Tech stack” sau “Application stack”
In interiorul industriei IT, folosim zilinc aceasta expresie pentru a ne referi la technologiile care sunt folosite intr-un anumit proiect.
Exemplu : Care este tech stack-ul proiectului tau ?
Intrebarea se refera la :
Care sunt limbajele de programare si bazele de date care sunt folosite in interiorul proiectului.
Care sunt technologiile folosite in interiorul aceluiasi proiect si care sunt produsele software care sunt folosite pentru dezvoltarea produsului.
Putem spune ca este o sumarizare a technologiilor folosite pentru crearea unui produs software.
In general, atunci cand recruteaza, companiile se refera direct la tech stack-urile folosite pentru a recruta candidati.
Cateva categorii care compun un tech stack sunt (nu va faceti griji pentru denumirile in engleza, le vom explica in articole ulterioare):
Limbajele de programare : Aceste sunt alese in functie de specificul aplicatiei pentru care se dezvolta, daca este doar pentru aparate mobile sau de orice tip, in functie de zona de dezvoltare, daca vorbim de partea de server sau de partea cu care utilizatorul final interactioneaza (UI = user interaction; website sau interfata unei aplicatii).
Exemple de limbaje de programare populare sunt : Java; Python, JavaScript, Ruby, Swift, C#, C++, Go, PHP
Servere si load balancing : Acestea reprezinta partea de server, partea de distributie a continutului in cadrul retelei, partea de rutare si de cache (datele “cache” sunt informatii transmise de catre un website sau o aplicatie care sunt ulterior stocate, pentru a fi folosite mai tarziu)
Servicii populare in aceasta categorie sunt : AWS, Google Cloud, Azure, Apache, Ngnix, CloudFlare
Stocare si cautare de date : Aceasta parte este reprezenta de catre bazele de date si alte tipuri de aplicatii care iti permit sa stochezi si sa cauti in acele stocuri de date. Spre exemplu date legate de produsele unui site de cumparaturi, sau datele legate de comportamentul unui user care mai tarziu iti permit sa imbunatatesti aplicatie pe baza acestui comportament.
Produse populare in aceasta categorie sunt : MySql, MongoDD, Cassandra, PostgresSql, Azure SQL, RedShift, Oracle
Frameworks pentru zona de backend : Simplist spus, framework este o colectie de limbaje, librarii si alte utilitati care sunt folosite de catre programatori pentru a crea aplicatii. Tot simplist, backend se refera la zona de management de contiut a aplicatie. Este compus din mai multe parti (server, baza de date, aplicatie).
Produse populare in aceasta categorie sunt : Spring, Django, Laravel, RubyOnRails, .Net
Frameworks pentru zona de frontend : Simplist spus frontend se refera la zona de interactiune cu userul final. Website-ul sau interfata unei aplicatii.
Produse populare in aceasta categorie sunt : AngularJs, React, Flutter, Boostrap, JQuery, EmberJS
Monitorizare : In aceasta categorie intra produsele folosite pentru a tine sub observatie performanta si modul in care o aplicatie se comporta in momentul in care este folosita. Se iau in considerare diverse tipuri decomportamente (performanta, scalabilitate, etc). Ele analizeaza intreaga aplicatie de la bazele de date pana la zona de interactiune cu utilizatorul final.
Produse populare in aceasta categorie sunt : DataDog, Nagios, Zabbix, Dynatrace, AppDinamics
Acestea sunt doar cateva dintre categorii, dar care sunt printre cele mai importante de mentionat.
Acum ca sa ne facem o idee si mai clara, haideti sa vedem care sunt cateva dintre tech stack-urile catorva dintre cele mai uzuale aplicatii de zi cu zi :
SnapChat :
Limbaje de programare: Java, Kotlin, Objective-C, Swift, JavaScript
Frameworks: AngluarJs, JQuery, React, Boostrap
Cloud: Google App Engine, Google Compute Engine, Google Cloud Datastore
Baze de date: MySql, MongoDB, Redis
Netflix:
Limbaje de programare: Java, Python, Kotlin, Swift, JavaScript
Frameworks: NodeJS, React, Restify, RxJS
Cloud: Amazon EC2, AMAzon S3, Amazon RDS, Amazon EMR etc
Baze de date: MySql, PostgresSQL, Redis, Cassandra
Uber:
Limbaje de programare: Java, Python, Objective-C, Swift, JavaScript, GO
Frameworks: NodeJS, React, ExpressJS, BackboneJS
Cloud: Amazon EC2, AMAzon S3, Amazon RDS, Amazon EMR etc
Baze de date: MySql, PostgresSQL, Redis, Cassandra, MongoDB