阅读更多
Firefly是一个高性能的一站式Java Web框架,涵盖了web开发的主要技术栈,包含模板引擎、IOC/MVC框架、HTTP服务器、Common工具、Log、Json解析器等模块。

项目主页:http://www.fireflysource.com/
Github地址:https://github.com/hypercube1024/firefly

为了使大家对Firefly有进一步的了解,本期我们采访了Firefly的作者邱鹏滔

ITeye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给ITeye管理员或者发邮件到webmaster@iteye.com即可。

先来个自我介绍吧! Top

我叫邱鹏滔,来自武汉,毕业后一直在北京,工作6年,目前在一家大型互联网公司工作。

我主要用的编程语言是Java,平时也研究一下iOS或者其他的编程技术,最近看了《黑客与画家》,对Clojure开始有些兴趣了

Firefly是什么?有哪些功能? Top

Firefly是一个一站式高性能Java Web框架。Firefly使用简单,在main函数中只需一行代码就可以启动一个Web服务,并且超级轻量,jar包总共500k,启动一个Web服务不到1秒。非常适合注重开发效率和服务性能的互联网应用。

Firefly提供的主要功能如下:

  • IOC/MVC框架
  • 模板语言
  • HTTP服务器
  • Json解析
  • 异步日志

你开发这个项目的初衷是什么?这是SSH的一个“轮子”吗? Top

在开发Firefly之前也一直用开源的Java框架,比如Spring、Struts、Hibernate、iBatis等等,但是始终觉得用这些框架搭建开发环境比较麻烦,其中一些框架升级之后兼容性也是个问题,而且SSH比较臃肿,运行速度慢。

心目中理想的web框架,应该在80%情况下不需要繁杂的配置就能运行并且轻量快速,所以决定开发Firefly作为SSH的替代方案

Firefly的确又是一个轮子,不过是一个更好的轮子,哈哈 ^_^

Firefly 的设计思想? Top

Firefly是基于约定优于配置的思想,框架会自动执行约定的或者被标注的函数,参数也是可变的。

Firefly是无侵入的, 程序不需要实现任何接口,不会对业务代码产生污染。并且框架本身不依赖任何第三方jar包,不会发生框架依赖的第三方包和业务代码的依赖包产生冲突。

Firefly非常注重功能的实用性,对于平时不常用的功能不会添加到Firefly当中,这样可以避免像其他开源框架那样过于臃肿。

个人认为保持代码的简洁非常重要,代码越少越容易阅读,修复bug也越容易。借用C.A.R. Hoare的名言:软件设计有两种方法:一种是尽可能地简单,这种设计明显没有什么缺陷;另一种是尽可能地复杂,这种设计没有明显的缺陷。

Firefly包含了哪些组件和模块?都有什么特性? Top

Firefly包含IOC/MVC框架、模板语言、HTTP服务器以及Common工具类四大模块:

  • IOC/MVC框架支持RESTful URL、拦截链、多视图渲染等特性。
  • 模板语言编译方式执行性能很好,支持条件选择、循环、自定义函数等操作。
  • 基于nio开发的Web服务器支持HTTP1.1协议的大部分特性,支持动态模板页面、静态文件,本地Session支持,也可以自己实现接口支持远程Session。
  • Common工具包里面有各种常用的工具类,比如:Json解析、异步日志、LRUConcurrentHashMap等。

相比其他框架(SSH、Nutz等),Firefly的特点是什么? Top

Firefly是一个Web开发框架,所有的功能都聚焦在Web开发上面,没有数据访问以及ORM功能。主要是考虑到面对互联网海量用户,关系型数据库不一定是数据存储的最佳选择,很多NoSQL数据库能直接支持对象存储。如果使用关系数据库个人更喜欢类似Apache DBUtil那样的工具类而不是ORM。

SSH和Nutz框架在功能上比Firefly要丰富的多,但是Firefly在提供了日常Web开发的大部分功能的情况下,相比SSH更轻量,使用更简单,性能也要好得多。自身还提供了HTTP服务器,不需要部署直接就能通过main函数启动,非常方便 :-)

Firefly的性能如何? Top

因为在互联网公司工作,我们的业务每天数亿PV,面对海量用户,所以平时开发程序也会对性能比较敏感。

开发Firefly的时候也会比较关注性能这块。Firefly能轻松跑满网卡流量,整体性能上比 Spring + Tomcat的组合快3倍。在我的MacBook上(双核2.3G)用Apache AB测试10w请求、100并发在3w req/s,同等硬件配置 Spring + Tomcat只能达到1.2w req/s。模板语言比FreeMarker快 1.5~2 倍,JSON序列化速度是Gson的4~8倍。

Firefly的学习成本? Top

有Spring使用经验的能直接上手,Firefly保留了很多Spring的使用习惯,而且比Spring更简单。

使用Firefly时需要注意哪些问题? Top

Firefly在使用自带的HTTP服务器时不支持JSP只能使用Firefly模板语言,在标准Java EE服务器中可以使用JSP。

采用什么开源协议?用户如何交流、反馈、参与贡献? Top

Firefly使用商业友好的Apache 2.0协议,可以直接在GitHub上发起pull request。

未来的开发计划? Top

最近研究了一下Jetty的SPDY实现,简单翻译了部分SPDY v3的文档,空闲时整理以后也许会放到网上吧:-)。

