codecamp

1.b.36 发行注记

1.b.36 发行注记

Hi, 大家好,又是我。

接着本次发布的机会,我们要 highlight 一位开发者 -- juqkai

在他和 Wendal同学前后鼓动下, 我们终于毅然的重写了Mvc的核心加载逻辑

现在的 Mvc 更加灵活,至于如何灵活,大家可以读读 这篇文档

同时,我发现 juqkai 同学也是一位对代码的品质有执着追求的同学,比如他 毅然的重构了 Nutz 的 JsonParsing,记得当时我写这个类时, 就是一个大函数,一个长长的 switch...case,因为我想:"JSON 这点简单的东东,还用弄个什么结构吗?"。 但是后来我发现代码越来越长, 也犹豫过:"要不要重构一下,起码弄几个私有函数嘛。"。 但是后来想:"算了,反正长也不过 400行。我还要留点时间看火影的好 ^_^"

但是,我这点懒散被目光如炬的 juqkai 的同学发现了,他挺身而出,完成了我一直想做但可耻的没有做的事情。实话说,这种精神 已经感动我好几个礼拜了。 喂神马!喂神马!又出现一个执着于代码品质的提交者涅?

这版 Nutz 经过这次重构,解决了很多 Mvc 方面潜在的问题。 这时,似乎大家又把目光投向了 Dao。 恩,是的,我们打算重构一下它。 彻底的重构。

有些人可能会担心,你们这么乱搞,代码的正确性如何保证啊? 我们基本不太担心,我们的代码质量现在基本由 600 多个 JUnit 来保证。 每当有人报 Issue,我们会尽可能添加 JUnit 来重现。 我记得在早些时候,我认为如果项目的 JUnit 到了 1000 个,那么代码的质量 应该是坚若磐石的。现在我们可以说,Nutz 差不多是一块 65% 的磐石。 即使我们肆无忌惮的重构,它的质量也不太会发生什么大的变化。 所以,很有可能在之后的1-2个版本,我们会重构 Dao.

问题修复

  • Issue 204 Mirror表达式(嵌套属性的支持) by jiongs753
  • Issue 350 实现更优雅的URL by wesnow
  • Issue 354 Mvc:是否可以在执行ActionFilter之前进行参数适配,并将适配后的参数数组作为传入ActionFilter by landraxee
  • Issue 381 关于上传文件正则表达式匹配可以支持的文件名报错的问题 by axhack
  • Issue 382 能否考虑将DefaultEntityMaker中的哪些私有的方法改为protected的? by a357857613@qq.com
  • Issue 384 换成 JSON 字符串时,u转义有误 by fjayblue
  • Issue 388 Json: 多线程的时候,转换时间类型到字符串会出现错误 by liaojiaohe
  • Issue 389 Cnd拼条件时使用not in,生成的SQL文不正确 by pangwu86
  • Issue 392 配置正确的url路径却进不到对应的Action by pangwu86
  • Issue 393 Feature: Please support variant in the locale message by 袁青云
  • Issue 394 路径参数最好定义成包装类型 by wesnow
  • Issue 396 处理异常信息的时候出现异常 by fjayblue
  • Issue 397 El.eval在某些算式中出现的问题 by ywjno.dev
  • Issue 399 WebResourceScan.list NullPointerException by jiongs753
  • Issue 404 FailProcessor 异常时不会在控制台打印信息 by juqkai
  • Issue 411 WebResourceScan 不能扫描 classpath 下面的 jar 包. by Json.Shen

质量

共通过了 664 个单元测试用例,代码覆盖率达到 (按line计算)

Nutz.Dao 经测试在如下数据库上可以工作正常

文档

主要贡献者名单

贡献的种类:

  • 问题: 给项目的问题列表汇报一个上的问题,并且该问题被本次发布包括
  • 博客: 在本版本开发期间,写过关于 Nutz 的文章,并被 推荐列表收录
  • 代码: 提交过至少一个修订
  • Demo: 为 Demo Site 提交过代码
  • 文档: 提交过文档,在讨论区发帖或者通过文档上的留言指出现有文档存在的问题
  • 测试: 发布前,参与测试周发布人给出的任务

如有遗漏,请提醒我们 ^_^

贡献列表,我已经写了一个小程序,根据 Issue 列表来自动统计...

贡献者问题博客支持代码示例文档测试
A357857613O------
AxhackO------
FjayblueO------
Json.ShenO------
JuqkaiO--O--O
LandraxeeO------
LiaojiaoheO------
Pangwu86O------
WendalOOOO--O
WesnowO------
Ywjno.devO------
zozohOOOO-OO
天行健O------
袁青云O------

另外,很多朋友都在:

回答新手的问题,我们现在只能根据印象草草统计,贡献列表非常不完善。 我们正在想办法,争取在不远的将来,能记录下来大家每一点一滴的付出 ^_^!

欢迎访问官网,以获取 最新的快照版 和 用户手册

1.b.37 发行注记
1.b.35 发行注记
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

表达式引擎

maplist结构

图像处理小军刀

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }