Salutare
Ca sa dau putin de context un profesor de la noi de la facultate ne-a zis ca daca facem doar teorie nu o sa ne ajute la fel de mult ca si cum am face un proiect asa ca ne-a dat o arhitectura si avem ca deadline luna aprilie numai ca nu este arhitectura basic monolit cu care eu am fost obisnuit pana acuma este una microservici si sunt anumite aspecte pe care nu le inteleg.
Ca si overview o sa facem un marketplace de unde pe baza de jetoane (in loc de bani ) o sa poti sa iei date pe care fie ca le afisezi sau faci ml pe ele . Pentru cazul de fata voi presupune ca folosim Java Spring Boot ( desi la punctul acesta poate tehnologia nu e atat de relevanta poate) si eu vreau sa lucrez pe partea de back-end.
Ce nu inteleg legat de aceasta schema este ca:
- Fiecare bucatica din aplicatie ( de exemplu connector , broker) va fii un program Java separat?
- Aceste bucatele din aplicatie , daca sunt separate va trebui sa le rulam in cloud sau fac ceva magie in Docker si cu o comanda mi le porneste pe toate?
- Toate aceste bucatele sunt practic programe scris in Spring Boot separat si in loc sa comunice intre ele prin a face api call-uri o sa comunice cu ajutorul Kafka? Sau pot sa am un Broker scris in NodeJs si altul scris in Django si sa comunice intre ele?
- De ce fel de unit tests are nevoie aplicatia?
- La partea de comunicare cu baza de date o sa am un modul care doar sa deserveasca cererile catre baza de date? Ce mi se pare confuz este ca deja eu am
Jpa in java si daca ar fii sa creez un program doar sa returneze in json niste lucruri mi se pare prea mult. - La ce se refera toata aceasta chestie cu Connector care comunica cu Broker?
- Ce rol isi are Docker in toata povestea aceasta?
- Ce alte aspecte ar mai trebui sa am in vedere legat de aceasta aplicatie si ce alte intrebari ar mai trebui adresate?
- Eu am fost asignat sa conduc grupul meu ( de 3 persoane eu inclusiv) care ne vom ocupa de o particica , inca nu stiu care, dar cum as putea sa desemnez sarcinile in mod eficient in cadrul grupului?
- Daca la firma la care lucrati ati primi un astfel de proiect va exista o persoana care va face brainstorming la greu ca sa dea sarcini dar cum se numeste acest rol? Si ce alt personal este implicat pe langa developeri in dezvoltarea unui astfel de proiect?
Sper ca nu v-au plictisit intrebarile mele si sper ca o sa ducem pana la capat cu colegii proiectul desi ne simtim coplesiti atat de numeroasele tehnologii cerute de catre domnul profesor ( Kafka, Grafana, Docker…) cat si de arhitectura ce difera cu mult de monolitul cu care am fost obisnuiti!
O seara frumoasa va doresc!