Specifications as the better way of software development

← Inicio

¿Qué es una Specification?

Es una descripción detallada del diseño para hacer (make) algo. Lo importante es que es agnóstica a la implementación: es un contrato que se establece antes de iniciar el desarrollo.

Ejemplos de especificaciones usadas en la industria:

Especificación Dominio
UML Modelado de software
gRPC / Protocol Buffers Comunicación entre servicios
OpenAPI / Swagger REST APIs
IaC (Terraform, CloudFormation) Infraestructura

El problema

El enfoque habitual es code-first: se desarrolla y luego (o nunca) se documenta. El enfoque specification-first invierte el orden: se define el contrato, se valida con stakeholders y recién entonces se empieza a codificar.

Esto resuelve problemas clásicos de la ingeniería de software: malentendidos de requisitos, integraciones rotas, acoplamiento entre equipos.

Solución: go-swagger

Generación del código y la estructura desde la especificación. Usa un archivo YAML y la librería genera todo el resto.

flowchart LR
    S["Especificación\n(OpenAPI YAML)"] --> G["go-swagger\n(generador)"]
    G --> SC["Código servidor\n(stubs)"]
    G --> CC["Código cliente\n(SDK)"]
    G --> D["Documentación\nautomática"]

Referencias

Notas relacionadas


Volver arriba

Matias Miguez — Ingeniería de Software, IA, Tecnología

This site uses Just the Docs, a documentation theme for Jekyll.