编程与设计
前言
架构师的核心能力:破局。技能都是为破局提供帮助的,如可以利用 UML 图表达设计意图等。
程序与编程
程序的本质是输入输出+逻辑,编程的目的是用计算机来解决现实世界的问题。
编程语言的发展:低级语言(汇编):面向机器编程 -> 高级语言:面向“人”的逻辑编程 -> 面向对象的语言:对象包含状态(包含本身数据),行为和标识 -> 函数式编程:面向数据编程(map,filter...)
框架
框架是用来实现某一类应用的结构型的程序,是对某一类架构方案可复用的设计与实现。
框架与工具的对比:框架调用应用程序代码,应用程序调用工具;架构师应用框架保证架构的落地,利用工具提高开发效率。例子:JUnit 是框架,log4j 是工具。
软件设计
软件设计的最终目的是强内聚,松耦合。
软件设计的过程中要去除“臭味”,包括:僵化性、脆弱性、牢固性、粘滞性、晦涩性以及不必要的重复和不必要的复杂性。
OOD 原则
一、开闭原则(OCP,open-closed principle):对扩展开放,对更改关闭。
二、依赖倒置原则(DIP,dependency inversion principle)
1. 高层模块不能依赖低层模块,而是依赖于抽象;2.抽象不能依赖实现,而是实现依赖抽象。
框架的核心:好莱坞规则(Don't call me, I'll call you),即框架调用程序,而不是程序调用框架,程序需按照框架的约束(继承特定类或者添加注解)实现。
三、Liskov 替换原则(LSP)
注意:任意场景出现 if/else 就有可能有问题。能够用子类的地方,不能使用父类。
四、单一职责原则(SRP)
注意:代码中类多点没关系,拒绝类中代码过多
五、接口隔离原则
评论