有人在使用Project Lombok进行大规模生产系统吗?它如何影响您的编译过程(即它是否进行两次编译,减慢速度,使其更脆弱)?
2 回答
Lombok 不进行两次编译。从技术上讲,它会“减慢”编译过程,因为除了编译时发生的常见事情之外,它还会运行,但与解析阶段、较低阶段和翻译阶段相比,lombok 几乎没有注册。
主要的脆弱性问题是,在一个既不是(A)哑(即记事本或差异查看器)、(B)eclipse、(C)netbeans 或(D)的编辑器中编辑 lombokified 代码通过运行 javac 得到所有的大脑(例如带有java插件的vim),它会很烂。如果这不适用,那么样板代码的减少只会使您的代码不那么脆弱。
免责声明:我是 lombok 的两个主要开发者之一 :)
我在为大型 Java 和 Swing UI 应用程序开发 Google Web Toolkit (GWT) 前端时使用了 Project Lombok。因为我没有使用@SneakyThrows,所以我在运行时不需要 lombok.jar。
使用 delombok 行为,我提供了一个 2stage 编译过程。Lombok 带注释的 java 代码=> Java 代码=> Javascript
就大型 Java 项目的适用性而言,对 Web 前端的代码进行分解只需不到 2 秒,其余的 gwt 编译过程大约需要 50 秒(这些指标取自开发人员工作站)。
本周我们正在考虑是否为应用程序的其余部分提供 Lombok 支持。构建主应用程序大约需要 1 小时(包括单元测试、安装程序等,构建在带有 2 个英特尔 E5450 的盒子上)。