【架构治理】在代码存储库中记录软件架构

简介: 【架构治理】在代码存储库中记录软件架构

Markdown 是一种标准的简单语法,用于创建具有专业外观的文档。它比 HTML 更简单,无需专门的编写编辑器即可进行管理。Git配置管理工具也支持markdown格式。在 Git 环境中,markdown 一般用于项目的简单介绍和构建说明。(自述文件)。本文介绍了如何将 Markdown 格式与模板一起用于架构文档。


带有 Markdown 的架构文档

 

与代码一起管理软件的架构设计和设计决策将为项目提供极大的便利。当我们的设计与代码一起保存在配置管理环境中时,我们可以一起进行设计变更和代码变更。当新工程师开始项目并将代码拉到他的计算机上时,他有机会看到系统的架构。

准备 Markdown 文档 IDE

您可以使用 Visual Studio Code 和类似的 IDE 与您的代码一起准备 markdown 文档。(市场上有 markdown 编辑器,但使用 IDE 来做会更实用)。您可以在 Visual Studio Code 中使用“Markdown Preview Enhanced”插件。使用这个插件,你可以在 VS Code (Preview) 中直观地看到 markdown 文档。您还可以使用相同的工具生成 HTML、World 或 PDF 文档。

MD Document Preparation with VS Code

UML 和 C4 图

您可以将使用 Plant UML 脚本语言绘制的 UML 和 C4 图放入 Markdown 文档中。这样,您可以将整个设计(包括绘图)保存在一个地方。您放入 Markdown 文档中的 UML 和 C4 图可以在预览窗口中看到。(带有一个名为“PlantUML”的插件)。此外,当您导出 pdf 或 html 时,您将能够将这些图表视为图形。GIT 工具具有可视化显示在此 PlantUML 中编写的设计脚本的功能。通过这种方式,可以看到带有 Bitbucket 的设计(具有适当的版本和配置)。此功能在开源 Github 站点上尚不可用。


  • Adding a C4 Component Diagram to a Markdown document

如果git服务器不支持可视化,可以先从plantuml服务器站点制作一张png或svg的图,然后将相关的图发送到Git服务器。然后你可以在markdown文档中将此图作为绘图链接。您可以在使用其他工具制作的图纸中使用此方法。

Arch 42 模板

Arc 42 是架构文档的模板。通过正确完成此 Arc42 模板,您将在一个地方拥有软件架构和设计的关键设计决策。

  1. — 简介和目标
  2. — 约束
  3. - 背景和范围
  4. — 解决方案策略
  5. - 构建块视图
  6. — 运行时视图
  7. — 部署视图
  8. — 交叉切割概念
  9. — 架构决策
  10. - 质量属性
  11. — 风险和技术债务

您可以在 Arch42 网站上访问 markdown 模板。相关网站上有一个草稿作为单个文件或作为每个部分的单独文件。

您可以在此模板中使用 C4 模型和 UML 图。例如,我们可以使用第 3 章中的 C4 范围图,第 5 章中的容器图和组件图。第 6 章中可以使用 C4 动态图或 UML 序列图。部署图可以使用 C4 或 UML 符号在第 7 章。

对于第 10 章,我们可以使用为架构权衡分析方法 (ATAM) 准备的表格。在这种情况下,您可以访问和使用我准备的降价表草稿。

结论

建议使用 Arch 42 模板以 Markdown 格式准备软件架构文档,并在代码中包含 Git 结构中的 C4 模型和 UML 图。该解决方案提供了高质量、可管理、版本控制和可追溯的架构文档。

