C++核心指南

转: [Github项目]C++核心指南

摘要: C++11和C++14到来,背后一定带来了新的设计哲学,新的解决C++问题的思路。https://github.com/isocpp/CppCoreGuidelines是一个很好的指引。
C++作为一门多范型的语言,有灵活性。再加上C++的一些技巧,一些坑,很多公司都有自己的C++编码规范。这些规范一般都是建议什么该用,什么不该用,怎么去命名之类。没有提纲挈领地给出一个完整的规则体系。现在有了一些进展,Bjarne Stroustrup和Herb Sutter两位大神,在Github上发起了一个名为C++核心指南(C++ Core Guidelines)的项目。项目地址:https://github.com/isocpp/CppCoreGuidelines

C++核心指南目的是帮助大家高效地使用现代Modern C++。这里的Modern C++不是《Modern C++ Design》这本书,而是指C++11和C++14(包括马上到来的C++17)。C++1x代表了C++快速发展的新时期,很多借鉴自其它语言的特性已经让C++有很大的变化。这些新特性还有待工程部门的使用验证。

C++核心指南想C++的使用规则分为两个层面:高级层面和低级层面。高级层面涉及的是接口、资源管理、并发等,高级层面的规则会影响应用的结构和库的设计。遵循高级层面的规则,能够让代码静态类型安全,没有资源泄露,能够避免大部分编码中的逻辑错误。高级层面的规则是针对人。低级层面的规则则描述地是编码细节,比如命名规则,保证初始化,这部分规则主要针对的是工具,静态检查分析工具能够检测出代码是否违背了低级规则。C++核心指南将重心放在了高级层面的规则上。

C++核心指南囊括了下面的内容:

P: Philosophy

I: Interfaces

F: Functions

C: Classes and class hierarchies

Enum: Enumerations

ES: Expressions and statements

E: Error handling

R: Resource management

T: Templates and generic programming

CP: Concurrency

SL: The Standard library

SF: Source files

CPL: C-style programming

PRO: Profiles

GSL: Guideline support library

FAQ: Answers to frequently asked questions

C++核心指南提到的设计哲学:

P.1: Express ideas directly in code

P.2: Write in ISO Standard C++

P.3: Express intent

P.4: Ideally, a program should be statically type safe

P.5: Prefer compile-time checking to run-time checking

P.6: What cannot be checked at compile time should be checkable at run time

P.7: Catch run-time errors early

P.8: Don’t leak any resource

P.9: Don’t waste time or space

有兴趣的可以去读一读,最好还有人能翻译成中文分享给大家。

你可能感兴趣的:(C++,c++,核心指南)