软件开发架构初步了解

对我而言,代码是实实在在的,看得见,摸得着;而架构虽然散发着光芒,但好像有点虚,似乎认知、思考还比较少。
clean architecture的作者是一位从事软件行业几十年的架构大师,参与开发了各种不同类型的软件,在职业生涯中发现了一个规律:那就是,尽管几十年来硬件、编程语言、编程范式发生了翻天覆地的变化,但架构规则并没有发生变化。
上升到架构层面来说,问题同样存在,而且更加明显,因为架构的影响面远大于代码。作者举了一个例子,展示了随着代码量增加、团队人员增加、release版本增加,导致的新增代码代价的激增以及程序员生产力的下降。
在这里插入图片描述
从可以看到,随着时间的推移,每一行代码的代价(成本)都在逐渐上升。
从另一个角度来看

在这里插入图片描述

单个程序员的产出随着 release急剧 下降,即使为了一个小小的feature,也不得不到处修修改改,容易牵一发而动全身
这样的经历,尤其在项目后期,或者团队人员几次轮换之后,代码就变得难以维护,以至于没有人敢轻易改动。出现这样的问题,不能仅仅归咎于code – code这个层面关注的是更为细微具体的东西(比如命名、函数、注释),更多的应该是设计出了问题,或者说架构出了问题。
因此说,软件架构的目标是为了减少构造、维护特定系统的人力成本

行为和架构是软件系统的两个价值维度,行为是指软件开发出来要解决的问题,即功能性需求;而架构则算非功能性需求,比如可维护性、扩展性。很多程序员迫于各种压力,可能觉得只要实现功能就行了;殊不知,非功能性需求也是技术债务,出来混,迟早是要还的。

艾森豪威尔矩阵:

在这里插入图片描述

behavior: 紧急,但不总是特别重要
architecture:重要,但从来不紧急
了解过时间管理或者目标管理的话,都知道重要但不紧急的事情反而是需要我们特别花时间去处理的。
而架构设计就是让我们在支撑功能的同时,保证系统的可维护性、可扩展性。
软件开发和修房子一样,在实施角度来看都是从low-level到high-level的过程,比如房子是由砖块(brick)到房间(room),再由房间到房子(house)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为的Web软件开发流程包括以下几个阶段。 首先是需求分析阶段。在这个阶段,开发团队与客户一起讨论和明确他们的需求和目标。团队通过与客户沟通,了解并记录他们对Web软件的功能、性能和用户界面等方面的要求。 接下来是设计阶段。开发团队将根据需求分析的结果,制定出详细的设计方案。这包括系统的架构设计、数据库设计、界面设计等。设计阶段还会创建一些原型,以便让客户对软件的外观和功能有一个初步了解。 然后是编码和测试阶段。在这个阶段,开发团队根据设计方案进行编码,实现软件的各个功能模块,并进行单元测试。单元测试是为了验证每个模块的功能是否符合预期。如果有问题,开发者会进行修复和优化。 接下来是集成和系统测试阶段。在这个阶段,各个模块会被整合在一起,并进行集成测试,以确保系统的各个模块能够正确地协同工作。系统测试会模拟真实的使用环境,对软件进行全面的功能、性能和稳定性测试。 最后是部署和维护阶段。在软件通过测试后,会进行部署和发布。这包括将软件安装到目标服务器,配置和调试服务器环境。部署完毕后,开发团队会进行用户培训和提供技术支持,同时也会持续监控和维护软件的运行状态,及时处理可能出现的问题。 总体而言,华为Web软件开发流程注重需求分析、设计、编码、测试、部署和维护等不同环节的全面管理和协同合作,以确保最终交付给客户的软件具备高质量、可靠性和用户友好性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值