【问题标题】:Java Coding Standards - all variable names in lower case [closed]Java编码标准-所有变量名都小写[关闭]
【发布时间】:2013-01-01 09:40:10
【问题描述】:

我们正在使用 Netbeans 实用程序从数据库表中生成实体类,现在我们可以做到这一点。就像从 Table 到 Entity POJO 和反向一样,这样当我们对 Entity POJO 进行任何更改时 - 我们将获得更新的 SQL。

Eclipse 也有类似的可用于 JPA 的实用程序,但它不执行反向操作,现在问题是从表生成实体 POJO 时,我们没有选择命名约定。我们得到所有小写的字段名称,对于没有骆驼大小写的类也是如此,只有大写的第一个字母,而其他所有内容都是小写。

现在这似乎给我们定义的编码标准带来了问题,因为它要求我们对变量和方法名称使用驼峰式大小写。

因此我们与团队进行了讨论,其中一个想法是在整个项目中将所有变量保持为小写,我个人不同意这一点,因为它使代码非常不可读,因为我们不打算使用下划线来分隔单词。您可以对此标准投票。

你认为最好的出路是什么?是否有任何 Entity POJO 生成器可用,它可以转换两种方式,并且在找到下划线时仍然能够从 db 表名转换为驼峰式大小写?

【问题讨论】:

  • “您可以对这个标准投票。” - 先生,这个网站是关于事实,而不是意见。我们能做的最好的就是收集一些统计数据或列出缺点
  • 个人不喜欢underscore_case,但是camelCase不可用的时候还是会用。
  • 您可以获取Code Conventions for the Java Language的副本

标签: java jpa coding-style standards pojo


【解决方案1】:

最好的解决方案是立即停止并转向标准的 java 命名约定:

  1. 变量和方法名称以小写开头
  2. 类和接口名称以大写开头
  3. 使用骆驼惯例。除常量外没有下划线(见后文)
  4. public final 静态字段名称都是大写的,带有下划线(如 C 中的 #define)。 enum 字段也建议使用相同的方法(但此建议不那么严格)

如果我忘记了什么,我很抱歉。但是遵循大多数开发人员适用的命名和编码约定非常重要。首先,这些约定是基于非常丰富的经验。不要认为你可以改进它们。你不能。我也不能。 :) 其次遵循编码约定使您的代码对其他人可以理解并避免愚蠢的错误。

【讨论】:

  • 如果我理解正确,问题出在框架通过假设名称是一个单词而弄乱了约定。我看错了吗?
  • 问题要求实体 pojo 生成器
  • 工具基本上..我是新来的项目并且讨厌人们不遵循标准。我希望进行一些改进,以便我喜欢看代码,但是关于 Netbeans(和实体生成器)的借口是由遗留团队给出的。我刚刚验证过,如果您在表字段和名称中使用下划线,它会进行驼峰式大小写...所以只需进行更改并理解 Java 标准将被遵循而不是被操纵。我正在尝试触发这一变化,因为该项目仅花费了 2/3 个月,如果我们再退回 1 周,事情将会很美好。
  • @Dharmavir 那么这似乎很明显 - 在数据库中使用下划线,以便您在对象模型中获得驼峰式大小写。
【解决方案2】:

我使用 dali 和 eclipse 来生成实体,如果你不能设置 naming you require 会很惊讶。

另外,我认为 intellij 允许您也可以根据需要执行此操作。

【讨论】:

  • 感谢dali的推荐,我去看看。
【解决方案3】:

你认为最好的出路是什么?

遵循 Java 样式约定。期间。

是否有任何 Entity POJO 生成器可用,它可以转换两种方式,并且仍然能够在找到下划线时从 db 表名转换为驼峰式大小写?

我不知道。

但是,如果您找不到,请使用现有的开源生成器并修改它以执行您想要的操作。然后将您的补丁贡献回项目,以便其他人可以从您的工作中受益。

【讨论】:

    【解决方案4】:

    [...] 一种想法是在整个项目中将所有变量保持为小写 [...]

    忘记这个。你在爪哇的土地上。这意味着所有其他框架都不会遵守该标准,因此您永远不会只有一种干净的编码风格。 Java 的一大优点是,The One Style 让阅读外国代码变得更加容易。

    因此,您应该尝试将其控制在尽可能小的空间中,而不是传播这种疾病——在您的情况下,是工具生成的东西。下一步是改进或删除该工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多