Sobes.tech
Middle+

Kako je organizovan proces pregleda koda u vašem timu?

sobes.tech АИ

Одговор од АИ

Ми смо користили заједнички развој помоћу система контроле верзија Git и платформе за управљање репозиторијумима (на пример, Bitbucket или GitLab). Процес прегледа кода био је организован на следећи начин:

  1. Креирање гране: Развојни инжењер креира одвојену грану за нову функцију или исправку грешке (git checkout -b feature/my-new-feature).
  2. Развој и комити: У грани се врше измене које се снимају комитима (git add ., git commit -m "Initial feature implementation").
  3. Пуш у удаљени репозиторијум: Грана се шаље у удаљени репозиторијум (git push origin feature/my-new-feature).
  4. Креирање Pull/Merge захтева: Развојни инжењер креира Pull Request (у Bitbucket-у) или Merge Request (у GitLab-у), указујући на циљну грану (на пример, develop или main). У опису се наводи кратак опис измена, линкови ка задацима у трејсеру (Jira, Trello итд.) и приложени фајлови (скриншотови, видео снимци, дијаграми).
  5. Додељивање рецензената: Додељују се један или два развојна инжењера из тима за преглед.
  6. Процес прегледа: Рецензенти прегледају измене у Pull/Merge захтеву. Они могу остављати коментаре, предлагати унапређења, постављати питања.
    // Пример коментара током прегледа
    function fetchData() {
      // Можда би требало додати обраду грешака при захтеву података
      return fetch('/api/data');
    }
    
  7. Унос измена по резултатима прегледа: Развојни инжењер уноси потребне измене у своју грану на основу коментара рецензената и прави нове комитове.
  8. Ажурирање Pull/Merge захтева: Измене се аутоматски приказују у Pull/Merge захтеву након пуштања у удаљени репозиторијум.
  9. Поновни преглед: Рецензенти поново прегледају измене и дају одобрење.
  10. Мерџа гране: Након добијања одобрења, грана се спаја у циљну грану (обично аутоматски средствима платформе након проласка CI/CD пипејплина).

Такође смо користили CI/CD пипејплан за аутоматско покретање јединичних тестова, статичку анализу кода (ESLint, Prettier) и изградњу пројекта пре спајања, што је помагало у раном откривању грешака.

Критеријуми за успешан преглед укључивали су:

  • Усклађеност са захтевима задатка.
  • Следење код-стила тима.
  • Постојање јединичних тестова за критичку логику.
  • Недостатак очигледних грешака и "костура".
  • Јасност кода за друге чланове тима.