# 編譯器
+ 能夠用最新的編譯器版本,就使用最新的編譯器版本
--> 最新的編譯器可以獲得更優的代碼生成品質和缺陷代碼檢查提醒
# 語言使用
## API接口設計
+ 注重使用const修飾關鍵字和C++中的引用語言特性,做API接口參數傳遞設計
++ void f(const XParaPointer*)
--> const展現接口參數在調用過程中不會被修改的限制
--> 如果在API接口參數設計中,統一使用const進行限定,那麼沒有攜帶const關鍵詞的指針參數,則可以被認為成“出參”,或指針控制權的轉移,指針參數可以被調用方儲存,以在将來使用
++ void ff([const] XPara&)
--> 引用參數相比較與指針參數 void ff([const] XPara*),C++引用語言特性提供了更進一步的限定資訊:傳遞參數不可為空的限制
--> 對于在C語言程式設計中,普遍厭煩的入參參數為空檢查,在能夠使用C++的場景中可以使用引用來傳遞參數
--> 進一步結合const關鍵詞資訊,将可以提供不可為空 && 不能修改的接口說明
+++ 從深層次來講,圖靈機基礎操作為讀操作和寫操作,能夠區分這二者将是很好的實踐
| 使用 | 可讀 |可寫 | 不可寫 | 不可為空 |
| X* | yes | yes | no | no |
| const X* | yes | no | yes | no |
| & | yes | yes | no | yes |
| const X& | yes | no | yes | yes |
## 具體程式設計
++ 線程變量和延遲加鎖技術的使用,可以玩轉多線程間互相隔離且充分并行