当我还在雅虎工作的时候,所有的前端开发者都在使用雅虎自己做的YUI进行开发。这种做法很有意义:当你付钱给人们去维护一个前端库的时候,如果能让公司内的所有人都使用它,并且做出贡献,你就能获得最大的利益。我和公司内的很多其他人一样,都非常喜欢使用YUI。我们形成了一个“YUI部落”,在雅虎内部,所有前端开发者都要使用YUI,成为了一个共识。但是,谁也不可能一辈子都在雅虎工作。
我在雅虎的一个同事,在离开雅虎之后,加入了一家新企业,成为了那家公司的技术领导。有一次我在路上遇到了他,他对我说,他现在在新公司最主要的工作,就是让所有人都改用YUI。此前,这家公司的员工都在使用jQuery,而我的这位同事就是不想用jQuery。我对他说,也许让新同事都改用YUI,这样做并不好。他当然有权利分析公司当前的整体架构,并且尝试进行一些改进。但是刚刚进入一家新公司,就试图让所有人放弃自己的习惯,改用你所熟悉的库或框架,这种尝试很难成功。这家公司的架构可能非常好,而且就是用jQuery搭建起来的,这种情况下你为何要让别人放弃此前所做的一切?
我在加入Box的时候,也遇到了类似的问题。公司内的开发者都觉得我会移除jQuery。终于有一天,有个人来问我:“你会让我们放弃jQuery吗?”而我的回答则是:“不会,jQuery不会被放弃。我只是想要明确它在架构中的地位。”这种做法打消了开发者的担心,也让我和团队建立起了信任感。
上周我看了一篇文章: learn JavaScript in 2016,在读这篇文章的时候我想到了这些故事。这篇文章主要专注于开发者需要学习的技术和库,但是其中也有一些技术部落主义的东西。有技术部落主义的人,总是责备那些和自己工作方式不一样的的开发者,例如在做同一件工作时,你用YUI,而另一个开发者用jQuery,而你就指责对方不够好。类似的,还有Angular派和React派。我自己也犯过类似的错误,我曾在Twitter上说过自己讨厌React或JSX。有很多人留言说我愚昧、傲慢、无知、保守。
对某种技术或是方法有倾向性,这种做法无可厚非,但是前提是你不要陷入教条主义。在整个职业生涯中,你不可能只用一种方法,要想获得成功,对于新的技术你要保持开放的心态。四年以前,我接触过的所有企业,都在问我如何改善他们的Backbone-based程序;而现在,他们讨论的都是React。千万不要将自己封闭在一个部落里面,将自己与当前最火热的技术隔离开,更不要去指责那些和你使用不同的工具的人。这个行业不需要部落主义。我们需要的,是那些愿意不断学习,不断突破自己的人,那些充分理解问题,并且能找到最好的解决办法的人。