《架构整洁之道》读书笔记上,所有程序员都应该了解一下架构全貌

前言

大家好,我是春风,最近需求进入一段空窗期,闲暇之余,我便从公司图书角翻出一本Bob大神的《架构整洁之道》,虽然才看到一半,但其中的收获已经不得不让我想停下来先总结记录一下了,这应该是架构设计领域最好的一本启蒙书了吧!

第一部分:概述

第一部分就是回答一个问题:我们架构设计的终极目标是什么?

作者首先给出了衡量一个软件系统价值的两个维度:

  • 行为价值(让机器按照我们给出的指令运转,从而给使用者提供价值)
  • 架构价值(软件必须保持灵活,面对复杂的情形,可以最低成本的完成变更)

而这两种价值究竟哪种更重要呢?作者引用艾森豪威尔矩阵:

行为价值-我们当下的第一要务是满足客户需求,所以它是紧急而不重要

架构价值-当下站在业务方的角度来说,不紧急,但是为了能应对后续的变更,无疑是非常重要

所以,我们架构的目标应该是创造架构价值,即用最小的人力成本来满足构建和维护系统的需求(尤其是最小人力成本维护,这里的维护我理解就是适应变更)

第二部分:编程范式-代码层面

本书的第二部分到第五部分其实是自下而上的说明该怎样设计一个好的架构。第二部分是代码层面; 第三部分是组件内部如何构建;第四部分是组件外部之间如何关联;第五部分是软件系统层面。

第二部分从代码层面给出了三大编程范式,其实就是限制我们不能做哪些内容

1. 结构化编程

我们的软件系统需要根据功能来做降解拆分,大型系统可以拆分成模块和组件,在这些模块和组件中,又可以进一步拆分成更小的函数,

结构化编程在代码层面就更像是我们函数的编写规范,任何一个复杂的函数结构都是顺序结构和分支结构、循环结构的集合,同时这三种基础结构是可被证明的,所以任何复杂的函数也就是可推导的

这里有个特殊的反例就是goto,goto能跳脱这三种结,所以为了我们整个函数是可推导的,一般都会放弃使用goto这种结构。

结构化编程的价值就是通过功能性降解拆分,使得我们拥有了创造可推导程序单元的能力,进而编写可推导程序的能力

2. 面向对象编程

面向对象是将程序的控制权间接转移给了对象 面向对象有三大特性:封装继承多态,这也是我们Java最老生常谈的面试题了

  • 封装:采用封装特性,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值