it-swarm.cn

如何告诉老板他的编程风格真的很差?

我是一名学生,在业余时间我为一家大企业工作,Java开发人员。这项工作很好,但是问题是,我的老板写了很奇怪的代码。不想抱怨,但我认为有些问题确实很奇怪,例如:

  • 他不知道任何布尔值。所有布尔条件都是称为“ YesOrNo”的字符串,然后在他使用if(YesOrNo ==“ Yes”)的条件下使用

  • 方法名称和变量中有很多非常奇怪的字符,例如éõô或è

  • 所有循环都是for(;;)样式的无限循环。然后在循环结束时测试条件,如果条件满足则中断。叫做。

我不知道我是否应该告诉他,我认为这不是一个好习惯,因为他是我的老板,并决定如何做。另一方面,他的一些例子确实很奇怪。

有什么提示如何应对?这是只有我一个认为风格不好的我吗?

63
RoflcoptrException

请他向您解释他的密码

告诉他您以前从未见过X这样编程过,并问他为什么用这种方式编写代码。向他展示您编写代码的方式,并告诉您这样做的原因(最佳实践,更好的性能,更少的出错机会,其他程序员更易于阅读/维护等)。

确保事先准备好所有参数,并着重于为什么您的方法最好,而不是为什么他的方法最差。然后,查看他是否仍然支持您的方法。

如果他愿意改进,他可能会改变自己的编码方式。如果他仍然喜欢使用您的编码风格而不是您的编码风格,那么您不太可能会改变他的意见。

78
Rachel

促进使用自动化的静态分析和样式检查工具(如棉短绒和错误查找器)(使用任何使用的语言)。如果公司中的每个人都开始使用它们(例如,在签入之前已对他们进行了强制性授权),则不会单挑他。

我建议这样做的原因是:

1)人们通常比其同事或下属更愿意从自动化工具中进行指责。

2)这些工具涵盖了很多可以视为不良样式的问题。

3)您可能会因为工具中内置的不良样式而对幕后规则进行调整。例如,强制使用某种样式的变量。

4)有些人意识到他们的代码不是很好,因此实际上甚至在短绒未涵盖的事情上也开始更加注意。

不少备受尊敬的公司(例如我自己的雇主)在入住前会强制进行皮棉检查。认为不良风格是技术债务。您可以始终使用“好吧,如果X,Y和Z正在这样做,则可能是个好主意”。

39
Uri

我认为您绝对不应该告诉他像这样的直接。这样的陈述很容易在他身上引起防御反应,这几乎肯定会使他无法学习,甚至可能给您带来麻烦。

相反,寻找(甚至尝试创造)偶然的机会讨论编码风格和习语问题,并向他提及您所知道的“最佳实践”。当然,您必须首先确保您提出的建议确实是广为人知并接受的最佳实践。

另外,尝试与其他团队成员讨论相同的问题。 了解团队内部关于编码风格和质量的(口语或非口语)“共识”很重要。(如果其他人都编写干净且高质量的代码,则情况与其他情况完全不同)该小组由Real Programmer组成,他们以任何语言自豪地编写FORTRAN程序。)他们还可以讲述项目的历史背景和老板的编码风格,从而帮助您更好地进行工作。

另一种方法是请他为您订购 Effective Java ,因为您认为需要它才能成为一个更好的程序员。 (如果您还没有阅读它,实际上您确实需要它。)然后您可以和他谈谈本书中的奇妙解决方案和实践。

如果他愿意改善自己,他会接受您的建议(和这本书)。否则,您可以退缩而不会丢面子,也不会增加您的人际关系。

24
Péter Török

如果您的老板很酷,请问他:“老兄,WTF?”

21
gruszczy

在所有您认为“我的更好”的情况下,切勿告诉别人您认为的那样,告诉他们。

我重复一遍,SHOW,不要告诉。

Ya知道关于行动,大声说些话……是真的。

8
Jack Marchetti

老板到底担任什么职位?他是开发人员,技术主管吗?公司中还有多少其他开发商?公司是否有编码标准和代码审查?

您不太可能会让您的老板改变他的(IMHO)坏习惯,但是您可以使用同龄人小组或公司的标准来影响他。如果他的代码does遵循标准并且同伴都相同,那么您的选择就受到限制。

6
Qwerky

这是我的建议:

  • 陈述你的情况。
  • 如果您的经理不接受您的观点*,并且您认为自己是对的,那就寻找绿色的牧场,不要找任何借口。

我建议您寻求绿色牧场的原因有以下三个:

  1. 从长远来看,使不良做法永久存在对程序员的职业有害。不良习惯的长期存在会导致不良习惯的产生。
  2. 不接受其他观点的编程商店扼杀了想象力。
  3. 当您知道自己正在实行不良做法并且您的团队不愿接受其他观点时,您的士气就必定会下沉,这将使您的生活痛苦不堪。因此,请尽快离开。

*重要区别:期望某人能接受您的观点与期望某人对您的收益收益不同观点看法。我总是很感谢那些考虑我观点的人,而我却很少尊重那些柔和并且在没有足够理由或理由的情况下以屈服的人这样做的证据。

6
Jim G.

动作胜于雄辩:

另一种方法:

  • 例如,您需要lead
  • 确保您执行的项目是最佳
  • 您需要Excel来提高性能,减少错误等。
  • 一旦您能够证明自己的作风和风格比老板更好,除非他/她非常自大,否则我认为该人自然会遵循最有效的方法。
6
Darknight

当您看到他的行为“不好”时,我只给他小剂量的指针

