架构师训练营 - 学习笔记 - 第二周

用户头像
心在飞
关注
发布于: 2020 年 06 月 14 日
架构师训练营-学习笔记-第二周

前言

上到第二周,有些同学就开始抱怨了:“没有干货啊”,“没有具体案例啊”,“还不如直接去购买极客时间的专栏啊”等等,我想这些同学是不是太着急了,如果李老师直接说具体的技术、框架,大家听了真的能运用到自己的实际工作中吗?



架构必须要面向应用场景和实践。



每个人的应用场景和实践(框架、技术、语言)都不一样,需要自己去思考和实践。

通过昨天的直播答疑(22:00 - 23:00),我觉得李老师还是非常认真和负责的,分享自己的知识及经验,而不是跟 “XX天精通XX”的作者一样。这让我想起了我大学计算机网络原理老师的话:“买书要看作者,还要分清楚 编著,这三者是不一样的”。

编程的本质与未来 2020/6/11 星期四

  1. UML 是基本功,关键是头脑里面要有东西

  2. 

  1. 编程语言漫谈

  2. 汇编 - 面向 CPU

  3. Basic, Perl, C, C++, Java

  4. 面向对象

  5. 对象: 状态,行为,标识

  6. 面向对象编程的三要素

  7. 封装性 (Encapsulation)

  8. 隐藏实现细节

  9. 定义接口

  10. 继承性 (Inheritance)

  11. is-a

  12. has-a

  13. 多态性 (Polymorphism)

  14. 后期绑定(虚函数)

  15. 向上转形(Up Casting)

  16. 你干架构师的活那就是架构师,不管你的 Title 是什么。

  17. 架构师是抓住机会 -> 破局之人

  18. 莱布尼兹的奇思怪想

  19. 先有程序,才有计算机

  20. 编程的核心要素:人、计算机、客观业务领域

  21. 



软件设计原则 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



用户头像

心在飞

关注

还未添加个人签名 2017.10.15 加入

2个女儿的爸爸 | 程序员 | CS 反恐精英

评论

发布
暂无评论
架构师训练营-学习笔记-第二周