架构师训练营 - 学习笔记 - 第二周
前言
上到第二周,有些同学就开始抱怨了:“没有干货啊”,“没有具体案例啊”,“还不如直接去购买极客时间的专栏啊”等等,我想这些同学是不是太着急了,如果李老师直接说具体的技术、框架,大家听了真的能运用到自己的实际工作中吗?
架构必须要面向应用场景和实践。
每个人的应用场景和实践(框架、技术、语言)都不一样,需要自己去思考和实践。
通过昨天的直播答疑(22:00 - 23:00),我觉得李老师还是非常认真和负责的,分享自己的知识及经验,而不是跟 “XX天精通XX”的作者一样。这让我想起了我大学计算机网络原理老师的话:“买书要看作者,还要分清楚 编、著、编著,这三者是不一样的”。
编程的本质与未来 2020/6/11 星期四
UML 是基本功,关键是头脑里面要有东西
编程语言漫谈
汇编 - 面向 CPU
Basic, Perl, C, C++, Java
面向对象
对象: 状态,行为,标识
面向对象编程的三要素
封装性 (Encapsulation)
隐藏实现细节
定义接口
继承性 (Inheritance)
is-a
has-a
多态性 (Polymorphism)
后期绑定(虚函数)
向上转形(Up Casting)
你干架构师的活那就是架构师,不管你的 Title 是什么。
架构师是抓住机会 -> 破局之人
莱布尼兹的奇思怪想
先有程序,才有计算机
编程的核心要素:人、计算机、客观业务领域
软件设计原则 2020/6/13 星期六
为什么要进行软件设计
高内聚,低耦合(强内聚,松耦合),使软件:
易扩展
更强壮
可移植
更简单
设计原则(SOLID)
单一职责原则 - Single Responsibility Principal(SRP)
分清职责,一个类或者模块只负责完整一个职责或功能。
不好分,那就用 Adapter 把相关联的组合在一起。
开/闭原则 - Open/Close Principal(OCP)
Open for extension
Closed for modification
里氏替换原则 - Liskov Substitution Principal(LSP)
子类能够替换程序中父类对象所在的任何位置,并且能保证替换之后的业务逻辑的正确性。
接口隔离原则 - Interface Segregation Principal(ISP)
不应该将客户端不需要的接口行为暴露给客户端,尽量保证客户端的行为可控。
不应该强迫客户端程序依赖它们不需要的方法。
依赖倒置原则 - Dependency Inversion Principal(DIP)
高层模块不能依赖底层模块,而是大家都依赖于抽象。
抽象不能依赖实现,而是实现依赖抽象。
框架抽象接口,你不需要调用框架,框架会调用你。
就像 JUnit 框架,你实现 setUp() and tearDown() 方法后,JUnit 框架运行时会调用你的。
好莱坞原则 - Don't call me, I will call you
推荐书籍《敏捷软件开发:原则、模式与实践》
Reference
https://xie.infoq.cn/article/b20e5cb370f405fe6eae62b67
评论