统计的时候我发现有些框架的代码比我想象的大的太多,所以我对这些代码量大的代码进行了反复统计,去掉路径包含test/example/benchmark/vendor等的代码,进行wc -l汇聚得到的最终结果。
这样直接对比对某些框架来说是不公平的。有些框架注释比较多,有些框架几乎没有注释。我的统计方法里面没有把注释去掉。不过注释并不是最重要的区别,最大的区别在于有些框架是微内核,有些框架是full-stack的。fullstack的框架可以直接拿来即用,而微内核一般还需要引入额外的插件和扩展才能达到相似的效果。除此之外还有一个重大的区别是HTTP服务器在某些语言中是内置的,而另外一些语言的HTTP服务器则需要单独编写。
从源码学习角度来说,自然还是应该选择微内核的,代码量大了阅读起来会是一头雾水。微内核短小精悍,浓缩的都是精华。