|
英文原文:Code fast or code slow? Who are you?
一般而言,有兩種類型的開發(fā)者。一種編碼速度快,喜歡一大段一大段的組合代碼,然后看它是否能順利運(yùn)行,這是編程中的“快槍手”,還有一種在朝著目標(biāo)前進(jìn)的時候比較淡定,他們會確保他們所寫的一切代碼都是精心設(shè)計(jì)的,可維護(hù)和可擴(kuò)展的。因?yàn)檫@個原因,使得他們在速度上顯得比別人慢,所以是“慢悠悠”。
兩者之間的區(qū)別是,前者完成的效率更高,但代碼的錯誤率更大(除非他們特別幸運(yùn)),而后者代碼的錯誤率就少多了,并且易于擴(kuò)展和維護(hù)。親你是哪一種呢?
愚蠢的“快槍手”?
大多數(shù)開發(fā)人員可能不敢承認(rèn)自己是那種以良好的體系結(jié)構(gòu)為代價的“快槍手”。為什么呢?因?yàn)檫@樣可能會產(chǎn)生更高的錯誤率。但是回過頭來想想,哪個系統(tǒng)沒有代碼錯誤?
拿我自己舉個例子。
我如果接了個單子要寫程序什么的,會有來自客戶方面的壓力,因?yàn)槲冶仨毤皶r交付。而客戶對于軟件的要求大多是通過電子郵件,電話告知的,或者在某些情況下,客戶會直接寫在票務(wù)系統(tǒng)里發(fā)過來。我的責(zé)任就是,確保程序的功能可以準(zhǔn)確反映這些要求。而大家都知道,有時候客戶想要什么卻并不說出來,而這一點(diǎn)也是我必須考慮進(jìn)去的。
在開發(fā)團(tuán)隊(duì)中,有寫的快的成員也有寫的慢的,有代碼錯誤率高的也是錯誤率低的。而我我大部分時間在做的是,怎樣將這些人員有效分類。
繼續(xù)講那個例子。那么我該如何確保客戶的要求能實(shí)現(xiàn)呢?答案是,我得看到實(shí)現(xiàn)要求功能的代碼在哪里。所以,我就有兩個選擇了。第一個選擇是把單子交給能快速交付的“快槍手”,這樣我便可以及時看到運(yùn)行結(jié)果(無論代碼是否有bug也不管后期是否易于維護(hù))。另一個是讓“慢悠悠”來做,有可能直到最后一分鐘他都交付不了,但是拿出來的解決方案必是精品。
第一種情況下,我能很快拿到成果,而且如果客戶不滿意,還有時間去修改,但是我可能不得不面對不支持?jǐn)U展和不可維護(hù)等等方面的缺陷。而在第二種情況下,因?yàn)闆]有多余的時間,所以將不能按客戶要求進(jìn)行修改,但是代碼簡潔優(yōu)雅,如果未來有需要的話還可以進(jìn)一步擴(kuò)展。
在這里要著重講一下,可擴(kuò)展和不可擴(kuò)展以及可維護(hù)和不可維護(hù)的區(qū)別。例如,我們已經(jīng)按客戶要求搞定了所需的軟件,但是它的代碼是不可擴(kuò)展的,那么如果用戶喜歡并且想進(jìn)一步擴(kuò)展的話,那你就只能叫苦連天了。但是如果是可擴(kuò)展可維護(hù)的,那么用戶想在某個方面擴(kuò)展的話,那就是小菜一碟了。
所以,如果用戶沒有要擴(kuò)展某個方面的想法,那么我會選擇“快槍手”。反之就需要“慢悠悠”了。但是如果你想保證100%選擇正確,那就只能讓事后諸葛亮出馬了。
因?yàn)檫@是一個主觀判斷。
不可協(xié)同工作
上面我講的例子如果能團(tuán)隊(duì)中實(shí)行,肯定可以提高整個團(tuán)隊(duì)的工作效率。在分配過程中,我認(rèn)識到,“快槍手”有快速編碼快速交付的特點(diǎn),而“慢悠悠”有完成的代碼簡潔明朗易于維護(hù)的特征。
隨著社會的發(fā)展,CI / CD已經(jīng)變得適用于多種環(huán)境。并且現(xiàn)在推陳出新也是越來越便宜。即使代碼不可擴(kuò)展,人們也負(fù)擔(dān)得起更新迭代,甚至哪怕就是再次重新架構(gòu)也可以承受。這樣一來,我們就需要“快槍手”按照要求盡可能的快速開發(fā),而在需要架構(gòu)或者重構(gòu)的時候,再青睞“慢悠悠”來大顯身手了。
但是如果“快槍手”的代碼寫得太快以至于“慢悠悠”完全跟不上,那時候就悲劇了,因?yàn)槟愕玫降闹粫且粋€千瘡百孔,滿是bug的系統(tǒng)。
誰都不希望得到這樣的結(jié)果。
預(yù)見機(jī)制
為了解決上述問題,我們可以使用預(yù)見機(jī)制,用于衡量開發(fā)人員的bug在代碼運(yùn)行時會導(dǎo)致什么問題。這樣既可有效控制“快槍手”的錯誤率,也能確保“慢悠悠”的代碼火車不再晚點(diǎn)。
有沒有覺得,“快槍手”好像文獻(xiàn)資料或者是驗(yàn)證器?而“慢悠悠”則更加適合放在設(shè)計(jì)和架構(gòu)功能方面,以便于這些方面今后有需要的話,容易維護(hù)和擴(kuò)展。
也許我們可以叫“快槍手”為功能團(tuán)隊(duì),而“慢悠悠”則更趨向于是一種工程團(tuán)隊(duì)。
最后,問問你自己,“快槍手”和“慢悠悠”,親你是哪一種呢?
it知識庫:你是編程中的“快槍手”還是“慢悠悠”?,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。