SPDY协议在每个请求上增加了id,这样就可以在一个TCP连接上并发的发起多个请求,充分利用IO多路复用的能力,提高了网络连接的利用率,这是HTTP1.1和Apache JK协议做不到的。

Firefly下个版本会支持SPDY协议以及HTTPS,然后开发一个SPDY proxy作为前端负载均衡和cache。另外Firefly的JSON解析器的功能还需要加强一下,会增加循环引用的序列化以及流式接口支持。

在开源过程中有哪些感悟?怎么看待国内的开源环境? Top

开发开源软件主要是靠兴趣来维持,开发Firefly之后对Web开发技术栈以及各种网络协议的理解会更深刻,自己实现一个框架和去看懂别人的代码还是有些区别的。

国内的开源环境比国外还是差得远吧,毕竟在国内的生活压力非常大,注重技术的公司也不是很多。根据马斯洛需求理论,只要大家的生活都过得好了,相信会有更多的人投入到开源软件的开发行列。
  • 大小: 123.8 KB


评论 共 87 条
57 楼 xujq 2013-01-11 21:35
约定优于配置
56 楼 hypercube1024 2013-01-11 19:00
flashing 写道
hypercube1024 写道
flashing 写道
所谓码农 写道
hypercube1024 写道
所谓码农 写道
简单就意味着能做的事情少了,tomcat在裸启时也只需要几百毫秒,我们不需要很快的启动速度,我们需要更快的开发速度与运行速度。

楼主能大致介绍一下你的“轮子”好在哪里吗?
你所提到的性能方面,比freemarker快的模板引擎比比皆是,而且可以很方便的替换,json的解析能和fastjson或jackson比吗?
另外你提到tomcat的并发,能否告知tomcat的版本和你的测试方法?
事实上提升性能的方法是多种多样的,为什么要拘泥于框架本身?



提升性能的方式是多种多样,但方法是想通的,如果静下心来把框架的性能做好,在业务开发的时候自然而然的会写出高效的代码。

事实上ssh一点也不慢,关键看你怎么用,struts2的各个组件都是可以替换的。我不否认你的技术实力,但我并没从你的框架上看到任何创意,而你的各个组件都可以找到更优秀的轮子,jar包依赖又怎样,有了maven这样的工具解决依赖还不简单?
关于Http服务器的测试,你的web服务器用的tomcat6.0,你觉得用你nio的http服务器和传统io模型的tomcat6比较合适吗?更何况tomcat比你的http服务强大许多!
关于模板引擎的测试,表面上你的模板引擎比freemarker快,可freemarker的指令集、表达式、宏哪样不比你的强?
说这么多,我想表达的是,
1.Jar包依赖并没有什么,它并不会增加你的工作量,也不会影响你的性能。它只会多占那么一点点空间。
2.测试要客观全面,测试报告要详细,比如你的测试逻辑就没列出来,tomcat+spring测试的响应内容的长度要多出几十字节,是否有用jsp页面?
3.如果要和别的框架比较,就要全面的比较,否则就是不公平的。
4.不要重复发明轮子,用别人优秀的东西并没有什么,除非你可以创造更好的。
5.乐于接受别人的批评,虽然对程序员来说代码就是自己的孩子。
6.ssh并没那么复杂,封装的好开发效率可以非常高,SSH的扩展性是极强的,修改ActionMapper策略完全可以实现与Firefly类似的效果甚至更好。
7.性能并不是那么重要,如果一味的追求性能,struts2也不会是今天的struts2。


8.即使你的东西性能更好,更nb,也得有人买单有团队或者公司维护才行,否则就是白扯。struts2其实代码质量很一般,但是用的人多,人也好招,spring、hibernate也一样。至于说ftl的解析性能。。。其实动小脑想想就能明白,如果不是为了添加宏和函数什么的,一个纯文本替换+一些基本逻辑的引擎,实现方法还能有什么巨大差异吗...我只吃楼上的大多数观点,这种所谓框架现在已经烂大街了,使用了除了给你的后来人留下一个莫名其妙难以维护的烂摊子,没有其他任何用处。还不如一个标准的ssh,谁都明白。


说到代码的维护问题,如果对于一个1-2W行代码的程序都无法驾驭的程序员,@flashing,如果是公司的老板,会招这样的人吗?

说到招人,一个仅仅会使用SSH而不知其所以然的人和一个不会SSH但基础不错且对编写程序有激情的人,后者更靠谱。


这纯抬杠,谁没事把激情拿来天天学和改造各种莫名其妙的底层框架,说白了关键技术就那么点玩意。而且你觉得1-2w行代码很少吗?这里面还全是各种处理逻辑。真有什么问题谁犯得上为这种选型擦屁股?

最后告诉你,如果我只需要几个码农,我就会找码农,仅仅会使用ssh而不知其所以然无所谓,有一两个明白的就足够了,其他人需要的是怎么做出东西来。

头两年这网站成天上首页的什么simpleframework,等等很多这种框架,你看看代码多久都没更新了没人维护了。我还记得这个框架因为偶尔会收到个邮件说我多久没去其论坛登录了。


对于1-2W行就那么点技术的代码都维护不了,还谈何去维护更多代码量的复杂业务逻辑。
55 楼 flashing 2013-01-11 16:19
hypercube1024 写道
flashing 写道
所谓码农 写道
hypercube1024 写道
所谓码农 写道
简单就意味着能做的事情少了,tomcat在裸启时也只需要几百毫秒,我们不需要很快的启动速度,我们需要更快的开发速度与运行速度。

