设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Java高效开发框架Nutz:是SSH的轮子?还是新神器?

2013-12-17 09:49| 发布者: joejoe0332| 查看: 4511| 评论: 0

摘要: Nutz是一个优秀的国产开源项目,它是一组轻便小型的框架的集合,各个部分可以被独立使用,据作者称,Nutz的使命就是“解决第三方类库在Web项目开发中的低效问题”,而Nutz也被称作是“除了SSH之外的另一个选择”。 ...

  Nutz是一个优秀的国产开源项目,它是一组轻便小型的框架的集合,各个部分可以被独立使用,据作者称,Nutz的使命就是“解决第三方类库在Web项目开发中的低效问题”,而Nutz也被称作是“除了SSH之外的另一个选择”


  Nutz最初由zozoh(张志昊)于2009年发起,随着项目的发展,越来越多的开发者参与贡献(提交代码、撰写文档、测试bug等),后来逐渐形成了一个1000人左右的社区(主要成员)。


  Nutz项目官网:http://nutzam.com/


  CSDN记者此次采访了Nutz开发者社区中的几位主要开发者,请他们来谈谈Nutz这一项目的具体情况。



   zozoh(张志昊)   Wendal(陈振诚)   胖五(武佩文)    JuqKai(朱凯)     Ywjno(杨文佳) 


CSDN:Nutz 能做什么?设计目标是什么?

zozohNutz是一组轻便小型的框架的集合,可以做MVC、数据库访问、JSON转换、IoC等。目标是比市面上其他的类库设计的好用那么一点点而已。具体来说,包含的组件有:

  • Dao:针对JDBC的薄封装,事务模板,无缓存
  • Ioc:JSON 风格的配置文件,声明时切片支持
  • Mvc:注解风格的配置,内置多文件上传功能
  • Json:解析和渲染
  • Castors:Java 对象类型转换
  • Lang:更简洁的 Java 函数以及更丰富的反射支持
  • Aop:轻便快速的切面编程支持
  • Plugin:轻便的插件机制
  • Resource:资源扫描

Nutz的目标就是在力所能及的情况下,最大限度的提高Web开发人员的生产力,并且这些以不损害运行时效率为前提。

胖五:做Web开发比较方便,当然像Nutz的Dao、JSON等功能在其他地方也很适用的。


CSDN:Nutz项目发起的初衷、经过?

zozoh当时做这个项目是因为业界对Java在Web开发中效率的质疑。其实,经过10多年的发展,Java已经相当成熟了,现在从事Web开发,大多是采用第三方的类库(框架),比如流行的SSH,所谓Java在Web开发中的低效,不妨说是由于采用第三方类库进行开发比较低效。

于是我就写了点代码,发到Google Code上去,然后发个了新闻(Nutz 框架 1.a.15 发布,全部用例通过 Oracle/Psql/MySql 测试),当时也没用很大的企图心做的,毕竟它就是个小类库而已。

Wendal然后我就“上当受骗”了,被吸引进这个项目。

Ywjno我是到了1.b.4x版的时候才参与进来的。

zozohWendal是那时候唯一的一个只关注Nutz代码质量的用户,其他什么都不关注。那时候有些人给我建议,说怎么发展云云,然后我说你们说得对,然后就给了Wendal管理员权限,实际上现在Wendal应该是Nutz权限最高的一个,我也小心不能总潜水,怕他踢我 -_-!

JuqKai我在某次看见了Nutz的新闻觉得很新奇就开始研究它的源码在里面学到了很多东西然后就开始按我的思路改一些地方刚开始的时候老是被纠正反正就是想法很好代码很臭。


CSDN:你们是如何设计Nutz的?遵循的原则是什么?

zozoh我希望Nutz框架对使用者的态度不是“要这样编程序!”而是“我能为你做些什么?”。它存在的意义是在保证足够的效率的基础上,努力帮大家处理一些编程工作中很烦琐的问题,让编程者用最少的代码做最多的事情,同时控制功能不要膨胀。

我希望一个工具或者框架能够做到:替我做的,做到最好;不替我做的,别挡我的路。Nutz努力地在理解现在的程序员主人真正喜欢什么,又讨厌什么。比如:

  • ORM对于开发者最大意义是省却了拼装SQL的烦恼,因此 Nutz.Dao 就替你拼 SQL。 实际上,它是 Hibernate 和 iBatis 的一个折中。
  • Ioc 的意义在于解耦,但Spring 的 XML 配置语法过于繁琐,而新的基于Java注解的 Ioc 框架(比如 Guice)实际上就是把耦合写在另外的一堆 Java 文件里,并且部署后似乎很难修改。所以 Nutz.Ioc 默认选用了 JSON(又是一个折中:书写不麻烦,部署以后可以随时修改)
  • 至于MVC,程序员最起码需要做的就是HTTP 与 Java 之间的映射,Nutz.Mvc力图做到刚刚够用,只负责粘合M-V-C,关于权限、日志、验证、UI组件的支持统统没有。同时也不限制你的扩展。
  • Nutz努力让配置,约定的形式最自然

胖五:“write less do more”,Nutz有着大量的utility方法藏在org.nutz.lang包下简直就是Java开发必备武器库呀。

Wendal好玩、好用。

JuqKai简单方便实用。


CSDN:谈谈Nutz项目发起与第1个版本发布之间的过程?遇到了哪些问题?是如何解决的?

zozoh我是在2008年12月开始写,2009年3月出了第一个版本。由于不是什么高精尖的技术,所有基本没遇到啥问题。

在编码测试发布方面,没什么特别的,主要是我们会强调,如果有一个Issue被报了,尽量先写一个测试用例把它重现,然后再修复。

因为Nutz编译的时候几乎没什么依赖,所以我们构建项目的时候没用Maven,但是Wendal还是在Maven库里提交了Nutz,以便依赖Nutz的项目比较方便集成编译。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部