golang实现web中间件的一些思考
最近陆续看了golang的Martini框架,也试用了,这个山寨自node.js的Express框架和最新的koa框架的golang框架, 同样具有低耦合的特点,不过还是担忧其性能,因为核心采用了reflect反射技术。 golang的http包用Hander、handerfuc这些来解决中间件的问题,比如说验证,日志等,采取的是一层层封装的方式, 好比洋葱。这样写出来的代码的缺点是耦合度高。如果中间件的顺序或者名字变换,则有很多代码需要改动。 为了降低依赖,则需让代码...阅读全文