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