Especificación técnica de "Architecture.md (2021)"
(matklad.github.io)Recomendación para escribir ARCHITECTURE.md
- Se recomienda enfáticamente a los mantenedores de proyectos de código abierto agregar un documento
ARCHITECTUREjunto aREADMEyCONTRIBUTING. - Este documento explica la arquitectura de alto nivel del proyecto y, como debe ser leído por colaboradores recurrentes, conviene mantenerlo corto.
- El documento
ARCHITECTUREsolo debe incluir contenido que no cambie con frecuencia y, en lugar de intentar sincronizarlo con el código, es preferible revisarlo unas cuantas veces al año.
Propósito e importancia del documento
- El conocimiento de la arquitectura física del proyecto es la mayor diferencia entre un colaborador común y un desarrollador principal.
- Si no se está familiarizado con el proyecto, escribir un parche toma el doble de tiempo, y averiguar en qué parte del código hay que hacer cambios toma diez veces más tiempo.
- El archivo
ARCHITECTUREes una forma efectiva de cerrar esa brecha y también ofrece una oportunidad para reflexionar sobre la estructura del proyecto.
Estructura del documento
- Debe comenzar con una visión general desde una nueva perspectiva del problema y proporcionar un mapa de código detallado que explique la relación entre los módulos.
- Debe mencionar archivos, módulos y tipos importantes, pero en lugar de enlazarlos directamente, conviene animar a buscarlos por nombre para que no requieran mantenimiento.
- Debe señalar explícitamente las invariantes arquitectónicas e indicar los límites entre capas.
Invariantes y límites arquitectónicos
- Las invariantes importantes a menudo se expresan como la ausencia de algo, y es difícil detectarlas solo leyendo el código.
- Los límites entre capas o sistemas contienen implícitamente información sobre la implementación del sistema y restringen todas las implementaciones posibles.
Aspectos transversales
- Después de completar el mapa de código, se debe agregar una sección separada sobre aspectos transversales.
- Un buen ejemplo de documento
ARCHITECTUREesarchitecture.mdde rust-analyzer.
Opinión de GN⁺:
- El documento
ARCHITECTUREcumple un papel importante para ayudar a entender el proyecto y para que los nuevos colaboradores se familiaricen rápidamente con la base de código. - Este documento aclara la estructura del proyecto y resalta principios y límites arquitectónicos importantes para ayudar a los desarrolladores a comprender mejor el sistema.
- La adopción del documento
ARCHITECTUREen la comunidad de código abierto puede contribuir al crecimiento sostenible y al mantenimiento del proyecto, y es un enfoque muy útil e interesante para los desarrolladores.
1 comentarios
Comentarios en Hacker News