在阅读slow compiler and Martin Odersky's response之后,我们非常担心使用Scala语言启动大规模ERP产品(针对特定行业的大量资金)。
根据以下回复进行编辑:拆分成不同的模块是一种选择。但这就是人们应该在任何大型项目中做/计划的方式。这对我们来说无法解决。
Martin自己承认(请参见上面的链接)Java编译器比Scala快了近10倍(差不多两年前)。这对我们来说是可怕的,我们无法在Dev的机器上构建(例如当我们进行干净的构建时)等待几个小时。马丁明确表示,未来不会有任何奇迹。
我们唯一的选择是使用连续编译。我们的IDE是IntelliJ Idea。
非常感谢一些指导。
谢谢你 MK
答案 0 :(得分:2)
编译速度绝对不是Scala的优势之一,但是你可以通过将一个大型项目构造为一组具有树状依赖性的较小项目来限制它对你的影响(例如核心实用程序;核心库仅依赖于核心库)在那些实用程序;依赖于核心和外部数据库库的数据库接口;等等)。然后在大多数开发周期中,您可以假装您正在使用较小的项目并为相对罕见的事件保留较大的构建。
我最大的项目相当小(在5分钟的编译时间内; 40k LOC),但即便如此,我还是以这种方式进行细分,这意味着我很少需要等待超过一分钟才能完成任何事情。它需要一些纪律来维护,并且需要一些重构(因为我将常见的代码块从树的叶子移动到快速重新编译,而不是复制它),但对我来说效果很好。