文档章节

用n多的框架写同一个demo

架构梦想
 架构梦想
发布于 2016/12/09 10:53
字数 1490
阅读 5519
收藏 85

发表日期2016年年末

最近有了比较长的空闲时间。 所以看了很多很多不同的语言,框架。 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 默认配置

输入图片说明

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

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

© 著作权归作者所有

架构梦想

架构梦想

粉丝 42
博文 24
码字总数 16028
作品 0
济南
部门经理
私信 提问
加载中

评论(29)

架构梦想
架构梦想 博主

引用来自“Fenying”的评论

引用来自“notreami”的评论

引用来自“vancy2011”的评论

HTML5是该抛弃spring、struts、hibernate...这些开源框架的时候了,近期京东、淘宝啥的不就出因为struts2事儿了吗?想要发展长久还要研发企业自己的后端框架,无论是用C++也好,Java也好,Python也好,Ruby也好,或者C#。使用开源框架的前提是要把全部源代码真正弄懂,然后从安全性、可用性、可维护性等角度改写,简单配置一下参数就没有任何安全性可言。要想企业发展长远,还有有完全自己编写的后端才行,否则对外部的黑客来说永远是透明的。

嗯,你看懂HTML5的解析器了嘛?比如V8

我建议看看最好的JS引擎Zend Engine

回复@Fenying : 马上去看
架构梦想
架构梦想 博主

引用来自“slieery”的评论

你喜欢undertow啊? 那就再看看wildfly swarm, 或者wildfly servlet !

wildfly swarm做微服务,也不比spring boot差。

回复@slieery : wildfly准备在公司试用一下。非常期待结果啊
架构梦想
架构梦想 博主

引用来自“slieery”的评论

spring项目中, 组件扫瞄,log配置等东西,都放到war/jar里,千篇一律如此。 这种傻X行为,大家好像都用的很hi。

约定优于配置!约定优于配置!约定优于配置! 重要的话得重复三次。

回复@slieery : 对,对,对,同意也得同意三遍。
开源中国合格公民
开源中国合格公民

引用来自“架构梦想”的评论

引用来自“路人丁语”的评论

麻烦问一下,看文章中说在配置文件中关闭dev,这个是在哪里配置的?
配置文件里面
就是关闭console打印log,要不然日志的量比价恐怖

谢了
架构梦想
架构梦想 博主

引用来自“路人丁语”的评论

麻烦问一下,看文章中说在配置文件中关闭dev,这个是在哪里配置的?
没敢测,怕挑起圣战啊
架构梦想
架构梦想 博主

引用来自“路人丁语”的评论

麻烦问一下,看文章中说在配置文件中关闭dev,这个是在哪里配置的?
配置文件里面
就是关闭console打印log,要不然日志的量比价恐怖
超级大丁丁
超级大丁丁
先感谢博主,我个人很喜欢看这些
李虎头
李虎头
我拉到最后,以后会有一个总结的表格呢,可惜竟然没有
猴山老大
猴山老大

引用来自“freezingsky”的评论

引用来自“vancy2011”的评论

HTML5是该抛弃spring、struts、hibernate...这些开源框架的时候了,近期京东、淘宝啥的不就出因为struts2事儿了吗?想要发展长久还要研发企业自己的后端框架,无论是用C++也好,Java也好,Python也好,Ruby也好,或者C#。使用开源框架的前提是要把全部源代码真正弄懂,然后从安全性、可用性、可维护性等角度改写,简单配置一下参数就没有任何安全性可言。要想企业发展长远,还有有完全自己编写的后端才行,否则对外部的黑客来说永远是透明的。

引用来自“公孙二狗”的评论

HTML5 和这些后端框架有什么关系吗?
我也很好奇,HTML5和后台框架有啥关系?难道只是因为它长得帅?

我也奇怪我jb长跟我长的帅有啥关系
墨子Zhai
墨子Zhai
spring项目中, 组件扫瞄,log配置等东西,都放到war/jar里,千篇一律如此。 这种傻X行为,大家好像都用的很hi。

约定优于配置!约定优于配置!约定优于配置! 重要的话得重复三次。

暂无文章

Mysql的sql_mode模式

sql_mode 是一个很容易被忽视的配置,宽松模式下可能会被输入一些非准确数据,所以生产环境下会要求为严格模式,为了保持生产环境和开发环境,测试环境一致性,我们开发环境和测试环境也要配...

贾峰uk
46分钟前
4
0
Qt程序打包发布方法(使用官方提供的windeployqt工具)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/toTheUnknown/article/details/81748179 如果使用到了Qt ...

shzwork
今天
7
0
MainThreadSupport

MainThreadSupport EventBus 3.0 中的代码片段. org.greenrobot.eventbus.MainThreadSupport 定义一个接口,并给出默认实现类. 调用者可以在EventBus的构建者中替换该实现. public interface ...

马湖村第九后羿
今天
3
0
指定要使用的形状来代替文字的显示

控制手机键盘弹出的功能只能在ios上实现,安卓是实现不了的,所以安卓只能使用type类型来控制键盘类型,例如你要弹出数字键盘就使用type="number",如果要弹出电话键盘就使用type="tel",但这...

前端老手
今天
8
0
总结:Raft协议

一、Raft协议是什么? 分布式一致性算法。即解决分布式系统中各个副本数据一致性问题。 二、Raft的日志广播过程 发送日志到所有Followers(Raft中将非Leader节点称为Follower)。 Followers收...

浮躁的码农
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部