相关文章
|
1月前
|
存储 关系型数据库 分布式数据库
【PolarDB开源】深入PolarDB内核:探究存储计算分离架构的设计哲学
【5月更文挑战第20天】PolarDB是阿里巴巴的云原生分布式数据库,以其存储计算分离架构为核心,解决了传统数据库的扩展性和资源灵活性问题。该架构将数据存储和计算处理分开,实现高性能(通过RDMA加速数据传输)、高可用性(多副本冗余保证数据可靠性)和灵活扩展(计算资源独立扩展)。通过动态添加计算节点以应对业务流量变化,PolarDB展示了其在云时代应对复杂业务场景的能力。随着开源项目的进展,PolarDB将持续推动数据库技术发展。
82 6
|
3天前
|
存储 运维 监控
云原生架构下的微服务治理实践
【6月更文挑战第19天】在数字化转型的浪潮中,云原生技术以其灵活、可扩展的特性成为企业IT架构升级的首选。本文深入探讨了在云原生架构下,如何有效实施微服务治理,包括服务发现、配置管理、服务监控和故障处理等方面的最佳实践。文章旨在为读者提供一套全面的微服务治理框架,帮助团队构建更加稳定、高效的分布式系统。
7 2
|
4天前
|
监控 Cloud Native 安全
云原生架构下的微服务治理实践
【6月更文挑战第18天】本文深入探讨了在云原生架构背景下,微服务治理的实践方法与技术选型。文章首先介绍了云原生的基本概念和微服务治理的重要性,随后详细阐述了服务发现、配置管理、弹性设计等关键技术的实施细节,并结合实际案例分析如何构建高效、稳定的微服务系统。最后,文章讨论了微服务治理面临的挑战及未来发展趋势。
|
11天前
|
前端开发 JavaScript 安全
微前端架构采用 TypeScript 提升开发效率和代码可靠性
【6月更文挑战第12天】微前端架构采用 TypeScript 提升开发效率和代码可靠性。TypeScript 的类型安全防止了微前端间的类型错误,智能提示与自动补全加速开发,重构支持简化代码更新。通过定义公共接口和使用 TypeScript 编写微前端,确保通信一致性与代码质量。在构建流程中集成 TypeScript,保证构建正确性。总之,TypeScript 在微前端架构中扮演关键角色,推荐用于大型前端项目。
39 4
|
1月前
|
存储 Cloud Native 对象存储
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ[1] 是新一代基于共享存储架构实现的云原生 Kafka。得益于其存算分离的共享存储架构,通过和阿里云合作,深度使用阿里云可靠、先进的云服务如对象存储OSS、块存储 ESSD、弹性伸缩ESS以及抢占式实例实现了相比 Apache Kafka 10倍的成本优势并且提供了自动弹性的能力。
83864 19
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
|
1月前
|
机器学习/深度学习 存储 并行计算
深入解析xLSTM:LSTM架构的演进及PyTorch代码实现详解
xLSTM的新闻大家可能前几天都已经看过了,原作者提出更强的xLSTM,可以将LSTM扩展到数十亿参数规模,我们今天就来将其与原始的lstm进行一个详细的对比,然后再使用Pytorch实现一个简单的xLSTM。
64 2
|
24天前
|
Cloud Native 算法 程序员
代码与禅意:编程中的哲学思考构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第30天】 在数字世界的繁花似锦之下,编程不仅仅是一种技能,更是一场关于逻辑、美学和哲学的深刻对话。本文将探讨编程过程中所体现出的哲学理念,从禅宗的角度出发,揭示代码背后蕴含的深层次意义。我们将一同走进程序员的内心世界,体会在面对复杂问题时,如何通过冥想般的编码实践,达到问题解决的顿悟。
|
2天前
|
存储 Prometheus 监控
云原生架构下的微服务治理之道
在数字化转型的大潮中,云原生技术以其弹性、可扩展和高度自动化的特点成为企业IT架构升级的首选。本文将深入探讨云原生架构下微服务治理的核心要素,包括服务发现、配置管理、流量控制等关键问题,旨在为读者提供一套系统的微服务治理策略。通过分析云原生环境下的微服务特点,结合具体的技术和工具,文章将为构建高效、稳定、易于管理的微服务系统提供实践指导。
|
2天前
|
监控 Cloud Native 安全
云原生架构下的微服务治理实践
本文旨在深入探讨在云原生环境下,如何有效实施微服务治理。通过分析微服务架构的核心价值与挑战,结合具体的云平台工具和最佳实践,文章详细阐述了服务发现、配置管理、弹性设计等关键治理策略。此外,文章还提供了关于如何在保障系统可观测性的同时,确保安全性和合规性的实用建议。读者将获得一套完整的微服务治理框架,以及在云原生旅程中应对复杂问题的能力提升。
|
2天前
|
Kubernetes 负载均衡 Cloud Native
云原生架构下的微服务治理实践
在云计算的浪潮中,云原生架构以其弹性、可扩展性及高效的资源利用成为企业数字化转型的首选。本文将深入探讨云原生环境下微服务的治理策略,包括服务发现、配置管理、流量控制等关键组件的应用,并通过案例分析展示如何构建健壮、灵活的微服务系统。
9 0