nodejs后端需要面向对象吗?
2017-03-17 本文已影响503人
kelvv
一:面向对象的背景
面向对象编程,主要在.NET , JAVA等强类型用得比较多,主要核心思想是
- 抽象
- 封装
- 继承
- 多态
如果使用面向对象编程,主要解决是解决什么问题?
- 把业务抽象化,变成一个个对象,对象之间有各种继承,达到最大限度的灵活、复用的效果
- 将各种逻辑进行封装
- 利用设计模式,把更复杂的问题进行有效处理,例如一个用适配者模式让系统更容易扩展,融合其他系统等。
- 等等
这种编程方式在非分布式的系统中优点突出,可以减轻系统的复杂性,让程序可扩展,但副作用就是增加了程序的复杂度
二:nodejs后端背景
nodejs以js为语言编写后端程序,可以用来写服务、接口等,更适合进行分布式,微服务的节点开发,所以需要有以下特点:
- 轻
- 快
- 灵活
使用express、koa等框架,可使用中间件、路由等进行轻便、快速的开发业务功能,对外部提供简单、高效、高可用的服务节点
三:nodejs需要面向对象?
写后端一般都是操作数据库,给移动端、pc端、客户端等提供统一规范的接口服务,所以一定要灵活,方便切入各种功能,方便修改和维护,js的函数式编程正符合这些要求
js中原生支持class,但是支持程度有限。
总结:
不推荐完全使用面向对象进行nodejs后端开发,不利于扩展和维护,不够轻便。如需考虑js的灵活性在团队合作中出现混乱等问题,推荐使用ts补全。
在必要的时候,例如可能要大量创建对象,需要用工厂模式方便处理、提高性能的话,是可以考虑切入面向对象思维
- 充分利用js的灵活性,爽一番
- 在适当地方,利用面向对象的优势
- 用ts补全js的缺点进行团队合作