# 013.现场.快用Scala(2月)
不等不靠,有囧有料。终日乾乾,或跃在渊。
「快用scala」第2期:写业务逻辑,写测试用例,
给SpringBatch执行。深入scala,读anorm源码。
@史荣久 / 2015-02-22 / CC-BY-SA-3.0
## 观看视频
* [优酷视频(被转720P)](http://v.youku.com/v_show/id_XODk4MDA2NTQw.html)
* [腾讯视频(被转720P)](http://v.qq.com/page/e/r/h/e0147kurmrh.html)
* [百度网盘(原始1080P)](http://pan.baidu.com/share/link?shareid=3935315343&uk=1380913564&fid=947382626103785)
## 内容摘要
* 第一坑,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。
* 读源码,下手写代码,是升级最快的道路。
## 参考资源
* [模式匹配](http://hongjiang.info/scala-pattern-matching-1/)
* [for表达式的背后](http://hongjiang.info/scala-pitfalls-3/)
* [Java泛型](http://hongjiang.info/java-generics)
* [PECS法则](http://stackoverflow.com/questions/2723397)
* [Override val vs def](http://stackoverflow.com/questions/19642053)
## 欢迎围观
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
----
题图:白孔雀,人工繁育的蓝孔雀的变品。全身洁白无瑕,像穿着雪白婚纱端庄美少女,但,雌孔雀们并不这么认为
原文:
http://www.moilioncircle.com/release/013.live.rush-scala-2m.html
分享到:
相关推荐
2. **函数式编程**:Scala支持函数式编程,可以使用高阶函数、柯里化和惰性求值等技术来处理数据。在AoC的问题中,这种风格常常能够使解决方案更为简洁且高效。 3. **集合库**:Scala的集合库强大而全面,提供了...
Akka是一个用Scala编写的工具包,专门用于构建并发、分布式、并具有容错能力的应用程序。在反应式编程领域,Akka框架尤为重要,尤其是它的actor模型,能够帮助开发人员管理并发任务和状态,减少共享状态带来的复杂性...
9张卡9 Cards是Android的开源家庭启动器,其代码全部用Scala编写。 它提供了将应用程序组织到集合中的功能,可以随意随意快速,轻松地访问更常用的应用程序。 自2019年1月起,9卡牌项目现在被放弃,该应用程序在...
本压缩包"javaApi_sparkhiveAPI_hbaseAPI.zip"包含了2019年8月至10月期间针对这些技术的Java版API实现,以及与Spark相关的Hive和HBase API。以下是关于这些技术的详细知识: 1. **Java API for Hive**: - **Hive*...
20. 工具和互用性:Kotlin提供了与Java、Scala等其他语言的互用性支持,并可与Maven、Gradle等构建工具集成。 21. FAQ:文档中还包含了常见问题解答和与Java及Scala的对比。 在与Android的交互方面,2017年5月17日...
- **简介**:DeepLearning4J是用Java和Scala编写的开源分布式神经网络库,是Skymind Intelligence Layer的一部分。 - **特点**:支持Java和Scala编程语言、分布式计算能力强。 - **应用场景**:企业级应用、分布式...
2. **多语言支持**:Spark提供了Scala、Java、Python和R等多种语言的API,使得开发者可以根据自己的需求和偏好选择合适的编程语言进行开发。 3. **Spark SQL**:Spark 1.1.1版本中,Spark SQL是Spark处理结构化数据...
Apache Spark是一个开源的并行数据分析框架,它是由加州大学伯克利分校的AMPlab开发,并在2013年捐赠给了Apache软件基金会,不久之后的2014年2月,Spark成为了Apache的顶级项目。Databricks是由开发Spark的同一组...
Play Framework 是一个开源的Web应用框架,主要使用Java和Scala语言开发,它的设计目标是让开发者可以快速地构建高效、可测试和可扩展的Web应用。Gradle Play插件则是为了方便开发者使用Gradle构建Play Framework...
该框架提供了一套即用型的用户界面组件,并允许开发者自行创建新的组件。其核心优势在于使用便捷性、可重用性、可扩展性以及满足大型企业应用需求。 Vaadin Framework 8的官方文档是学习该技术的必备资料。这份文档...
Spark提供了多种API,包括Scala、Java、Python和R,使得开发人员可以方便地进行大规模数据处理。在这个“Spark使用案例”中,我们将探讨Spark在大数据分析中的应用,以及如何利用它进行高效的数据处理。 首先,...
**并行计算和分布式系统**的发展也影响了语言设计,如CUDA和OpenMP支持GPU并行计算,而分布式计算框架如Hadoop和Spark则需要语言(如Java和Scala)支持跨节点通信和任务调度。 随着云计算、物联网和人工智能的崛起...