Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coding style 你如何告诉别人他们';你在写坏代码吗?_Coding Style - Fatal编程技术网

Coding style 你如何告诉别人他们';你在写坏代码吗?

Coding style 你如何告诉别人他们';你在写坏代码吗?,coding-style,Coding Style,我一直在和一小群人一起做一个有趣的编码项目。这是一个有组织、有凝聚力的团体。与我共事的人都有与编程相关的各种技能,但他们中的一些人使用了旧的或完全错误的方法,例如过多的全局变量、糟糕的命名约定以及其他事情。虽然一切正常,但执行情况不佳。礼貌地要求或介绍他们使用更好的方法,而不是质疑(或侮辱)他们的经验和/或教育的好方法是什么 “嘿,我想这种方法也行。你们觉得怎么样?”[在屏幕上显示明显更好的代码的手势]介绍代码标准的想法。关于代码标准,最重要的一点是它提出了代码库一致性的概念(理想情况下,所有代

我一直在和一小群人一起做一个有趣的编码项目。这是一个有组织、有凝聚力的团体。与我共事的人都有与编程相关的各种技能,但他们中的一些人使用了旧的或完全错误的方法,例如过多的全局变量、糟糕的命名约定以及其他事情。虽然一切正常,但执行情况不佳。礼貌地要求或介绍他们使用更好的方法,而不是质疑(或侮辱)他们的经验和/或教育的好方法是什么


“嘿,我想这种方法也行。你们觉得怎么样?”[在屏幕上显示明显更好的代码的手势]

介绍代码标准的想法。关于代码标准,最重要的一点是它提出了代码库一致性的概念(理想情况下,所有代码都应该看起来像是由一个人一次编写的),这将产生更易于理解和维护的代码。

举例说明。告诉他们正确的方法


慢慢来。不要一开始就因为每一个小错误就痛打他们,只要从真正重要的事情开始。

如果你有一个松散的编码标准,能够指出这一点,或者指出你不能遵循代码,因为它不是正确的格式可能是值得的


如果你没有一个编码格式,现在将是一个很好的时间得到一个到位。类似于这个问题的答案可能会有所帮助:

可能在生效后有点晚了,但这就是达成一致的编码标准是件好事的地方。

编码标准的想法是件好事


但是不要说任何话,尤其是因为它是用来娱乐的,你可能是朋友。这只是代码…

他们可能会认为你的风格也很糟糕。让团队一起讨论一套一致的编码风格指南。同意某事。这是否适合你的风格不是问题,重要的是确定任何风格,只要它是一致的。

首先,我要小心不要判断得太快。当可能有很好的理由(例如:使用具有奇怪约定的遗留代码)时,很容易将某些代码视为不好的代码。但是现在让我们假设他们真的很糟糕

您可以建议根据团队的输入建立编码标准。但是你真的需要考虑到他们的意见,而不仅仅是强加你对好代码应该是什么的看法


另一个选择是把技术书籍带到办公室(代码完整,有效C++,实用程序员……),并提供给别人(“嘿,我已经完成了,有人愿意借它吗?”)< /P> < P>你必须解释<强>为什么你的方式更好< <强> > 解释为什么函数优于剪切和粘贴

解释为什么数组优于$foo1、$foo2、$foo3

解释为什么全局变量是危险的,局部变量会使生活更容易


简单地制定一个编码标准并说“这样做”是毫无价值的,因为它不能向程序员解释为什么这是一件好事。

如果可能的话,确保他们理解你是在批评他们的代码,而不是他们自己。

我总是说“这就是我要做的”。我不会试图教训他们,告诉他们他们的代码是垃圾,而只是给出另一种观点,希望能向他们展示一些明显更整洁的东西。

引入问题,让他们意识到他们所做的是错误的。例如,提出以下问题:

你为什么决定把它作为一个全局变量

你为什么给它起这个名字

那很有趣。我通常这样做是因为[插入你更好的原因]

那样行吗?我通常[插入你如何让他们看起来很傻]

我认为实现这一点的理想方式是巧妙地问他们为什么要用某种方式编码。你可能会发现他们相信其他方法也有好处。除非我知道他们的编码风格是由于错误信息造成的,否则如果没有充分的理由,我永远不会认为我的方式更好。最好的办法就是问问他们为什么选择这种方式;确保听起来对他们的推理感兴趣,因为你需要攻击的是他们的推理,而不是他们的能力

编码标准肯定会有所帮助,但如果它是每个软件项目的答案,那么我们都会在天堂的私人岛屿上啜饮鸡尾酒。事实上,我们都容易遇到问题,软件项目的成功率仍然很低。我认为问题主要来自个人的能力,而不是传统的问题,这就是为什么我建议在问题出现时,作为一个团队来解决问题


最重要的是,不要立即认为你的方式更好。事实上,可能是这样,但我们处理的是另一个人的意见,对他们来说,只有一个解决方案。永远不要说你的方式是更好的方式,除非你想让他们认为你是一个自鸣得意的失败者。

让相关人员准备一份演示文稿,向小组其他成员介绍他们编写的代表性模块的代码,并让问答负责(相信我,它会的,如果它是一个好的群体,它甚至不应该变得丑陋)。

私下询问一些“坏”代码段,着眼于它实际上是合理代码的可能性(无论你的倾向如何),或者可能存在可以减轻处罚的情况。如果您仍然确信代码非常糟糕,并且源代码实际上就是此人,请走开。可能会发生以下情况之一:1)此人注意到并采取了一些纠正措施,2)此人没有