我被分配到一个大型项目,该项目将用Java完成并由团队中的一些程序员查看。我希望代码具有可读性和可理解性,因此希望命名约定适合每个读取它的人。
我想知道我是否必须使用Java命名约定才能让其他人自然地查看并理解它。我总是使用一种我自己的命名约定,它与Java命名约定没有多大差别,但是继承自C / C ++命名约定。
最大的区别是变量,类和方法命名。我使用intLargestNumber, chGet, strName
之类的名称作为变量。方法funType, funErase, funAdd, getThis, setThis
和类Screen, clsPlay, cls_User
。其中Java命名约定对变量使用myNumber
,对方法使用lowSplit()
,对类使用Image
。
我的问题是,我应该使用Java命名约定还是使用我自己的命名约定并为我的代码提供词典或日志?
答案 0 :(得分:34)
使用该语言的标准将使新人加入更加简单。此外,使用外部定义的惯例可以帮助缓和这些风格问题经常引发的宗教战争的程度。
答案 1 :(得分:12)
使用Java命名约定。尝试将约定从一种语言应用到另一种语言几乎总是错误的。事实是,大多数人不会花时间阅读用于项目的惯例。因此,使用已建立的语言规范总是更容易。
答案 2 :(得分:11)
就个人而言,我反对你的命名惯例。它有一个名字:匈牙利表示法。我认为在变量名中嵌入类型是一个非常糟糕的主意。如果我在你的团队中,我会反对它。
答案 3 :(得分:3)
我被分配到一个大型项目,该项目将用Java完成并由团队中的一些程序员查看。
你问团队负责人怎么样?
一般来说,你应该有充分的理由不遵守其他人希望看到的惯例。
答案 4 :(得分:3)
大多数Java程序都在标准Java类库和第三方库中大量使用方法和类。除了极少数例外,它们符合Java样式指南中的建议。如果你要求对名称采用明显不同的约定,那么你的代码将包含丑陋的样式混合。在风格不一致的心理不协调中,你的风格的任何可能的(理论上的)优点都会丢失。
答案 5 :(得分:3)
正如Steve Gilham和Emil H所说,是的,在编写Java代码时,你应该坚持Java约定。 (显然,对于任何语言或平台都是如此。)
至于为什么应该如此重要,我建议您查看Joshua Bloch撰写的经典Java书籍 Effective Java 。在其前言(available online here!)中,Guy Steele为编写给定语言的惯用代码提供了一个很好的,简洁的论据。本书还包含一个专门针对此内容的部分(第2版第56项):遵守普遍接受的命名惯例。这个项目只有几页长,你可能已经知道了大部分内容,但更重要的是,整本书是编写清晰和可维护的Java代码的最佳指南。
你提到这是一个由程序员团队完成的大项目,这使得选择更加清晰。即使所有当前的程序员都对您的C / C ++(如命名模式)感到满意,请记住,团队的组成在某些时候发生变化是非常合理的。一个新招募的Java程序员在遇到遵循该语言的常见惯例的惯用Java代码库时肯定会有更多的感觉。
答案 6 :(得分:2)
这不应该是你的决定。这是由团队做出的决定,或强加给团队的。
答案 7 :(得分:1)
使用标准命名约定将减少新员工和其他人迁移到项目的速度。您也不需要为了小组的利益而记录您的个人风格,从而节省了描述字段含义的时间以及不使用标准的原因。另一个好处是,您可以使用许多IDE提供的功能,只需很少的自定义即可生成简单的代码 - 这是项目中所有开发人员都需要的过程。
答案 8 :(得分:1)
我一直认为,总是犯错误比纠正不对是更好。如果您正在开始一个新项目并且想要决定命名约定,请务必使用该标准。
如果你已经有了一个项目,那就有点困难了。如果是这种情况,那么您将不得不决定是否值得将命名约定更改为Java标准或保持其原样。处理在命名方面不一致的代码总是很痛苦,所以如果你能避免它,我会反对零碎的方法。
答案 9 :(得分:0)
如果你用Java编码是的。