楼主能大致介绍一下你的“轮子”好在哪里吗?
你所提到的性能方面,比freemarker快的模板引擎比比皆是,而且可以很方便的替换,json的解析能和fastjson或jackson比吗?
另外你提到tomcat的并发,能否告知tomcat的版本和你的测试方法?
事实上提升性能的方法是多种多样的,为什么要拘泥于框架本身?



提升性能的方式是多种多样,但方法是想通的,如果静下心来把框架的性能做好,在业务开发的时候自然而然的会写出高效的代码。

事实上ssh一点也不慢,关键看你怎么用,struts2的各个组件都是可以替换的。我不否认你的技术实力,但我并没从你的框架上看到任何创意,而你的各个组件都可以找到更优秀的轮子,jar包依赖又怎样,有了maven这样的工具解决依赖还不简单?
关于Http服务器的测试,你的web服务器用的tomcat6.0,你觉得用你nio的http服务器和传统io模型的tomcat6比较合适吗?更何况tomcat比你的http服务强大许多!
关于模板引擎的测试,表面上你的模板引擎比freemarker快,可freemarker的指令集、表达式、宏哪样不比你的强?
说这么多,我想表达的是,
1.Jar包依赖并没有什么,它并不会增加你的工作量,也不会影响你的性能。它只会多占那么一点点空间。
2.测试要客观全面,测试报告要详细,比如你的测试逻辑就没列出来,tomcat+spring测试的响应内容的长度要多出几十字节,是否有用jsp页面?
3.如果要和别的框架比较,就要全面的比较,否则就是不公平的。
4.不要重复发明轮子,用别人优秀的东西并没有什么,除非你可以创造更好的。
5.乐于接受别人的批评,虽然对程序员来说代码就是自己的孩子。
6.ssh并没那么复杂,封装的好开发效率可以非常高,SSH的扩展性是极强的,修改ActionMapper策略完全可以实现与Firefly类似的效果甚至更好。
7.性能并不是那么重要,如果一味的追求性能,struts2也不会是今天的struts2。


8.即使你的东西性能更好,更nb,也得有人买单有团队或者公司维护才行,否则就是白扯。struts2其实代码质量很一般,但是用的人多,人也好招,spring、hibernate也一样。至于说ftl的解析性能。。。其实动小脑想想就能明白,如果不是为了添加宏和函数什么的,一个纯文本替换+一些基本逻辑的引擎,实现方法还能有什么巨大差异吗...我只吃楼上的大多数观点,这种所谓框架现在已经烂大街了,使用了除了给你的后来人留下一个莫名其妙难以维护的烂摊子,没有其他任何用处。还不如一个标准的ssh,谁都明白。


说到代码的维护问题,如果对于一个1-2W行代码的程序都无法驾驭的程序员,@flashing,如果是公司的老板,会招这样的人吗?

说到招人,一个仅仅会使用SSH而不知其所以然的人和一个不会SSH但基础不错且对编写程序有激情的人,后者更靠谱。


这纯抬杠,谁没事把激情拿来天天学和改造各种莫名其妙的底层框架,说白了关键技术就那么点玩意。而且你觉得1-2w行代码很少吗?这里面还全是各种处理逻辑。真有什么问题谁犯得上为这种选型擦屁股?

最后告诉你,如果我只需要几个码农,我就会找码农,仅仅会使用ssh而不知其所以然无所谓,有一两个明白的就足够了,其他人需要的是怎么做出东西来。

头两年这网站成天上首页的什么simpleframework,等等很多这种框架,你看看代码多久都没更新了没人维护了。我还记得这个框架因为偶尔会收到个邮件说我多久没去其论坛登录了。
54 楼 hypercube1024 2013-01-11 15:56
flashing 写道
所谓码农 写道
hypercube1024 写道
所谓码农 写道
简单就意味着能做的事情少了,tomcat在裸启时也只需要几百毫秒,我们不需要很快的启动速度,我们需要更快的开发速度与运行速度。

楼主能大致介绍一下你的“轮子”好在哪里吗?
你所提到的性能方面,比freemarker快的模板引擎比比皆是,而且可以很方便的替换,json的解析能和fastjson或jackson比吗?
另外你提到tomcat的并发,能否告知tomcat的版本和你的测试方法?
事实上提升性能的方法是多种多样的,为什么要拘泥于框架本身?



提升性能的方式是多种多样,但方法是想通的,如果静下心来把框架的性能做好,在业务开发的时候自然而然的会写出高效的代码。

事实上ssh一点也不慢,关键看你怎么用,struts2的各个组件都是可以替换的。我不否认你的技术实力,但我并没从你的框架上看到任何创意,而你的各个组件都可以找到更优秀的轮子,jar包依赖又怎样,有了maven这样的工具解决依赖还不简单?
关于Http服务器的测试,你的web服务器用的tomcat6.0,你觉得用你nio的http服务器和传统io模型的tomcat6比较合适吗?更何况tomcat比你的http服务强大许多!
关于模板引擎的测试,表面上你的模板引擎比freemarker快,可freemarker的指令集、表达式、宏哪样不比你的强?
说这么多,我想表达的是,
1.Jar包依赖并没有什么,它并不会增加你的工作量,也不会影响你的性能。它只会多占那么一点点空间。
2.测试要客观全面,测试报告要详细,比如你的测试逻辑就没列出来,tomcat+spring测试的响应内容的长度要多出几十字节,是否有用jsp页面?
3.如果要和别的框架比较,就要全面的比较,否则就是不公平的。
4.不要重复发明轮子,用别人优秀的东西并没有什么,除非你可以创造更好的。
5.乐于接受别人的批评,虽然对程序员来说代码就是自己的孩子。
6.ssh并没那么复杂,封装的好开发效率可以非常高,SSH的扩展性是极强的,修改ActionMapper策略完全可以实现与Firefly类似的效果甚至更好。
7.性能并不是那么重要,如果一味的追求性能,struts2也不会是今天的struts2。


