架构整洁之道-核心笔记

高层架构&底层设计细节

架构”这个词往往使用于“高层级”的讨论中。这类讨论一般都把“底层”的实现细节排除在外。而“设计”一词,往往用来指代具体的系统代码组织结构和实现细节。但是,从一个真正的系统架构师的日常工作来看,这样的区分是根本不成立的。

底层设计细节和高层架构信息是不可分割的。只考虑高层架构,而不考虑设计细节会导致架构师脱离一线,导致架构师永远不了解具体开发代码时会遇到什么问题。而只考虑设计细节而不考虑架构会导致视野的局限性,没有全局观,设计出来的系统可能边界不清楚,组件划分不明确,系统最终成为一团谁也理不清的乱麻。

所以一个好的架构师首先要做高层架构来梳理整个系统的边界,组件划分,从而构建一个职责清晰的架构视图,然后还要对架构进行推演,思考具体实施时会遇到哪些问题。

软件架构的终极目标

软件架构的终极目标是,用最小的人力成本来满足构建和维护该系统的需求。
构建:从0到1完成系统开发的成本
维护:新增功能,修改已有功能的成本。(相比构建更重要)

构建从0到1的系统,会很快,不是问题,问题是后期的功能迭代的成本。如果软件架构比较糟糕,那么会导致后期迭代很小的功能也需要花费大量的人力资源。如果在构建系统时通过合理的模块划分,分层,抽象,根据SOLID设计原则来构建软件,则会把系统划分为边界良好的组件,然后提供足够的扩展性,从而会使迭代功能成本比较低

好的设计和架构可以减少系统的构建和维护成本,提高生产力。

行为价值&架构价值

行为价值:根据需求实现的用例功能,这些可以给企业带来盈利
架构价值:软件应该容易被修改,新增或者修改已有功能
长远看架构价值更重要。架构混乱会导致系统越来越难维护,后期迭代功能时候成本越来越高。

编程范式

结构化编程

结构化程序设计则采用自顶向下、逐步求精的设计方法,各个模块通过“顺序、选择、循环”的控制结构进行连接,并且只有一个入口、一个出口。

结构化程序设计的原则可表示为:程序=(算法)+(数据结构)。算法是一个独立的整体,数据结构(包含数据类型与数据)也是一个独立的整体。两者分开设计,以算法(函数或过程)为主。

  • 自顶向下
    程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。

  • 逐步细化
    对复杂问题,应设计一些子目标作为过渡,逐步细化。

  • 模块化

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

加多

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

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

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

打赏作者

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

抵扣说明:

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

余额充值