編程規(guī)范---日志規(guī)范
最近收到郵件,由于我的一個(gè)宏,導(dǎo)致某個(gè)場(chǎng)景下打印較多,性能下降,項(xiàng)目組再次強(qiáng)制編程規(guī)范
1. 之前寫(xiě)的時(shí)候,專(zhuān)門(mén)問(wèn)過(guò)這個(gè)規(guī)范-------------缺失官方的,對(duì)于允許哪些,不允許哪些,可能導(dǎo)致哪些問(wèn)題,缺少明確的聲明,每一個(gè)進(jìn)入項(xiàng)目組的成員,可能并不清楚
2. 當(dāng)前定義宏更清楚的兼顧和Qt環(huán)境下的調(diào)試和發(fā)布版本之間的日志,但存在問(wèn)題
2.1. 如果修改后忘記了關(guān)閉宏,則會(huì)發(fā)布版本中的打印仍存在(printf打印)
修改
2.2. 將printf打印修改為qDebug()打印
2.3. 使用宏控制,在Qt環(huán)境下使用,如果沒(méi)有定義,則這個(gè)宏什么都不做
擴(kuò)展:
1. 定義這個(gè)宏的原因是,在一些常用的場(chǎng)景下,缺少公共的語(yǔ)言來(lái)說(shuō)明,如
典型:
進(jìn)入了某個(gè)可能改變系統(tǒng)狀態(tài)的函數(shù),入?yún)⑹?--------關(guān)鍵:要函數(shù)名稱(chēng),和入?yún)?/p>
退出了某個(gè)可能改變系統(tǒng)狀態(tài)的函數(shù),返回值是---------關(guān)鍵:要函數(shù)名稱(chēng),和入?yún)?/p>
-----------------------當(dāng)前發(fā)布版本較多,定位問(wèn)題時(shí),可能行號(hào)和代碼地不上,但函數(shù)大致不太變
發(fā)送了某個(gè)signals
正確的日志規(guī)范
1. 入職后必須學(xué)習(xí)
2. 明確在了使用哪些庫(kù),在哪些條件下打印
2.1. 系統(tǒng)狀態(tài)改變
2.2. 不同重要類(lèi)型的地方,打印不同級(jí)別
2.3. 禁止項(xiàng)-------------------如這里禁止使用printf來(lái)打印
3. git增加禁止項(xiàng)-----------------這個(gè)重要,git提交的時(shí)候,應(yīng)該可以增加禁止項(xiàng)(檢查項(xiàng))

浙公網(wǎng)安備 33010602011771號(hào)