review-changes-java

📁 pedrosantiagodev/buildup 📅 14 days ago
1
总安装量
1
周安装量
#51878
全站排名
安装命令
npx skills add https://github.com/pedrosantiagodev/buildup --skill review-changes-java

Agent 安装分布

mcpjam 1
openhands 1
windsurf 1
zencoder 1
crush 1
cline 1

Skill 文档

Review Changes (Java/Spring Boot)

Systematic workflow for reviewing Java/Spring code against established standards.

1. Understand the Change

  • What problem does this solve?
  • What is the scope of impact?
  • Are tests included and do they cover the use cases?

2. Java Best Practices Review

  • Robustness:
    • Is try-with-resources used to close resources?
    • Is exception handling correct?
  • Immutability:
    • Are fields declared final where possible?
    • Could the class be immutable?
  • Types:
    • Are Raw Types (e.g., List) avoided?
    • Is Optional used correctly (e.g., isPresent() followed by get(), or prefer orElse, map)?
  • Contracts:
    • If equals() is implemented, is hashCode() also implemented?
  • Lambdas/Streams:
    • Is the streams code readable?
    • Are Method References used where possible?
  • Naming:
    • Clear and descriptive names (no abbreviations)?

3. Spring Patterns Review

  • Dependency Injection:
    • Is injection done via constructor? (Avoid @Autowired on fields).
  • Configuration:
    • Is it using @ConfigurationProperties (preferred) or @Value?
  • Layers:
    • Is business logic in the @Service?
    • Is the @Controller only orchestrating the call (no business logic)?
    • Is the @Repository called directly by the Controller? (Should not be).
  • Transactions:
    • Is @Transactional used correctly (generally on public Service methods)?
  • Web:
    • Is WebClient used instead of RestTemplate?
  • Security:
    • Are endpoints secured by Spring Security?
    • Is sensitive data excluded from logs?

4. Testing

  • Unit Tests: Use Mockito correctly?
  • Test Slices: Is the correct slice used (e.g., @WebMvcTest)?
  • Testcontainers: Is it used for integration tests with a real database?
  • Assertions: Are assertions clear and testing behavior, not implementation?

5. Feedback Format

Required Changes (Blocking)

  • Security vulnerabilities.
  • Violations of Java contracts (e.g., equals/hashCode).
  • Use of Raw Types.
  • Field-based dependency injection.

Suggested Improvements (Non-blocking)

  • Refactoring opportunities (e.g., use Method Reference).
  • Naming could be clearer.
  • Convert @Value to @ConfigurationProperties.

Positive Feedback

  • Great use of Testcontainers!
  • Good application of the Builder pattern.