為什麼你的代碼總被吐槽?做好這3點,經理對你刮目相看

在我們平常的開發過程中,最難受的事情是什麼?莫過於看代碼,而且是別人的代碼,而且是已經離職的且沒有留下任何文檔的人的代碼。在以前,服務器性能非常有限,所以我們寫代碼講究的是代碼的執行效率,而現在,互聯網講究的是多人合作,快速迭代,代碼的簡潔易懂就變得越來越重要了。下面幾種最簡單的方法,讓我們的代碼變得更加整潔。


為什麼你的代碼總被吐槽?做好這3點,經理對你刮目相看


提煉函數

見過程序員不少代碼,寫起來勢如破竹,行雲流水,啪啪啪就寫了一個幾百行的函數。這其實給後面的人加大了閱讀的難度,特別是公司裡面的代碼是由多人維護的,很快就會發現這麼一段代碼,不是那麼清晰了。

很多人都說,提煉函數出來的目的是為了複用,不需要複用的代碼為什麼要提煉出來。提煉函數減少重複代碼只是它一個功能,更大的作用,其實是為了保證代碼邏輯的清晰。在一段長函數中,容易犯下一個變量反覆使用,代表不同含義,這都是非常危險的操作,稍有不慎,就會出線上故障。

一般情況下,我們會把有明確意義的代碼提煉出來,單獨做一個函數,並給他命一個簡單易懂的函數名,看到函數就能聯想到代碼的作用。


為什麼你的代碼總被吐槽?做好這3點,經理對你刮目相看


引入解釋性變量

程序員必備的素質是什麼,是強壯的身體麼,是驚人的體力麼?不,是邏輯能力。對與大部分人來說,大部分的工作都是寫邏輯,也就是寫if else。例如遊戲裡面,各個技能的結算順序,例如電商領域商品價格的計算規則,都是非常多的判斷邏輯耦合在一起。相信每一個程序員都看過這樣的代碼,一個if語句裡面,條件加起來有十幾個,每一個都是一堆判斷關係,這就非常容易出坑了。

一個簡單的做法,是提前把這些判斷關係提取出來,用一個臨時變量來存儲,例如提前判斷一個人是否是江浙滬,用一個變量bJZH存起來,後面在計算包郵公式的時候就會更加簡單明瞭,而不是一個if語句裡面IF(XX==J || XX == Z || XX == H)。


為什麼你的代碼總被吐槽?做好這3點,經理對你刮目相看



多態,以函數對象取代函數

面向對象的精髓,就是多態。以我最為熟悉的JAVA語言為例,能否把多態學好,是衡量一個JAVA程序員功底的關鍵。在此之前,我們的商城的營銷活動系統是從外面購買的。裡面的代碼就寫的一團糟。常見的商城營銷活動有滿減、滿贈、打折等等,都在一個類裡面實現,雖然說代碼也能跑,但就是維護起來比較難,處處埋雷,特別是經常一個版本好幾個人都要修改到這個類,偶爾就會爆炸,引起線上資損。

一種比較好的設計模式是把每一個活動抽象成一個類,提供一個計算方法。我們使用一個工廠類根據營銷的類型返回相關的活動類,然後調用方直接把上下文傳進計算方法進行調用即可!

總結

好了,今天我們就介紹到這裡,很多人會說時間那麼少,哪有時間去設計,這麼寫不是更麻煩麼?相信我,堅持這麼幹一段時間,你會發現在調試、查問題的時間會減少很多!

歡迎大家關注我,近期還準備了一些AI相關的知識,整理後會和大家繼續分享。大家的支持是我繼續嘮嗑的動力。同名公眾號(沙茶敏碎碎念)

相關推薦

推薦中...