小编典典

成为合格的Scala程序员是否需要您成为合格的Java程序员?

java

从美学的角度来看,我是Scala的忠实拥护者,并且喜欢将其投入打字系统和库之类的许多概念性工作。

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

这给我带来了一些问题:

  • 从未成为Java程序员的我对Java标准库或其他流行的库(例如Apache Commons)不熟悉或不满意。
  • 我在Java领域的google-fu很弱。很难知道要寻找什么-大量的无关紧要的Java初级编程教程使问题变得更加严重。

不过,在这一点上,我不确定我是否应该咬紧牙关,尝试通过Java找到最快,最全面的教程来赶上Java的20年发展,还是不确定继续尝试逐步修补我的Java是否合理我在scala周围徘徊时的知识。

斯卡拉领导我们之间提供的任何智慧将不胜感激。

PS我毫无疑问会熟悉Scala语法,我对函数式编程和scala社区中的范例感到非常满意和满意。但是,程序员的能力不仅取决于自己的自学能力,而且还取决于他从其他人那里学习和采用工具与技能的能力。


阅读 238

收藏
2020-12-03

共1个答案

小编典典

您应该采取一种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. 最后,谷歌随机或只是自己构建。

这有点荒唐可笑,但这是我在过去十二年中使用Java以后对第三方库的成熟性和稳定性的印象。

2020-12-03