CTO打电话通知我一个新项目,在这个过程中告诉我我的代码很奇怪。
他解释说,我的同事觉得很难理解,因为他们所使用的概念和技术过于复杂,往往是新的,他们并不熟悉。他要求我维护一个简单的代码库,并考虑其他将继承我的更改的代码。
我花了相当多的时间来掌握LINQ和线程安全编码。然而,除了薪水之外,其他人似乎并不在意,也没有留下深刻的印象。
我是否必须保持简单(愚蠢),仅仅因为其他人不熟悉最佳实践和高效编码?还是我应该继续做我发现的最好的事情,以我的方式编写代码?
发布于 2014-05-29 21:40:20
我们编写代码供其他人阅读。新技术旨在使代码更容易阅读,而不是更难。使用新技术有好有坏的方法。如果你想写“令人印象深刻的”代码,那就是你做错了。
我怀疑不仅仅是技术的使用关系到人们。如果您使用LINQ的方式在可读性方面产生了巨大的差异,那么您的同行很可能不会向CTO发牢骚。他们会说,“哇,这看起来真的很干净,尽管我不完全理解它。这让我想要更好地学习它。”不要仅仅假设你可以加入一项新技术并自动获得更高口径的代码。使它成为一个挑战,使使用新技术看起来干净和有吸引力。
以我的这个答案为例。我想强调一个功能风格的解决方案,因为没有其他人这样做。我认为函数式编程通常会产生更好的代码,但是我的初稿非常难读,尽管它很简洁,注释也很好。这让我很困扰,所以我再试一试。我的第二稿仍然需要对函数式编程有基本的理解,但如果我自己也这么说的话,会好得多。
我的观点是,如果您投入更多的精力来编写更干净的代码,那么您的同事们将会对这项新技术更加兴奋。如果您无法编写比“老式”方式更容易阅读的LINQ代码,则不应该在这种情况下使用它。如果您无法判断是否更容易阅读,请进行代码评审。
发布于 2014-05-29 21:41:10
我脑子里有三件事。
首先,“简单”并不是“愚蠢”。简洁是优雅的前身。
第二:在你的工作中,最重要的是要有团队精神。你的老板是个团队精神。工作是让团队团结在一起,这意味着让您的代码为您的团队成员所理解,并使您成为团队的一部分。这是好的,你试图教育自己,提高你的技能。但是在一个团队中,这也意味着:承担责任,分享你的知识。
第三:如果你认为你的队友的整体知识和技能水平不够,就和你的老板谈谈,提供帮助、培训、代码评审、演示等等。讨论你额外技能的可能性、利弊。
永远不要忘记:保持简单。一直都是。从不老练。这破坏了高效的工作。你的主要目标必须是:将高水平的技能和简单性结合起来。这就是编程的艺术。事实上,这是一切的艺术。
发布于 2014-05-29 21:11:38
这是一种困难的局面。
首先,不要和你的老板或你的同事产生消极的关系。最重要的是,要积极主动,认识到他们有价值的特质,并且乐于助人。
然后,看看你能做些什么,让你的同事接触到新的技术。如果有必要,在代码中包含解释,这样人们就可以跟踪你。迎合他们更高的动机。不要说“你应该那么做”,要说“这是我要做的,也是我为什么要这么做的原因。”不要说教。
当这是正确的事情时-妥协。
换句话说,做一个领导者。
https://softwareengineering.stackexchange.com/questions/241444
复制相似问题