“嗯,看看这种方法(指着他的屏幕),因为这样等等,我喜欢这样。”

每隔一天进行一次以上。如果他不接受您的建议,那就不要再提了(几个星期)。一些会坚持下去。而且他会慢慢好起来的。

4
Morons

请您的老板与您被教的另一种方法进行比较。他可能有正当的理由。除非您问,否则您不会知道。她可能正在尝试维护一些旧的编码标准,或者可能根本不在乎。不要给您任何迹象表明您认为老板是错误的。哦,私下做。这是出于您的教育目的。

4
JeffO

这取决于。如果您正在检查的代码是全新的代码,则要求进行代码检查,因为这将帮助您“快速入门”,并表明您对学习感兴趣。老板可能会发现这很有帮助,因为它会向他表明您正在寻求做正确的事情。如果这是您偶然发现的旧代码并被迫对其进行维护,则使其成为进行缓慢重构的重点。在这里和那里进行类型声明,同时仍然完成手头的任务。现在的问题是,字符串YesOrNo可能具有其他值,例如Maybe,如果您不小心,可能会导致代码损坏。

4
Woot4Moo

我要做的第一件事是弄清楚他对批评家的反应。如果我将成为老板-那么我不会做错任何事,对吗? -我宁愿立刻被别人说出来,但要以尊重的方式。根据性情和文化,您的老板可能会有所不同。

但是他们大多数都需要尊重。表示您对他的尊敬的一种好方法是,您曾经提出过这样的建议:您可以解释自己的意思,但将决定留给他:“这是我的原因,但也许我已经监督了一些事情。经过我的解释:”

if (YesOrNo == "Yes")
if (YesOrNo == "yes")
if (YesOrNo == "YES")
if (YesOrNo == "oui")
if (YesOrNo.equals ("Yes"))
if ("Yes".equals (YesOrNo)) // might be null

提出什么建议?”

您可能会问过一个元问题:“ X先生,如果我在您的代码中发现了某些东西,通常认为这是一种可改进的做法-我应该如何向您报告?一次全部还是一步一步?或者我应该避免不惜一切代价提起它?静默地改进代码?”

这将取决于我的关系,我会选择哪种措辞以及哪种方法。

4
user unknown

您的老板不知道如何编程,他不应该这样做。我的经验告诉我,假设一个叫老板的人比你更有经验或更出色,这是谬论。他在其他方面可能会更好,但是管理和等级管理的重点是将事情委派给最合适的人。老板是指有机会创办企业或最终因其管理技能而不是因其编程技能而进入管理职位的人。

我曾经有个老板假装我在与汽油发电机连接时安装了计算机,因为他声称黑客可以在机器仍未受到保护的情况下通过电网进入。我立即辞职了。那时我学到了宝贵的一课:老板并不总是正确的,有时辞职是唯一有价值的回应。

因此,回到您的情况,您可能会遇到一个情况,即仅寻求其他工作(是,危机,yadda yadda ...我知道)可能是最好的治疗方法。不要浪费您的宝贵时间。

4
Stefano Borini

尝试向他展示来自知名站点/地方/书籍等的简短示例代码,这些示例代码可以完成类似的工作。

4
chiurox

我生活在找不到老板错误的行业。更好的是,我会生成代码中出现错误并让他看到错误的情况,而不是我建议他进行必要的更改以及可能的原因[在您的情况下,您确定原因..:- D]的错误。任何开发人员,无论好坏,在看到错误之前都不会接受错误。

3
Chris

我曾经遇到过老板风格的大问题。

这有两个问题。首先,我想我从来没有对他说过,但我想他知道。他一直是专业人士,但我没有,IOW。

其次,他的所作所为有很多原因,我花了一些时间来了解我这种“正确的”解决方案的复杂性和讨厌性。

在问题的三点中,变音符号并不是每个人都感到陌生,虽然我不会将其用于循环,但我对C族感到恼火,而语法及其(不)如何适合我的缩进样式,所以我也许可以看到它的来源。

就算是布尔值对象,也可能会从另一种语言带来的习惯方面做出解释(当然,这是没有道理的)。

3
Steve314

我想这可能有效-

  1. 请您的经理检查您的代码,该代码没有他所犯的任何错误。
  2. 然后看看您的经理是否问您为什么不按他的方式做
  3. 如果他问这个问题,您可以问他为什么这样做会更好。

通过这种方式,您可以了解他为什么认为自己的方式正确。

3
k25

我去过那里我刚离开Uni,在为一个人工作了大约一年之后,我意识到我对编程的了解比他还多,但这是他的事,他做主-只是不想冒犯他无论如何!我认为最好的解决方法是,讨论在公司中采用通用编码约定的好处,我们也应该坚持这样做,并看看他的反应。出乎意料的是,他认为这是一个好主意,并要求我制定一份标准清单,然后我们将它们一起进行审查并最终确定。

这里重要的是,您就像他一样是一个容易犯错的人,并且仅仅因为他的某些方式是奇/错,所以某些方式会比您自己的方式更好。

但是从我的个人经验来看,它没有用。尽管花了两天时间研究并编写了一份出色的标准和编码约定文档,但他已经习惯了自己的工作方式,并没有真正看到编码约定的好处,也没有写出减轻服务器负担的代码,这使我们的工作变得很辛苦。更快,更轻松,并削减成本。

最后,我离开去寻找一个使开发更加严肃的地方。这并不全是坏事,因为我对编码约定的研究到目前为止确实有帮助。

3
user16731