如何看待经常使用第三方library的程序员

这种顺序员叫做Duct-tape Programmer,用一些像胶带一样的代码把很多第三方的库衔接起来。软件随想录的作者Joel Spolsky有一篇博客写的就是这种顺序员【1】,他以为,这才是最好的顺序员。

与此相对的另一个词是NIH:Not Invented Here Syndrome【2】,这是一种病。有些完美主义的顺序员,以为轮子只需不是自己发明的,就一定不是好轮子。这是会付出沉重代价的。Netscape的历史经验:一些工程师以为第一版代码过于混乱(不是他们写的),因此决议重写整个阅读器,招致发布时间大大推延,错过了市场。这是Netscape毁灭的一个重要缘由。

我比拟欣赏适用主义的做法。另外,以如今的软件复杂度,你曾经不能够任何事情都自己做了,由于你的终点就是在很多巨人的肩膀上,并且一代代的顺序员积聚的少量代码会让后来的顺序员越站越高。难道明天你会重写Linux,Gcc吗?假设你关注互联网的项目,你就会发现大局部项目其实都是“堆砌”出来的,连Facebook都会运用很多第三方开源组件。Instagram曾经发布过一篇技术博客,解说他们的stack【3】,数数看外面运用了多少开源工具和组件?假设一切都自己写,能够Instagram第一版明天还没面世呢!假设你执意要自己完成大局部任务,这种执着除了能取得一些小小的成就感之外,是没有太多意义的,皓首穷经而已。

当然拿来主义也不能不加选择。比如我在Github下面看一个组件的时分,会看看有多少star,有没有其他知名的项目在用它(能否成熟),最近的commit是什么时分(能否生动)。另外一个准绳,Joel在他的一篇文章里也提过【4】:If it’s a core business function — do it yourself, no matter what.

最后,还要看你写代码的目的是什么。假设单纯是为了学习开发,而不是完成一个实践的软件项目,当然还是先自己写,写完以后再找个成熟的开源项目对比一下,看看自己错在哪了,哪些效果没思索到。但假设是实战,等你那蹩脚的轮子造好,他人都超你好几条街了。

提供最优质的资源集合

立即查看 了解详情