AgentSkillsCN

ERP Architecture Core

面向可扩展、模块化且易于维护的 ERP 应用,构建先进的软件架构。

SKILL.md
--- frontmatter
name: ERP Architecture Core
description: Arquitectura de software avanzada para aplicaciones ERP escalables, modulares y mantenibles.

🏗️ ERP Architecture Core

Guía para construir módulos robustos en Yhadr ERP.

1. Arquitectura Modular

Cada funcionalidad principal (Facturación, RRHH, Biblioteca) debe ser un Módulo Autocontenido.

code
/modules/
  /Facturacion/
    FacturacionModule.jsx  (Orquestador)
    /components/           (UI interna)
    /hooks/                (Lógica local)
    /utils/                (Helpers locales)

2. Capa de Servicios (Service Layer)

El UI NUNCA debe hablar directamente con Supabase para lógica compleja. Usa Servicios.

  • services/facturacionService.js: Encapsula queries, manejo de errores y transformación de datos.
  • El componente solo llama: await facturacionService.crearFactura(datos).

3. Manejo de Estado

  • Local: useState para formularios simples.
  • Global/Compartido: Evita Redux si no es vital. Prefiere useContext o pasar props si la profundidad es < 3 niveles.
  • Server State: React Query (si se implementa) o useEffect con caché manual en servicios.

4. Patrones de UI (High-End)

  • Skeleton Loading: Nunca mostrar pantallas blancas. Siempre skeletons.
  • Optimistic UI: Actualiza la interfaz ANTES de que el servidor responda (ej: dar like, borrar item).
  • Feedback Loop: Siempre notificar éxito/error con Toasts o Modales.

5. Rendimiento

  • Code Splitting: Usa React.lazy() para cargar módulos pesados solo cuando se necesitan.
  • Memoization: useMemo y useCallback en tablas grandes o listas de items.
  • Virtualización: Usa listas virtuales si vas a renderizar > 100 filas (ej: lista de estudiantes).

6. Error Handling

  • Envuelve llamadas críticas en try/catch.
  • Loggea errores en Supabase (system_logs) si son críticos.
  • Muestra mensajes amigables al usuario ("No pudimos guardar" vs "Error 500").