西安办公室的«Scala热情workshop»已经开始三周了,经历了感性介绍、基础概念串讲、在线习题讲解之后,将于本周正式进入结对实践。有些同学可能对scala也感兴趣,但由于种种原因没有参加完前面的课,现在想参加的话还来得及吗?
答案是没问题!
因为前几节实践课,要实现的功能都是极简单的。我们把功能分解成了一个个极小的任务,并且会结对编程,还有现场指导,都可以帮助你尽快上手。当然,如果真的有兴趣,还是希望能先看一下Scala方面的书籍,比如《快学Scala》,《Scala编程》等书。
Scala热情workshop已经开了三周,每周一节课。我们先回顾一下这几节课做了什么,让没有完全参加的同学知道自己错过了什么。
第一节课是“感性认识”。任小君同学以简单的代码,展示了scala中一些与众不同、独具魅力的特性;张锦文同学以生动的图片展示了一下scala类型系统中的协变、逆变;李鹏同学讲述了Scala初学者对它的一些认识上的误区。
第二节课是“基础概念”的串讲。Scala相对于Java等语言,更加偏学术一些,里面有很多基础的概念,如果没有理解清楚(或者不知道它们的存在),在后面的学习中很容易卡住。所以李鹏同学在一开始,就把这些概念(如class, type, subtype)等串讲了一遍,让大家先对它们有一些印象,然后在以后的实践中有获得更深刻的认识。
第三节课是“习题讲解”课。在前两节课的课余,我们实现了一个简陋的scala在线做题网站(shuzu.org),里面布置了几道题目,绝大部分同学在这节课前都完成了。这节课里,我们对大家的答案进行了讲解,找出其中的优缺点。最后,我们讨论了如何开始真正的实践课。
以shuzu.org的功能为蓝本,通过“分story”,“结对开发”,“代码Review”,“CI构建部署”,这些与我们日常工作相似的方式,让大家在尽量真实的环境中学习和使用scala,从中找到一些好的scala实践,可以直接应用到未来的项目开发中。
我们把整体功能划分为五个单独的模块,其中有四个以micro service的方式提供服务,另一个通过对它们的调用组装成最终的网站。
五个模块的描述如下:
这将会是一个较长期(三个月左右)的workshop,主要是因为scala本身的特性很多,需要较长时间的练习才能掌握。我希望能在这个workshop结束后,参与的同学都能达到独立开发Scala项目的要求。
如果你中途出差或者很忙,也可自己领卡做,但一定要找人帮你review一下。
我们做卡的最主要的目的是为了让大家能更好的学习和思考Scala,所以代码Review是重要的一环。我们将在每次workshop中Review大家的代码,每张卡做完后,都必须找人review才能进入Done。鼓励大家对代码进行重构,追求更好的代码。
找Pair -> 拿卡(或自建卡) -> 讨论清楚需求 -> 开发(TDD) -> 找人Review(改进) -> Git Push -> CI过 -> Heroku可正常访问 -> Ready for Check -> Done
https://github.com/tw-scala-workshop
每个项目的README中都写了CI和Demo的地址,可自行查看。Jenkins帐号找我要。