如果我有Java/C++背景,那么"在Scala中思考"?

Ami*_*mit 23 java architecture scala

我熟悉用Java开发服务器端应用程序,但现在我想开始使用Scala.你能描述一下必要的范式转变吗?以下是一些可能有助于您确定答案的问题:

  1. 如何以不同方式构建和设计Web应用程序?最大的区别是什么?
  2. 我应该停止做什么/使用什么; 我应该开始做什么/使用呢?
  3. 有客户端考虑/限制吗?

我不是在寻找Java和Scala之间的详细比较.

tri*_*rNZ 9

Scala和Java之间的关键区别在于Scala使用函数式编程.

  1. 对于Web应用程序,您将使用不同的框架.Play是目前最受欢迎的风味.它感觉类似于其他框架中的MVC工作,但更倾向于功能纯度(尽管大多数Play应用程序远非纯粹)
  2. 您应该停止考虑改变内存中的字段并考虑不可变值的数据流.var当你可以使用a 时,不要使用a val.循环将主要被更高阶的构造替换,如mapfold.避免使用空值,Option而是使用s代替.
  3. 假设一个Web客户端,没有.除非您想将Scala编译为JS.然后同样的东西适用.

明智地学习,我会从Twitter Scala学校开始,然后一旦你理解了这一点,我推荐使用Scala中的Functional Programming一书.我认为这两个资源将指导您在FP方向,而不是使用新语法编写Java风格的程序.然后,找到适合手头问题的OOP/FP量表中的正确位置.