如何提高代碼的可維護性?

薛小落


可維護性代碼,要求我們的代碼易於理解,如果可以用更少的註釋來完成這一功能,勢必事半功倍!


1、命名

  • 函數命名:避免函數名使用含糊的字眼,使用主動動詞表示函數主動執行。

  • 變量命名:變量的命名一定要是一些有意義的名詞,比如userName,而不是a、b、i之類;代碼中禁止出現“魔數”(在代碼中出現但沒有解釋的數字常量或字符串)。

PS:變量命名採用英文,千萬不要出現有創意地拼寫錯誤,比如:SetPintleOpening, SetPintalClosing。這樣估計後來維護者全局搜索代碼時要崩潰。

2、函數封裝

函數封裝最大的好處就是避免代碼重複。

舉個栗子:

下面這樣的代碼,估計沒有註釋的話,一般人都要抓狂,很難看懂吧。

我們看看引入函數之後的例子,該函數名明確地表達了它要做什麼,這樣一來就不必寫註釋了。而且,如果有需要後面還可以直接調用此函數,一舉兩得,減少了重複勞動。

3、引入變量

用變量代替表達式。看下圖的例子,可能第一次接觸代碼難以理解其真實表達的意圖。

如果引入變量,而不是函數,能否解決這個困擾呢?答案是肯定的,請看下圖:

4、代碼分組

儘可能將變量定義在靠近使用它的地方,並且儘可能將變量分門別類,這樣更方便後來人對代碼的維護。

看下面的例子,很顯然,左側的代碼將foo的所有使用組合放在一起,一眼望去就能知道各種關係。如果可以的話,儘量選擇代碼分組。

5、統一編碼規則

無規矩不成方圓,同一個項目組,必須統一編碼規範。試想一會駝峰命名法,一會兒又匈牙利命名法,這代碼看起來得有多彆扭。


一個程序員的奮鬥史


聽過一句話,想分享一下:有些人寫的代碼,實習生都能看懂;有些人寫的代碼,工作十年老司機都看不懂。(可能有點誇張)


肉肉的維迦


1.多寫有效的註釋。注意是有效,不然寫再多也沒用?像大家都懂的可以不用寫,關鍵的地方一定要寫。

2.持續重構。一定要不斷地重構,一有空的時候,見縫插針,最關鍵的一點是發現兩個地方代碼相同的時候馬上重構抽取,這個習慣養好了就事半功倍了。

3.注意格式。有的人寫代碼歪歪斜斜的,沒有分段或者格式化,層次結構很不清晰,各種跳轉代碼。其實代碼塊最好都是按順序下來的,按生命週期等方式,每個類的初始化,設置參數,設置監聽,銷燬等都按一定的順序寫下來,整個邏輯清晰很多。

4.獨立模塊。當各種類獨立後還要考慮獨立模塊,模塊化開發的好處顯而易見。比如我單獨引入百度地圖模塊,可以多個項目複用,自己的模塊也是一樣。

5.設計模式。如果能力較強,在適當的地方使用設計模式,使代碼解耦的更好。


刀是小李飛刀的刀


命名,註釋,代碼模塊化,源代碼目錄結構,項目文檔,更新文檔


風雲code


通常來說,在任何一個項目組中都應該有各自的編碼規範,目的就是為了增加代碼的可讀性和可維護性,那麼,到底該如何做呢?

1/7 分步閱讀

變量命名要有意義,最好是使用英文命名,實在不行的,使用拼音。除了循環中的計數變量,以及特殊場景之外,任何變量都儘量不要使用a、b、c這類完全沒有任何意義的名稱。增強可讀性

2/7

變量除了要有意義之外,還需要統一大小寫,比如第一個單詞首字母小寫,後續單詞首字母大寫的命名風格。風格統一後,看著代碼都會心情舒暢一些,從而可讀性更好

3/7

添加必要的註釋,雖然,某些變量名可以看出意義,但是,必要的註釋可以更為直觀的讓人看懂代碼,增強可讀性

4/7

增加代碼段的註釋。如果是C#語言,可以使用region語法包裹一段邏輯,到時候摺疊起來,看起來整體性就很容易閱讀。其他語言可以使用比較明顯的分隔符號標明段落

5/7

將很長的函數拆分成較小的函數,這樣不僅可以增加代碼的可讀性,還能增加代碼的可維護性

6/7

將代碼劃分層次,比如,訪問數據庫的代碼單獨放在一個項目中,前臺代碼單獨放一個項目中,到時候修改的時候就很明確,不至於四處亂找,增加可維護性

7/7

代碼的層次之間通過接口來調用,減少各個層次之間的耦合度,增加可維護性









科技許


據說低代碼平臺比傳統開發快6到10倍,這是真的!

低代碼軟件開發平臺,顛覆了傳統的軟件開發模式,引爆了一場科技革命。其一方面可以降低企業應用開發人力成本,另一方面可以將原有數月甚至數年的開發時間成倍縮短,從而幫助企業實現降本增效的價值。

像國外的OutSystems、Mendix、Salesforce或者國內的星城軟件等等,都可以開發OA、ERP、CRM、HR、進銷存等各種企業管理應用,並無縫集成打通其他軟件系統,實現各系統間的互聯互通。

很多人在不太瞭解低代碼平臺的時候,可能對於低代碼平臺存在著兩個誤解。

一、低代碼平臺只適合於毫無技術背景的人

事實上低代碼開發平臺也同樣適合開發人員進行開發。低代碼開發平臺既可以提高開發人員開發信息化系統的效率,同時也滿足了無代碼基礎的業務人員進行信息化開發。

