【发布时间】:2011-02-21 09:43:56
【问题描述】:
有人在使用Project Lombok 进行大规模生产系统吗?它如何影响您的编译过程(即它是否进行两次编译、减慢速度、使其更脆弱)?
【问题讨论】:
-
一个相关问题:“使用 Project Lombok 安全吗?” stackoverflow.com/questions/3852091/…
标签: java code-generation boilerplate lombok
有人在使用Project Lombok 进行大规模生产系统吗?它如何影响您的编译过程(即它是否进行两次编译、减慢速度、使其更脆弱)?
【问题讨论】:
标签: java code-generation boilerplate lombok
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 行为,我提供了一个 2 阶段编译过程。 Lombok 注解的 java 代码 => Java 代码 => Javascript
就大型 Java 项目的适用性而言,对 Web 前端的代码进行分解需要不到 2 秒,其余的 gwt 编译过程大约需要 50 秒(这些指标取自开发人员工作站)。
本周我们正在考虑是否为应用程序的其余部分提供 Lombok 支持。构建主应用程序大约需要 1 小时(包括在装有 2 个英特尔 E5450 的盒子上构建的单元测试、安装程序等)。
【讨论】: