各大主流语言web框架代码行数对比

Go

  1. gin 4762
  2. echo 4903
  3. iris 27854 肿
  4. buffalo 9391

Node

  1. koa 1667
  2. express 4051
  3. sails 17100 肿

Python

  1. tornado 21666
  2. werkzeug 20801
  3. flask 7489
  4. bottle 3756
  5. web.py 10830
  6. django 119701 泰肿

Ruby

  1. sinatra 2580
  2. grape 7229
  3. rails 130379 泰肿

Java

  1. spring-core 75207 装着没看见
  2. spring-aop 25984
  3. spring-web 49017
  4. spring-webmvc 60246
  5. spring-beans 51070
  6. spring-context 76356
  7. spring-boot 50847

统计方法

统计的时候我发现有些框架的代码比我想象的大的太多,所以我对这些代码量大的代码进行了反复统计,去掉路径包含test/example/benchmark/vendor等的代码,进行wc -l汇聚得到的最终结果。

这样直接对比对某些框架来说是不公平的。有些框架注释比较多,有些框架几乎没有注释。我的统计方法里面没有把注释去掉。不过注释并不是最重要的区别,最大的区别在于有些框架是微内核,有些框架是full-stack的。fullstack的框架可以直接拿来即用,而微内核一般还需要引入额外的插件和扩展才能达到相似的效果。

从源码学习角度来说,自然还是应该选择微内核的,代码量大了阅读起来会是一头雾水。微内核短小精悍,浓缩的都是精华。

学习源码的相关链接

  1. https://github.com/pyloque/httpkids 1200行代码的Java Web框架
  2. https://github.com/pyloque/ormkids 2000行代码的Java ORM框架
  3. https://github.com/pyloque/rpckids 700行代码的Java RPC框架
  4. https://github.com/pyloque/iockids 200行代码的Java依赖注入框架

关注公众号「码洞」,一起学习源码。最后请允许我同情一下Java程序员,表示他们真得很幸苦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过例子介绍使用方法如下: 1.差异统计 统计某一个版本的代码包相对于一个原始的基线代码包,变动的代码量 以及变动的代码量中各语言非空非注释行(NBNC)的结果 diffcount 缺省执行的就是差异统计,直接跟上两个代码包的目录即可 在diffcount目录下执行: diffcount test\sp1 test\sp2 实际使用中,可能会有文件名和目录名大小写不一致的情况,如果希望忽略 文件名大小写的差异,需要使用 --ignore-case 参,否则两个一样的文件 一个会算作删除,一个会算作新增 G:\diffcount>diffcount test\sp1 test\sp2 Diffcount [test\sp1] and [test\sp2] result: LANG ADD MOD DEL A&M BLK CMT NBNC RATE ----------------------------------------------------------------------- C 44 7 26 51 8 11 35 1.00 Pascal 0 0 25 0 0 0 0 0.23 Java 7 4 11 11 0 3 9 0.41 Config 31 4 0 35 1 0 34 0.12 XML 126 0 0 126 2 0 124 0.12 ----------------------------------------------------------------------- Convert all NBNC lines to standard C Total: 57.65 (standard C lines) ADD MOD DEL A&M BLK CMT NBNC RATE 的 含义分别为: 新增、修改、删除、新增+修改、空行、注释、非空非注释行、标准C折算率 2.代码统计: 如果需要,可以把diffcount当作普通的代码行统计工具,统计一个代码代码统计使用 -c (或者--count-only)参, 在diffcount目录下执行 diffcount -c test\count 执行结果如下: G:\diffcount>diffcount -c test\count Counting package [test\count] result: LANG TOTAL BLK CMT NBNC RATE ----------------------------------------------------------------------- C 203 46 61 101 1.00 C++ 57 7 25 25 0.42 Pascal 117 24 17 79 0.23 Java 71 7 24 40 0.41 ASM 129 34 12 85 2.50 C# 18 1 1 17 0.20 Basic 447 140 20 295 0.21 Perl 97 4 26 74 0.16 TCL/TK 91 12 26 54 0.50 Config 116 13 0 103 0.12 XML 126 2 0 124 0.12 ----------------------------------------------------------------------- Convert
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值