这种程序员叫做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.
最后,还要看你写代码的目的是什么。如果单纯是为了学习开发,而不是完成一个实际的软件项目,当然还是先自己写,写完以后再找个成熟的开源项目对比一下,看看自己错在哪了,哪些问题没考虑到。但如果是实战,等你那蹩脚的轮子造好,别人都超你好几条街了。
金城在线专注网站、软件、APP、微信公众平台、小程序、抖音、头条等开发推广,如果您有这方面的需求或者不同的观点,欢迎联系交流。
本文网址:http://lz.net.cn/zixunzhongxin/551.html