認真的:
- 盡可能使用有符號數,存在加減操作的欄位禁止使用無符號數,
- 可以使用無符號數的情形:玩家UID,物品ID等,
- 禁止使用無符號數的情形:金幣、鉆石等核心資產欄位,
- 盡可能使用int32,減少使用int8、int16,
- 盡量不使用bool,用int32代替,
- 可以使用int64的情形:序列號,唯一標識,毫秒時間戳等,
- 涉及到配置的唯一識別符號盡量使用字串,見文知義,
- 指標必須判空,但new出來的物件不要判空,因為new默認走例外,
- 避免箭頭代碼,改為提前中斷,
- 提交代碼前,可以用靜態檢查工具掃描下代碼,
- 盡可能使用命名空間,可以避免很多重名沖突,
- 盡量使用stl,不要造輪子,
- 盡量使用string,避免使用c風格字串函式,
- bool欄位,即使當前只需要2個狀態,也盡量改為int32,
- 可以使用bool欄位的情形:IsXXX,HasXXX,
- 函式入口對引數做檢驗時,一個條件對應一個if陳述句,
- 列印日志時,多個欄位盡可能拼接為一行日志輸出,不要拆分為多行,
- 列印日志時,把背景關系的資訊列印完整,不要偷懶只打一部分,
- 每個return的地方,盡可能加上描述精確的日志,
- 避免使用float,double型別,可以考慮放大倍數,
- 暫時用不上的代碼,就刪掉,保持干凈,代碼倉庫上有歷史記錄的,
- 亂數函式不要使用系統自帶的,用線性同余公式寫一個,
- 禁止代碼和注釋不一致,這種比沒有注釋危害性更大,
- 引入自定義頭檔案時使用全路徑,不要只使用檔案名,
- 使用#pragma once,替代#ifndef #define #endif,
- 減少宏的使用,宏不利于除錯和維護,
- switch陳述句必須要有default結尾,
- 配置開關使用int型別,0表示關閉,1表示開啟,
- 盡量使用開源代碼庫,可以從學習的角度造輪子,
- 開源代碼庫需要注明原始碼地址和版本,在一個目錄集中管理,
- 函式的引數過多時,使用結構體封裝下,
- 能加const的地方就加上,利于編譯器優化,
- 類的成員變數盡量不加static,
- 處理客戶端上行訊息時,服務端需要保證在任何情況下都有下行回包,
- 處理客戶端上行訊息時,最終結果的可能性需要處理完全,三類:成功、失敗、超時
- 服務端下行回包時,盡可能攜帶上行包一并回下去,
- 服務端的回包,攜帶狀態碼,一個碼對應一種情況,不要一對多,
- 服務端的回包,狀態碼表示失敗時,附加一個字串欄位,說明失敗原因,
- 隔段時間回顧下過去寫的代碼,還認識不?是自己寫的么?
- 保持代碼的復雜度和業務的復雜度線性相關,能做到亞線性更好,
- 中文、英文名稱不要寫錯了,寫錯了,會誤導很多人,包括自己,
- 直接表達做什么,而非描述具體怎么做,
- 用正交思想替代設計模式,用抽象思維替代業務思維,
- 盡一切可能減少宏的使用,C++的未來是拋棄宏的,
- 合理使用assert斷言,盡快將問題暴露,節約時間,
佛系的:
- 成員變數不要加型別前綴,
- 盡量使用新版本的語法,簡潔且性能不會差,易用性也提高了,
- 類的私有函式,私有變數,可以用下劃線打頭,
- 名稱盡量使用小寫和下劃線,提高敲鍵盤的速度,
- inline關鍵字就不要敲了,意義不大,編譯器優化的很好了,
- 少用設計模式硬套代碼,設計模式的最高境界:不知道用的什么模式,但是覺得就應該這么寫,
- 慢工出細活,代碼是藝術品,
- 能通過溝通來完成的,就不要敲代碼,
- 不寫代碼就不會有bug,精簡代碼行數,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/417087.html
標籤:其他
上一篇:MongoDB 分片規則
