Scala

Play做Build的小坑儿一枚

在看《Play for Scala》,跟着做点小练习。

小坑儿

第二章给出了一个比较全面的Web应用,这个应用在显示详情页面的时候,需要依赖外部库,所以需要更新构建脚本。书里提到的是用project/Build.scala这个文件,结果出现编译错误,大意是Build.scala应该是有对象或类的定义的,明显是把它当成普通的Scala文件了,这很奇怪。

A quick web application with SBT

In the chapter 6 of Scala in action, the author decides to show something concrete. The example is a web application that provide Kanban service. It’s called weKanban. In order to get this example to run, there’s something to do for project setup, Scala web development and database development and so on. Here I would like to briefly describe the procedure to get it working for current environment, because some libraries used by the example are outdated in the book.

Why Twitter Uses Java

Rails在Web应用快速开发方面几乎很少有框架能与之媲美,但是Rails的性能和系统架构的友好性和Java平台相比可能还是存在一定的劣势。大多数的Web应用,Rails是足能抵挡的,比如现在Github在用Rails,而Twitter以前也主要用Rails。但是Twitter毕竟是一个数一数二的高并发大流量的网站,所以它总会对性能有更高的要求。下面的译文段落来自InfoQ中的一篇访谈,主要是讲Twitter是为什么迁移部分代码和服务到Java平台的。

Scala patterns (#6) - Kestrel combinator

Kestrel combinator并不是一种传统的设计模式,这个叫法是在1985年出版的To Mock the Mockingbird这本书里提到的,可以参考Scala in action作者引用的资源地址详细了解这种模式,其中的例子使用的是Ruby语言。我理解这种模式的意义主要是产生副作用,即在不改变原有类或对象定义的情况下,使用一段附加函数体来达到产生副作用的目的。

Scala patterns (#5) - the Loan Pattern

按照Scala in action的说法,Scala中的借贷模式(Loan Pattern)相当于Java/C++中的模板方法(Template Method)模式。很遗憾,由于同样的原因,书中所附的引用链接已失效(囧),所以
只能从网上参考借贷模式的详解。我认为Knoldus的这篇博文理解借贷模式写得非常不错,把这种模式的适用场景写得很清楚:

Scala patterns (#4) - Strategy

策略模式是一种经典的设计模式,简而言之,就是做同一件事情,但在不同的场景中(或针对不同的对象)采用不同的算法。由于Scala简洁的语法和对高阶函数的支持,相比Java写出的代码会更加精简。

下面给出几个例子来感受一下Scala中策略模式的写法,首先是Scala in action书中的例子。