多人協作項目如何保持代碼風格統一


原文鏈接:https://liushiming.cn/2020/02/20/keep-same-code-style/

概述

多人在同一個項目協作的時候保持統一的編碼風格很重要。但說起來容易做起來難,每個人都有自己的編碼習慣,不去對比自己都難以意識到。本文我推薦一些做法、工具可以幫助我們盡量保持同樣的風格。

選擇go語言

如果可以,選擇go語言作為編程語言。

go語言自帶代碼格式化命令gofmt,要求所有代碼都有一致的代碼風格,甚至不允許未使用的import和未使用的變量定義在程序里,否則編譯不通過。

go的關鍵字僅25個,是我見過最少的。相比而言,c語言有32個,c++ 49個,python 33個,JavaScript 63個,java 53個。關鍵字精簡大家寫出來的代碼就更趨向於一致。

sonarqube是專門做代碼靜態分析的工具,它內置了一套自己的規則來檢查代碼是否符合規范。就內置的編碼規范來看,go只有46個,Java可能出現的問題或者code smell最多,達到533個,一個團隊要投入多少精力(學習成本、review成本、修改成本)去避免這種編碼規范的問題?長期下來是一個無法忽視的投入。

語言 sonarqube編碼規范
Java 533
Python 440
C# 373
JavaScript 219
PHP 185
VB.NET 144
TypeScript 129
Flex 79
HTML 62
Kotlin 49
Ruby 48
Scala 47
Go 46
CSS 30
XML 16
JSP 6

使用lint插件

lint是一類工具的統稱,即在ide編碼時實時幫你檢查編碼規范的軟件。我推薦SonarlintAlibaba java coding guidelines(java only)這兩款插件。在intellij系列的ide上用起來都不錯。lint軟件比ide自帶的代碼風格檢查更嚴格,而且會給問題分嚴重等級。

lint插件會highlight問題代碼,鼠標懸浮可以查看問題概述。

show inspection description可以查看詳情

自動格式化

在intellij下手動格式化的操作是 Code -> Reformat Code

在一個項目中,如果有的人格式化代碼,有的人不格式化的后果就是git提交后,平白無故會多出很多difference,其實都是格式上的微調,但是會給代碼review帶來不必要的負擔,所以最好大家代碼都是格式化過的

可以在commit的時候勾選先格式化再提交

也可以設置在保存文件時自動觸發格式化操作
intellij preferences -> save actions -> 開啟保存觸發動作 -> 選擇格式化動作

遵守業界規范

堅持高的標准,統一使用業界標桿企業的編碼規范,如
Google Style Guides
Alibaba java開發手冊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM