外界人總愛說程序員喜歡重復(fù)造輪子,對(duì)此你怎么看?
理性說明下:喜歡造輪子可以是個(gè)人愛好,但是得以不犧牲項(xiàng)目進(jìn)度,不影響公司利益為前提,然后造輪子其實(shí)是一件挺好的事兒,我就挺喜歡重復(fù)造輪子的,去滿足個(gè)性化的需求,開發(fā)或者教學(xué)都有。
幾個(gè)典型的例子
1.現(xiàn)有框架不滿意,自己造個(gè)順手的輪子~
手寫O/RM框架,工作過幾年的小伙伴兒,可能都會(huì)有類似的想法,現(xiàn)有的框架總是不那么合適,EF太重,Dapper太輕,http://Ado.Net寫起來累,一些知名不知名的O/RM也不知道是否靠譜,公司用的這套封裝還是N多年前的,所以自己寫一個(gè)唄,無非就是泛型反射http://Ado.Net特性緩存Linq等整合,可能功能沒成熟O/RM那么齊全,但好在用起來放心,需要啥功能隨時(shí)去擴(kuò)展升級(jí),相關(guān)技能也得到一波鍛煉,一箭多雕。
2.純粹為探究原理,動(dòng)手實(shí)踐,增加面試資本
手寫IOC容器,這個(gè)可選項(xiàng)太多了,autofac、Unity、MEF、Injection、http://Spring.Net、還有http://Asp.Net?Core內(nèi)置的ServiceCollection,所以寫容器純粹探秘,完整實(shí)現(xiàn)一番后,心里特有底。甚至面試的時(shí)候還能拿出來吹一下,挺舒適。

3.組件擴(kuò)展成本太高,還不如自己從頭造
自定義消息隊(duì)列,市面上的消息隊(duì)列也多呀,奈何API眾多,各種理念又不同,甚至還有各種環(huán)境依賴,然后項(xiàng)目中的個(gè)性化需求得不到滿足,去擴(kuò)展定制發(fā)現(xiàn)還不如自己寫個(gè)省心,erlang寫的rabbitMQ讓我擴(kuò)展改代碼很受傷,耗時(shí)比自定義個(gè)隊(duì)列還長。
4.項(xiàng)目組沒事兒了,造輪子有益身心
當(dāng)年呆過一家外包公司,曾有3個(gè)月沒有任何項(xiàng)目做了,作為TeamLeader,不能放任大家閑著(閑著會(huì)多想,多想就多事兒),所以就發(fā)起個(gè)任務(wù),一起開發(fā)個(gè)工作流引擎,畢竟這東西項(xiàng)目中用的多,之前公司用的是其他團(tuán)隊(duì)的,于是就一起造了3個(gè)月的輪子。

5.網(wǎng)上有開源的,但是不能直接搬,可以拿來微創(chuàng)新
這個(gè)就不展開了,就是入了新公司,需要搭建整套開發(fā)框架,實(shí)際上是把開源框架搬下來改寫,改改名稱調(diào)整下機(jī)構(gòu),然后就完事兒了。這個(gè)不可細(xì)說
好了,本人大概就是以上幾種情況,多造輪子,有益身心~
歡迎大家參與交流,祝大家學(xué)習(xí)進(jìn)步 ,原文地址:
https://www.zhihu.com/question/407370305/answer/1348693594