?公司最近新入職了一個三四年工作經(jīng)驗的程序員,自己寫了一套編程框架,總共三萬多行,說是要接下來的項目想要用自己編寫的編程框架來寫,于是我勸他,不管這個框架他認為多好,暫時還是放一放,但是,這個程序員很不理解,一直問我為什么,我即使解釋了,他似乎也聽不進去,最后把我搞急了,對他說:“不行,我走?”
這個程序員下稱小李,因為招小李時我不在公司,所以是老板親自面試的,入職以后,老板就想讓我?guī)?,讓我看看他的能力到底怎么樣,而我手上正好有個項目快驗收了,但是驗收前還有一個需要解決的小問題,問題也不復(fù)雜,我認為即使是剛畢業(yè)的程序員,只要不是太差,大概要全職花一個星期也能解決這個問題,但是我現(xiàn)在手上有其他項目也很緊,所以這個事情就一直拖著,正好小李來了,我就準備讓他去解決!
這個快驗收的項目,出現(xiàn)的問題是可以獨立出來的,而我寫的這個項目總共有將近15000行代碼,項目框架是我根據(jù)公司的項目情況寫出來的,其中,有將近3000行是框架代碼,比較簡單,剩下的都是業(yè)務(wù)代碼,本身代碼量不多,但是理解這套框架和業(yè)務(wù)代碼也需要時間。為了不影響小李的試用期考核,于是我決定,將項目遇到的問題獨立出來,讓他先解決,然后我再告訴他怎么在正式項目代碼里面添加他寫的代碼。
吩咐完這一切,我就去忙別的事情去了,轉(zhuǎn)頭回來時,發(fā)現(xiàn)小李正沉浸在自己的代碼世界之中,我習(xí)慣性地站在他旁邊看了一會兒,緊接著我就皺起了眉頭!
我看小李在IDE里面打開的項目似乎不像剛剛新建的,這里需要解釋下,我們公司所使用的技術(shù)棧是C#,通常我們在新建一個項目時會先建一個叫作“解決方案”的東西,它就是一個項目的最底層的文件夾,解決方案下就是實際的項目代碼,像一些通用代碼,或者是分過層的代碼,基本上都會在解決方案下面通過新建項目獨立出來,主項目引用即可,當然,也可以引用外部解決方案的項目,這種引用,其實就是項目依賴。
我之所以說小李的項目不像是新建的,是因為他一個解決方案下總共引用了將近二十個其他項目,我以為他不在干我安排給他的活,于是就問他他現(xiàn)在在做什么。
結(jié)果小李回答我,正在做我安排給他的工作。
我不解得問:“但是,我看你現(xiàn)在這個項目不像是新建的!”
小李似乎有點驕傲得跟我說:“對,這是我自己搭的框架!”
我想都沒想,直接告訴他不要用,然后他問我為什么!
因為我前面說了,他寫的代碼最后我是要集成到我現(xiàn)在的項目里面去的,并不是想要給他練手的意思,他如果用其他框架且,最后又怎么集成呢?
結(jié)果他回答我:“沒事,我這邊的項目引用很靈活的,到時候直接引用一下包就可以用!”
聽他說完,我愣了一下,然后反問:“引用你這將近20個項目的包啊?”
他點點頭!
最后一番溝通下來,他還犟得很,非要用自己寫的框架,從頭到尾就沒松過口。
最后把我搞急了,我脫口而出:“要不你來坐我的位置,我走?”
我不用他框架的原因很簡單。
第一,經(jīng)過溝通,我發(fā)現(xiàn)他自己寫的這套框架總共有三萬多行代碼,就像我剛開始說的,我自己為公司寫的項目框架總共也就3000多行,在這種情況下,我都不敢輕易讓一個剛剛?cè)肼毜某绦騿T去用,更何況是一個已經(jīng)寫了三萬多行的代碼框架,按道理,你一個剛?cè)肼毜某绦騿T應(yīng)該琢磨的應(yīng)該是現(xiàn)有項目的情況,而不是盯著你過去寫的代碼不放!
第二,即使他最后能把項目問題解決掉,我們還要考慮維護成本。
首先,我們不能為了用框架而去用框架,目前GitHub上成熟的、能夠為我們公司所用的框架有很多,我們?yōu)槭裁床蝗ビ??肯定有原因嘛?/p>
此時,不管小李寫的框架有多么好,我也得暫時放一放!
首先就是理解小李這套框架的時間,如果不經(jīng)過專門的培訓(xùn),你讓一個程序員去研究一個三萬多行代碼的框架,即使是全職去研究,我估計沒有十天半個月也下不來吧!
然后就是即使我愿意讓小李用他的框架去解決現(xiàn)在的問題,但是一想為了解決一個小問題,后面要引用將近20個包,我想想都冗余!我自己現(xiàn)在項目用的代碼,框架本身也不超過5個引用!
其次,現(xiàn)在這個項目是我和他在維護,后面萬一我和他都有事,這個項目出現(xiàn)了問題,接手這個項目的其他同事不光要研究我這15000行代碼,還得研究他那三萬多行代碼!想想都能把人逼瘋!
除非他是研發(fā)總監(jiān)級別的人物,可以讓大家強制學(xué)習(xí)他寫的框架,否則誰面對這三萬多行代碼不頭疼啊!以后這代碼大概率也就只能他自己來維護了!
第三,有個實際的問題!那就是他才剛?cè)肼殻?/p>
即使他寫的框架代碼寫得比我寫的代碼還要優(yōu)雅、效率比我寫的還要高,萬一他沒過試用期呢?
說到最后,我感覺小李都對我有意見了,看我的眼神感覺我像是在欺負他,搞得我都有點不好意思了!但是我一想,心軟不行,于是讓他暫時拋棄這套框架,重新新建一個項目寫!
結(jié)語
我覺得,不管他寫的框架有多么優(yōu)秀,現(xiàn)在這種情況都不是用的時候,等大家都有時間了,他再去內(nèi)部推廣他寫的框架也不是不行!好的東西,我們是樂于接受的,不管他工作經(jīng)驗有幾年,只要是好的東西,我都樂于學(xué)習(xí)!
但是,話說回來,如果拋開框架,代碼就寫不了了,這才是真的有問題!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.