构架师训练营 - 第二周总结
在极客时间听智慧老师讲课,老师说这里教授的技能,都是外面能够搜索得到的,除了以下内容,遂拿纸笔记之。
故事开场
这是发生在智慧老师身上的真实故事,那时智慧老师还是个职场新人,进公司不久他就做到项目构架师的位置,故事的开始,看似在其他技术人员出差的情况下,领导临危授命,将一个项目交给了我们的智慧老师,如果讲到这,恐怕大多数的人都会面感慨自己怎么没能遇上这样的大好机会。事实哪有什么捷径,听完老师的故事,大概可以将原因归结为:
主动承担构架任务
在一些项目中,构架师很多时候并不是一个岗位,而是主动挑起负责,当他写的代码被人需要的时候,自然而然地成这这个项目的架构师。
善于管理相关方期望
大多数情况下,领导和客户并不懂技术,而开发人员可能更关注项目的详细设计,如果有人善长于构架文档的能力,通过诸如软件构架4+1视图,为不同相关方呈现他们所关注的焦点,就不会被他们推着走。
翻开软件开发故纸堆
老师的故事戛然而止,我们正襟危坐地从软件开发的历史故纸堆里,翻出了三种编程语言,它们是:面向机器编程的汇编语言、面向人编程的高级语言、以及面向问题领域的面向对象编程语言。也提到这些年我们大多数人所写的程序,不写对像状态的Service,不写行为的POJO,不对类进行多态继承...., 原来这些都称不上面向对象编程,可谓一语惊醒梦中人。
继续颠覆三观,面向对象编程你的原则是什么?
开闭原则
关闭对旧接口的修改,开放新增接口
依赖倒置原则(好莱坞原则)
上层定义接口供底层实现(典型的场景如:回调接口)
Liskov替换原则
子里应该可以代替父类
单一职责原则
非单一职责往往为使用某一功能而打包很多无关的功能
接口分离原则
只暴露调用方有权使用的接口,屏蔽无关接口。
评论