對於開發人員來說,使用低代碼開發平臺可以有效的提高開發效率。開發人員通過圖形化界面交互實現應用搭建,可視化的操作,標準化的配置,大大縮減開發時間和所需人員。當然代碼平臺並不是萬能的,他並不能實現所有的功能,拿星城軟件定製來說,當在平臺遇到實現不了的配置,可以自定義開發,也就是說可以根據需要自己開發出平臺沒有的功能。

二、低代碼平臺只是變革傳統開發模式,並不是為了顛覆開發者

低代碼平臺是為了減輕和降低開發者的“工具屬性”,讓開發者從繁重的代碼解放出來,參與更具有價值的創作,是未來價值的必然趨勢。同時,發人員不需要多次和業務人員和實際使用人員反覆溝通,面對界面化的需求,對於開發人員,很可能是將之前的代碼推翻重來。

低代碼平臺有什麼優勢?

首先,提高效率!

業務人員可以自行搭建業務流程管理系統,降低了溝通成本。同時也避免了“開發人員不懂業務”的尷尬。也不用等待開發人員的實現過程中,出現系統實現了之後與需求不匹配,甚至實現了之後業務邏輯已經發生了變化的尷尬。管理者也可以通過無代碼平臺,注入管理思維。

其次,降低成本!

優秀的開發者的高薪早已不是秘密,所以開發資源不能浪費在一些通用而且易於實現的需求,無代碼平臺就是做這個事情,可以以非常低的成本,來代替開發人員的部分工作內容。原來需要十個人的項目,現在可能只要四個人甚至更少的人就能完成。

當然,低代碼平臺還有很多其他的價值,這裡就只列舉了對企業最重要的兩點來闡述,降本和增效,這幾乎是所有企業永恆的主題。

東軟現如今正在開發相關項目並提供服務。

SaCa ACAP 微服務開發運行支撐平臺通過對微服務架構的深入理解和實踐,實現了微服務設計、開發、測試、維護、監控的一站式管理,幫助企業快速搭建分佈式應用服務體系,同時為傳統企業的互聯網轉型提供了優秀的解決方案。如想了解更多,請點擊 https://platform.neusoft.com。


aran_renee


根據個人多年代碼經驗:為提高代碼的可維護性,首先 1.在項目工程搭建時候,包命名規範,功能模塊儘量獨立結偶,劃分不同服務2.項目代碼基本規範插件和項目組代碼規範要求文檔(本地安裝阿里掃描插件掃描,代碼圈複雜度掃描,重複代碼重複檢測,代碼安全covert er 掃描)3.代碼設計模式靈活運用,代碼常量,枚舉類,公共方法類定義,切記不能使用魔鬼數字 4.對於業務複雜的流程,寫好必要註釋,同時最好配合流程圖文檔說明

5.項目組定期舉行代碼走查,代碼分享會

以上僅個人皮毛經驗,還願與您互相交流探討!


碼農三哥


為了提高代碼的可維護性,我根據自己的實際情況總結出以下六點方式,供您進行參考。


註釋您的代碼

/*

註釋你的代碼至關重要,因為如果您編寫了一個程序卻未對其進行註釋,那麼缺少註釋將使您浪費時間來重新寫一遍代碼。畢竟基本上就算是你自己寫的代碼,幾個月不看那肯定就忘了。所以註釋代碼又幫助了別人也幫助了你自己。當然如何註釋好代碼又是一門學問了,這裡就不扯遠了。

*/

不要忘記錯誤檢查

每個中型程序都有很多功能和過程,這意味著每個程序都應進行錯誤檢查。良好的錯誤檢查可以防止程序BOOM了,並使調試速度更快。當然現在優秀的IDE都自帶查錯功能,你現在基本不必花費很多時間查找錯誤。

使用更少的代碼

這是有道理的,你有更少的代碼,這樣也變相的提高了可維護性(誰會想維護一個用了幾百上千的ifelse語句的神仙代碼)。它擺脫了未經修改的功能和診斷語句將使您的代碼看起來更簡潔。如果您有機會使用現有的庫,那就更好了!這樣會一定程度的提高可維護性,畢竟這會精簡你的代碼。

編寫易於修改的代碼

這也可以說成是編寫模塊化的代碼,這即方便移植也方便別人來修改你的代碼,但是當很多人都使用了你編寫的代碼,但是在使用過程中發現它出問題了!這時候如果只需要改幾個define的參數的話就能修正就能減少很多工作量,不然就需要每個人都重新更改他們的代碼,增加了很多工作量。

編寫易於測試的代碼

發現錯誤越早,修復該錯誤的成本就越低。儘管測試每種可能的情況都可能很耗時,但是你可以編寫一段簡短的專用於測試的代碼,這雖然看上去是多餘的,但真出了問題這可就是防範於未然了。

解決問題,而不是症狀

這也是很多程序員偷懶導致的更多的問題

快速修復和實際修復之間的區別是,第一種情況是開發人員決定解決症狀而不是解決問題時發生的。當開發人員細緻的瞭解錯誤原因並設法查明錯誤原因時,才可能進行真正的修復。倉促完成的所有操作只會創建令人困惑的代碼,供下一個倒黴的人清理。

有些人剛進公司,看到上一個人留下的“遺產”,那絕對是崩潰的。


以上就是個人認為的對編寫可維護性高的代碼的一些方法,如果還有其他疑問的話可以在評論中提出,謝謝!


分享到:


相關文章: