如题,我个人是偏好 express 的,但是团队里有一些其他人负责的项目用的是 restify, 我在改 restify 的项目的时候感觉很不爽,不知道是不是我没有掌握正确的使用方法,想听听大家的意见。
restify 上的「Why use restify and not express」里提到的理由似乎都不是很合理:
- express 4 中已经对 RESTful 有很好的支持了
- express 的模板引擎是可选的,不能因为 express 有模板引擎的支持就说 express 不适合 API Server 啊
然后 express 的 Router#param 是个很好用的东西,但是 restify 似乎没有这个功能;然后 restify 似乎有很好的 DTrace 支持,但是我不是很清楚这个东西的价值在哪方面。
以我浅薄的理解:一个是API框架,一个是Web框架,后者有模板,需要预编译和其他的一些工作,也就是说在启动时耗时要比前者长,作为API server的话两者应该都可以,不过restify毕竟是专门的RESTful API框架,在稳定性、可调试和监控方面应该做的不错。 DTrace是应用监控用的,我也不太了解。
都是没用的东西!
要说真正能帮到你的也就只有路由这一项,其ta的东西,你真正的项目,这些框架提供的功能都有限,确切的说是不够,非常的不够,而其API设计的又非常臃肿难扩展。
nodejs的几个框架,是看了jQuery的蛋糕做的甜,想学习jQuery,结果是搬起石头砸自己的脚。Yahoo一个开发曾经说过jQuery不适合开发大型项目,这话是对的,但是jQuery面对的是一个页面,一个页面再大也大不过天去,所以jQuery生存得很好。
但是这几个框架都是形而上的错误。模仿jQuery模仿的实在不敢恭维,如果能做到nodejs源码的纯净组装结构,也算是Java中的Spring了,只可惜这几个框架都不怎么样。
(其中最烂的设计,烂到不能再烂的莫过于Express的 set()和get() 这两个接口了!!! 这不只是猩猩和香蕉的纠结了,而且是要带上猩猩的整个星球!!! 当你和别人协作时,你压根不知道,你去get()的时候会得到什么样的稀奇古怪的东西!!! 尤其是和糟糕的人组队,你绝对会有无数次会说,这TM到底是什么???!!!)
(当我自己工作的时候,我是绝对不会选择这些框架的,当我和别人一起的时候,我不得不面向选择一个框架,但是也要造好一堆堆的围墙,尽可能的保护好自己的代码,并且尽可能的猜测对方又制造了什么样的神奇之物!!!)
我倒是期待Douglas哪天闲不住了,能出套像样的工具。