Gracias por el A2A. No puedo comentar sobre el contenido en la publicación de Steve Yegge, sin duda es una lectura entretenida :).
No estaba en Amazon cuando ocurrió el cambio (interno) a las API, por lo que no puedo hablar con autoridad sobre cómo sucedió todo , pero en los ~ 4 años que llevo aquí, he trabajado en docenas de proyectos que tenía dependencias de x-team y no puedo pensar en más de 3 ocasiones en las que no podríamos simplemente usar una API interna. Es posible que esto se haya producido debido a un mandato de arriba hacia abajo, pero ese ya no es el caso: los equipos crean interfaces de servicio de soporte porque permiten el desarrollo desacoplado.
Aquí hay algunas cosas que he observado:
- ¿Se puede evitar quedar atrapado con software sin licencia usando Linux?
- ¿Cuál es el producto de Microsoft más subestimado?
- ¿Cuál es la diferencia entre un programador profesional y un programador mediocre?
- Ingeniería de software: ¿Por qué la gente generalmente odia administrar el código de otras personas (en lugar de escribir el suyo)?
- En aplicaciones de misión crítica (o superior) y / o de alta seguridad, ¿el cliente / patrocinador siempre tiene la razón?
- Los equipos crean API reforzadas cuando saben que durará: la mayoría de los experimentos y pruebas no necesitan API reforzadas. Por lo general, puede pasar generando conjuntos de datos periódicamente, validando su hipótesis y exponiendo una API solo cuando esté seguro de que está dispuesto a admitirla.
- Interna versus externa : en el n. ° 5 de la pregunta, no puedo imaginar que la mayoría de los equipos pasen mucho tiempo pensando en cómo externalizar sus API de inmediato. Sin embargo, los equipos tienen que pensar profundamente sobre el escalado, el endurecimiento, la seguridad, etc. al exponer una API.
- Desarrollo desacoplado : fuera de un aviso amistoso, generalmente no necesita hacer mucho para comenzar a usar una API interna. Esto permite a los equipos avanzar rápidamente a ideas prototipo e incluso lanzar pruebas en vivo a pequeña escala. Hay algún tiempo de espera para escalar una flota en caso de que esté planeando generar una cantidad significativa de tráfico nuevo.
- Archivos versus API : si su conjunto de datos es relativamente estático y pequeño (en relación con la RAM), es mejor que implemente archivos (por ejemplo, Berkely DB) que incurra en latencias por llamada al extraer datos a través de API.