academia/docs/CODE_REVIEW_CHECKLIST.md

3.6 KiB

Code Review Checklist - Sistema Registro Estudiantes

Estado: Validado

Arquitectura (Clean Architecture)

Criterio Estado Evidencia
Separación de capas Domain, Application, Adapters, Host
Regla de dependencia Domain no depende de nada externo
Ports & Adapters IStudentRepository, IEnrollmentRepository
CQRS implementado Commands y Queries separados

Principios SOLID

Principio Estado Evidencia
Single Responsibility Cada clase tiene una responsabilidad
Open/Closed Extensible via interfaces
Liskov Substitution Repositorios intercambiables
Interface Segregation Interfaces específicas por entidad
Dependency Inversion Inyección de dependencias

Clean Code

Criterio Estado Notas
Naming conventions PascalCase clases, camelCase variables
Métodos pequeños < 20 líneas promedio
Sin código duplicado DRY aplicado
Comentarios mínimos Código autodocumentado
Archivos < 100 líneas Refactorizado donde necesario

Seguridad

Criterio Estado Ubicación
Input validation FluentValidation + Regex
SQL Injection prevention EF Core parametrizado
XSS prevention Sanitización en validators
Security headers Program.cs middleware
Rate limiting 100 req/min
Query complexity limits Depth 5, complexity 100

Testing

Tipo Cantidad Cobertura
Domain Tests 30 Entidades, ValueObjects, Services
Application Tests 66 Commands, Queries, Validators
Integration Tests 5 GraphQL flujo completo
Angular Unit Tests 24 Services, Pipes
E2E Tests (Playwright) 20 Flujos principales
Total 145

Convenciones de Código

Backend (.NET)

  • Async/await en operaciones I/O
  • Records para DTOs inmutables
  • Nullable habilitado
  • Global usings configurados
  • FluentValidation para validaciones

Frontend (Angular)

  • Standalone components
  • Signals para estado reactivo
  • Lazy loading por feature
  • OnPush change detection
  • Apollo Client para GraphQL

GraphQL

Criterio Estado
Types bien definidos
DataLoaders para N+1
Error handling
Payloads con errors
Depth limiting

Performance

Optimización Implementada
Response compression Brotli + Gzip
Output caching 5 min para subjects/professors
Apollo cache cache-and-network
Lazy loading Por feature module
Bundle optimization < 800KB initial

Documentación

Documento Estado
README.md
DEV-GUIDE.md
OWASP_CHECKLIST.md
GraphQL Schema (Banana Cake Pop)

Checklist de Revisión Manual

Antes de Merge

  • Todos los tests pasan
  • Build sin errores ni warnings
  • Código formateado
  • Sin TODOs pendientes críticos
  • Variables de entorno documentadas

Seguridad

  • Sin secrets hardcodeados
  • Sin console.log en producción
  • Validaciones en frontend Y backend
  • Error messages no exponen detalles internos

UX

  • Loading states implementados
  • Error messages claros
  • Responsive design funcional
  • Accesibilidad básica (a11y)