锐力易思▼ 2015▼ 快用 java scala test anorm

R013.现场.快用Scala(2月)

不等不靠,有囧有料。终日乾乾,或跃在渊。

「快用scala」第2期:写业务逻辑,写测试用例,
给SpringBatch执行。深入scala,读anorm源码。

@史荣久 / 2015-02-22 / CC-BY-SA-3.0

观看视频

内容摘要

  • 第一坑,mysql的tinyint(1),anorm与JDBC有差异。
  • 第二坑,nullable字段的get和set。
  • 第三坑,IDEA的scala插件升级带来的烦恼。
  • 技巧:jdbc执行多条sql。勿过度使用,以免sql注入。
  • 有囧:sql汉字乱码:服务器指定或客户端协商编码。
  • OSOP:面向stackoverflow的程序开发。
  • scalatest的测试用例,更简洁高效。
  • jdbc batch执行更快,anorm的batch执行。
  • java泛型的PECS法则。java数组默认是协变的。
  • 尾递归,可被优化为循环。加注解,当不被优化时报错。
  • trait的def 可以被 def,val,lazy val, object 实现。
  • implicit隐士(这么称呼更准),隐士函数,隐士参数。
  • 隐士自动出现:类型不符,方法没有,方法类型不符。
  • 隐士所在范围:当前作用域,源或目标类型的伴生对象。
  • 隐士不会出现:能直接编译,非多层转换,没有二义性。
  • case 很强大,源码中到处可以读到。
  • scala类型很强大,逆变,协变,上下界常见到。
  • for会被展开为map,flatMap,foreach和filter。
  • 读源码,下手写代码,是升级最快的道路。

参考资源

欢迎围观

if (you.accept(MoilionCircle.SPIRIT)) {
    if(you.haveADL()){
        MoilionCircle we = you.search(MoilionCircle.SLOGAN);
        we.welcome(you);
    }
    if(you.share(this)){
        We.thank(you);
        We.mayFind7Moilion();
    }
}

后记

「第三坑,IDEA的scala插件」最终是升级IDEA解决了。
视频中的版本是:idea IC 14.0.2,scala 1.1.3
升级后的版本是:idea IC 14.0.3,scala 1.3.3
升级后,play!工程不显示工程目录的问题,也解决了。

升级需谨慎,当然也有好处:)决心再试升级,是因为:
一是,强迫症,有提示不点吧,真闹心。
二是,StackOverflow上说这是个bug,升级就好了。
– 2015-03-06

《R013.现场.快用Scala(2月)》 「快用scala」第2期:写业务逻辑,写测试用例,给SpringBatch执行。深入scala,读anorm源码。
题图:白孔雀,人工繁育的蓝孔雀的变品。全身洁白无瑕,像穿着雪白婚纱端庄美少女,但,雌孔雀们并不这么认为 :D