8.即使你的东西性能更好,更nb,也得有人买单有团队或者公司维护才行,否则就是白扯。struts2其实代码质量很一般,但是用的人多,人也好招,spring、hibernate也一样。至于说ftl的解析性能。。。其实动小脑想想就能明白,如果不是为了添加宏和函数什么的,一个纯文本替换+一些基本逻辑的引擎,实现方法还能有什么巨大差异吗...我只吃楼上的大多数观点,这种所谓框架现在已经烂大街了,使用了除了给你的后来人留下一个莫名其妙难以维护的烂摊子,没有其他任何用处。还不如一个标准的ssh,谁都明白。


说到代码的维护问题,如果对于一个1-2W行代码的程序都无法驾驭的程序员,@flashing,如果是公司的老板,会招这样的人吗?

说到招人,一个仅仅会使用SSH而不知其所以然的人和一个不会SSH但基础不错且对编写程序有激情的人,后者更靠谱。
53 楼 flashing 2013-01-11 15:10
ray_linn 写道
flashing 写道
所谓码农 写道
hypercube1024 写道
所谓码农 写道
简单就意味着能做的事情少了,tomcat在裸启时也只需要几百毫秒,我们不需要很快的启动速度,我们需要更快的开发速度与运行速度。

楼主能大致介绍一下你的“轮子”好在哪里吗?
你所提到的性能方面,比freemarker快的模板引擎比比皆是,而且可以很方便的替换,json的解析能和fastjson或jackson比吗?
另外你提到tomcat的并发,能否告知tomcat的版本和你的测试方法?
事实上提升性能的方法是多种多样的,为什么要拘泥于框架本身?



提升性能的方式是多种多样,但方法是想通的,如果静下心来把框架的性能做好,在业务开发的时候自然而然的会写出高效的代码。

事实上ssh一点也不慢,关键看你怎么用,struts2的各个组件都是可以替换的。我不否认你的技术实力,但我并没从你的框架上看到任何创意,而你的各个组件都可以找到更优秀的轮子,jar包依赖又怎样,有了maven这样的工具解决依赖还不简单?
关于Http服务器的测试,你的web服务器用的tomcat6.0,你觉得用你nio的http服务器和传统io模型的tomcat6比较合适吗?更何况tomcat比你的http服务强大许多!
关于模板引擎的测试,表面上你的模板引擎比freemarker快,可freemarker的指令集、表达式、宏哪样不比你的强?
说这么多,我想表达的是,
1.Jar包依赖并没有什么,它并不会增加你的工作量,也不会影响你的性能。它只会多占那么一点点空间。
2.测试要客观全面,测试报告要详细,比如你的测试逻辑就没列出来,tomcat+spring测试的响应内容的长度要多出几十字节,是否有用jsp页面?
3.如果要和别的框架比较,就要全面的比较,否则就是不公平的。
4.不要重复发明轮子,用别人优秀的东西并没有什么,除非你可以创造更好的。
5.乐于接受别人的批评,虽然对程序员来说代码就是自己的孩子。
6.ssh并没那么复杂,封装的好开发效率可以非常高,SSH的扩展性是极强的,修改ActionMapper策略完全可以实现与Firefly类似的效果甚至更好。
7.性能并不是那么重要,如果一味的追求性能,struts2也不会是今天的struts2。


8.即使你的东西性能更好,更nb,也得有人买单有团队或者公司维护才行,否则就是白扯。struts2其实代码质量很一般,但是用的人多,人也好招,spring、hibernate也一样。至于说ftl的解析性能。。。其实动小脑想想就能明白,如果不是为了添加宏和函数什么的,一个纯文本替换+一些基本逻辑的引擎,实现方法还能有什么巨大差异吗...我只吃楼上的大多数观点,这种所谓框架现在已经烂大街了,使用了除了给你的后来人留下一个莫名其妙难以维护的烂摊子,没有其他任何用处。还不如一个标准的ssh,谁都明白。


弄得那么麻烦,用个django 或者 rails就好了

ray_linn 写道
flashing 写道
所谓码农 写道
hypercube1024 写道
所谓码农 写道
简单就意味着能做的事情少了,tomcat在裸启时也只需要几百毫秒,我们不需要很快的启动速度,我们需要更快的开发速度与运行速度。

楼主能大致介绍一下你的“轮子”好在哪里吗?
你所提到的性能方面,比freemarker快的模板引擎比比皆是,而且可以很方便的替换,json的解析能和fastjson或jackson比吗?
另外你提到tomcat的并发,能否告知tomcat的版本和你的测试方法?
事实上提升性能的方法是多种多样的,为什么要拘泥于框架本身?



提升性能的方式是多种多样,但方法是想通的,如果静下心来把框架的性能做好,在业务开发的时候自然而然的会写出高效的代码。

事实上ssh一点也不慢,关键看你怎么用,struts2的各个组件都是可以替换的。我不否认你的技术实力,但我并没从你的框架上看到任何创意,而你的各个组件都可以找到更优秀的轮子,jar包依赖又怎样,有了maven这样的工具解决依赖还不简单?
关于Http服务器的测试,你的web服务器用的tomcat6.0,你觉得用你nio的http服务器和传统io模型的tomcat6比较合适吗?更何况tomcat比你的http服务强大许多!
关于模板引擎的测试,表面上你的模板引擎比freemarker快,可freemarker的指令集、表达式、宏哪样不比你的强?
说这么多,我想表达的是,
1.Jar包依赖并没有什么,它并不会增加你的工作量,也不会影响你的性能。它只会多占那么一点点空间。
2.测试要客观全面,测试报告要详细,比如你的测试逻辑就没列出来,tomcat+spring测试的响应内容的长度要多出几十字节,是否有用jsp页面?
3.如果要和别的框架比较,就要全面的比较,否则就是不公平的。
4.不要重复发明轮子,用别人优秀的东西并没有什么,除非你可以创造更好的。
5.乐于接受别人的批评,虽然对程序员来说代码就是自己的孩子。
6.ssh并没那么复杂,封装的好开发效率可以非常高,SSH的扩展性是极强的,修改ActionMapper策略完全可以实现与Firefly类似的效果甚至更好。
7.性能并不是那么重要,如果一味的追求性能,struts2也不会是今天的struts2。


8.即使你的东西性能更好,更nb,也得有人买单有团队或者公司维护才行,否则就是白扯。struts2其实代码质量很一般,但是用的人多,人也好招,spring、hibernate也一样。至于说ftl的解析性能。。。其实动小脑想想就能明白,如果不是为了添加宏和函数什么的,一个纯文本替换+一些基本逻辑的引擎,实现方法还能有什么巨大差异吗...我只吃楼上的大多数观点,这种所谓框架现在已经烂大街了,使用了除了给你的后来人留下一个莫名其妙难以维护的烂摊子,没有其他任何用处。还不如一个标准的ssh,谁都明白。


弄得那么麻烦,用个django 或者 rails就好了


以后做应用还得是脚本语言,编译语言写库,这是大趋势。
我现在用grails,正在准备看django。
52 楼 youarestupid 2013-01-11 14:48
flashing 写道
flashing 写道
hypercube1024 写道
ray_linn 写道
没啥用处吧,这种东西现在都快烂大街了


诺基亚烂大街的时候,Apple还要推出iPhone。

这个和手机根本两码事,谁真用了这玩意才缺德,回头自己不干了拍拍屁股从公司走了,给后来维护的留下个莫名其妙的框架的莫名其妙的烂摊子,不挨骂才怪。


当然自己做个东西自己用,这个无所谓了。

对于这类“非大公司非apache”出品的开源框架,你一旦采用了,就要有自己维护整套框架到底的决心。

如果这类“个人级别”的开源框架真的有它自己的独特优势,总体上,我还是比较赞同使用它们的:自己花时间维护一下又如何?
51 楼 flashing 2013-01-11 14:42
flashing 写道
hypercube1024 写道
ray_linn 写道
没啥用处吧,这种东西现在都快烂大街了


诺基亚烂大街的时候,Apple还要推出iPhone。

这个和手机根本两码事,谁真用了这玩意才缺德,回头自己不干了拍拍屁股从公司走了,给后来维护的留下个莫名其妙的框架的莫名其妙的烂摊子,不挨骂才怪。


当然自己做个东西自己用,这个无所谓了。
50 楼 flashing 2013-01-11 14:41
hypercube1024 写道
ray_linn 写道
没啥用处吧,这种东西现在都快烂大街了


诺基亚烂大街的时候,Apple还要推出iPhone。

这个和手机根本两码事,谁真用了这玩意才缺德,回头自己不干了拍拍屁股从公司走了,给后来维护的留下个莫名其妙的框架的莫名其妙的烂摊子,不挨骂才怪。

49 楼 ray_linn 2013-01-11 14:40
flashing 写道
所谓码农 写道
hypercube1024 写道
所谓码农 写道
简单就意味着能做的事情少了,tomcat在裸启时也只需要几百毫秒,我们不需要很快的启动速度,我们需要更快的开发速度与运行速度。

楼主能大致介绍一下你的“轮子”好在哪里吗?
你所提到的性能方面,比freemarker快的模板引擎比比皆是,而且可以很方便的替换,json的解析能和fastjson或jackson比吗?
另外你提到tomcat的并发,能否告知tomcat的版本和你的测试方法?
事实上提升性能的方法是多种多样的,为什么要拘泥于框架本身?



提升性能的方式是多种多样,但方法是想通的,如果静下心来把框架的性能做好,在业务开发的时候自然而然的会写出高效的代码。

