Files
ISA-Frontend/.github/review-instructions.md
2025-04-22 12:23:39 +02:00

5.4 KiB
Raw Permalink Blame History

Code Review Instructions

Summary

When conducting a code review, follow these steps to ensure a thorough and constructive process.
Ensure that all review guidelines are followed. If any guideline is not adhered to, make it explicitly clear which guideline needs to be followed.

Review Process

  1. 🎯 Key Issues
    Identify critical issues in the code such as bugs, security vulnerabilities, or violations of the project's coding standards.
    Include specific links to files and line numbers (e.g., file.js#L10) where applicable.

  2. 💡 Suggestions for Improvement
    Highlight areas where the code can be enhanced in terms of readability, performance, maintainability, or adherence to best practices.
    Clarify what constitutes a "Critical" versus a "Minor" issue to avoid ambiguity.

  3. Code Examples
    Provide specific, concise code snippets that illustrate your suggestions.
    Include both a "Before" (problematic code) and an "After" (improved version) example where beneficial.

  4. 📚 Relevant Documentation Links
    Attach links to useful resources or official documentation to support the suggested changes.
    For example, link to ESLint, Jest, or Angular Style Guide pages when relevant.

Tone and Feedback

  • Be constructive and supportive.
    Frame suggestions as opportunities for growth rather than criticism.
  • Use the following emojis to categorize your feedback:
    • 🚨 Critical issues
    • Minor Issues
    • ⚠️ Warnings
    • 💡 Suggestions
    • Good practices

Additional Informations

  • Missing tests and JSDocs are minor issues
  • Missing unit test are minor issues
  • Missing End-to-End (E2E) Testing Attributes (data-what, data-which) are warnings

Review Template

# Code Review

## Summary

A brief overview of the codes overall quality, highlighting key strengths and areas needing attention. This sets the stage for the detailed feedback below.

---

## 🚨 Critical Issues

High-priority issues that must be addressed immediately due to their potential to severely impact functionality, performance, or security.

### 1. High Priority: [Issue Title]

#### 🚨 Issue

Describe the issue clearly, including links to specific files and lines (e.g., file.js#L10). Explain why its critical—highlight crashes, security risks, or significant performance issues.

#### 💡 Suggestions for Improvement

Provide specific steps or alternative approaches to resolve the issue.

#### ✨ Code Example

**Current**: [file](file.js#L10) Problematic code with path to the file and line of the code

```typescript
// Code...
```

**Improvement**: Improved version

```typescript
// Code...
```

#### 📚 Relevant Documentation

Include URLs for further research (e.g., [Jest Documentation](https://jestjs.io/docs/getting-started)).

---

## ❗ Minor Issues

Issues that can improve code quality, maintainability, or adherence to best practices when resolved.

### 1. Medium Priority: [Issue Title]

#### ❗ Issue

Describe the issue clearly, including file and line references (e.g., file.js#L10). Explain the impact on the project.

#### 💡 Suggestions for Improvement

Offer concrete steps or alternative approaches to mitigate the issue.

#### ✨ Code Example

**Current**: [file](file.js#L10) Problematic code with path to the file and line of the code

```typescript
// Code...
```

**Improvement**: Improved version

```typescript
// Code...
```

#### 📚 Relevant Documentation

Provide links to further resources.

---

## ⚠️ Warnings

Low-priority issues or suggestions that could help prevent future problems or improve the code quality over time.

### 1. Low Priority: [Issue Title]

#### ⚠️ Issue

Describe the issue clearly with references (e.g., file.js#L10). Explain the potential impact if left unaddressed.

#### 💡 Suggestions for Improvement

Provide suggestions or alternative implementations to mitigate the issue.

#### ✨ Code Example

**Current**: [file](file.js#L10) Problematic code with path to the file and line of the code

```typescript
// Code...
```

**Improvement**: Improved version

```typescript
// Code...
```

#### 📚 Relevant Documentation

Include relevant resources for more information.

---

## 🛑 Bad Practices

Highlight up to five bad aspects of the code to reinforce improvements and encourage good practices. Use different funny emoji at the beginning of each bad practice.

- Emoji **Bad Practice 1**:  
   Describe a specific weakness (e.g., clear code structure) with an example reference (e.g., file.js#L20). Explain why its bad.
- Emoji **Bad Practice 2**:  
   Outline another negative feature (e.g., effective error handling) with a snippet reference.

---

## ✅ Good Practices

Highlight up to five positive aspects of the code to reinforce well-implemented patterns and encourage good practices. Use different funny emoji at the beginning of each good practice.

- Emoji **Good Practice 1**:  
   Describe a specific strength (e.g., clear code structure) with an example reference (e.g., file.js#L20). Explain why its commendable.
- Emoji **Good Practice 2**:  
   Outline another positive feature (e.g., effective error handling) with a snippet reference.

---

## 📓 Additional Notes

- **General Feedback**: Optional thoughts regarding the overall quality or potential areas for future improvement.
- **Next Steps**: Outline follow-up actions or further examination areas as needed.