25、软件开发中的架构演进与持续交付实践

软件开发中的架构演进与持续交付实践

1. 从事件风暴到涌现式架构

事件风暴能够很好地导向涌现式架构。它能识别出需要构建的系统和聚合体,为软件设计指明方向,但并不意味着所有内容都要提前构建。通过用户实验,可能会发现某些功能并非必需,或者最初在事件风暴中的想法不够完善。这并非糟糕的设计,而是通过实验不断演进的更优设计。

以与世界卫生组织(WHO)的合作为例,目标是验证其架构并围绕新的学习体验平台组建强大的跨职能团队。最初的事件风暴确定了一些关键服务,如课程服务(类似目录)和高可用、可扩展的认证提供者。尽管事件风暴并不复杂,但经过数周的完善后,仍收集到了大量信息。

在项目实施过程中,采用迭代方式构建功能和特性,根据需要逐步完善架构。每个冲刺阶段都会对设计进行重新验证,仅在必要时添加新组件。例如,第一个冲刺阶段引入了基本元素,即一个简单的前端应用与 Red Hat Single Sign - On 服务器实例进行通信;第二个冲刺阶段添加了首个微服务;后续冲刺则不断增加功能、引入新组件并强化现有组件,还为已构建的服务添加缓存以提高查找性能。

以下是项目冲刺阶段架构演进的简单示意:
| 冲刺阶段 | 主要架构变化 |
| ---- | ---- |
| 冲刺 1 | 简单前端应用与 Red Hat Single Sign - On 服务器通信 |
| 冲刺 2 | 添加首个微服务 |
| 后续冲刺 | 增加功能、引入新组件、强化现有组件、添加缓存 |

通过不断回顾事件风暴并建模更多用户旅程,新的服务不断被发现。例如,WHO 希望创建一个强大的推荐引擎,为此创建了一个入职流程来收集用户偏好数据。在添加新功

从软件危机到敏捷革命:现代软件工程实践的历史演变与未来趋势 本文回顾了软件工程从1960年代软件危机到现代敏捷革命的演变历程,剖析了瀑布模型、迭代模型等传统方法的优缺点,并详细介绍了敏捷宣言、Scrum框架和极限编程等现代实践。文章还探讨了DevOps、持续交付和AI赋能等新兴趋势,为软件开发团队提供了方法论选择的决策框架。 阅读详情

相关推荐

从‘软件危机’到DevOps:一张图看懂软件工程40年核心思想演变

本文全景式解析了软件工程40年核心思想的演变历程,从结构化方法、面向对象革命到敏捷宣言、DevOps与云原生架构,揭示了技术演进中的关键突破与挑战。通过对比不同阶段的技术哲学与实践案例,帮助开发者建立系统性认知框架,理解软件工程从解决‘软件危机’到支撑现代云原生应用的完整发展脉络。

weixin_30645617的博客 374

WKWebView 白屏问题,WKWebView request body丢失问题

1,WKWebView 白屏问题 WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一个多进程组件,Network Loading 以及 UI Rendering 在其它进程中执行。初次适配 WKWebView 的时候,我们也惊讶于打开 WKWebView 后,App 进程内存消耗反而大幅下降,但是仔细观察会发现,Other Process 的内存占用会...

weixin_37543822的博客 739

java写一个多人线上聊天室

课程作业谔谔

weixin_51614848的博客 1136

从零到一:基于Rocky Linux 9的Kubernetes高可用集群部署实战

本文提供了一份基于Rocky Linux 9操作系统,从零开始部署Kubernetes高可用集群的完整实战指南。详细讲解了包括系统初始化、容器运行时配置、使用kubeadm工具进行集群初始化、节点加入以及Calico网络插件安装在内的核心步骤,并针对国内网络环境提供了镜像加速等优化方案,旨在帮助读者构建一个稳定可靠的生产级K8s环境。

weixin_29197835的博客 142

RDMA网络通信技术、NCCL集合通讯(GPU)

NCCL 是 NVIDIA 专为 GPU 设计的高性能集合通信库,用于优化多 GPU、多节点间的集体操作(如 AllReduce、Broadcast、AllGather 等),是深度学习分布式训练的核心组件。RDMA 允许计算机直接访问远程内存,无需 CPU 干预,大幅降低了网络通信的延迟和 CPU 开销。常见的 RDMA 实现包括。是两项关键技术,用于优化节点间数据传输效率和大规模并行计算性能。在高性能计算(HPC)、人工智能训练和数据密集型场景中,

weixin_42795092的博客 2425

避开这些坑!医疗影像数据增强的6个安全操作指南(附PyTorch代码)

本文详细介绍了医疗影像数据增强的六大安全准则,包括解剖结构守恒、密度值物理意义保留和病灶特征保护等关键原则,并提供了PyTorch实战代码。通过具体案例和参数建议,帮助开发者在肺结节检测和MRI分割等医疗AI应用中实现安全有效的数据增强,避免因不当操作导致的诊断误差。

cola5的博客 556

【学习系列】SAP RAP 20:Unmanaged场景开发示例-调用BAPI、BAPI包装类、BO接口创建标准采购订单

本文介绍了在SAP RAP(Restful ABAP Programming)框架下,通过三种方式实现采购订单创建的方案。首先分析了RAP框架对传统BAPI调用的限制,特别是禁止显式COMMIT语句的要求。随后详细阐述了三种实现方式:1)直接调用传统BAPI(仅支持OP环境);2)使用BAPI包装类(仅支持OP环境);3)调用标准业务对象接口(支持所有环境)。 文章重点说明了在unmanaged场景下的技术实现细节,包括字段控制、缓冲区管理、测试运行与实际调用的分离处理等。针对每种方式都提供了完整的实施步骤

DeveloperMrMeng的博客 601

基于 STM32 的智能冰箱食材管理与过期提醒系统设计

define MAX_FOOD 20 // 最多存储20种食材#define EXPIRE_WARN 3 // 剩余≤3天触发提醒// RFID卡号4字节// 食材名称// 保质期(天)// 入库日期// 0=空槽,1=有效。

weixin_42300449的博客 58

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 33、Azure容器服务:从实例到集群的全面解析
下一篇: 45、机器学习与医学影像生物标志物在脑部与心血管疾病研究中的应用
java5
博客等级 码龄22年 85粉丝 2103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值