14業界編程規範和書籍

來源:互聯網
上載者:User

14業界編程規範和書籍

本次編程規範整理的原則是求精不求全,主要針對華為當前編碼上的突出問題,所以在全面性上不免

有所欠缺。業界一些公司、組織也發布了一些編程規範,對程式設計語言的缺陷、使用風險都有很好的描

述,這裡做一些簡單的推介,有興趣的同學可以在平時學習中可以參考,提高自己的編程能力。

  14.1 業界編程規範

  14.1.1 《google C++ code style》(google C++編程指南)

google對外公布的一份google內部編寫C++的代碼規範文檔。

Google開發人員認為C++是一門包含大量進階特性的巨型語言,某些情況下,他們會限制甚至禁止使用某

些特性,使代碼簡化,避免可能導致的各種問題。

包含的內容:標頭檔、命名規則、注釋、語言特性的使用規則、編碼格式,等等。

特點:強調理解基礎上的遵循,一個規則通常明確說明其優點、缺點,並舉很多例子,讓讀者在理解

的基礎上遵循,不像規章制度那樣生硬和抽象,實際上讀起來更像一個教程。

比如:禁止使用C++異常,花了一頁紙的篇幅來解釋使用和不使用的優缺點,非常容易理解。
 14.1.2 《C++編程規範101條規則、準則與最佳實務》

這本編程規範凝聚兩位知名的C++專家(薩特,(Herb Sutter) 曾任ISO C++標準委員會主席;亞曆山德

雷斯庫(Andrei Alexandrescu)世界頂尖的C++專家),以及全球C++界20年的集體智慧和經驗。

書中對每一條規範都給出了精確的描述,並輔以執行個體說明;從類型定義到錯誤處理,涵蓋了C++程式設

計的每一個方面,都給出了最佳實務。即使使用C++多年的程式員也會從中受益匪淺。

包含內容:包括設計和編碼風格、函數、操作符、類的設計、繼承、構造與析構、賦值、名字空間、

模組、模板、泛型、異常、stl容器和演算法等。

  14.1.3 Microsoft All-In-One Code Framework  《微軟一站式範例程式碼庫》

微軟一站式範例程式碼庫 (Microsoft All-In-One Code Framework) 由微軟社區支援人員團隊傾力呈現,

根據MSDN論壇、熱門社交網路、多個開發人員社區收集的開發人員最關心和最煩惱的問題,編寫相應的代

碼樣本,並以很短的周期發布更新,以方便開發人員下載參考。通過這些範例程式碼,協助社區開發人員提

高開發效率,減少代碼中可能出現的bug,並增強代碼的可維護性。

強調高品質程式碼範例所具有的特質:1.易懂;2.正確性;3.一致性;4.流行性;5.可靠性;6.安全性。

包含內容:1、通用編程規範–對代碼風格,格式和結構提供了全域通用的指導;2、C++ 編程規範;

3.NET 編碼規範。

  14.2 擴充學習材料

本規範涉及到一系列C++語言特性和技術,需要深入學習相關知識。

推薦學習但不限於以下材料:

  14.2.1 C++ primer

作者:C++大師Stanley B. Lippman,C++標準委員會原負責人Josée Lajoie。

業界公認的完整涵蓋C++標準的權威著作,對基本編程技術,物件導向編程,標準庫和泛型程式設計都有全

面的介紹。強調重要的知識點,提醒常見的錯誤,推薦優秀的編程實踐,給出使用提示,和大量來自

實戰的樣本和習題。

推薦語:初學者的指南,熟練者的參考書。

推薦度:★★★★★

  14.2.2 effective C++ / more effective C++

世界頂級C++大師Scott Meyers成名之作《effective C++》(改善程式與設計的55個具體做法)以及續

集《more effective C++》(35個改善編程與設計的有效方法)。

被評為影響最深遠、最受推崇的書籍之一。讀過這本書能夠跨越C++重重險阻,迅速提升C++功力,值

得反覆閱讀和體會。

書中每一條準則描述一個編寫出更好的 C++ 程式的方法,每一個條款的背後都有具體範例支撐。
內容包括:改變舊有的C習慣;記憶體管理;建構函式,解構函式和Assignment運算子;類與函數的設計

和聲明;類與函數實現;繼承關係和物件導向設計;模板,等等。

推薦語:有人說C++程式員可以分成兩類,讀過Effective C++的和沒讀過的。

推薦度:★★★★★

參考推薦讀物: 《Exceptional C++》 (作者:薩特,也是 《C++編程規範101條規則、準則與最佳實務》

的作者),可作為進階讀物。

  14.2.3 Effective STL

Scott Meyers(Effective C++和More Effective C++的作者)的又一大作,揭示總結了的一些關鍵規則,

包括專家們總是採用的做法以及總是避免的做法。

重點講述如何使用STL,共有50條指導原則,在講述每一條指導原則的時候,Scott Meyers都提供了透

徹的分析和深刻的執行個體,所以讀者不僅可以學到要做什麼,而且還能夠知道什麼時候該這樣做,以及

為什麼要這樣做。

主要包括以下幾個方面:1、關於選擇容器的建議,涉及到的容器有:標準STL容器(例如vector和list)、

非標準的STL容器(例如hash_set和hash_map),以及非STL容器(例如bitset)。2、一些改進效率的技術,

如何最大程度地提高STL程式的效率。

推薦語:通過這些規則,程式員可以最大限度地使用 STL。

推薦度:★★★★

參考推薦讀物: 《C++設計新思維::泛型程式設計與設計模式之應用》, 《泛型程式設計與STL》,作為進階讀

物。

  14.2.4 inside the C++ object model

C++大師Stanley B. Lippman著。中文名《深度探索C++物件模型》,候捷譯。

該書專註於C++物件導向程式設計的底層機制,包括結構化、臨時對象的產生、封裝、繼承,以及虛擬

——虛擬函數和虛擬繼承。協助程式員瞭解底層實現,深刻理解C++以及編譯器背後的處理,迅速提高

編程能力,知其所以然。

推薦語:若想成為編程高手,並能指導他人,可將此書作為進階閱讀材料。

推薦度:★★★★

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.