柚子快報激活碼778899分享:算法 工程代碼開發(fā)規(guī)范
柚子快報激活碼778899分享:算法 工程代碼開發(fā)規(guī)范
作用
1. 遵循規(guī)范可以寫出干凈簡潔的代碼 2. 可以代碼的質(zhì)量 3. 提升代碼的可讀性 4. 使代碼維護更加容易
規(guī)范
可讀性和可維護性
七大原則,空行、空格、成對書寫、縮進、對齊、代碼行、注釋 縮進與空格:規(guī)定代碼的縮進方式(空格或制表符Tab)和縮進大小,以保持代碼的一致性。 大括號:規(guī)定大括號的使用方式,如是否在代碼塊的開始處換行。 代碼注釋:強調(diào)代碼注釋的重要性,包括文件描述注釋、函數(shù)注釋和行注釋等,以提高代碼的 目錄結(jié)構(gòu):規(guī)定項目的目錄結(jié)構(gòu),如將源代碼、測試代碼、資源文件等分別放置在不同的目錄下。 模塊劃分:根據(jù)項目需求,將代碼劃分為不同的模塊或組件,以降低代碼耦合度,提高可維護性。
可維護性和查錯
錯誤處理:規(guī)定錯誤處理的方式,如使用try-catch語句捕獲異常,并給出明確的錯誤信息和處理建議。 代碼復(fù)用:鼓勵代碼復(fù)用,避免重復(fù)造輪子??梢酝ㄟ^定義函數(shù)、類庫或模塊等方式來實現(xiàn)代碼復(fù)用。 接口與實現(xiàn)分離:鼓勵使用接口和抽象類來定義API,而將具體的實現(xiàn)細節(jié)放在實現(xiàn)類中。
性能優(yōu)化:關(guān)注代碼的性能問題,如避免不必要的循環(huán)、減少內(nèi)存占用等。同時,也可以使用一些性能分析工具來幫助識別和優(yōu)化性能瓶頸。 代碼審查與測試 代碼審查:建立代碼審查制度,通過團隊內(nèi)部或外部的代碼審查來發(fā)現(xiàn)潛在的問題和改進點。 單元測試:編寫單元測試來驗證代碼的正確性和穩(wěn)定性。單元測試應(yīng)該覆蓋代碼的主要路徑和邊界情況。 集成測試:進行集成測試以驗證不同模塊或組件之間的交互是否正常。
代碼規(guī)范化的七大原則 代碼規(guī)范化基本上有七大原則,體現(xiàn)在空行、空格、成對書寫、縮進、對齊、代碼行、注釋七方面的書寫規(guī)范上。
空行
空行起著分隔程序段落的作用。空行得體將使程序的布局更加清晰。空行不會浪費內(nèi)存,雖然打印含有空行的程序會多消耗一些紙張,但是值得。
規(guī)則一:定義變量后要空行。盡可能在定義變量的同時初始化該變量,即遵循就近原則。如果變量的引用和定義相隔比較遠,那么變量的初始化就很容易被忘記。若引用了未被初始化的變量,就會導(dǎo)致程序出錯。
規(guī)則二:每個函數(shù)定義結(jié)束之后都要加空行。
總規(guī)則:兩個相對獨立的程序塊、變量說明之后必須要加空行。比如上面幾行代碼完成的是一個功能,下面幾行代碼完成的是另一個功能,那么它們中間就要加空行。這樣看起來更清晰。
空格
關(guān)鍵字之后要留空格。像 const、case 等關(guān)鍵字之后至少要留一個空格,否則無法辨析關(guān)鍵字。像 if、for、while 等關(guān)鍵字之后應(yīng)留一個空格再跟左括號(,以突出關(guān)鍵字。 函數(shù)名之后不要留空格,應(yīng)緊跟左括號(,以與關(guān)鍵字區(qū)別。 ,之后要留空格。如果;不是一行的結(jié)束符號,其后要留空格。 賦值運算符、關(guān)系運算符、算術(shù)運算符、邏輯運算符、位運算符,等雙目運算符的前后應(yīng)當(dāng)加空格。 注意,運算符“%”是求余運算符,與 printf 中 %d 的“%”不同,所以 %d 中的“%”前后不用加空格。 單目運算符等前后不加空格。 像數(shù)組符號[]、結(jié)構(gòu)體成員運算符.、指向結(jié)構(gòu)體成員運算符->,這類操作符前后不加空格。 對于表達式比較長的 for 語句和 if 語句,為了緊湊起見,可以適當(dāng)?shù)厝サ粢恍┛崭?。?for 和 if 后面緊跟的空格不可以刪,其后面的語句可以根據(jù)語句的長度適當(dāng)?shù)厝サ粢恍┛崭?。例如?for (i=0; i<10; i++) for 和分號后面保留空格就可以了,=和<前后的空格可去掉。
縮進
縮進是通過鍵盤上的 Tab 鍵實現(xiàn)的,縮進可以使程序更有層次感。原則是:如果地位相等,則不需要縮進;如果屬于某一個代碼的內(nèi)部代碼就需要縮進。
對齊
對齊主要是針對大括號{}說的:
{和}分別都要獨占一行?;橐粚Φ膡和}要位于同一列,并且與引用它們的語句左對齊。{}之內(nèi)的代碼要向內(nèi)縮進一個 Tab,且同一地位的要左對齊,地位不同的繼續(xù)縮進。還有需要注意的是,很多編程軟件是會“自動對齊”的
#include
int main(void)
{
if (…)
return 0;
}
代碼行
規(guī)則一: 一行代碼只做一件事情,如只定義一個變量,或只寫一條語句。這樣的代碼容易閱讀,并且便于寫注釋。
規(guī)則二: if、else、for、while、do 等語句自占一行,執(zhí)行語句不得緊跟其后。此外,非常重要的一點是,不論執(zhí)行語句有多少行,就算只有一行也要加{},并且遵循對齊的原則,這樣可以防止書寫失誤。
注釋
C語言中一行注釋一般采用//…,多行注釋必須采用/*…*/。注釋通常用于重要的代碼行或段落提示。在一般情況下,源程序有效注釋量必須在 20% 以上。雖然注釋有助于理解代碼,但注意不可過多地使用注釋。
規(guī)則一: 注釋是對代碼的“提示”,而不是文檔。程序中的注釋不可喧賓奪主,注釋太多會讓人眼花繚亂。
規(guī)則二:如果代碼本來就是清楚的,則不必加注釋。例如: i++; //i加1 這個就是多余的注釋。
規(guī)則三: 邊寫代碼邊注釋,修改代碼的同時要修改相應(yīng)的注釋,以保證注釋與代碼的一致性,不再有用的注釋要刪除。 規(guī)則四: 當(dāng)代碼比較長,特別是有多重嵌套的時候,應(yīng)當(dāng)在段落的結(jié)束處加注釋,這樣便于閱讀。 規(guī)則五: 每一條宏定義的右邊必須要有注釋,說明其作用。
命名規(guī)范
命名方法
駝峰命名法
名稱折疊駝峰法折疊Pascal法別名小駝峰法大駝峰法使用場景命名變量、屬性、方法(函數(shù))命名類、空間、常量規(guī)則除第一個單詞之外,其他單詞首字母大寫第一個單詞的首字母也大寫舉例int myCount;Public class DataUser;
蛇形命名法(snake_case) 測試方法名、常量、枚舉名稱需要使用蛇形命名法(snake_case) 各個單詞之間通過下劃線“_”連接,比如should_get_200_status_code_when_request_is_valid、CLIENT_CONNECT_SERVER_FAILURE。
蛇形命名法的優(yōu)勢是命名所需要的單詞比較多的時候,
串式命名法(kebab-case) 在串式命名法中,各個單詞之間通過連接符“-”連接,比如dubbo-registry。 建議項目文件夾名稱使用串式命名法(kebab-case),比如 dubbo 項目的各個模塊的命名是下面這樣的。
命名規(guī)范
![[Pasted image 20240909204317.png|225]] 標(biāo)識符命名:標(biāo)識符(包括變量、函數(shù)、類等)的命名應(yīng)做到統(tǒng)一、達意和簡潔。 駝峰命名法(camelCase) 下劃線命名法(snake_case),具體取決于公司或項目的約定。 在功能性的命名中盡量避免使用單個字母,不過如果在循環(huán)中,可以忽略這一點
//錯誤示范
const q = () => {
//....
}
//正確示范
const query = () => {
//....
}//this is also okay
for(let i = 0;i < 10; i++){
//...
}
常量命名:常量通常使用全大寫字母和下劃線進行命名,以區(qū)別于其他類型的標(biāo)識符。
//正確示范
const DAYS_IN_A_YEAR = 365;
文件命名:文件命名應(yīng)遵循統(tǒng)一的規(guī)則,如使用小寫字母、下劃線或連字符分隔單詞,以及避免使用特殊字符。
my_useful_class.cc
my-useful-class.cc
myusefulclass.cc
myusefulclass_test.cc // _unittest 和 _regtest 已棄用.
類:大駝峰
函數(shù)/方法:
java
小駝峰 python
小寫+下劃線 C++
大駝峰
習(xí)慣
函數(shù)命名 命名盡量注意詳細, 比如我們需要一個能夠獲取用戶銀行信息的功能,那么要盡量將命名具體化,如下 錯誤的示范:getUserInfo 正確的示范:getUserBankInfo 命名時注意動詞的使用 比如我們需要從數(shù)據(jù)庫中獲取用戶信息,函數(shù)的名稱可以是userInfo,user或者fetchUser,但我推薦使用含有動詞的命名 getUser。
//正確示范
function getUser(){
//do something
}
編程語言
C++
作用:C++規(guī)定給標(biāo)識符(變量、常量)命名時,有一套自己的規(guī)則
標(biāo)識符不能是關(guān)鍵字標(biāo)識符只能由字母、數(shù)字、下劃線組成第一個字符必須為字母或下劃線標(biāo)識符中字母區(qū)分大小寫
建議:給標(biāo)識符命名時,爭取做到見名知意的效果,方便自己和他人的閱讀
類 每個單詞首字母均大寫, 不包含下劃線: MyExcitingClass, MyExcitingEnum. 函數(shù) 常規(guī)函數(shù)使用大小寫混合, 取值和設(shè)值函數(shù)則要求與變量名匹配:
MyExcitingFunction()
MyExcitingMethod()
my_exciting_member_variable()
set_my_exciting_member_variable()
變量
string table_name; // 好 - 用下劃線.
string tablename; // 好 - 全小寫.
string tableName; // 差 - 混合大小寫
其它 類成員變量 不管是靜態(tài)的還是非靜態(tài)的, 類成員變量都可以和普通變量一樣, 但要接下劃線.
class TableInfo {
...
private:
string table_name_; // 好 - 后加下劃線.
string tablename_; // 好.
static Pool
};
結(jié)構(gòu)體變量 不管是靜態(tài)的還是非靜態(tài)的, 結(jié)構(gòu)體數(shù)據(jù)成員都可以和普通變量一樣, 不用像類那樣接下劃線:
struct UrlTableProperties {
string name;
int num_entries;
static Pool
};
JAVA
類 類(Class)通常采用名詞進行命名,且首字母大寫,如果一個類名包含兩個以上名詞,建議使用駝峰命名(Camel-Case)法書寫類名,每個名詞首字母也應(yīng)該大寫。一般地,類名的書寫盡量使其保持簡單和描述的完整性,因此在書寫類名時不建議使用縮寫(一些約定俗成的命名除外。 方法 方法(Method)命名時,其首字母應(yīng)該小寫,如果方法簽名由多個單詞組成,則從第二個單詞起,使用駝峰命名法進行書寫。一般地,在對方法進行命名時,通常采用動詞/動詞+名詞的組合 變量 變量(Variable)命名包括參數(shù)名稱,成員變量和局部變量。變量命名通常以小寫字母開頭,如果變量名由多個單詞構(gòu)成,則從第二個單詞起首字母需要大寫,在變量命名過程中,不建議使用“_”作為前綴或者單詞之間的分割符號。
類名:首字母大寫和駝峰原則,如Man、GoodMan方法和變量名:首字母小寫和駝峰原則常量:大寫字母和下劃線,如MAX_VALUE
Python
…
MySQL
…
開發(fā)規(guī)范命名
springboot …
引用文獻
程序員必知–代碼規(guī)范_程序員代碼規(guī)范-CSDN博客 10分鐘搞定令人頭疼的代碼命名規(guī)范 | JavaGuide - 知乎 (zhihu.com) JAVA、C、Python各編程語言命名規(guī)范(最全、持續(xù)補充)_各個語言的命名規(guī)范-CSDN博客 自學(xué)用,很多引用其他人文章
柚子快報激活碼778899分享:算法 工程代碼開發(fā)規(guī)范
參考鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。