事实上ssh一点也不慢,关键看你怎么用,struts2的各个组件都是可以替换的。我不否认你的技术实力,但我并没从你的框架上看到任何创意,而你的各个组件都可以找到更优秀的轮子,jar包依赖又怎样,有了maven这样的工具解决依赖还不简单?
关于Http服务器的测试,你的web服务器用的tomcat6.0,你觉得用你nio的http服务器和传统io模型的tomcat6比较合适吗?更何况tomcat比你的http服务强大许多!
关于模板引擎的测试,表面上你的模板引擎比freemarker快,可freemarker的指令集、表达式、宏哪样不比你的强?
说这么多,我想表达的是,
1.Jar包依赖并没有什么,它并不会增加你的工作量,也不会影响你的性能。它只会多占那么一点点空间。
2.测试要客观全面,测试报告要详细,比如你的测试逻辑就没列出来,tomcat+spring测试的响应内容的长度要多出几十字节,是否有用jsp页面?
3.如果要和别的框架比较,就要全面的比较,否则就是不公平的。
4.不要重复发明轮子,用别人优秀的东西并没有什么,除非你可以创造更好的。
5.乐于接受别人的批评,虽然对程序员来说代码就是自己的孩子。
6.ssh并没那么复杂,封装的好开发效率可以非常高,SSH的扩展性是极强的,修改ActionMapper策略完全可以实现与Firefly类似的效果甚至更好。
7.性能并不是那么重要,如果一味的追求性能,struts2也不会是今天的struts2。


8.即使你的东西性能更好,更nb,也得有人买单有团队或者公司维护才行,否则就是白扯。struts2其实代码质量很一般,但是用的人多,人也好招,spring、hibernate也一样。至于说ftl的解析性能。。。其实动小脑想想就能明白,如果不是为了添加宏和函数什么的,一个纯文本替换+一些基本逻辑的引擎,实现方法还能有什么巨大差异吗...我只吃楼上的大多数观点,这种所谓框架现在已经烂大街了,使用了除了给你的后来人留下一个莫名其妙难以维护的烂摊子,没有其他任何用处。还不如一个标准的ssh,谁都明白。


弄得那么麻烦,用个django 或者 rails就好了
48 楼 flashing 2013-01-11 14:38
所谓码农 写道
hypercube1024 写道
所谓码农 写道
简单就意味着能做的事情少了,tomcat在裸启时也只需要几百毫秒,我们不需要很快的启动速度,我们需要更快的开发速度与运行速度。

楼主能大致介绍一下你的“轮子”好在哪里吗?
你所提到的性能方面,比freemarker快的模板引擎比比皆是,而且可以很方便的替换,json的解析能和fastjson或jackson比吗?
另外你提到tomcat的并发,能否告知tomcat的版本和你的测试方法?
事实上提升性能的方法是多种多样的,为什么要拘泥于框架本身?



提升性能的方式是多种多样,但方法是想通的,如果静下心来把框架的性能做好,在业务开发的时候自然而然的会写出高效的代码。

事实上ssh一点也不慢,关键看你怎么用,struts2的各个组件都是可以替换的。我不否认你的技术实力,但我并没从你的框架上看到任何创意,而你的各个组件都可以找到更优秀的轮子,jar包依赖又怎样,有了maven这样的工具解决依赖还不简单?
关于Http服务器的测试,你的web服务器用的tomcat6.0,你觉得用你nio的http服务器和传统io模型的tomcat6比较合适吗?更何况tomcat比你的http服务强大许多!
关于模板引擎的测试,表面上你的模板引擎比freemarker快,可freemarker的指令集、表达式、宏哪样不比你的强?
说这么多,我想表达的是,
1.Jar包依赖并没有什么,它并不会增加你的工作量,也不会影响你的性能。它只会多占那么一点点空间。
2.测试要客观全面,测试报告要详细,比如你的测试逻辑就没列出来,tomcat+spring测试的响应内容的长度要多出几十字节,是否有用jsp页面?
3.如果要和别的框架比较,就要全面的比较,否则就是不公平的。
4.不要重复发明轮子,用别人优秀的东西并没有什么,除非你可以创造更好的。
5.乐于接受别人的批评,虽然对程序员来说代码就是自己的孩子。
6.ssh并没那么复杂,封装的好开发效率可以非常高,SSH的扩展性是极强的,修改ActionMapper策略完全可以实现与Firefly类似的效果甚至更好。
7.性能并不是那么重要,如果一味的追求性能,struts2也不会是今天的struts2。


8.即使你的东西性能更好,更nb,也得有人买单有团队或者公司维护才行,否则就是白扯。struts2其实代码质量很一般,但是用的人多,人也好招,spring、hibernate也一样。至于说ftl的解析性能。。。其实动小脑想想就能明白,如果不是为了添加宏和函数什么的,一个纯文本替换+一些基本逻辑的引擎,实现方法还能有什么巨大差异吗...我只吃楼上的大多数观点,这种所谓框架现在已经烂大街了,使用了除了给你的后来人留下一个莫名其妙难以维护的烂摊子,没有其他任何用处。还不如一个标准的ssh,谁都明白。
47 楼 所谓码农 2013-01-11 13:16
hypercube1024 写道
所谓码农 写道
简单就意味着能做的事情少了,tomcat在裸启时也只需要几百毫秒,我们不需要很快的启动速度,我们需要更快的开发速度与运行速度。

楼主能大致介绍一下你的“轮子”好在哪里吗?
你所提到的性能方面,比freemarker快的模板引擎比比皆是,而且可以很方便的替换,json的解析能和fastjson或jackson比吗?
另外你提到tomcat的并发,能否告知tomcat的版本和你的测试方法?
事实上提升性能的方法是多种多样的,为什么要拘泥于框架本身?



提升性能的方式是多种多样,但方法是想通的,如果静下心来把框架的性能做好,在业务开发的时候自然而然的会写出高效的代码。

