《C++代碼整潔之道》-C++代碼整潔的基本規範

在本章中,將介紹C++代碼整潔的一些基礎知識,這些通常是通用的知識,但是有些卻是編程語言所特有的。例如,在所有編程語言中,起一個好名字是必不可少的。其他幾個方面,如const的正確使用,智能指針的使用,或Move語義的巨大優勢,都是C++特有的。
Note:如果你還沒有這樣做,請立即daim開始使用C++11(或更高版本)!
隨着2011年新標準的出現,C++在許多方面得到了改進。C++11的一些特性,以及隨後的C++14和C++17的特性都太有用了,不容忽視,而且這些特性不僅只與性能有關。有了這些新特性,C++語言肯定會變得更容易使用,甚至變得更加強大。C++11不僅可以使你的代碼更簡短、更清晰、更易於閱讀,它還可以提高你的工作效率。此外,改語言標準及後續標準的特性,使你能編寫更加正確且安全的代碼。

良好的命名

程序,是爲了供人閱讀而編寫的,只是順便提供給機器執行。
– Hal Abelson and Gerald Jay Sussman,1984
如果給變量、函數或類想出合適的名稱似乎很難或幾乎不可能,那麼這可能表明你的代碼在某些方面存在問題。也許存在設計問題,你應該找到並解決命名困難的根本原因。
以下是一些想出好名字的建議

1.名稱應該自解釋

我已經時刻保持代碼自注釋的這種觀念。所謂代碼自注釋,就是不需要註釋解釋其用途的代碼。
一些不好的命名的例子

unsigned int num;
bool flag;
std::vector<Customer> list;
Product data;

一些好的命名的例子

unsigned int numberOfArticles;
bool isChanged;
std::vector<Customer> customers;
Product orderdProduct;

2.使用域中的名稱

這種做法的優點是顯而易見的。首先,使用域中的術語,可以促進開發人員與其他利益相關人之間的溝通和交流

3.選擇適當抽象層次的名稱

爲了控制當今軟件系統的複雜性,這些系統通常是分層的。軟件系統的分層意味着將整個問題分解爲較小的部分作爲子任務,直到開發人員確信他們能夠處理這些較小的部分。進行這種分解有不同的方法和標準。

4.避免冗餘的名稱

如果你將一個類型的名稱作爲創建它的成員變量的一部分,那麼給這個類提供一個能清晰表述上下文信息的命名是多餘的,
不要在其成員變量中重複該類的名稱

#include <string>
class Movie{
private:
 std::string movieTitle;
};

不要在成員名稱中包含成員自己的類型

#include <string>
class Movie{
//...
private:
   std::string stringTitle;

5.避免晦澀難懂的縮寫

6.避免匈牙利命名和命名前綴

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章