Discontinuidad de integración

«Se conoce como Discontinuidad de integración de un API, a la situación donde el esfuerzo para integrar una nueva funcionalidad es mayor que el beneficio que se obtiene por ella.»

— Designing and Evaluating Reusable Components, Casey Muratori

5 características/tradeoffs

Muratori, define 5 características que modulan un API, un conjunto de tradeoffs con los que hay que jugar para evitar/disminuir las discontinuidades. El conjunto de tradeoffs varía a lo largo del ciclo de vida del producto.

«Optimizing the five characteristics leads to an API which is gradually tiered, highly decoupled, has no retention at its most granular tier and always lets the game dictate the flow of control.»

  • Granularidad: A o BC
    • Alta granularidad = Flexibilidad
    • Baja granularidad = Simplicidad
  • Redundancia: A o B
    • Alta redundancia = Conveniencia
    • Baja redundancia = Ortogonalidad
  • Acoplamiento: A implica B
    • Cuanto menos acoplamiento, mejor.
  • Retención: A imita B
    • Alta retención = requiere mayor sincronización
    • Baja retención = automatización
  • Flujo de control: A invoca B
    • Cuanto más control, mejor.

Terminología relacionada