怎样才能算是一个卓越的javascript开发者?看你怎么对待屎一样的code – 十轮网-九游会官网真人游戏第一品牌

怎样才算是一个优秀的javascript开发者?javascript开发者网站the full stack作者dor tzur撰文分析了如何辨别出卓越/优秀/平庸/差劲的javascript开发者,虽然一个javascript开发者到底有多优秀可能难以有准确的数据去衡量,问10个不同的工程师可能他们会说出10个不同答案,但或许你能看看以下dor tzur所说有没有道理。

在进入正题之前,先来一个事实爆击。

所有的开发者当都会写出可怕的code,那些可耻的、烂到爆的code,尽管你知道一个成功的工程师背后可能都有一堆烂code,但你就是不希望别人看到的那种狗屎code。我们往往都会为这些屎一样的code找理由,可能是:

“时间来不及啊!”、“codebase就真的太烂了”或者有时候你在陌生的project里面写几行code,这事情虽然不是什么大事,但也不能麻烦别人,本来负责这project的同事又休假,只好轮到你身负重任,所以抱持着“干完这事我就能撤了”的心态写下了屎一样的code。

烂到爆的code,是开发者能力的“终极试金石”?

没时间是最常见的原因和理由;有时候给开发者的codebase是真的很糟;更没人想要写出烂到爆的code,但dor tzur观察到:开发者怎么去对待这些屎code,他们对这些烂爆的code有什么反应,就是这些开发者能力的“终极试金石”。

dor tzur举了一个例子:

ron今天写了段烂code,但是因为令人讨厌的 5 level deep backbone model继承链,除非推翻全部重来,所以他也没办法改,除了他自己,所有人都因为他交了code而满意,他向自己的组长说了这件事,并且想办法一起解决。

最后他们讨论的结果是打破继承链,并且重构,ron并向组长要求分配多一些时间让他完成重构。

另一位roger,他同样也写出了烂code,他告诉他的工程师朋友,他写了段超级酷炫的code(无视了5 level deep backbone model继承链),在设法绕过了整个代码架构、完成目标后就把code准时交出去了,他非常满意这样的做法,且不需再有任何进一步行动了。

卓越、优秀、平庸、差劲的4种开发者,你是哪一个?

差劲的开发者barney

barney是个不在乎写出烂code的开发者,他唯一在乎的是能不能准时完成,只要code可以动就好、一切就非常完美,但他写的烂code有时会打乱整个project的进程,并且会弄坏许多东西,最后拖累整个project,不过barney觉得自己挺好的,挺精通javascript的,而且不需要再进修了。

平庸的开发者bill

bill没有意识到自己写了段烂code。他遵循团队的规则,觉得自己做得还算ok,但他不会去花时间去理解整个project的结构以及不同模块之间会有什么相互作用,到最后,只能用乱七八糟、一团混乱来形容。

bill在决定大方向的设计前没有咨询过任何人,他即兴表演、临时发挥一般,只参考了他一年前读过的3篇博客文章,看bill的code就像走在到处都埋着地雷的所在,一步踏错、一个错误的举动,一切就会在你脸上炸开。

优秀的开发者roge

在上文,我们已经先认识roger了,而他被dor tzur分类在“优秀的开发者”。他完完全全能意识到自己写了段屎一样的code,然而他只是安慰了自己一下,并且继续完成这段屎一样的code。

dor tzur指出,他做了自己份内的工作,还做得很好,但他的错在于“没尝试去改变”,他觉得花时间追求完美,还不如维持现状就好。

卓越的开发者ron

就像你所想的,ron是一名卓越的javascript工程师,他清楚自己写出了那些烂到爆的code,也知道必须想办法解决,他能想出需要怎样的重构、怎么去改进或改变,并且真的付诸行动。

看到这里,你是ron,还是roger呢?或许我们还曾不自知的状况下当过bill或barney,或者在阅读文章时,你想起了自己身边哪位优秀的同事。

总结上文,你不难发现为何dor tzur会说烂code其实就是开发者能力的试金石,因为这彰显出了开发者的“态度”。

没有人想要成为barney,但我们要怎么成为roger,甚至进化成ron,至少我们得先尝试改变,dor tzur最后引用了art williams说过的一句话来勉励工程师们,他们或许是bill,或许是roger,也或许是别人眼中的bill。

art williams是这么说的:“记住,在你变得“优秀”之前,你需要做得“好”;在你做得“好”之前,你可能会做得很“差”;但在你甚至可以做得很“差”之前,你至少需要先去尝试。”

发表评论