2009-08-22 41 views
3

您正在与某个项目中的某人合作,而这个人写的是错误的代码。这并不是说不好炒了他AR你不能老是用它工作, 但如何判断他应该提高自己的技能?

  • 人不遵守编码规范
  • 代码并不总是覆盖着单元测试(应该是)
  • 代码是草率的,没有评论它应该有他们
  • 人不知道设计模式好/根本不知道
  • 把他的衣服放在你的桌子上,就像他需要一些空间。

那么如何告诉他需要升级他的技能而不伤害他?我描述了一些问题。但想象一切都很好,除了有些事情真的会伤害到这个项目。该怎么做才能让你仍然是朋友,但是人真的明白他需要改变什么?

+7

咦?他把衣服放在你的桌子上?你是说他赤身裸体? – MusiGenesis 2009-08-22 16:36:43

+1

应该是社区wiki,请标记它。 – 2009-08-22 16:39:03

+1

@MusiGenesis:我要问的是,但.. Hahahahah! – 2009-08-22 16:39:49

回答

4

只要保持专业,并指出您的错误跟踪,代码审查,或任何方式来跟踪工作项目和错误的问题。

这是该人员的经理和项目主管的责任,以确定谁负责,并有礼貌地通知此人。这是他们的工作,如果他们不能这样做,你的项目(可能是公司)可能不是一个很好的工作。

6

这是整个公司在一个月内完成代码评审的好选择。你不会把他单独出来(这很好,除非所有的都失败了),而且你更好的工程师可以帮助他。

+1

要增加这个功能,听起来好像你是他的办公室队友,而不是他的经理,你应该和你的经理讨论你的问题。 – 2009-08-22 16:37:46

0
  • 匿名在他的办公桌上留下一些books,如“Code Complete”或“Refactoring”。
  • 假设你不是他的领导者,请告知他的领导你的担忧,并让该人员对此问题负责。
  • 写一些涵盖他的代码的单元测试。他可能不知道如何编写好的测试,所以他可以用你的例子。设置定期运行这些测试的自动脚本,并发送详细说明失败的邮件,以便他不能简单地忽略这些测试的存在。
3

我会推荐“失败”任何不符合质量标准的代码。例如,如果缺少单元测试,则“失败”代码,以使其返回给开发人员进行纠正。这与代码失败UAT或类似,除了它更多的是来自开发团队的团队领导者的内部审查。

举个例子,在我工作的一个地方,我领导了一个开发团队。我们有PHP生产代码,这些代码会向日志文件写入不必要的警告,最终导致磁盘空间问题,并且难以调试真正的错误。

因此,为了纠正这个问题,我制定了一条规则:如果您编写的任何代码向日志文件写入警告,则该版本将无法通过测试,您需要在其执行任何操作之前对其进行修复进一步。

我们在下一个版本中几乎没有警告被记录。现在,这在技术上不是一个错误,只是代码质量问题。关键是有人需要成为在开发生命周期的某个阶段审查和执行质量控制的守门人。

更好的是,编写一些自动化的集成测试,检查单元测试是否存在,代码的样式是否正确。有一些工具可以检查此为您(不知道他们的名字,别人或许可以启发我们对)。这样,构建失败了一个自动化的,可重复的测试。如果发生这种情况,我会说代码会快速清理。

+0

什么语言/构建过程?您使用以下的Java代码风格检查工具:http://checkstyle.sourceforge.net/ – 2009-08-22 16:56:57

1

您可以在构建过程中实施代码分析/样式工具,以强制执行特定的设计和样式准则。这种方法的好处是它不会将任何人排除在外,它适用于每个人。

根据您的项目使用的语言,可能有工具可以帮您做到这一点。防爆。 StyleCopFxCop C#项目。

+1

的自动化和权威性的工具,这样的好处是,他们不玩收藏 - 没有人被挑选出来,每个人都必须达到相同的标准 - 这使得他们引入的争议比人为主导的系统更少。 – 2009-08-22 17:25:10

-1

我们有一个工作的人每周只洗一次澡(不,他不是法国人)。接近本周末,他的BO非常糟糕。我们在他的办公桌上留下了一些卫生用品,让他尝试给他一些线索。没有工作。我认为他在这之后开始了两周之间的洗澡。唷。这是20多年前。

编码约定?像什么?在哪里摆大括号?

缺失/差评?那么,有时候没有评论比无偿或错误的更好。

懒散的代码?也许是这样。发表一个或两个例子。也许他是一位优秀的编码员,而你并不那么光明。毕竟,PM的通常不会是光明的,他们只知道如何接吻屁股比我们中的一些更好的照顾。

设计模式?废话宾果饲料。

但是把他的衣服脱下来放在桌子上很奇怪。恕我直言。

1

放松,只是邀请他喝一杯出去,然后被扔石头然后解释他的整个情况。第二天早上如果他还记得,他会明白的。如果不是 这一次,他会脱下他所有的衣服,并把它们放在你该死的桌子上:)