“在Scala中思考”,如果我有Java/C++背景?

2022-09-01 21:22:40

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

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

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


答案 1

Scala和Java之间的主要区别在于Scala对函数式编程的使用。

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

在学习方面,我会从Twitter Scala学校开始,然后一旦你意识到这一点,我就推荐这本书《Scala中的函数式编程》。我认为这两个资源将指导你朝着FP的方向发展,而不是用新的语法编写Java风格的程序。然后,在 OOP/FP 量表中找到适合手头问题的正确位置。


答案 2

推荐