给所有开发人员强加统一的代码格式是个好主意吗?_皇家娱乐
最新资讯
皇家娱乐 > 最新资讯 > 给所有开发人员强加统一的代码格式是个好主意吗?
给所有开发人员强加统一的代码格式是个好主意吗?
时间: 2018-06-19 浏览次数:19
这个问答是每周发布的一系列帖子的一部分,这些帖子强调了技术爱好者遇到的常见问题,并由100多个问答站点组成的免费社区网络StackExchange的用户回

这个问答是每周发布的一系列帖子的一部分,这些帖子强调了技术爱好者遇到的常见问题,并由100多个问答站点组成的免费社区网络Stack Exchange的用户回答。Java开发人员Stijn Geukens正在与10名开发人员合作,几乎每个开发人员都有自己的风格。这种情况即将改变,因为公司可能很快会对所有开发人员强制执行标准代码格式。他们将使用Eclipse来帮助进行更改。但是强迫球队保持一致是不是比它的价值更麻烦?请看这里原来的问题。

professional zero one如何回答( 39票) :

我目前在一个强制执行标准代码格式的地方工作,代码在保存文件时会自动格式化,就像您将要做的那样。作为公司的新成员,我发现通用的格式规则给了我一种感觉,这些人知道他们在做什么,这是可以保证的。除了常见的格式化规则,我们还在Eclipse中强制执行某些相当严格的编译器警告设置,其中大多数设置为 Error、许多设置为 Warning、几乎没有一个设置为 Ignore。

我 d说,在项目中强制使用单一代码格式有两个主要原因。

首先与版本控制有关:每个人对代码的格式都相同,文件中的所有更改都保证有意义。不再只是在这里或那里添加或删除空间,更不用说将整个文件重新格式化为实际上只改变一两行的副作用了。

第二个原因是它有点把程序员从等式中排除了。每个人都以相同的方式格式化代码,你就不能再轻易地分辨谁写了什么。代码变得更加匿名和通用,所以没有人需要为更改别人的代码感到不安。

单个代码格式也是最佳的还有其他原因。我感到欣慰的是,我不必费心考虑代码格式,因为Eclipse会在我保存时自动为我做。它是免费的,就像用LaTeX写文件一样:它是事后格式化的,你在写的时候不用担心它。我也参与过每个人都有自己风格的项目。然后你必须考虑一些琐碎的问题,比如是否可以用你自己的风格修改别人的代码,或者你应该尝试模仿他们的风格。

在您的案例中,我能想到的反对通用代码格式设置的唯一理由是,它是一个正在进行的项目,因此它将导致所有文件中大量不必要的更改,从而打乱实际的文件历史。在最好的情况下,您应该从项目一开始就开始强制执行一致的格式。

相关: 切换到某个IDE的公司订单是红色标志吗?

ConsistencyBaqueta回答( 6票) :是的,一致性是个好主意,因为其他人提到了一些原因。我只想补充几个在其他地方没有使用过的要点:

Oracle已经发布了一套Java惯例,这是事实上的标准。使用这些应该有助于避免争论应该遵循哪种风格。许多公共图书馆和开源项目倾向于使用这些约定,所以当你需要查看这些约定时,格式应该很熟悉。此外,Eclipse格式化程序具有与这些约定相匹配的内置规则,这也应该有所帮助。您可能需要考虑在源代码管理设置中构建一个钩子,以便代码在进入主分支之前自动格式化。你可以避免与拒绝遵循标准的特别顽固的程序员发生冲突。他们甚至可以在工作时使用自己的格式,这将在以后标准化!如果您最终使用自定义格式设置(例如,许多人忽略了每行最多80个字符的约定),您只需要在一个地方进行更改。让每个人都参与进来drajah 9答案( 6票) :

我是一个使用Checkstyle插件的团队。我们成立了一个由感兴趣的开发人员组成的小型委员会,而不是使用现成的功能。我们争论着什么看起来缺了什么,什么看起来过分了,然后敲定了一些事情。在这个过程中,我们都学到了一些东西,增强了开发者的肌肉。(我们决定的例子: 72个字符宽太小,但120个更好;静态决赛最好用全垒打;强制单次退出某个函数是个好主意。)

当我们有代码评论时,第一个问题是: 您是否通过Checkstyle运行它?遵守编码标准在很大程度上是自动化的,它把注意力从挑剔的评审者身上转移开了。Checkstyle突出显示方法签名、右键单击并将变量更改为final非常容易。它还可以修复缺口和大括号,使每个人的代码都有相似的外观和感觉。失踪用于公共功能的javadoc?checkstyle将标记该函数。(去除代码气味比一致的格式更重要。这是自动化工具的优点。)

我会把自动工具如Checkstyle放在更鼓励相似的外观上,而不是强加相同的格式。当你放养猫时,自动化工具可以帮助你提高技能,减少代码气味,而不会伤害脆弱的自我。

找到更多答案,或者把自己的答案留在原来的帖子里。在程序员处看到更多这样的问答,这是一个在堆栈交换中处理概念性编程问题的站点。当然,你可以随意登录,问问你自己的。

Copyright © 2017 皇家娱乐 版权所有