如何应对老年人糟糕的编码风格/做法?

Ram*_*ngh 20 c++ coding-style

我刚开始工作,但我工作的公司聘请了很多非科学的人,他们足够聪明,可以完成工作(复杂),但缺乏应该帮助其他人阅读代码的风格和实践.

例如,他们采用C++但仍然使用类似C的3页函数,这些函数在尝试阅读时会驱使新人疯狂.我们也觉得改变风险非常危险,因为要确保我们不会破坏某些东西并不容易.

现在,我参与了这些人的项目,我无法自己更改整个代码库或设计代码看起来很好,在这种情况下我该怎么办?

PS>我们实际上有3个页面功能,因为我们没有设计概念,我们所能做的只是假设他们可能想到的东西,因为没有办法知道它为什么设计的方式.

我不是在抱怨.我在寻求建议,已经阅读了一些书来解决实用程序员的问题; 设计部分来自B.Stroustrup ; B.Stroustrup的编程和原则 ;

Rob*_*ner 43

你能做的最好也是最重要的事情就是以身作则.以正确的方式做事并尝试慢慢改进.你不会在一夜之间解决任何问题.

完成后,确保您负责的每一段代码都更好.随着时间的推移,由于您的努力,系统将明显变得更好.

在与同事建立良好声誉后,请尝试开始一些代码审查或午餐培训课程,以便让每个人都能更好地掌握更好的工作方式.

简而言之:它将是困难和令人沮丧的,但它是可能的.祝好运.

  • 不是*每一段代码.如果这些老前辈有任何归属感,他们会怨恨新的孩子做出无偿的改变.你将创造一种冲突,使你的风格被蔑视,无论其优点如何.*尽管以任何新代码为例,以*为例. (25认同)
  • @Mark这实际上是一个非常好的观点(虽然,我必须承认,我讨厌这是真的)...检查编辑. (3认同)
  • 你可以体验到最烦人的事情是什么?有人来重写您的代码/因为他们认为他们更好/然后导致一些错误被引入高级人然后需要修复... (2认同)

Phi*_*hil 20

你最好的选择是不要处理它.如果你尝试以下是潜在的问题:

  1. 你会因为做了一些你没被告知过的事情而受到批评(让绩效评估变得非常糟糕.)
  2. 你将没有多少时间做自己的工作.
  3. 你不会通过清理工作代码来推进你的职业生涯 - 如果没有破产,那就不要碰它.
  4. 永远不要与控制你职业生涯的人制造敌人 - 无意中暗示他们已经过时的蠢货对你的事业没有帮助(特别是在经济不景气的情况下).

专注于使您自己的代码变得更好.编写糟糕的代码是成为软件工程师的一部分.如果你不支持,你就是错误的职业.

稍微有点但很重要 - 一旦经济复苏,你可能需要转换工作或团队.与一大堆不喜欢更新他们的知识和做法的坏程序员混合会使你自己的编程技能变得迟钝并削弱你的适销性.


Jac*_*tti 12

如果您是初级开发人员,那么您唯一能做的就是尽可能优雅地编写代码.

如果你的风格确实更好,其他人可能会注意到并说"嘿,我们应该采用这个公式"

行动胜于抱怨,这是我注意到的.

  • 不幸的是很少发生.如果高级开发人员编写3页长的函数,那么它们就太过分了.但是不能打他们; 必须相处.最好的办法是尝试在自己的代码中尽可能地超越它们. (5认同)

小智 9

现在体现在六芒星47 - K'un(压迫):尽管疲惫不堪,但可能还有进步和成功.对于坚定和正确,真正伟大的人,将会有好运.他不会犯任何错误.如果他发表演讲,他的话就不会好.

未来体现在六芒星6 - 宋(冲突):虽然在一个人的争论中有诚意,但他仍然会遇到反对和阻挠.如果他怀有谨慎的谨慎,就会有好运.如果他起诉争夺痛苦的结局,就会有邪恶.看到伟人是有利的.穿越大溪流是没有利益的.

  • 奇怪,但我喜欢它.请继续发帖. (3认同)

sti*_*472 7

我之前穿的鞋子完全相同.我被聘为C++程序员,以"引导团队"如何由热心的经理使用C++.那是大约十年前的事了.一些较新的工程师爱我,老人们鄙视我.我们的系统基本上是一个伪C++系统.这就像C和类一样,但似乎人们甚至不了解构造函数之类的有用性,因为它们几乎不会出现.

你抱怨长达3页的功能; 我们有8000行长的函数,其中包括长跳跃,函数指针转换等.其中一位老人甚至用2空格缩进格式化代码,这样就可以在不使用太多水平空间的情况下编写超深嵌套块,因为前辈似乎一般来说,对写作函数和程序编程过敏.有人甚至将2000线功能概述为可以使事情变得更快.你可能正在处理一些不好的代码,但我正在处理可以想象的最可怕的复制和粘贴代码.

不幸的是,我很年轻,自大.我与前辈不相处,我在代码的领土争斗中与他们作战.他们通过创建编码标准做出了回应,而C++程序员无法遵循这些标准(例如:可以使用operator new,但不要使用异常处理,不要使用构造函数或析构函数等).因此,我编写了最奇怪和最愚蠢的标准 - 解决方案C++代码只是为了反对那些标准,因为我拒绝编写C风格的代码,因为我被雇用的原因(我没有那么讨厌C,但写作C代码不是工作描述的一部分:我基本上被聘用为C++顾问),尽管标准使C风格编码成为唯一可行的实用方法.

直到几年后,当其他人开始以我的方式看待事物时,我们提升了愚蠢的标准并开始编写更自然,易于阅读的C++代码,包括STL和提升好东西,RAII,异常处理等.孤立的老年人拒绝以更加理智的方式编写代码,他们最终被迫适应.

回想起来,我本可以做得更好.老年人不打算让我被安排到教学岗位,但我想我会低下头来更快地得到我的观点.我最大的遗憾是试图叛逆地解决不可能的编码标准,而不是通过明确和理性的讨论来纠正它们.结果,我在系统中真的很愚蠢和混淆了C++代码,人们把它归于我,即使这不是我通常编写C++代码的方式.我工作的常规开发人员理解这一点,但老年人仍然指出它是C++为什么不好的一个例子.

总之,我建议你专注于结交更多的朋友而不是敌人.你的朋友会支持你,如果你的方式更好,你可以清楚地证明它,你可以隔离那些永远不会同意的人.


Mik*_*e J 6

热衷于以正确的方式编写代码是一个很好的特性,在软件行业中,我们总会遇到其他开发人员,他们编写的代码与我们的"完美编码方式"不相符.这永远不应该被解释为垃圾代码或无能的编码器,因为我们都是以某种形式或形式开始的.

始终尊重您周围的同伴,因为您希望他们尊重您.在一个高度关注自我的环境中做这当然不容易,但试图接近这样的话题绝非易事.

这是你沟通的方式

尝试不同的方法角度,记住你在那里学习提供服务.

因此,在"面对面"的方法中评论"差"代码风格可能不是您正在寻找的结果.所以然后稍微备份并尝试接近主题"我正在考虑使用的代码风格并提出一些建议......"并查看给出的差异.

在我现在工作的地方,我学到的一件事是,对可能质量不高的东西进行评论是好的,但我最好有一个更好的解决方案.

换句话说,准备用有用的解决方案备份你的话,而不是因为你感觉如此.