Las 5 capas que componen el software.
No importa si construyes una web, una app móvil, un juego o un sistema embebido...
Generalmente encuentras las mismas capas en todos los sistemas:
① Interfaz de Usuario
Es la capa de presentación, el punto de interacción entre el usuario y el sistema. Puede ser una página web (HTML, CSS, React), una app móvil (Swift, Kotlin, Flutter), un programa de escritorio (Electron, Qt) o incluso una interfaz de consola.
② API (Application Programming Interface)
Expone la lógica de la aplicación y define cómo otros módulos o servicios interactúan con ella. Aquí entran REST, GraphQL, gRPC, SOAP o WebSockets, pero también interfaces locales como librerías compartidas, drivers o SDKs.
③ Lógica de Negocio
Contiene las reglas de negocio y la funcionalidad central. Puede estar implementada en lenguajes como Python, Java, C#, C++ o Go, y organizada en capas adicionales (servicios, controladores, casos de uso). Esta capa es la que da sentido a la aplicación.
④ Base de datos
Gestiona la persistencia de datos. No se limita a bases relacionales como MySQL o PostgreSQL ni a NoSQL como MongoDB o CouchDB: puede incluir almacenamiento en memoria (Redis), ficheros, sistemas de colas o incluso sensores físicos en entornos embebidos.
⑤ Infraestructura
La capa de ejecución. Puede ser un servidor en la nube (AWS, Azure, GCP), un clúster con Docker/Kubernetes, un mainframe on-premise, un dispositivo móvil o hardware especializado. Aquí se define la escalabilidad, resiliencia y disponibilidad del software.
Puede existir excepciones donde alguna pieza no exista, pero en la mayoría de los casos es lo que encontrarás.
Entender estas capas es clave para diseñar sistemas robustos y mantenibles, sin importar si hablamos de una web app, un videojuego, un ERP o el firmware de un dispositivo IoT.