java - 作为一个称职的 scala 程序员是否需要你成为一个称职的 java 程序员?

标签 java scala libraries

我在美学上是 Scala 的忠实粉丝,并且喜欢将许多概念性工作投入到诸如其类型系统和库之类的东西中。

但是,当我开始对 Scala 进行修补(并且看到我的一些同事在修补它)时,我发现自己不得不挖掘越来越多的 Java 知识(尤其是在库方面)。

这给我带来了一些问题:

  • 我从未做过 Java 程序员,对 Java 标准库或其他流行库(如 Apache Commons)不熟悉或不熟悉。
  • 我在 Java 领域的 google-fu 很弱。很难知道要搜索什么 - 大量不相关或初级的 Java 编程新手教程加剧了这个问题。

但在这一点上,我不确定我是否应该硬着头皮尝试找到最快、最全面的 Java 之旅,以 catch 20 年的 Java 发展,或者继续尝试是否合理当我在 scala 中闲逛时,逐步修补我的知识。

我们中的 scala 负责人能提供的任何智慧都将不胜感激。

附: 我对自己熟悉 Scala 语法的能力毫不怀疑,而且我对函数式编程和 scala 社区中的范例非常满意和满意。但程序员的能力不仅取决于一个人自学的能力,还取决于一个人向他人学习和采用其他工具和技能的能力。

最佳答案

您应该采用 lazy 方法来学习 Java。在需要时学习它。

在我看来,很多旧的 Java 知识已经过时,很多新教程都是多余的。例如,您当然不想为 Java 过时的 Collections 烦恼。许多基于 Java 的框架可以安全地忽略。并且可以安全地绕过重量级 JavaEE 堆栈,直到您被迫使用其中的一部分。

Java 中的许多常见模式在 Scala 中要简单得多,前者需要大量样板代码。核心逻辑应该始终在 Scala 中实现。我相信您可以直接在 Scala 中完成大部分工作,并且只需要在构建 Swing 或与 Spring 集成等时深入研究 Java。

关于选择和使用 Java 库,我个人的指导方针是:

  1. 如果 Spring 可以做到,请使用 Spring
  2. 如果 Spring 太重,就使用 Spring 使用的。
  3. 如果 Spring 做不到,请查看 github 项目
  4. 如果 github 上没有任何内容,请检查 Apache 项目
  5. 如果 Apache 没有任何内容,请检查 sourceforge(t)。
  6. 最后,Google 随机或自行构建。

这有点儿戏,但在过去 12 年从事 Java 工作后,我对第三方库的成熟度和稳定性的印象是。

关于java - 作为一个称职的 scala 程序员是否需要你成为一个称职的 java 程序员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4230746/

相关文章:

java签名验证

java - @Schedule 不在固定时间触发Service

java - 从 lambda 表达式中的方法返回值

java - Android studio 使用代码为按钮设置十六进制颜色值

scala - Play 子项目不编译

scala - Intellij 13 和导入 SBT 项目

ubuntu - 加载共享库时出错 : libX11. so.6

linux - 用校验和标记共享库

c++ - 如何使用 CHOLMOD 将元素添加到三元组矩阵?

scala - 如何使用复杂的嵌套结构修改Spark Dataframe?