Modular programming
Es un paradigma de programación
Consiste en dividir un programa en módulos o sub programas con el fin de hacerlo más legible y manejable.
Busca cubrir los siguientes puntos:
- Organización: Es mucho más fácil de hacer seguimiento de qué script afecta a qué cuando cada archivo proporciona solo una funcionalidad.
- Reciclaje de código: [Ejemplo] Si creas un script que controla el movimiento del enemigo, puedes aplicarlo (con solo unos pocos ajustes) a una variedad de enemigos.
- Debugging: La depuración se vuelve mucho más fácil cuando sabes exactamente qué archivo está causando problemas.
- Rutina: Crear una rutina de programación modular puede ahorrarte un tiempo interminable al escribir código limpio desde el principio.
- Reducir dependencias: Si se tienen demasiadas clases, métodos o comportamientos vinculados a un script, puede conducir a un código contradictorio a medida que ajusta otros objetos de los que depende el script inicial.
- Refactorización: La refactorización de código es más fácil debido a que todo está organizado. Se pueden cambiar o mejorar determinadas partes de código con daños menores al flujo principal de la UX.
- Open-Source: El código modular es fácil de compartir. [Ejemplo] Si creas un mando de jugador que a otro desarrollador le encantaría usar en su juego, es fácil de enviar por tu parte y fácil de leer por su parte.
Ventajas
- Organización
- Debugging
- Cambios rápidos
- Mejor colaboración entre desarrolladores
- Tiempos de desarrollo cortos
- Mejor enfoque en nuevas features o código específico de un flujo
Arquitectura modular
Este paradigma hace uso de una arquitectura para lograr una estructura de bloques, donde estos pueden estar hechos de bloques más pequeños.
El sistema de diseño atómico (Atomic Design System) puede ayudar a comprender mejor cómo funciona la arquitectura modular.
https://www.justinmind.com/blog/atomic-design/
Su objetivo es estructurar bloques de código de cierta manera que éstos, junto a otros puedan conformar bloques más grandes, y al mismo tiempo estos bloques más grandes puedan formar parte de otros de mayor tamaño.
Con base en Atomic Design System, se entiende que:
- Átomo (Es considerado la unidad mínima, o el módulo mínimo)
- Molécula - Sistema de átomos
- Organismo - Sistema de moléculas
- Template - Sistema de organismos
- Page - Sistema de templates
Para que un módulo o un componente de Unity sea considerado un átomo, debe cumplir con:
- Que pueda ser parte de un módulo más grande o complejo.
- Que no esté elaborado de otros módulos.