Language agnostic 如何让开发人员遵循编码标准?

Language agnostic 如何让开发人员遵循编码标准?,language-agnostic,coding-style,Language Agnostic,Coding Style,如何让开发人员遵循编码标准 在我们公司: 我给了他们文件,他们没有耐心去阅读和遵循 我试着一次又一次地告诉他们“请这样做”他们点头,但还是做错了 我们第三次做一个项目,但他们似乎没有很好地遵循它 我现在已经厌倦了。设置编码标准并确保其遵循标准的最佳方法是什么 编辑: 我的团队中只有大约10名开发人员。他们压力过大,没有花时间发表评论和整洁地编写代码,因为我们的管理层有更大的压力来完成产品。解决这个问题的办法是什么?你有标准。你有一个让他们遵循的过程。如果他们不遵守,终止他们,并找到能够遵守标准的

如何让开发人员遵循编码标准

在我们公司:

  • 我给了他们文件,他们没有耐心去阅读和遵循
  • 我试着一次又一次地告诉他们“请这样做”他们点头,但还是做错了
  • 我们第三次做一个项目,但他们似乎没有很好地遵循它
  • 我现在已经厌倦了。设置编码标准并确保其遵循标准的最佳方法是什么

    编辑:
    我的团队中只有大约10名开发人员。他们压力过大,没有花时间发表评论和整洁地编写代码,因为我们的管理层有更大的压力来完成产品。解决这个问题的办法是什么?

    你有标准。你有一个让他们遵循的过程。如果他们不遵守,终止他们,并找到能够遵守标准的合格人员

    更具体地说

  • 在项目开始时,与团队一起审查标准。传达必须遵守的信息
  • 在项目结束时,进行审查,以确保其得到遵守。如果没有,则与负责不遵守的个人合作。询问原因等问题
  • 给他/她第二次机会
  • 如果重复,终止个人
  • 自动化

    您可以将StyleCopFxCop(VS2008中的代码分析)集成到构建过程中

    因此,当有人检查某个违反规则的内容时,构建将被破坏,他们将不得不修复它。如果您没有支持这一点的自动构建过程,那么您可以在代码审查等之前手动运行这些工具

    您可能找不到与您的编码标准完美匹配的代码,但您应该能够获得非常接近的结果

    时尚警察

    FxCop:


    听起来你不够受尊重

    进行代码审查,并与团队讨论编码标准。也许他们不坚持是因为他们不同意。要灵活


    如果你是第三次做一个项目,可能是你做错了。

    技术解决方案 如果您使用的是团队系统,您可以使用它来强制执行。其他版本控制系统无疑也支持类似的功能。你需要有足够的时间来做这件事

    非技术性的 除了技术解决方案之外,您可能还需要解释要求这些编码标准(质量、法律等)的原因。他们可能会觉得该政策过于严格,或者根本不理解其必要性。
    如果你能说服他们这样做的必要性,你就不必再强迫他们了。

    去找更多顺从的开发者


    严肃地说:我可以对自己说,我倾向于忽视(或不愿意遵循)那些我认为完全不合理、过于专制或愚蠢的做法。试着和你的人谈谈,问问他们对医生有什么不喜欢。

    我同意乔的看法。作为持续集成过程的一部分,尽可能实现自动化。在不失去对手头任务(编程)的关注的情况下,越容易遵守,就会有更多的人遵守。

    你有没有试过在指关节上使用木尺子?在学校为我工作:P

    但是,严肃地说,标准是要遵守的,如果没有遵守,并且你能够通过培训和纪律处分来遵守,那么就遵循纪律程序。如果你没有这样做,并且你无法说服你的上级遵循这一点,那么你似乎有两个选择:

    • 吸取教训,充分利用它
    • 开始另找工作吧

    使用智能代码格式化程序和可能的分析工具检查是否遵循标准

    使用一些课程介绍标准

    每月为符合标准的程序员提供一种奖励


    如果一切都失败了,就把它们扔掉。

    以我的经验,人们不遵守标准,是因为他们不了解或不关心标准。有时,编码标准沟通不畅,即使它们是新的且被认为是重要的

    这类问题应该由政府来解决

    • 培训
    • 沟通
    • 评论

    如果人们不听,团队负责人应该关心这一点,并帮助迫使人们认真对待指导原则。

    如果你的资历比他们高,那么就进行代码审查,让他们因为没有遵守编码标准而不及格。如果这种情况持续下去,你可以给他们一个正式的警告。如果这种情况继续下去,你可以解雇他们,让人们在一生中花20分钟阅读一次编码标准文档

    我不知道您使用的是什么IDE,但Eclipse允许您设置代码格式化程序,您可以将其分发给开发人员,所以这可能也是一个想法


    然而,可能存在一个潜在的问题——其他开发人员不喜欢您的编码标准。最好先弄清楚情况是否如此。如果您的编码标准实际上不是您的语言中的通用标准,那么他们可能只是被动的攻击性的,只要他们能够侥幸逃脱。也许你应该让他们参与到编码标准的开发中去,他们大多都很满意。

    他们是无能的、懒惰的还是无知的

    我对这类事情的经验是,它始于领导力和优先权。优先权,意味着人们知道这条线是在哪里画的,他们就在那里。我能想到的一个例子是,一个新的程序员进入了一个由同一个人担任了12年的工作岗位。他必须维护的代码乱七八糟。所以他知道他可以逍遥法外,因为最后一个人独自离开了