外界人总爱说程序员喜欢重复造轮子,对此你怎么看?
理性说明下:喜欢造轮子可以是个人爱好,但是得以不牺牲项目进度,不影响公司利益为前提,然后造轮子其实是一件挺好的事儿,我就挺喜欢重复造轮子的,去满足个性化的需求,开发或者教学都有。
几个典型的例子
1.现有框架不满意,自己造个顺手的轮子~
手写O/RM框架,工作过几年的小伙伴儿,可能都会有类似的想法,现有的框架总是不那么合适,EF太重,Dapper太轻,http://Ado.Net写起来累,一些知名不知名的O/RM也不知道是否靠谱,公司用的这套封装还是N多年前的,所以自己写一个呗,无非就是泛型反射http://Ado.Net特性缓存Linq等整合,可能功能没成熟O/RM那么齐全,但好在用起来放心,需要啥功能随时去扩展升级,相关技能也得到一波锻炼,一箭多雕。
2.纯粹为探究原理,动手实践,增加面试资本
手写IOC容器,这个可选项太多了,autofac、Unity、MEF、Injection、http://Spring.Net、还有http://Asp.Net Core内置的ServiceCollection,所以写容器纯粹探秘,完整实现一番后,心里特有底。甚至面试的时候还能拿出来吹一下,挺舒适。

3.组件扩展成本太高,还不如自己从头造
自定义消息队列,市面上的消息队列也多呀,奈何API众多,各种理念又不同,甚至还有各种环境依赖,然后项目中的个性化需求得不到满足,去扩展定制发现还不如自己写个省心,erlang写的rabbitMQ让我扩展改代码很受伤,耗时比自定义个队列还长。
4.项目组没事儿了,造轮子有益身心
当年呆过一家外包公司,曾有3个月没有任何项目做了,作为TeamLeader,不能放任大家闲着(闲着会多想,多想就多事儿),所以就发起个任务,一起开发个工作流引擎,毕竟这东西项目中用的多,之前公司用的是其他团队的,于是就一起造了3个月的轮子。

5.网上有开源的,但是不能直接搬,可以拿来微创新
这个就不展开了,就是入了新公司,需要搭建整套开发框架,实际上是把开源框架搬下来改写,改改名称调整下机构,然后就完事儿了。这个不可细说
好了,本人大概就是以上几种情况,多造轮子,有益身心~
欢迎大家参与交流,祝大家学习进步 ,原文地址:
https://www.zhihu.com/question/407370305/answer/1348693594