架构师训练营 - 每周学习总结 2
周四:回顾与漫谈
1、不要用面向对象的语言,做面向过程的开发:
对象应该有 状态(属性)、行为(方法)、标识(与其它对象可区别),
面向对象的三要素:封装、继承、多态,而多态是面向对象的核心特性,多态的实现才是真正面向对象开发。
2、DDD领域驱动:
应该是充血模型,而不是贫血模型
3、漫谈:
要有提出见解或解决方案的能力与勇气,并且要有能承接达成方案的意愿,机会并不是经常有,要自己创造;你提出并承接了任务,即使失败,也有了失败的经验,同时也锻炼了自己,成功了当然更好。
周六:设计模式
1、框架与工具的区别:
框架是架构落地的保证,提供了开发的约束与规范限制;
工具只是给大家调用,提高开发效率的。
2、不好的软件设计,有哪些特性:
僵硬:做一些小变化,是否会引起其它对象或模块的变更?或导致其它功能出现问题?
无法剥离:一些代码块依赖太强,无法单独单独抽离或重用;
晦涩:难以理解的代码风格或实现;
复制:大量重复代码。
2、开闭原则:对修改关闭,对扩展开放
所以要面向接口编程,如果要加新的功能,应该建新的接口,进行实现,而不是改旧的接口,影响面太大;
另外,如果每个接口只有一个实现,则不应该用接口,等需要接口的时候,再重构也是非常快的。
3、依赖倒置原则:
高层不应该依赖底层模块实现,大家都依赖抽象(接口);
同样抽象也不应该依赖实现实现,应该是实现依赖抽象(接口不知道实现的存在);
高层定义接口,交低层实现(前端定义接口,要什么样的数据和格式,后端实现,而不是后端定义,前端适应)。
4、好莱坞原则:不要去调用框架,而是让框架来调用你(按框架的规范或约定编写代码)
5、里氏替换原则:所有用父类的地方,应该都能用子类替代,而不会出错。
违反里氏原则的:加新的子类,却要改父类;
如果设计一定要违反,请考虑提供共性,或改用组合(建议),用适配器模式
6、接口隔离原则:
避免把接口暴露给不需要它的调用者,所以才应该由高层(使用方)定义接口。
7、单一职责:
每个类都应该只有一个引用它变化的原因,比如既包含业务又包含持久化逻辑就不对。
考虑多接口,实现类完成多继承。
版权声明: 本文为 InfoQ 作者【水边】的原创文章。
原文链接:【http://xie.infoq.cn/article/77479839aea19d9e5e9215a37】。文章转载请联系作者。
评论