如果您不知道 Project Lombok 可以帮助解决 Java 的一些烦恼,例如 使用注释生成 getter 和 setter, 甚至是 简单的 JavaBean,例如使用 @Data 生成。它真的可以帮助我,尤其是在 50 个不同的事件对象中,你有多达 7 个不同的字段需要用 getter 构造和隐藏。我可以用它删除近一千行代码。
但是,我担心从长远来看,这会是一个遗憾的决定。当我提到它时,将在 ##Java Freenode
频道中爆发 flamewars,提供代码片段会使可能的帮助者感到困惑, 人们会抱怨缺少 JavaDoc ,而未来的提交者可能只是将其全部删除。我真的很喜欢积极的一面,但我担心消极的一面。
那么:在任何项目(无论大小)中使用 Lombok 是否安全?正面影响值得负面影响吗?
原文由 TheLQ 发布,翻译遵循 CC BY-SA 4.0 许可协议
听起来您似乎已经决定 Project Lombok 为您提议的新项目提供显着的技术优势。 (从一开始就明确,我对龙目岛项目没有任何特别的看法,不管怎样。)
在某些项目(开源或其他方式)中使用 Project Lombok(或任何其他改变游戏规则的技术)之前,您需要确保项目利益相关者同意这一点。这包括开发人员和任何重要用户(例如正式或非正式赞助商)。
你提到了这些潜在的问题:
简单的。忽略/不参与 flamewars,或者干脆避免提及龙目岛。
如果项目策略是使用 Lombok,那么可能的帮助者将需要习惯它。
那是他们的问题。头脑正常的人不会试图将他们组织的源代码/文档规则严格应用于第三方开源软件。项目团队应该可以自由设置适合所用技术的项目源代码/文档标准。
( 跟进- Lombok 开发人员认识到,不为合成的 getter 和 setter 方法生成 javadoc 注释是一个问题。如果这是您项目的主要问题,那么一种替代方法是创建并提交 Lombok 补丁来解决这个问题。 )
那没开!如果商定的项目策略是使用 Lombok,那么无故取消 Lombok 代码的提交者应该受到惩罚,并在必要时撤销他们的提交权。
当然,这是假设您已经获得了利益相关者的支持……包括开发人员。它假设你准备好为你的事业辩护,并适当地处理不可避免的反对声音。