Cum te obisnuiesti cu un codebase nou?

Va salut cu respect!

Astazi mi-a trecut prin cap sa incerc sa contribui la un proiect open source , si am ales rocket.chat ca am vazut ca lucreaza cu typescript si nodejs react si sunt familiar cu tehnologiile folosite de ei.
Numai ca ma simt coplesit de situatie cand ma uit la codebase-ul lor , nici macar nu stiu de unde sa o iau ce sa modific ca pe backend spre exemplu am vazut moduri de a scrie cod mult mai diferite de ale mele si deabea daca inteleg ce se intampla pe acolo si ma simt depasit ca e totul fain frumos cand fac eu codebaseul sau de exemplu mai lucrasem cu ceva basic codebase in react la o organizatie non profit care era super la inceput de aveau doar cateva componente in react facute dar aici e mult prea mare.
Si as veni cu cateva intrebari:

  1. Cum procedati cand va angajatii si aveti de a face cu un codebase mamut pe care trebuie sa-l intelegeti destul de bine ca sa faceti fata la job? Ce sfaturi aveti pentru un incepator?
  2. Angajatorii cat de intelegatori sunt cu nou veniti ? Li se ofera timp sa se obisnuiasca cu codebase-ul?
  3. Cei care fac freelancing cum procedeaza? Ca banuiesc ca schimbi codebaseurile mai des lucrand la proiecte diferite
  4. V-a determinant vreodata faptul ca dupa X ani de lucrat la un proiect in cadrul unei firme sa nu plecati de la firma respectiva / sa va mutati pe alt proiect faptul ca deja sunteti obisnuiti cu codebaseul?

Eu am contribuit la Code4Ro la cateva proiecte open source. Sa zic ca am facut cam asa

  • M-am bagat in seama cu cei care lucrau la proiectul respectiv
  • Mi-am ales o anumita arie din proiect., erau mai multe - backend, frontend, devops
  • Am participat la meeting-urile proiectului
  • Am facut pair programming cu cineva mai vechi ca sa imi fie mai usor
  • Pe Github, la proiecte opensource, este un tag - good-first-issue sau ceva asemanator, tag pt cei care sunt noi pe proiect
  • Dpdv al codului, am luat cu git clone proiectul local, am citit readme-ul si am inceput sa explrez fisierele. Sa vad unde este logica de business, entitati, unde se expune raspunul etc
  • Am ales task, lucrat, pus intrebari, prezentat. Rinse and repeat.
  • Mai participam si pe la hackatoane si cunosteam restul echipei f2f si ii mai intrebam chestii

Raspunsurile mele la intrebarile tale din perspectiva mea.

Scopul la un incepator nu este sa il digere pe tot, ci pas cu pas - baby steps.

99.9% sunt. Vorbim de oameni normali. Nici pentru cineva mai cu experienta nu se asteapta sa il inteleaga din prima. Sunt daily-uri, refinement-uri. Plus un proces de onboarding - si in companie, dar si pe proiect. Eu am avut o serie de call-uri cu arhitectul si mi-a explicat arhitectura

Nu fac freelancing, nu pot sa dau un raspuns clar, dar ceva imi spune ca schimba mai des codebase-ul. Si in functie de client, proeict etc

Adapt or perish :smiling_imp:
Eu zic ca una din cele mai importante calitati ale unui programator este adaptabilitatea.

2 Likes

Îți răspund eu aici: în 15 ani, toți clienții au fost înțelegători, iar la toate proiectele[1] am avut o perioadă de adaptare pentru set-up, familiarizare cu codul etc.

Chiar acum am un proiect mare, unde după mai bine de un an găsesc cod nou (adică știu că există, doar că nu m-am atins de el până acum). Când clientul îmi zice că vrea ceva în zona aia, îi spun că e nou și că vor fi câteva ore de „recunoaștere” înainte să scriu cod efectiv.


Cum te obisnuiesti cu un codebase nou?

Te uiți pe factura de la gaze/curent. Te adaptezi instant la un codebase nou😂


  1. Am în jur de 30 proiecte legacy. ↩︎

6 Likes

Buna de tot asta :joy: