Google C++ coding style一點心得
最近開始跟google的工程師做code review
真的是被電得一蹋糊塗阿
對方看得非常仔細,而且提出了很多我程式邏輯不太通順的地方
雖然很多起因是我照之前sample code的邏輯硬是下去改
但的確後續我就沒有特別思考前後是否功能有重複或是多餘的部分
這邊被對方找出非常多問題出來
可以感覺google對沒有用的程式碼非常在意
當然也有可能是這個reviewer自己本身很討厭多餘的東西放在code裡面
除了註解要寫得盡量清楚之外
程式本身可以越精簡越好
我本身對C++並不是很熟悉,常會用C語言的方式硬幹
但是的確對用C++的人來說是很笨的做法
有幾個點特別被點出來,紀錄一下以免以後忘記
1.Google C++不使用#define,改用const
原因是似乎是要預先pre-compile,會多耗資源
2.傳引數使用call by reference而不使用call by value
http://wp.mlab.tw/?p=176
原因是會浪費很多記憶體空間
尤其我笨笨的傳struct進去函數裡面,非常糟糕
call by reference就是變數的address跟value在上層跟下層函數都會是一樣的
就不會浪費多餘的空間去記憶
3.class裡private的變數後面要多加"_"做為區別
4.函數名稱使用大寫例如PerformUpdate()
5.區域變數使用小寫加"_",例如video_image_version
6.const前面要多加"k",後面用大寫,例如kDefaultVideoDeviceMountPoint
7.行尾空白鍵要去除
真的是被電得一蹋糊塗阿
對方看得非常仔細,而且提出了很多我程式邏輯不太通順的地方
雖然很多起因是我照之前sample code的邏輯硬是下去改
但的確後續我就沒有特別思考前後是否功能有重複或是多餘的部分
這邊被對方找出非常多問題出來
可以感覺google對沒有用的程式碼非常在意
當然也有可能是這個reviewer自己本身很討厭多餘的東西放在code裡面
除了註解要寫得盡量清楚之外
程式本身可以越精簡越好
我本身對C++並不是很熟悉,常會用C語言的方式硬幹
但是的確對用C++的人來說是很笨的做法
有幾個點特別被點出來,紀錄一下以免以後忘記
1.Google C++不使用#define,改用const
原因是似乎是要預先pre-compile,會多耗資源
2.傳引數使用call by reference而不使用call by value
http://wp.mlab.tw/?p=176
原因是會浪費很多記憶體空間
尤其我笨笨的傳struct進去函數裡面,非常糟糕
call by reference就是變數的address跟value在上層跟下層函數都會是一樣的
就不會浪費多餘的空間去記憶
3.class裡private的變數後面要多加"_"做為區別
4.函數名稱使用大寫例如PerformUpdate()
5.區域變數使用小寫加"_",例如video_image_version
6.const前面要多加"k",後面用大寫,例如kDefaultVideoDeviceMountPoint
7.行尾空白鍵要去除
留言
張貼留言