top of page

Sonar,專注於新程式碼的安全與品質,追求Clean Code



Clean Code為何?

Clean Code為何? Clean Code是由軟體工程師 Robert C. Martin 在他的著作《Clean Code: A Handbook of Agile Software Craftsmanship》中所提出的概念。


Clean Code 是指易於閱讀、易於理解和易於維護的程式碼。這種風格的程式碼不僅僅運行正常,還應該有以下特點:


l    可讀性:Clean Code 的首要特徵是易讀性。這意味著程式碼應該以一種自然的、符合人類閱讀習慣的方式撰寫。有意義的變量名稱、結構良好的程式碼布局和一致的格式都是實現可讀性的重要因素。


l    簡潔性 Clean Code 應該保持簡潔,避免冗餘、不必要的程式碼。每一行程式碼都應該有明確的目的,不應該有多餘的元素。


l    可維護性 Clean Code 是易於維護的程式碼。這意味著其他開發者(包括你未來的自己)能夠理解程式碼的結構和邏輯,並且能夠進行修改、擴展和維護。


l    測試容易 Clean Code 是易於測試的程式碼。它應該容易進行單元測試和集成測試,這有助於確保程式碼的正確性並提高程式碼的可靠性。


l   遵從標準 Clean Code 應該遵從程式碼風格指南和標準。這使得整個程式碼庫中的程式碼風格保持一致,使其更容易被不同的開發者理解。


為何我們應該要追求Clean Code?

l   可讀性和理解:閱讀和理解代碼是軟件開發的主要活動之一。Clean Code 使代碼易於理解,提高了團隊成員的效率。


l   減少錯誤:簡潔且清晰的代碼更容易維護和測試,有助於減少錯誤的引入。這提高了代碼的品質並減少了潛在的問題。


l   易於維護: Clean Code 降低了代碼的複雜性,使得修改和擴展代碼變得更加容易。這有助於長期項目的可持續性。


l  提高協作: 團隊中的不同成員需要協作,而易讀且一致的代碼風格有助於促進協作。


l 提高代碼品質: Clean Code 有助於提高代碼的品質,減少技術債務,使代碼庫更加健康和可靠。


Clean as Your Code™

那我該要如何開始將我司的程式碼都朝向Clean Code的方向前進呢?歡迎使用Sonar系列產品,Sonar將可以協助您了解哪些程式碼問題會影響軟體的安全性、可靠性和可維護性。


Sonar表示Clean Code 應該具備的下面幾種屬性:



l   一致:程式碼是以採用統一和常規的方式編寫的。所有代碼看起來都相似,並遵循常規模式,即使在不同時間有多個貢獻者也是如此。一致的程式碼是格式化的、約定的並且可識別的。


合格程式碼


不合格程式碼



代碼應格式化。例如,即使您不熟悉 Java 代碼,您也可能希望在以下代碼中看到一致的縮進。這與製表符與空格無關,而是與一致性有關。



l  故意:程式碼是精確和有目的的。有意的程式碼讀起來就像是用注意力和謹慎來傳達其目的而編寫的。每條指令都有意義,格式充分,並且簡單地傳達其行為。有意代碼清晰、合乎邏輯、完整且高效。

不合規的程式碼:

合格程式碼


不合格程式碼




程式碼應該清晰且直觀。以這段 Python 程式碼為例,您會發現變數 message 和 i 被定義但從未被使用。當程式碼閱讀者遭遇這樣的情況時,他們可能會疑惑這是否是一個編碼錯誤,原本應該執行其他操作,或者這只是可以安全刪除的殘留程式碼。


l  適應:程式碼的結構可以輕鬆、自信地進行演進。它使擴展或重新利用其部件變得容易,並促進局部變化,而不會產生不良副作用。適應性強的程式碼是集中的、獨特的、模組化的和經過測試的。



合格程式碼


不合格程式碼




程式碼應該清晰且最小化重複。例如,重複使用字串文字會增加錯誤風險,因為在進行更新時,每個發生的地方都必須單獨更改。更好的方法是使用常數,可以從多個地方引用,從而允許在單一位置進行更新。


l  負責:該準則考慮了其對數據的道德義務和社會規範的潛在影響。負責任的程式碼是合法的、值得信賴的和尊重的。



合格程式碼


不合格程式碼




程式碼應該避免機密信息。儘管在內部應用程序或者當您相信原始碼是安全的時候,這樣做可能是誘人的,但事實上,負責任的程式碼應該永遠不存儲機密信息。如果惡意方訪問程式碼,機密信息可能會被無意中暴露並被利用。這種風險不僅影響軟體本身,還可能產生遠達系統和第三方的深遠後果。


以上幾種程式碼中的問題,Sonar都可以協助你找尋出來並且提供相對應的建議和方向,讓貴司開發人員可以有依規則可以遵循來去進行開發,提高程式碼的品質,進而達成Clean Code的目標。


結論

最終結論,Clean Code 是一致的、有意識的、適應性強的和負責任的。這些屬性定義了 Clean Code 的全部內容。展望未來,所有 Sonar 產品都將積極提供各種方案,來讓貴司所開發之程式碼達成「Clean Code」的目標。




 

我們很期望看到 Sonar系列產品可以幫助客戶您,如想了解更多資訊或細節,DevOps專業的顧問團隊歡迎您來信或來電洽詢!










648 views0 comments
bottom of page