Top ↑
无匹配结果,请重新输入
写在前面的话
Jul 17, 2017 12:24:33 PM
作者: zozoh

Java 为什么不能是一门敏捷的语言呢?

起码 Java 是一门优美的编程语言,经过10多年的发展,它几乎已经被应用到了任何地方,在高端的企业服务器上, 手持设备的芯片里,车载设备,智能家电甚至火星车上。在功能上,它广泛的涉足到了软件应用的各个领域,现在, 它开始向桌面和图像处理方面频频发力。 从历史上看它是一门成熟的语言,从现在来看,它是世界上使用最广泛的 语言,从将来看,它是最有前途的语言(现在它依然充满了活力和创新)。

但是,在越来越流行的 Web 开发领域, Java 似乎逐渐露出了疲态。是的,脚本语言们卷起了一场热潮,似乎已经 快可以用“革命”两个字来形容了。而Java,被“脚本小子们”诟病最多的便是 低下的开发效率

但是,真的是这样的吗?

从本质上来说, Java 语言本身为程序员提供的帮助只有两点,一是语言的语法,二是内置的类库。 现在 从事 Web 开发,大多是采用第三方的类库(或者说是框架),比如流行的 SSH。 所谓 Java 在 Web 开发的低效,不妨这样说比较贴切一些: 采用第三方类库进行开发比较低效

为了证明这一点,我写作了 Nutz, 它是一组轻便小型的框架的集合, 各个部分可以被独立使用。 而 Nutz 的目标 就是

在力所能及的情况下,最大限度的提高Web开发人员的生产力

是的,提高生产力是这个框架唯一的目标。 就像 Java 设计之初,考虑最多的是程序员的易用性和运行时效率 的权衡, Nutz 也是这样。希望通过 Nutz, Java 的开发人员可以获得更快的开发速度,更少的代码量,并且这些 以不损害运行时效率为前提。

本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用。

Nutz 可以做什么?

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

它所有的功能均不强制依赖第三方 jar 包

这就意味着:

  • 如果一个 Web 应用,你在 WEB-INF/lib 下只 需要放置一个 nutz.jar 就够了
  • 当然你要使用连接池,数据库驱动, websocket等功能,还需要自行添置 jar 包。

支持的环境

  • JDK5+, 推荐JDK8
  • 任意SQL数据库,例如MySQL,Oracle,SqlServer等等
  • 任意支持servlet 2.5的web容器, 推荐Tomcat 8.5+/Jetty 9.2+

Nutz 为谁而设计?

  • 如果你觉得 Hibernate 控制比较繁琐,iBatis 编写SQL又比较麻烦,Nutz.Dao 专为你设计。
  • 如果你觉得在多个服务器部署或者修改 Spring 配置文件很麻烦,Nutz.Ioc 专为你设计
  • 如果你觉得直接写 XML 配置文件很麻烦,可视化编辑器又没控制感,Nutz.Mvc 专为你设计
  • 如果你觉得 JSON 转换很麻烦(要写超过一行以上的代码),Nutz.Json 专为你设计
  • 如果你觉得 Java 语法不如 Ruby 便捷, Nutz.Castor 以及 Nutz.Lang 专为你设计
  • 如果你以前根本没接触过 SSH ,只使用 JDBC 编程, 整个 Nutz 专门为你设计

Nutz 的质量

截至到现在为止,Nutz 的 JUnit 用例覆盖率大概是这样的

并且这个数字还在不断增加。

在一个功能告一段落以后,我通常会花1-2个晚上在一边咂着廉价的红酒一边颇有成就感的书写JUnit测试。 通常我会用 JUnit 把我自己击溃,紧接着的那几天我都努力让那个该死红条变绿,之后,又想方设法写出 新的Junit测试试图让它再度变红。并且我还要保证所做的修改不能让代码膨胀,这的确让我死掉了不少脑 细胞。这些测试中,不仅涵盖各种功能上的测试,也涵盖了一些跨越线程的测试。在以后,我会针对代码执 行的效率加入一些新的测试。

我能保证的就是Nutz的代码是小巧的,以及通过尽可能多的 JUnit 测试。但是所有我能做的也就只是 这些了,找出剩下的那些代码上的缺陷,就应该交给 Nutz 第一批“小白”们了。“小白”们,加油!我 支持你们...

小白: 是小白鼠的简称。小白鼠是实验室的最爱,实验室是产生新东西的地方。

Nutz 的未来

Nutz 是一个新兴的开源项目

它没有过去,只有未来

我可以保证,在未来,Nutz 的代码 绝对不会膨胀。 所有的功能设计的出发点就是最大限度给予程序员实惠。

你完全可以让这个项目变得更加美好

我使用的时候如果出现问题怎么办?

  1. Nutz社区论坛,有问必答,秒回复
  2. githubGit@OSC)上报告 issue
  3. 或者加入 QQ 群

本页面的文字允许在知识共享 署名-相同方式共享 3.0协议GNU自由文档许可证下修改和再使用。