应对复杂性

简介: 资本家主要目标是赚钱、赚很多很多的钱;他们给提出的要求是降本增效那么作为架构师,目标是什么呢?在《整洁架构》书中作者写到架构的主要目的是支持系统的生命周期。良好的架构使系统易于理解,易于开发,易于维护和易于部署。 最终目标是最小化系统的寿命成本并最大化程序员的生产力

资本家主要目标是赚钱、赚很多很多的钱;他们给提出的要求是降本增效

那么作为架构师,目标是什么呢?

在《整洁架构》书中作者写到架构的主要目的是支持系统的生命周期。良好的架构使系统易于理解,易于开发,易于维护和易于部署。 最终目标是最小化系统的寿命成本并最大化程序员的生产力大多数程序员心里觉得应该是展示最牛B的技术才对,可现实却只是资本家的工具而已,是不是有些惊讶

软件的核心是它为用户解决领域相关问题的能力,保持业务价值的持续交付

可在软件行业,交付能力的持续性是相当有挑战性的,也许前期交付很快,但慢慢交付就很慢,质量也会下降,甚至哪怕一次小小的改动都要经历很久,更可怕的是无法交付,为什么呢?

在之前的相关文章中也提过,有两张图:

《架构师》中提到软件需求并不只是功能需求:

image.png

软件复杂度并不仅仅是业务复杂度:

image.gifimage.png

在一起起看似快速交付背后,不合理的设计或者实现积累了过多的技术债,造成无法交付

所以架构师最重要的事就是解决软件中的复杂性

image.png

image.png


在软件项目中,任何方法论如果最终不能落在“减少代码复杂度”,都是有待商榷的

软件架构设计的实质,是让系统能够更快地响应外界业务变化,并且使得系统能够持续演进

架构设计的主要目的是为了解决软件复杂度带来的问题

《DDD应对复杂》[1]中也提到复杂的来源,对于软件复杂性以及应对方案,特定画了一幅图


image.png

对于图中复杂性来源和应对,可以对照以前的文章理解,也可以直接留言交流

目录
相关文章
|
1月前
|
敏捷开发 监控 安全
螺旋模型是什么?在软件开发中如何降低风险?
螺旋模型是一种结合了瀑布模型和快速原型模型的软件开发方法,强调风险分析的重要性。每个迭代周期包含计划制定、风险分析、工程实施和客户评估四个阶段,旨在通过持续的风险管理和客户反馈,提高软件质量和项目成功率。该模型由Barry Boehm于1988年提出,适用于需求不稳定、高风险的项目。
|
6月前
|
测试技术 开发工具
软件开发过程中常见风险和应对策略
软件开发过程中常见风险和应对策略
315 1
|
1月前
|
安全 物联网 5G
5G技术对软件开发的影响及应对策略
【10月更文挑战第11天】5G技术的商用化正迅速推进,其高速度、低延迟和高可靠性将深刻影响软件开发。本文探讨了5G技术的特点及其对移动应用、物联网、后端服务和安全性的具体影响,并提出了开发者应采取的优化策略,包括提升移动应用体验、扩展物联网应用、强化后端服务和加强安全性。通过这些策略,开发者可以充分利用5G技术,为用户提供更好的服务。
|
3月前
|
存储 缓存 负载均衡
高并发系统架构的设计挑战与应对策略
【8月更文挑战第18天】高并发系统架构设计是一项复杂而重要的任务。面对性能瓶颈、稳定性与可靠性、并发控制和可扩展性等挑战,开发人员需要采取一系列有效的策略和技术手段来应对。通过负载均衡、缓存技术、数据库优化、异步处理、并发控制、弹性设计及监控与调优等手段,可以设计出高性能、高可用和高可扩展性的高并发系统架构,为用户提供优质的服务体验。
|
6月前
|
自然语言处理 监控 安全
如何应对大模型带来的安全性挑战
如何应对大模型带来的安全性挑战
116 1
如何应对大模型带来的安全性挑战
|
3月前
|
运维 监控
运维自动化:提升效率与降低风险的关键
【8月更文挑战第6天】在信息技术高速发展的今天,企业对运维工作的要求越来越高。传统的手工运维方式已经无法满足现代业务的需求,而运维自动化则成为了解决这一问题的有效手段。通过引入自动化工具和流程,运维团队不仅能够提高工作效率,还能降低人为错误带来的风险。本文将探讨运维自动化的重要性、实施步骤以及面临的挑战,旨在为读者提供一套完整的运维自动化实践指南。
|
5月前
|
项目管理 数据库 云计算
CIO如何更好地应对不断上升的IT成本
CIO如何更好地应对不断上升的IT成本
|
6月前
|
敏捷开发 JSON 测试技术
敏捷开发:高效应对变化
敏捷开发:高效应对变化
|
敏捷开发 设计模式 测试技术
如何从容应对复杂性(1)
如何从容应对复杂性
133 0
|
设计模式 安全 前端开发
如何从容应对复杂性(2)
如何从容应对复杂性
下一篇
无影云桌面