Middle+
How was the code review procedure organized in your team?
sobes.tech AI
Answer from AI
We used collaborative development with version control system Git and a repository management platform (e.g., Bitbucket or GitLab). The code review process was organized as follows:
- Creating a branch: The developer creates a separate branch for a new feature or bug fix (
git checkout -b feature/my-new-feature). - Development and commits: Changes are made in the branch and committed (
git add .,git commit -m "Initial feature implementation"). - Push to remote repository: The branch is pushed to the remote repository (
git push origin feature/my-new-feature). - Creating a Pull/Merge Request: The developer creates a Pull Request (in Bitbucket) or Merge Request (in GitLab), specifying the target branch (e.g.,
developormain). A brief description of changes, links to tasks in the tracker (Jira, Trello, etc.), and attached files (screenshots, videos, diagrams) are included. - Assigning reviewers: One or two developers from the team are assigned to review.
- Review process: Reviewers examine the changes in the Pull/Merge Request. They can leave comments, suggest improvements, ask questions.
// Example comment during review function fetchData() { // Maybe add error handling here for data requests return fetch('/api/data'); } - Making changes based on review: The developer makes necessary changes to their branch based on reviewers' comments and commits the updates.
- Updating the Pull/Merge Request: Changes are automatically reflected in the Pull/Merge Request after pushing to the remote repository.
- Re-review: Reviewers review the changes again and approve.
- Merging the branch: After approval, the branch is merged into the target branch (usually automated by the platform after passing CI/CD pipeline).
We also used a CI/CD pipeline for automatically running unit tests, static code analysis (ESLint, Prettier), and building the project before merging, which helped identify errors early.
Criteria for successful review include:
- Compliance with task requirements.
- Following the team's coding style.
- Presence of unit tests for critical logic.
- Absence of obvious errors and "workarounds".
- Code clarity for other team members.