mirror of
https://github.com/Pandipipas/scoreko-dev.git
synced 2026-06-06 03:32:06 +00:00
2.5 KiB
2.5 KiB
Reglas Arquitectónicas de Implementación
Important
Estas reglas son estrictas y obligatorias. Se deben aplicar sin excepción durante toda la fase de refactorización y en el futuro desarrollo.
-
NO
any, NO IGNORES- Prohibido el uso de
any,@ts-ignoreo casteos forzados ciegos (as unknown as Tipo). Todo debe tener tipado fuerte en TypeScript.
- Prohibido el uso de
-
CERO LÓGICA DE NEGOCIO EN COMPONENTES
- Los componentes de Vue (
.vue) no deben tener llamadasfetch, lógica compleja de parseo, o cálculos pesados. - Su sección
<script>debe limitarse exclusivamente a invocar composables o stores, y exponer datos altemplate.
- Los componentes de Vue (
-
COMPONENTES PEQUEÑOS Y "DUMB"
- Si el template de un componente supera las 100 líneas, es un síntoma de que debe subdividirse.
- Fomentar la creación de componentes presentacionales ("dumb components") que reciben datos únicamente mediante
propsy se comunican hacia arriba medianteemits.
-
FUNCIONES PURAS (PURE FUNCTIONS) PRIMERO
- Cualquier transformación de datos (ej. extraer gamertags, limpiar strings, dar formato a números) debe residir en una función pura y testeable, fuera del ecosistema Vue y de NodeCG.
-
SIN WRAPPERS INÚTILES
- Evitar crear composables simplemente por envolver una o dos líneas de código si no aportan verdadera semántica o abstracción de dominio.
-
USO DE PATRONES ESTÁNDAR VUE 3
- Utilizar exclusivamente convenciones estándar de Vue 3: Composition API pura,
<script setup>y el ecosistema reactivo estándar de Pinia. - Nada de patrones híbridos ni inventados.
- Utilizar exclusivamente convenciones estándar de Vue 3: Composition API pura,
-
BORRAR SOBRE CONSERVAR (Limpieza de AI Slop)
- Si se detecta código redundante o inútil (ej. código "AI slop" o enormes SVGs hardcodeados en HTML para iconos simples), la prioridad es eliminarlo.
- Sustituir por alternativas limpias y mantenibles (como usar iconos vectoriales de Quasar u hojas de estilo puras).
-
EFECTOS SECUNDARIOS (SIDE EFFECTS) CONTROLADOS
- El uso de
watchdebe ser el mínimo indispensable. - Siempre que se deba reaccionar a un cambio, preferir flujos de datos unidireccionales (ej. variables calculadas mediante
computed) en lugar de mutar un estado local desde un watcher reactivo.
- El uso de
-
REESCRITURA SÍ, PARCHEO NO
- Las zonas marcadas para reescritura en el plan (ej.
Players.vueygraphics/main.vue) deben ser rehechas lógicamente. - El objetivo es mantener el output visual o funcional intacto pero desechando la estructura legacy interna. No se aceptan "parches temporales" en estas áreas clave.
- Las zonas marcadas para reescritura en el plan (ej.