学习总结—第二周
心平气和持续优化
心平气和接收反馈,不好不对就优化,坦然解释和面对用户。
框架与工具的区别
框架是一种限制,它基于业务和问题结合设计模式,创造出一种框架结构,通过限制和约定,反而让开发者可以更快速的进行开发。
比如 Angular 就是框架,它规定了用 decorator 的方式去声明变量以及一些属性,约束了这些配置和声明组件的方式。之后的任务就交由框架完成,会读取和注册组件,然后控制组件的生命周期来完成需求。对于业务开发者而言,他只关心在 Angular 这个框架的约束下,需要如何声明和开发当前小组件。快速完成就结束了。可以看出来,框架会调用业务代码,而业务代码不会调用框架。
而工具则是由业务代码去调用工具实现某些计算或者其他需求。
软件设计的终极目的
高内聚低耦合,从而实现高扩展、强壮、可移植、简单。
通常有以下几种设计原则可以帮助到你:
开闭原则
增加新功能不会对现有的组件产生变更。
比如 webpack 构建器,增加对新类型文件的支持,无需修改 webpack 本身,只需要按照 webpack 的接口规范,实现一套 loader 即可实现新的变更。
依赖倒置原则
高层模块不能依赖底层模块,抽象不能依赖实现。
还是 webpack 构建器,框架本身是高层组件,loaders 是底层组件,高层组件不能直接调用底层组件,而是提供一个接口和框架。之后底层组件去实现然后关联过去被调用。这样高层组件才能复用。
Liskov 替换原则
子类型(subtype)必须能替换掉他们的基类型(basetype)。
比如正方形类以矩形类为基类是不行的,因为正方形的规则是无法完全替换掉长方形,它的高和长是一样的。假如矩形提供了 calculateArea、setWidth 和 setHeight 的时候,调用正方形类的这个方法就会产生冲突。
单一职责原则
就是一个类包含一个单一职责,只负责自己相关的,尽可能的细小。
接口分离原则
接口尽量隔离分开,如果不需要被某个组件调用,就不要在那个接口上暴露相关方法。
版权声明: 本文为 InfoQ 作者【于江水】的原创文章。
原文链接:【http://xie.infoq.cn/article/065a89125940c4fd3913696e8】。未经作者许可,禁止转载。
评论