Kev*_*ght 28 java migration scala scala-java-interop
在将现有Java代码库逐步迁移到Scala时,需要注意哪些最重要的要点和解决方法?具有(可能非常长)的中间阶段,其中两种语言都在使用中.
我正在考虑的事情是:
Lan*_*dei 27
Scala不喜欢:
Java不喜欢:
最初(即迁移的第一阶段),我想说你不想用难以使用的Java scala结构导出API(接口/公共方法等).
在实践中,我会将此限制为导出任何特定于scala的内容(同样,我在这里谈论迁移的第一阶段):
那又是什么呢?那么,类的内部(私有方法,字段等)可以转换为使用scala构造和库类.
如果您有任何API(特别是您打算迁移的面向客户端的API),我会在Scala中重新设计它们; 最初使用Java后端.然后我会慢慢吃掉中间的代码.
在你强调的要点中,我同意Scala 的不可变范式和Java 的可变范式不能很好地混合.我发现的其他几点问题较少.
范式不匹配的另一个要点是如何转换您拥有的任何并发代码(即使用的代码java.util.concurrent).当然,这可以按原样转换,但问题是是否基于围绕actor或STM的锁定替换并发模型.在任何一种情况下,这也可能是完全重新设计,而不是转换本身.
| 归档时间: |
|
| 查看次数: |
3454 次 |
| 最近记录: |