c++编程规范 101条规则、准则与佳实践 编程语言 (加)萨特,(罗)安德烈亚历克斯安德莱斯库 新华正版
¥
41.3
6.9折
¥
59.9
全新
库存18件
作者(加)萨特,(罗)安德烈亚历克斯安德莱斯库
出版社人民邮电出版社
ISBN9787115351357
出版时间2016-03
版次1
装帧平装
开本16
页数228页
字数325千字
定价59.9元
货号xhwx_1202660530
上书时间2024-12-16
商品详情
- 品相描述:全新
-
正版特价新书
- 商品描述
-
主编:
良好的编程规范可以改善代码质量,缩短上市时间,提升团队效率,简化维护工作。在本书中,两位受尊敬的c专业人士将全球c社区的集体智慧和经验凝结成一整套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位c程序员应该遵循的行事准则。
本书涵盖了c程序设计的每一个方面,包括设计和编码风格、函数、作符、类的设计、继承、构造与析构、赋值、名字空间、模块、模板、泛型、异常、tl容器和算法等。书中对每一条规范都给出了言简意赅的概述,并辅以实例说明;另外还给出了从类型定义到错误处理等方面的大量c实践,包括许多结和标准化的技术。即使使用c多年的程序员也会从中受益匪浅。
通过阅读本书,可以找到以下问题的。
哪些东西值得标准化?哪些东西不值得标准化?
使代码可扩展的方法是什么?
合理的错误处理策略有哪些要素?
如何(和为什么要)避不必要的初始化、循环依赖和定义依赖?
何时应该(以及如何)同时使用静态和动态的多态;
如何实践“安全的”改写?
何时该提供不会失败的交换?
为什么阻止异常跨越模块边界传播?如何阻止?
为什么不应该在头文件中写名字空间声明或指令?
为什么应该使用tl vector和tring代替数组?
如何选择正确的tl搜索或排序算法?
为了保证代码的类型安全,应该遵从哪些规则?
目录:
组织和策略问题
第0条 不要拘泥于小节(又名:了解哪些东西不应该标准化)
条 在高警告级别干净利落地进行编译
第2条 使用自动构建系统
第3条 使用版本控制系统
第4条 做代码审查
设计风格
第5条 一个实体应该只有一个紧凑的职责
第6条 正确、简单和清晰
第7条 编程中应知道何时和如何虑可伸缩
第8条 不要进行不成熟的优化
第9条 不要进行不成熟的劣化
0条 尽量减少全局和共享数据
1条 隐藏信息
2条 懂得何时和如何进行并发编程
3条 确保资源为对象所拥有。使用显式的raii和智能指针
编程风格
4条 宁要编译时和连接时错误,也不要运行时错误
5条 积极使用const
6条 避使用宏
7条 避使用“魔数”
8条 尽可能局部地声明变量
9条 是初始化变量
第20条 避函数过长,避嵌套过深
第21条 避跨编译单元的初始化依赖
第22条 尽量减少定义依赖。避循环依赖
第23条 头文件应该自给自足
第24条 是编写#include保护符,决不要编写外部#include保护符
函数与作符
第25条 正确地选择通过值、(智能)指针或者引用传递参数
第26条 保持重载作符的自然语义
第27条 优先使用算术作符和赋值作符的标准形式
第28条 优先使用++和-的标准形式。优先调用前缀形式
第29条 虑重载以避隐含类型转换
第30条 避重载&&、||或,(逗号)
第31条 不要编写依赖于函数参数求值顺序的代码
类的设计与继承
第32条 弄清所要编写的是哪种类
第33条 用小类代替巨类
第34条 用组合代替继承
第35条 避从并非要设计成基类的类中继承
第36条 优先提供抽象接
第37条 公用继承即可替换。继承,不是为了重用,而是为了被重用
第38条 实施安全的覆盖
第39条 虑将虚拟函数声明为非公用的,将公用函数声明为非虚拟的
第40条 要避提供隐式转换
第41条 将数据成员设为私有的,无行为的聚集(c语言形式的struct)除外
第42条 不要公开数据
第43条 明智地使用pimpl
第44条 优先编写非成员非友元函数
第45条 是一起提供new和delete
第46条 如果提供类专门的new,应该提供所有标准形式(普通、地和不抛出)
构造、析构与复制
第47条 以同样的顺序定义和初始化成员变量
第48条 在构造函数中用初始化代替赋值
第49条 避在构造函数和析构函数中调用虚拟函数
第50条 将基类析构函数设为公用且虚拟的,或者保护且非虚拟的
第51条 析构函数、释放和交换不能失败
第52条 一致地进行复制和销毁
第53条 显式地启用或者禁止复制
第54条 避切片。在基类中虑用克隆代替复制
第55条 使用赋值的标准形式
第56条 只要可行,提供不会失败的swap(而且要正确地提供)
名字空间与模块
第57条 将类型及其非成员函数接置于同一名字空间中
第58条 应该将类型和函数分别置于不同的名字空间中,除非有意想让它们一起工作
第59条 不要在头文件中或者#include之前编写名字空间using
第60条 要避在不同的模块中分配和释放内存
第61条 不要在头文件中定义具有的实体
第62条 不要允许异常跨越模块边界传播
第63条 在模块的接中使用具有良好可移植的类型
模板与泛型
第64条 理智地结合静态多态和动态多态
第65条 有意地进行显式自定义
第66条 不要特化函数模板
第67条 不要无意地编写不通用的代码
错误处理与异常
第68条 广泛地使用断言记录设和不变式
第69条 建立合理的错误处理策略,并严格遵守
第70条 区别错误与非错误
第71条 设计和编写错误安全代码
第72条 优先使用异常报告错误
第73条 通过值抛出,通过引用捕获
第74条 正确地报告、处理和转换错误
第75条 避使用异常规范
stl:容器
第76条 默认时使用vector。否则,选择其他合适的容器
第77条 用vector和string代替数组
第78条 使用vector(和string::c_str)与非c++api交换数据
第79条 在容器中只存储值和智能指针
第80条 用push_back代替其他扩展序列的方式
第81条 多用范围作,少用单元素作
第82条 使用公认的惯用法真正地压缩容量,真正地删除元素
stl:算法
第83条 使用带检查的stl实现
第84条 用算法调用代替手工编写的循环
第85条 使用正确的stl查找算法
第86条 使用正确的stl排序算法
第87条 使谓词成为纯函数
第88条 算法和比较器的参数应多用函数对象少用函数
第89条 正确编写函数对象
类型安全
第90条 避使用类型分支,多使用多态
第91条 依赖类型,而非其表示方式
第92条 避使用reinterpret_cast
第93条 避对指针使用static_cast
第94条 避强
内容简介:
在本书中,两位知名的c专业人士将全球c界20年的集体智慧和经验凝结成一套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位c程序员应该遵循的行事准则。书中对每一条规范都给出了描述,并辅以实例说明;从类型定义到错误处理,都给出了c实践,即使使用c多年的程序员也会从本书中受益匪浅。
本书适合于各层次c程序员使用,也可作为高等院校c课程的参书。
作者简介:
herb utter是io c标准委员会,c uer journal杂志特邀编辑和专栏作家。他目前在微软公司.环境下c语言扩展的设计工作。
andrei alexandrecu是c专业人士,c uer journal杂志的专栏作家,他的modern c deign一书曾荣获2001年c图书称号。
— 没有更多了 —
以下为对购买帮助不大的评价