事实上ssh一点也不慢,关键看你怎么用,struts2的各个组件都是可以替换的。我不否认你的技术实力,但我并没从你的框架上看到任何创意,而你的各个组件都可以找到更优秀的轮子,jar包依赖又怎样,有了maven这样的工具解决依赖还不简单?
关于Http服务器的测试,你的web服务器用的tomcat6.0,你觉得用你nio的http服务器和传统io模型的tomcat6比较合适吗?更何况tomcat比你的http服务强大许多!
关于模板引擎的测试,表面上你的模板引擎比freemarker快,可freemarker的指令集、表达式、宏哪样不比你的强?
说这么多,我想表达的是,
1.Jar包依赖并没有什么,它并不会增加你的工作量,也不会影响你的性能。它只会多占那么一点点空间。
2.测试要客观全面,测试报告要详细,比如你的测试逻辑就没列出来,tomcat+spring测试的响应内容的长度要多出几十字节,是否有用jsp页面?
3.如果要和别的框架比较,就要全面的比较,否则就是不公平的。
4.不要重复发明轮子,用别人优秀的东西并没有什么,除非你可以创造更好的。
5.乐于接受别人的批评,虽然对程序员来说代码就是自己的孩子。
6.ssh并没那么复杂,封装的好开发效率可以非常高,SSH的扩展性是极强的,修改ActionMapper策略完全可以实现与Firefly类似的效果甚至更好。
7.性能并不是那么重要,如果一味的追求性能,struts2也不会是今天的struts2。
46 楼 paladin1988 2013-01-11 11:26
hypercube1024 写道
paladin1988 写道
zhangdaiscott 写道
hypercube1024 写道
freezingsky 写道
轻量级的框架越来越多,但是大多都是个人或者三二个人的团队开发的,如果放到项目中应用的话,难免用户还是会有疑虑。当然不是说国内开源的不好,但是从事实来看,更多人还是愿意采用风险较小且被众人认可的东西。


即使使用国外开源软件,如果对源码不太熟悉只是停留在会用的阶段,同样有风险,除非愿意花钱购买技术支持

我比较同意你的意见,现在的框架已经很多,倒不如把时间放在如何封装上,更好的提高代码质量,提高快发效率


两位说的不错,想想也是。国外成熟的框架也就这么几个。而且都是全球都比较流行的。按照iteye这样的速度,中国软件的速度,一年出10个开源框架,那么5年之后,中国的软件将会。。。呵呵,你懂得。。。

把时间花在更好的设计系统,重构,封转以及提高代码质量上或许收获更多吧。。

不是为中国的事业泼冷水,请大家正确的看待这些开源框架。。


现在有很多用于搭建SSH环境的自动化工具,出现这些自动代码生成器的本身就说明了SSH的复杂性。不论是开发自动化工具,还是重新构建一个框架,本质上都是为了提高开发效率。 技术日新月异,与其不停的追逐国外那些流行的技术,不如真真正正吃透Web开发的技术栈才能从根本上提高业务开发的水平


恩,是呀。。。高手投出的小石子比菜鸟的神兵利器更厉害。
45 楼 hypercube1024 2013-01-11 11:02
paladin1988 写道
zhangdaiscott 写道
hypercube1024 写道
freezingsky 写道
轻量级的框架越来越多,但是大多都是个人或者三二个人的团队开发的,如果放到项目中应用的话,难免用户还是会有疑虑。当然不是说国内开源的不好,但是从事实来看,更多人还是愿意采用风险较小且被众人认可的东西。


即使使用国外开源软件,如果对源码不太熟悉只是停留在会用的阶段,同样有风险,除非愿意花钱购买技术支持

我比较同意你的意见,现在的框架已经很多,倒不如把时间放在如何封装上,更好的提高代码质量,提高快发效率


两位说的不错,想想也是。国外成熟的框架也就这么几个。而且都是全球都比较流行的。按照iteye这样的速度,中国软件的速度,一年出10个开源框架,那么5年之后,中国的软件将会。。。呵呵,你懂得。。。

把时间花在更好的设计系统,重构,封转以及提高代码质量上或许收获更多吧。。

不是为中国的事业泼冷水,请大家正确的看待这些开源框架。。


现在有很多用于搭建SSH环境的自动化工具,出现这些自动代码生成器的本身就说明了SSH的复杂性。不论是开发自动化工具,还是重新构建一个框架,本质上都是为了提高开发效率。 技术日新月异,与其不停的追逐国外那些流行的技术,不如真真正正吃透Web开发的技术栈才能从根本上提高业务开发的水平
44 楼 hypercube1024 2013-01-11 10:56
所谓码农 写道
简单就意味着能做的事情少了,tomcat在裸启时也只需要几百毫秒,我们不需要很快的启动速度,我们需要更快的开发速度与运行速度。

楼主能大致介绍一下你的“轮子”好在哪里吗?
你所提到的性能方面,比freemarker快的模板引擎比比皆是,而且可以很方便的替换,json的解析能和fastjson或jackson比吗?
另外你提到tomcat的并发,能否告知tomcat的版本和你的测试方法?
事实上提升性能的方法是多种多样的,为什么要拘泥于框架本身?



