搜狐首页 科技 守护丽人

手机搜狐

SOHU.COM

硅谷丨如果组里同事写了屎一样的代码,你该怎么办?

很多程序员都会经常遇到这个问题:“我们团队那个二百五整天写一堆垃圾代码,我该拿他怎么办?”以下是我们为这种情况提供的一点建议。

?科普时间

在硅谷,很多人喜欢用“Spaghetti Code”这个词来形容那些乱七八糟搅成一团的代码。在本文中我们把这种代码称之为“面条代码”。

?免责声明

让我们搞清楚一点,“我到底该拿我的同事编的‘面条代码’怎么办?”

但是你的公司会这么想吗?不一定。你的公司可能会告诉你:我们想要那些简明的代码。但是在很多时候,你的公司也会抛给你一句:那个Bill脾气比较火爆,然后毕竟他也是高级程序员,你懂的。在这种情况下,如果你逼着他去写“简明的代码”的话,也并不是非常妥当。

所以我们的建议就是,你所做的事情,不必总是为你的公司带来最佳的效益。

?做出一个有数据支撑的方案

现在我们假设说,Bill正在一点一点的“腐蚀”他接触到的每一个代码库。作为一个高级程序员,他横行其道的表现让你非常愤怒,他在公共场合的讲话让你很反感,他写的代码恶心到你甚至都可以真的闻到代码飘出来的恶臭。你甚至会猜想他是不是故意这样做来刁难你。

但是,尽管你烦死了他编的代码,但是你确定它有那么糟吗?当你把它贬为“面条代码”的时候你是不是太主观了呢?你把所有的进入点和退出点都拎出来绘制相关性了吗?还是你不喜欢这些代码只是因为他编写的方式和你完全不一样?总之,在没有数据支撑之前你就直接去找Bill,那么看上去很像是出于恶意。

所以,在你采取行动之前要先做好调查,保证你可以支撑自己的指控。

?问问你自己:“你算老几?”

当然,你已经建立了严谨的方案,进行了静态分析,询问了专家意见,遵循了行业趋势。这都很好。

但是你即将要做的是控诉的公司重量级人物Bill编写的“面条代码”啊!Bill可是公司的元老级人物,他进入公司几十年了,那个时候人们还在用信鸽而不是电子邮件,他那时候一个人仅仅用COBOL和非常原始的工具建立了原始版本的软件。那么,在这么一个元老面前,你算老几啊?

严肃的说,这很关键。你必须要考虑一下自己的身份。如果你的团队把你视作技术领袖和导师,那么你对一个团队新成员说“你的方法太麻烦了,试着把复杂度控制在3以下”,这是没有任何问题的。但是如果你是初级程序员,你这样对一个元老说话,场面会很难看。

这时候你可能会抗议:“在宣告正义之事时,不应该在意地位!”(你说这句话的时候一定觉得自己是下面这张图的感觉)。实话说,我完全同意你的观点,这些话你也可以在办理离职的时候留给HR姐姐去说。

精选