java - “Thinking in Scala"如果我有 Java/C++ 背景?

标签 java scala architecture

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

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

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

最佳答案

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

  1. 对于 Web 应用程序,您将使用不同的框架。 Play是目前最流行的口味。它感觉类似于其他框架中的 MVC 工作,但更倾向于功能纯度(尽管大多数 Play 应用远非纯粹)
  2. 您应该停止考虑内存中的可变字段,而应该考虑不可变值的数据流。当您可以使用 val 时,不要使用 var。循环将主要被 mapfold 等高阶结构所取代。避免使用空值,而是使用 Options。
  3. 假设是网络客户端,不。除非你想把 Scala 编译成 JS。然后同样的事情也适用。

明智地学习,我会从 Twitter Scala school 开始,那么一旦你明白了,我推荐这本书Functional Programming in Scala .我认为这两个资源将引导您朝着 FP 方向发展,而不是使用新语法编写 Java 风格的程序。然后,在 OOP/FP 量表中找到适合手头问题的合适位置。

关于java - “Thinking in Scala"如果我有 Java/C++ 背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31041577/

相关文章:

java - 带有 gridview 的 recyclerview 用不同的索引号重复项目两次

java - 我在使用这个数组时遇到问题,它不断返回越界错误,为什么?

Scala - 这个 map + case 语法是什么?

mobile - Uber、Lyft 的架构会是什么样的?

database - 具有不同发布周期的两个应用程序是否应该共享一个数据库

java - Android Studio 2.3 更新后加载项目时出错

scala - 传递路径依赖类型无法保留依赖值

generics - Scala - 如何执行 "assertThrows"方法?

javascript - RequireJS:两个模块可以相互依赖吗?

java - 通过 JMX 访问 Apache ActiveMQ 抛出异常 Broker Not Found 5.10