提升性能的方式是多种多样,但方法是想通的,如果静下心来把框架的性能做好,在业务开发的时候自然而然的会写出高效的代码。
43 楼 lonelybug 2013-01-11 08:56
国人有时候太追求名利这两样东西了,为了开源而开源,很奇怪的现象。
42 楼 paladin1988 2013-01-11 00:04
zhangdaiscott 写道
hypercube1024 写道
freezingsky 写道
轻量级的框架越来越多,但是大多都是个人或者三二个人的团队开发的,如果放到项目中应用的话,难免用户还是会有疑虑。当然不是说国内开源的不好,但是从事实来看,更多人还是愿意采用风险较小且被众人认可的东西。


即使使用国外开源软件,如果对源码不太熟悉只是停留在会用的阶段,同样有风险,除非愿意花钱购买技术支持

我比较同意你的意见,现在的框架已经很多,倒不如把时间放在如何封装上,更好的提高代码质量,提高快发效率


两位说的不错,想想也是。国外成熟的框架也就这么几个。而且都是全球都比较流行的。按照iteye这样的速度,中国软件的速度,一年出10个开源框架,那么5年之后,中国的软件将会。。。呵呵,你懂得。。。

把时间花在更好的设计系统,重构,封转以及提高代码质量上或许收获更多吧。。

不是为中国的事业泼冷水,请大家正确的看待这些开源框架。。
41 楼 computerzgf 2013-01-10 17:40
感觉不错!!! 继续搞。。
40 楼 zhangdaiscott 2013-01-10 13:59
hypercube1024 写道
freezingsky 写道
轻量级的框架越来越多,但是大多都是个人或者三二个人的团队开发的,如果放到项目中应用的话,难免用户还是会有疑虑。当然不是说国内开源的不好,但是从事实来看,更多人还是愿意采用风险较小且被众人认可的东西。


即使使用国外开源软件,如果对源码不太熟悉只是停留在会用的阶段,同样有风险,除非愿意花钱购买技术支持

我比较同意你的意见,现在的框架已经很多,倒不如把时间放在如何封装上,更好的提高代码质量,提高快发效率
39 楼 wzjin 2013-01-10 12:30
musicbox95351 写道
牛人们多多合作吧,项目要发展不是一个人能完成的吧。

其实这个主意不错,各自未战不好,没有前途。lz这种框架用于12306应该比较合适吧。
38 楼 youarestupid 2013-01-10 12:29
isaiahzhong 写道
             国内的开源项目,我去网上下载的以后,都说什么开源,结果根本不是开源,而且怎么说呢?里面的代码都是大把的报错,根本没有提供完整的源码,国内生活压力大,没办法去奉献自己的技术,毕业老婆孩子要活命

其实我是支持据不开源的,全部开源,在中国只会产生一个结果:大把的商业公司把你的项目改一下就拿去卖钱。
反而是部分开源更现实,既能和大家分享技术,共同进步,又能打击那些投机倒把的商人。
37 楼 youarestupid 2013-01-10 12:23
首先支持开源精神,
然后,你的设计目的很好,代码也干净,
问题是,我觉得你没必要自己实现http容器,真的想拿你这个框架做项目的人,是不会用你的web容器的。
36 楼 youarestupid 2013-01-10 12:21
你的设计目的很好,代码写得也干净,但是我觉得自带http容器完全没必要,真的想拿你这个框架做项目的人,是不会选择你的web容器的。
35 楼 musicbox95351 2013-01-10 11:51
牛人们多多合作吧,项目要发展不是一个人能完成的吧。
34 楼 shaode2012 2013-01-10 11:35
楼主我很想下载下来看看,貌似都不行,文件不存在...纳闷...
33 楼 hypercube1024 2013-01-10 00:05
chaos.wql 写道
一堆坑坑哇哇的代码堆在一起就成框架了..............
没看出来有啥技术思想。
确实简单.........无用

坑坑洼洼的才是代码,左右对齐是七言绝句。我知道七言绝句很有思想,@chaos.wql何不来两句,大湿
32 楼 chaos.wql 2013-01-09 22:50
一堆坑坑哇哇的代码堆在一起就成框架了..............
没看出来有啥技术思想。
确实简单.........无用
31 楼 aitixiaozi 2013-01-09 21:56
技术是一点点革新,进步的。有创新就是好的

我支持你!鄙视那些**的人。。。
30 楼 wzjin 2013-01-09 17:05
这样的框架用于互联网公司应该不错,ssh毕竟太重了。作者应该是很关注细节追求完美的人,很多已经已经有的技术部分都愿意去重新实现,这样工作量会大很多,如果是公司工作内容的一部分那倒是没有什么,不过也要公司愿意公开出来;如果不是工作内容的一部分,那就很繁重了。
29 楼 ansjsun 2013-01-09 16:28
hypercube1024 写道
ray_linn 写道
hypercube1024 写道
ray_linn 写道
没啥用处吧,这种东西现在都快烂大街了


诺基亚烂大街的时候,Apple还要推出iPhone。


那也得给点证据证明这个是 Apple,不是山寨MTK


由于这个世界上没有两个完全相同的东西,所以无法证明这个是什么,当然也无需证明。

楼主不要和这种人争论了...想用就用..不用拉到..多一个不多..死一个不少...
28 楼 hypercube1024 2013-01-09 16:15
ray_linn 写道
hypercube1024 写道
ray_linn 写道
没啥用处吧,这种东西现在都快烂大街了


诺基亚烂大街的时候,Apple还要推出iPhone。


那也得给点证据证明这个是 Apple,不是山寨MTK


由于这个世界上没有两个完全相同的东西,所以无法证明这个是什么,当然也无需证明。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics