用n多的框架写同一个demo

开发 架构
最近有了比较长的空闲时间。 所以看了很多很多不同的语言,框架。 java用了很多年了,总觉得眼界都被java影响了,所以想从新开始学一点新的东西。 而一旦开始选择开始的路径,完美主义的小心思就出来作祟了。 泛泛的接触了好多好多东西,基本上主流的语言,框架都把入门文档看了个遍。 到最后都没有达到最初想学点东西的目的,反而看文档的能力提高不少......

最近有了比较长的空闲时间。 所以看了很多很多不同的语言,框架。 java用了很多年了,总觉得眼界都被java影响了,所以想从新开始学一点新的东西。 而一旦开始选择开始的路径,***主义的小心思就出来作祟了。 泛泛的接触了好多好多东西,基本上主流的语言,框架都把入门文档看了个遍。 到***都没有达到最初想学点东西的目的,反而看文档的能力提高不少......

所以,我决定不再单纯的看了。 我觉得执行下面的计划,动手写写。这也是为什么文章开始就要写明发表时间,因为未来会发生什么谁也不知道,我得到的结果只是当下我认为的好结果而已。

仅此而已

  • 测试方式:controller层上返回服务器当前时间 new Date().getTime() //long类型
  • 开发方式:使用各个框架的引导教程默认设置去写代码,尽量写最少的代码完成demo
  • 测试的框架:jfinal(java),grails(groovy),play(scala),springboot-undertow(java),express(js),beego(golang),compojure(clojure)....看情况增加
  • 测试内容:ab进行压测测试,开发效率(完成所花费的时间),上手难度,扩展性(面对需求频繁更改的可维护性)
  • 压测命令:ab -n 100000 -c 1000 -k http://localhost:8080/
  • 测试机器:amdFX 6300 3.5G+8G+windows10

因为都是主观感受,因此对其他人来说没有任何参考价值 没有任何参考价值 没有任何参考价值 没有任何参考价值

重要的事情说三遍,免得别人以为我在宣扬啥。 下面开始贴图

jfinal jfianl是我用的最多的框架,目前整个公司也在用,真的用起来很爽,最喜欢orm层设计,可以不写字段,对于需要频繁变更数据库结构的前期开发非常顺手。扩展起来也很方便,毕竟是java系。上手的话和在测的这些比较对于0基础的朋友来说属于困难。

jfinal+tomcat9m 不打包,使用idea直接运行起来,配置文件里面关闭dev

jfinal+tomcat9m

jfinal+tomcat8 war包 关闭dev

jfinal+tomcat8

jfinal + jetty9 war包 关闭dev

jfinal+jetty9

spring spring是jee开发绕不过去的大山,springboot用的人越来越多,其实我之所以要看springboot只是对undertow这个框架感兴趣。因此测试结果也是直接测试undertow内核下的性能。 springboot上手难度的话个人感觉比jfianl简单一些,比着教程可以跑起来,不过对于不了解java的朋友来说 看到一大堆注解,会疯掉。

springboot+undertow idea中直接run

springboot-undertow

scala scala号称是会干掉java的jvm语言,多范式,spark,这门语言本身有很强烈的光环,而且play作为非常牛逼的全栈框架,给人的体验是极爽的。写代码->刷新看结果,不需要重新编译。唯一感觉不好的是,scala这门语言好晦涩....各种符号,各种+-*/,各种箭头。语言本身上手难度决定了这个框架的上手难度。

play

输入图片说明

groovy groovy是大家经常用却不知道它的语言,这么说的原因是,gradle就是groovy开发的。grails是groovy借鉴ruby on rails框架开发的web 框架,对新人极其友好,命令行里面,create-controller,create-doman,create-service。直到现在我还能回想起那种写代码顺畅的感觉。而且grails3以后,底层实现直接使用spring4+hibernate5。对于ssh系的开发人员来说,上手速度杠杠的。因此测试也是两种,console中直接执行使用的jetty,使用main函数执行使用springboot。而且由于本身是脚本语言,代码修改非常方便。

grails3 console中直接运行

输入图片说明

grails3-springboot

输入图片说明

nodejs 作为nodejs杀手框架express,让前端人员在各种领域里面虐杀各种后台开发人员。俗话说的好,凡事能用js实现的东西,早晚要用js实现。上手速度没有比他更快了。而且写的是js的代码,简单又好学。nodejs真心不错的。

express4

输入图片说明

clojure clojure 是jvm下面的一门lisp方言。俗话说,每过一段时间,总有一小撮人发现这个世界上还有另外一个世界叫lisp,并且他们妄想lisp能够统领全世界。其实lisp下面有不少web框架可以用,为什么选择compojure这个框架,主要原因还是http-kit。compojure默认配置使用jetty7执行,效率没法看了,但是换成http-kit内核以后,速度飞起.测试完http-kit以后,我对这个框架产生非常大的兴趣,有谁知道有http-kit有哪些应用吗? 这个速度真的是可怕啊。

上手难度:你知道lisp吗?

compojure 默认配置

输入图片说明

compojure+http-kit

输入图片说明

golang golang作为google亲儿子语言,不用多说了。好多朋友都喜欢,我去年也用了好一阵子,确实很好,而且beego作为国人开发的框架,教程的丰富程度,从视频到文字应有尽有。但是,不知道是什么原因,在我的机器上beego测试出来的速度有点匪夷所思的慢,这个值大家看看就成了 这个值大家看看就成了 这个值大家看看就成了 这个值大家看看就成了 重要的事情说三遍,要不然我就成beego黑了.

beego 默认配置

输入图片说明

测试全部完成以后发现,其实测试本身没啥意义,因为都是默认配置,和优化以后效率就没有什么可比性了。因此只能图个乐呵。

茄子萝卜各有所爱,何必在意细节

 

 

责任编辑:张燕妮 来源: 开源中国社区
相关推荐

2016-12-15 08:54:52

线程sessionopenSession

2017-06-08 15:53:38

PythonWeb框架

2009-06-09 12:38:12

NetBeanseclipse

2019-08-20 10:24:39

HTTPSSSHLinux

2023-04-07 15:45:13

Emojicode开源编码语言

2023-04-10 14:20:47

ChatGPTRESTAPI

2022-08-11 16:01:26

勒索软件网络攻击

2021-05-06 21:49:56

索引扫描次序

2015-10-16 13:41:52

程序对象设计

2021-08-16 20:48:34

嵌入式单片机信息

2024-09-05 16:01:55

2018-10-31 10:11:24

Python编程语言语音播放

2022-03-24 14:42:19

Python编程语言

2024-04-28 18:31:03

2022-07-26 00:00:02

TCPUDPMAC

2012-01-04 13:55:23

Canvas

2017-08-17 10:53:10

Google代码仓库

2021-07-29 07:55:19

Demo 工作池

2024-03-18 08:21:06

TCPUDP协议

2021-05-14 10:45:21

PythonNoSQL数据库
点赞
收藏

51CTO技术栈公众号