当前位置: 首页 > 面试题库 >

使用龙目岛计划安全吗?

娄利
2023-03-14
问题内容

如果您不知道Project
Lombok
可以通过诸如生成带有注释的getter和setter之类的东西,甚至通过诸如@Data生成之类的简单JavaBean来解决Java的某些烦恼。它确实可以为我提供帮助,尤其是在50个不同的事件对象中,您最多需要构造7个不同的字段并使用getter将其隐藏。我可以用它删除几乎一千行代码。

但是,我担心从长远来看,这将是一个令人遗憾的决定。##Java Freenode当我提到它时,Flamewars将在该频道中爆发,提供的代码片段将使可能的帮助者感到困惑,人们将抱怨缺少JavaDoc,将来的提交者可能仍然将其全部删除。我真的很喜欢正面的东西,但我担心负面的东西。

因此:在任何大小的项目中使用Lombok是否安全?正面影响值得负面影响吗?


问题答案:

听起来您已经决定Lombok项目为您提出的新项目提供了重要的技术优势。(从一开始就很清楚,我对Lombok项目并没有特别的看法。)

在某些项目(开源或其他明智方式)中使用Project
Lombok(或任何其他改变游戏规则的技术)之前,需要确保项目利益相关者对此表示同意。这包括开发人员,以及任何重要的用户(例如正式或非正式的赞助者)。

您提到了以下潜在问题:

当我提到它时,Flamewars将在## Java Freenode频道中爆发,

简单。忽略/不参加火焰大战,或者干脆不提龙目岛。

提供代码片段会混淆可能的助手,

如果项目策略是使用Lombok,那么可能的助手将需要习惯它。

人们会抱怨缺少JavaDoc,

那是他们的问题。任何人都不会在自己的头脑中试图将其组织的源代码/文档规则严格地应用于第三方开源软件。项目团队应自由设置适合于所使用技术的项目源代码/文档标准。

FOLLOWUP
-Lombok开发人员认识到不为合成的getter和setter方法生成Javadoc注释是一个问题。如果这是您项目的主要问题,那么一种替代方法是创建并提交Lombok补丁来解决此问题。

而且将来的提交者可能还是将其全部删除。

那还没开!如果商定的项目策略是使用Lombok,则应无偿删除Lombok的提交者,应予以惩处,并在必要时撤回其提交权。

当然,这是假设您已从利益相关者(包括开发人员)那里买入。它假定您已准备好辩护自己的事业,并适当地处理了不可避免的反对声音。



 类似资料:
  • 问题内容: 我提出了新的性能目标,我认为提出一个减少代码库(尤其是样板代码)大小的目标会很有趣。为了解决这个问题,我想出的一个措施是使用Lombok项目将豆子制作得尽可能短。但是我有一个忽略新软件和新方法的弊端的习惯,所以我依赖Stack Overflow社区:谁能告诉我为什么Lombok是个坏主意? 问题答案: 主要的缺点是对IDE的支持。由于Lombok实际上不是语言更改,并且由于您的IDE仅

  • 我在gradle项目中使用lombok,希望创建一个jar文件,但每次我执行jar任务(无论是在控制台还是eclipse ide中触发)时,我都会发现错误,我的lombok导入在我使用lombok注释的类中找不到。输出示例: 搜索了一段时间后,我发现有一个适用于gradle和lombok的插件,但在使用较新的gradle版本编译时并不真正需要。我的gradle版本是3.4.1和lombok 1.6

  • 问题内容: 我有一堂课,看起来像这样: 在这里,我不得不写a,因为如果我想在使用Lombok时返回Optional,则必须声明为。这将生成一个接受的生成器方法! 还有其他方法可以使用lombok 吗? 问题答案: 答案是否定的,可能永远也不会。 您可能做错了:-) 并不是预防的替代品,也不是预防的奇特方法。这表示该问题无法回答,例如:空人员列表的平均年龄是多少。 绝对不应传递,而应尽快由调用代码取

  • 我有一个名为Address的类,如下所示: 在这里,我不得不编写生成器和Getter,因为如果我想在使用Lombok时返回一个Optional,我必须将第2行声明为Optional 是否有其他方法可以将lombok与

  • 我试着在IntelliJ上使用Lombok和Maven和VRaptor,但它不起作用。 我已经在stackoverflow中阅读了一些信息,但没有解决我的问题,我已经在Intellij中启用了注释处理器,但仍然一无所获。 我也试图从命令行(Windows)编译它,但没有成功。 我还尝试在没有maven的情况下创建另一个项目,添加库,创建一些用于测试的类,它可以完美地工作、编译和运行。 有什么帮助吗

  • 我在Intellij遇到了一个奇怪的问题。我正在使用Lombok(1.18.2)、IntelliJ(2018.2.2)和JUnit 5在gradle 4多模块项目中。 我花了好几个小时来复制这个。 > 运行所有具有覆盖率测试用例。 移除龙目镜并在此之后生成吸气剂和定型剂也没有效果。 尝试了一切来解决这个问题(启用注释处理器、Lombok插件、清理构建),但没有成功。 编辑1: Root build