Break or Repair? 你來選擇

以下內容人物均爲杜撰,如有巧合,純屬雷同。

 

從前有個程序員,叫阿星,在小公司工作了2,3年,經過了好多輪技術面試的奮戰,終於成功加入了Banana公司,是一個很有名的技術大廠。阿星加入的部門是一個負責公司支付業務的中臺團隊。

 

打雜期

阿星在Banana公司的前幾個月,主要做一些零散的小需求,一直沒機會上手一些核心系統的開發,不過偶爾也會翻閱一些老系統,有不懂或者覺得和自己想法不一樣的地方會諮詢老同事。

有些時候,老同事都會有句口頭禪,這是歷史代碼的問題,這一塊改了影響不知道有哪些,會增加回歸成本,這期先這樣往上加吧,後面再看看。

每次聽到這樣的結論,阿星因爲是新人,也會贊同老同事的看法,認爲這樣的考慮是合理的。

但阿星內心總隱隱感覺不對...

 

Break or Repair?

因爲在入職這段時間表現不錯,領導走到阿星背後,拍了拍阿星的肩膀說:“阿星,最近我們要對接一個新的支付公司,叫好就付,你找老同事瞭解下之間是怎麼對接其他支付公司的,你來做一下這件事情。”

阿星內心OS:“終於可以參加核心流程的開發了,太棒了”

阿星找老同事瞭解了下,對接一個新的支付廠商,需要增加一個對應的開通支付的功能,對接支付的功能以及處理開通信息回調的功能。

阿星拉取了主要用來對接支付的的系統,主要是通過定義了一個標準接口給上游系統,內部通過上游分發的展示Id,將展示Id轉換成該系統可識別的廠商Id,進入各自的主流程。

阿星要來了新的廠商的接口文檔,將上面的三個功能都增加了一個新的分支加以實現,並添加了上游展示Id和好就付廠商之間的轉換代碼。

進入測試階段,阿星發現,直接調支付功能是通的,但是開通功能一直不通,仔細查閱了代碼發現,原來開通和支付這裏各自維護了一套展示Id和廠商之間的轉換關係。

阿星爲了避免部署上代碼後,還是測不通,仔細查閱了整個系統,發現這樣的轉換關係,在系統內維護了7個地方。

阿星看了看老同事的實現,都是用到一個新功能時,將原有的轉換代碼直接拿了過來,增加了一個新的分支。

阿星覺得這樣的轉換邏輯應該維護在一個統一的地方,否則之後新增或者修改一個廠商,每次改動一個廠商需要修改這7個地方,而且隨着功能的新增,可能還會增加。

阿星詢問了之前的老同事,老同事說 他實現的時候也是看之前的代碼就是這麼寫的,確實也覺得不太合理,但歷史都是這麼寫的,自己就繼續往後加了。

阿星陷入了猶豫,自己應該是優化這塊功能,還是繼續延續老的用法,等到實在改不動了再修復。

你會怎麼做呢?想一想,可以留言回答~

 

做正確的事,不做容易的事

阿星想了想,如果我也繼續這麼做的話,那麼下一個人可能也會繼續這麼做,那麼這段不合理的處理方式就會一直延續下去,永遠沒有結束的那天,也就無法成爲一份好的代碼,這可是我夢寐以求加入的公司啊~

可是改這麼多地方,會不會影響很多,阿星主動找了資深的同事,說明了自己的想法,同事也認可了自己的做法,之前開了一道口子,現在越來越大了,是應該修復了。

來吧,看我的天馬流星拳!(抱歉,阿星有一些中二)

阿星將所有負責轉換的邏輯,都抽取了出來,統一到了一個地方,增加了註釋,並將原來各處的調用,都收攏到了一處,雖然爲此阿星加班測了好多不是他這個需求的功能,但阿星內心是滿足的,自己做了一件正確的事。

在阿星修復了這個口子之後,又緊接着對接了好幾個新的廠商,大家再也不需要修改7個地方了,阿星有種深藏功與名的感覺。


破窗效應

之前阿星在修復的問題的時候,在想,爲什麼之前大家都看到了這個問題,但是沒人在第一時間發現這個問題後修復呢?

直到有一天,阿星瞭解到了這個理論 - 破窗效應。

破窗效應(英語:Broken windows theory)是犯罪學的一個理論,該理論由詹姆士·威爾遜(James Q. Wilson)及喬治·凱林(George L. Kelling)提出,並刊於《The Atlantic Monthly》1982年3月版的一篇題爲《Broken Windows》的文章。

此理論認爲環境中的不良現象如果被放任存在,會誘使人們仿效,甚至變本加厲。一幢有少許破窗的建築爲例,如果那些窗不被修理好,可能將會有破壞者破壞更多的窗戶。最終他們甚至會闖入建築內,如果發現無人居住,也許就在那裏定居或者縱火。一面牆,如果出現一些塗鴉沒有被清洗掉,很快的,牆上就佈滿了亂七八糟、不堪入目的東西;一條人行道有些許紙屑,不久後就會有更多垃圾,最終人們會視若理所當然地將垃圾順手丟棄在地上。這個現象,就是犯罪心理學中的破窗效應。

阿星看完之後明白了,在軟件開發中其實也存在着破窗效應,當一處不合理的開發出現後,沒有在第一時間修完這個破碎的窗戶,接下來的人就可能會在修和不修之間動搖,有概率讓這個窗戶變的更大,讓這個窗戶變的更難修復。

 

讓我們一起修窗戶

阿星最後意識到,無論是小廠還是大廠,代碼是靠大家一起維護的,只有大家都有修窗戶的意識,纔會讓系統變的越來越好,否則只會將問題都甩在歷史問題上,可是歷史問題又是誰造成的呢?

好了,這就是程序員小岑筆下人物阿星的第一篇歷險記,如果覺得還不錯的話,歡迎點擊評論,轉發

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章