Acerca de SynthKernel
SynthKernel es una arquitectura de software en TypeScript que te ayuda a escribir código eficiente, limpio y modular.
La práctica típica de SynthKernel consiste en una clase cargadora de módulos y clases de módulo:
- La clase cargadora de módulos gestiona los ciclos de vida de los módulos, orquesta los tipos y actúa como una fachada en la superficie de la lógica de tu aplicación.
- Todas las clases de módulo extienden una clase
BaseModule, definen APIs, ejecutan la lógica real, aumentan la clase cargadora y se conectan entre sí mediante inyección de dependencias. - Los tipos se resuelven mediante orquestación de genéricos.
- Los módulos se componen en el cargador para formar una APP. Un cargador de módulos también puede ser un módulo de un cargador padre.
- Es aplicable a casi todos los casos de uso, incluyendo pero no limitado a servicios backend, automatización compleja, aplicaciones CLI y motores de renderizado de canvas.
Convenciones del Sistema de Archivos
SynthKernel debe estructurarse en un patrón de árbol.
Un cargador junto con el módulo base y todos sus módulos directos deben colocarse planos en una carpeta:
- el archivo que contiene el cargador debe llamarse
index.ts - el módulo base llamado
BaseModule.ts - los tipos llamados
types.ts - todos los módulos se nombran
(nombre del módulo en PascalCase).ts - no hay restricción para el nombre de otros archivos
Es una práctica estándar convertir un módulo demasiado grande en una nueva estructura de cargador-módulo, y luego simplemente convertir el módulo en una carpeta con los mismos requisitos anteriores.
Cuándo Usar
- En la etapa temprana del desarrollo, cuando tienes indicios de lógica pero aún no has escrito ningún código.
- No tienes una convención de arquitectura clara.
- Durante refactorizaciones cuando buscas dividir algunos módulos grandes o hacer el proyecto modular.
- Estás añadiendo nuevas funcionalidades y consideras crear un nuevo módulo, deseando entender SynthKernel.
Cuándo No Usar
- No se supone que debas crear o cambiar la arquitectura.
- Estás desarrollando una interfaz web UI que tiene sus propias convenciones.
- Estás trabajando en un proyecto simple (loc < 200) donde un monolito clásico es más conveniente.
Acciones
- Si estás implementando SynthKernel desde cero o refactorizando código existente para adoptar SynthKernel, ve a inicio.
- Si estás añadiendo un nuevo módulo o dividiendo módulos, ve a mantenimiento.
- Puedes encontrar un ejemplo de práctica estándar en ./example.