别害怕自己发明轮子,只要不是自己发明方的轮子

我之前写一篇文章 是否需要重复发明轮子,请大家给点意见。

主要的观点:

尽量不要重复发明轮子,但是别人造的轮子不合适也不要惧怕发明轮子这种工作;自己做,其实也不是困难到哪里去。因为你自己做,不需要考虑开源组件那么多,仅适合你自己或团队的使用就行,需求比较简单。

2)不要有取巧心理。世上没有免费的午餐,现在用了别人的开源库,看上去没有任何代价,实际上代价会像挤牙膏一样一点一点付的(对有责任心的产品架构师和开发者务必注意)


3)尽量挑选文档齐全的开源项目,挑经历过时间考验的项目,挑活跃度比较高(是为了有bug改的快一些)的

4)在使用开源库之前,至少团队内部要评审,征得大家一致同意

5)要进行全方位的测试,功能、边界、效率、资源占用等等方面

6)考察组件的内部特性(可读性、可理解性、可持续性),尽量采用代码可读性和可理解性好的组件,以便有问题自己能够查找和修正;

7)稳定的使用组件,不要频繁更新版本,以防版本更新带来兼容性问题。

8)尽量使用简单而小型的组件,不要使用大而全的组件。尽量不要使用依赖关系非常复杂的组件

1、Don’t Reinvent the Wheel? 宝马的轮子适合做单车的轮子吗?正确的态度恐怕还是鲁迅的“拿来主义”。
2、Don’t Repeat Yourself?也未必,Practice makes perfect!熟能生巧。

这种问题,因人因时因地而异,一般的解决方法是:设定目标,确定取舍标准,分析利弊,然后做出选择。

2013-07-20 20:14 "@windshome
"的内容
但是别人造的轮子不合适也不要惧怕发明轮子这种工作 ...

我提一个观点,别人造的轮子不合适也别急着发明自己的轮子,而是先Hack别人的轮子,发挥黑客精神,Facebook开始用PHP,后来发现性能差,他们并没有打算自己发明新的语言,而是黑了PHP,重新写了解释器。

还要这样考虑,你做的轮子,对于别人来说也是“别人”的轮子,而你总会离开项目,总有人接上你的,那么到头来,还不是一样。

做轮子实际上只是有利于自己的认识。