软件工程之美学习笔记二十二 21 | 架构设计:普通程序员也能实现复杂系统?

《软件工程之美》材料地址:https://time.geekbang.org/column/article/90508

为什么软件项目需要架构设计?

一、 复杂软件项目的两个特点

在这里插入图片描述

  1. 需求不确定(参见需求分析部分的讲义)
  2. 技术复杂
    (1)需求让技术复杂
    (2)人员会让技术变复杂
    (3)技术本身也是复杂的
    (4)要让软件稳定运行是复杂的

二、架构设计解决技术复杂性问题

  1. 架构设计可以降低满足需求和需求变化的开发成本。
    架构设计通过对系统抽象和分解,把复杂系统拆分成若干简单的。比如分层架构,将UI界面和业务逻辑分离。
  2. 架构设计可以帮助组织人员一起高效协作。
    系统分拆后,开发人员可以各自独立完成功能模块,最后通过约定好的接口协议集成。
  3. 架构设计可以帮助组织好各种技术。
    用合适的编程语言和协议,把框架、技术组件、数据库等技术或者工具有效的组织起来。
  4. 架构设计可以保障服务稳定运行。
    架构设计,就是通过组织人员和技术,低成本满足需求以及需求的变化,保障软件稳定高效运行。

什么是架构设计

  1. 架构设计的目标,是用最小的人力成本来满足需求的开发和响应需求的变化,用最小的运行成本来保障软件的运行。
    比如微服务架构、前后端分离、分层设计
  2. 架构设计的方法,就是组织人员和技术把系统和团队拆分,并安排好切分后的排列关系,让拆分后的部分能通过约定好的协议相互通信,共同实现最终的结果。

如何做好架构设计

第一步:分析需求
第二步:选择相似的成熟的架构设计方案
在选择好架构方案后,还需要考虑选择什么语言和开发框架。
第三步:自顶向下层层细化

  1. 部署架构
  2. 分层和分模块
    在这里插入图片描述
  3. API 设计、数据库设计、模块的设计
    第四步:验证和优化架构设计方案

推荐学习材料

  1. O’Reilly 《Software Architecture Patterns》
  2. 阮一峰老师《软件架构入门》
  3. 《架构师之路》
  4. 《图解:从单个服务器扩展到百万用户的系统》
  5. 《以“前浪微博”场景为例,谈谈架构设计流程四步曲》
  6. 《架构整洁之道》

我的留言

老师,我们正好在考虑SOA架构,研究esb、api gateway等。前几天我写了篇文章发在博客上了,请老师点评。谢谢。《从巨石应用到微服务应用,从ESB到APIGateway,从前后端分离到中台出现,九九归一,Rest要一统天下?》, https://blog.csdn.net/alva_xu/article/details/89052040

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

alpha xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值