Invatare Go sau Elixir ca frontend developer (... in incercarea de a deveni fullstack)

Salutare!

Incerc sa imi dau seama daca e o directie buna in care merg sau nu. Un pic de background legat de ceea ce vreau sa intreb: lucrez de vreo 7 ani ca frontend developer si acum m-am gandit ca ar fi cazul sa ma indrept si catre zona de backend. Asa ca acum am o dilema si incerc sa imi dau seama cam ce abordare ar fi buna. Incepusem sa invat Elixir, imi place limbajul, dar piata de la noi - si nu numai din Romania - este extrem de mica. Acum am trecut la Go, imi place si pare ca sunt mult mai multe joburi. M-am decis sa merg pe Go, in ideea ca sunt sanse mai mari sa gasesc un job/proiect care sa combine ce stiu deja cu Go, comparativ cu Elixir.

Asa ca as vrea sa va intreb la ce ar trebui sa fiu atent in procesul asta? Ce resurse ati recomanda? Cum ati combina experienta de frontend (JS/React) cu Go?

Nu le-as combina daca ceva nu ma forteaza :smiley: sau nu am un proiect personal.
Backend-ul e mult mult mai mult decat niste simple endpoint-uri in go/elixir/rust etc.

Daca vrei ceva ce ma preocupa acum uite cateva probleme existentiale: (care se pot rezolva doar de un full-stack developer)

  1. Data bound components - hai sa zicem ca vrei sa afisezi un tree ierarhic la structura unui avion cu 6 milioane de componente, pe front-end trebuie sa te misti instant de pe fiecare nod pe altul intre cele 6 milioane, poti sa le redenumesti si poti sa faci drag and drop pe un tree paralel ca sa modifici structura, in timp real, cu versionare pentru colaborare. Pe front-end tree-ul poate fi filtrat dupa orice proprietate de pe fiecare nod, adica daca vrei toate piesele mai mici de 5cm, pui un filtru care modifica tree-ul existent intr-unul in care parintii sa fie sub un path e.g. sasiu/aripa/motor/turbina si componentele gasite sa fie direct sub acest path. Daca modifici search-ul cu debounce desigur tree-ul trebuie sa se modifice in timp real.
    Daca in url ai un filtru sau o anumita componenta selectata, tree-ul trebuie sa fie expandat pana la aceea componenta. Pe fiecare nod din tree trebuie sa afisezi si alte date precum numarul lor sau urmatoarea data pentru revizie/verificare.
  2. Data bound tables, trebuie sa selectezi infinit de multe elemente intr-un tabel virtualizat pe front-end in functie de anumite proprietati.

Eu pana acum cea mai buna implementare la asa ceva am vazut-o la Google Sheets, Excel si ceva program de editare 3D. Dar cam oriunde intervine IoT ai nevoie de aceste functii si e nevoie de websockets/RPC tightly coupled be backend/front-end. Chiar si rendering-ul e facut doar in canvas pe Google Sheets. E o problema care ma streseaza ca si front-end developer fiindca nu se poate rezolva pe front-end, front-end-ul obligatoriu devine doar o extensie a backend-ului, practic trebuie sa faci streaming.

Mie mi-a placut go (am folosit doar php inainte), dar e ciudat si migalos.
Kotlin e un limbaj mult mai frumos pe backend si cele mai multe posturi sunt pe Java.

Elixir e clar ceva de nisa, trebuie sa iti gasesti tu compania si colegii, putine sanse sa te caute cineva.

2 Likes