c++程序设计之编程思想
- 代码块愈小,代码的功能就愈容易管理,代码的处理和移动就愈轻松。
- 任何一个傻瓜都能写出计算机可以理解的代码,唯有写出人类容易理解的代码,才是优秀的程序员。
- 绝大多数情况下,函数应该放在它所使用的数据的所属对象内。
- 最好不要在另一个对象的属性基础上运用switch语句,如果不得不使用,也应该在对象自己的数据上使用,而不是在别人的数据上使用。
- 确保任何时候都通过取值函数和设值函数来访问类型代码。
- 代码量减少并不会使系统运行更快,因为这对程序的运行轨迹几乎没有任何明显影响。
- 拥有短函数的对象会活的比较好、比较长...间接层所能带来的全部利益——解释能力、共享能力、选择能力——都是由小型函数支持的。
- 早期的编程语言中,子程序调用需要额外开销,这使得人们不太乐意使用小函数,现代OO语言几乎已经完全免除了进程内的函数调用开销。
- 最终的效果是:你应该更积极的分解函数。我们遵循这样一条原则:每当感觉需要注释来说明点什么的时候,我们就把需要说明的东西写进一个独立的函数中,并以其用途(而非实现手法)命名。
- 至于循环,你应该将循环和其内的代码提炼到一个独立的函数中。
- 有一种 经典的气味是:函数对某个类的兴趣搞过对自己所处类的兴趣。
- 大多数时候,一看到switch语句,你就应该考虑以多态来替换它。
- 如果你看到用户向一个对象请求另一个对象,然后再向后者请求另一个对象,然后再请求另一个对象...这就是消息链。采取这种方式,意味着客户代码与查找过程的导航结果紧密耦合。
- 我们之所以要在这里提到comments,是因为人们常把它当做除臭剂使用。常常会有这样的情况:你看到一段代码有着长长的注释,然后发现,这些注释之所以存在乃是因为代码很糟糕。
- 如果函数的某些参数未被用到,可以对它实施remove prarmeter
- 程序坏味道之夸夸其谈未来性,当有人说“噢,我想我们总有一天需要做这事”,并因而企图以各式各样的钩子和特殊情况来处理一些非必要的事情,这么做的结果往往造成系统更难理解和维护。
- 代码坏味道之令人迷惑的临时字段,有时候你会看到这样的对象,其内的某个变量仅为某种特定情况而设置
- 在C++中,不自觉的在程序开始处预先定义所有对象的做法是一种浪费。——《提高C++性能的编程技术》
- 考虑使用lazy evaluation(缓式评估)。———《More efficiency C++》
- 80-20法则:一个程序80%的资源用户20%的代码身上。———《More efficiency C++》
- 千万不要重载&&, || 操作符。 ———《More efficiency C++》
- C++保证删除空指针是安全的——《More efficiency C++ 条款10》
- 面对尚未完全构造好的对象,C++拒绝调用其destructor——《More efficiency C++ 条款10》
- 就C++多维数组来说,“先行后列”遍历效率肯定好于“先列后行”遍历,不论其行数远大于列还是情况相反甚至接近。——《高质量程序设计指南第四章》
- 不要在遍历(迭代)容器的过程中对容器进行插入、删除元素的操作。——《高质量程序设计指南第四章》
- switch的效率比if/else结构高,这正是switch语句存在的理由——《高质量程序设计指南第四章》
- 全局变量(extern或static的)存放在程序的静态数据区中,在程序进入main()之前创建,在main()结束后销毁,因此在我们的代码中根本没有机会初始化它们,编译器会自动提供了一个默认的全局初始化0。 ——《高质量程序设计指南 第四章》
- 不要使用间接递归,即一个函数通过调用另一个函数来调用自己,因为它会损害程序的清晰性。——— 《高质量程序设计指南第六章》
- 基本数据类型的参数不存在构造、析构的过程,而拷贝也非常快,“值传递”和“引用传递”的效率几乎相当。—— 《高质量程序设计指南 第六章》
- 对于编程来说,最大的挑战还是将问题概念化,编程中很多错误都是概念性的错误。——《代码大全第二章》
- 程序更具自我说明性,你可以改进像 currentFont.attribute or 0x02这样的语句替换成currentFont.SetBoldOn();——《代码大全 第六章》
- 代码块愈小,代码的功能就愈容易管理,代码的处理和移动就愈轻松;——《重构改善既有代码的设计》
- 任何一个傻瓜都能写出计算机可以理解的代码,唯有写出人类容易理解的代码,才是优秀的程序员;—— 《重构改善既有代码的设计》
- 我们之所以要在这里提到comments,是因为人们常把它当做除臭剂使用。常常会有这样的情况:你看到一段代码有着长长的注释,然后发现,这些注释之所以存在乃是因为代码很糟糕; —— 《重构 改善既有代码的设计》
- 你能够隐藏的信息越多,在同一时间所需要考虑的信息就越少,你需要考虑的信息越少,则忘记某一项信息而犯错误的几率就越小。——《代码大全 p251》
c++程序设计之编程思想的更多相关文章
- java编程思想-复用类总结
今天继续读<java 编程思想>,读到了复用类一章,看到总结写的很好,现贴上来,给大家分享. 继承和组合都能从现有类型生成新类型.组合一般是将现有类型作为新类型底层实现的一部分来加以复用, ...
- IT第二十天 - 面向对象编程思想、抽象类、异常处理、程序操作日志记录、本周总结 ★★★
IT第二十天 上午 面向对象编程思想 1.组装电脑的设计: (1)电脑的组成:显示器+机箱 (2)机箱的组成:电源+主板+硬盘 (3)主板所包含的部件:cpu+内存+PCI接口+usb接口 (4)PC ...
- 关于Java、Python、Go编程思想的不同
Go学习笔记 - 关于Java.Python.Go编程思想的不同 看了两周七牛团队翻译的<Go语言程序设计>,基本上领略到了Go语言的魅力.学习一个语言,语法什么的任何人都是很容易学会,难 ...
- Java编程思想读书笔记(一)【对象导论】
2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ...
- 论AOP面向切面编程思想
原创: eleven 原文:https://mp.weixin.qq.com/s/8klfhCkagOxlF1R0qfZsgg [前言] AOP(Aspect-Oriented Programming ...
- Java编程思想(后)
Java编程思想(后) 持有对象 如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序. Java中的库基本类型: List, Set, Queue和Map --- 称为集 ...
- 《Java编程思想第四版》附录 B 对比 C++和 Java
<Java编程思想第四版完整中文高清版.pdf>-笔记 附录 B 对比 C++和 Java “作为一名 C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且 Java 的语法无疑是 ...
- (Java编程思想)Thinking in Java
1. 为什么突然想去研读<Thinking in Java>? 最近终于下定决心撸了一本<Thinking in Java>第四版,虽然在此之前我就久闻这本书的大名,但一直未曾 ...
- Java编程思想 4th 第2章 一切都是对象
Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情通过类对象协作来完成 ...
随机推荐
- close-vs-shutdown-socke
http://stackoverflow.com/questions/4160347/close-vs-shutdown-socket http://blog.csdn.net/jnu_simba/a ...
- 打造完美的xml技术解决方案(dom4j/xstream)
转: XML 技术是随着 Java 的发展而发展起来的.在 XML 出现之前对于简单的数据格式通常是存储在 ini 配置文件等文本文件中,复杂的格式则采用自定义的文件格式,因此对于每种文件格式都要有专 ...
- 格式化xml
在程序代码开发过程中,我们可能有时候需要将xml报文进行格式化一下,整理了一下,大概有两种方法: public String formatXml(String inputXml){ SAXReader ...
- case使用例子
echo 'Input a number between 1 to 4' echo 'Your number is:\c' read aNum case $aNum in 1) echo 'You s ...
- 3、SSH高级服务
1.ssh服务生成新的公钥和私钥[root@rhel6_80 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in ...
- sqlite升级--浅谈Android数据库版本升级及数据的迁移
Android开发涉及到的数据库采用的是轻量级的SQLite3,而在实际开发中,在存储一些简单的数据,使用SharedPreferences就足够了,只有在存储数据结构稍微复杂的时候,才会使用数据库来 ...
- FreeRTOS知识点
特点: FreeRTOS任务不容许以任何方式从 任务中 实现函数中返回--绝对不能有return语句,也不能执行到函数末尾.如果任务不再需要,可以显示的删除. 一个任务函数可以用来创建若干个任何-- ...
- JVM实用参数(四)内存调优
理想的情况下,一个Java程序使用JVM的默认设置也可以运行得很好,所以一般来说,没有必要设置任何JVM参数.然而,由于一些性能问题(很不幸的是,这些问题经常出现),一些相关的JVM参数知识会是我们工 ...
- c# 变量,对象,静态类型,集合类的线程安全回顾
1.变量的线程安全性与变量的作用域有关. 2.对象 对象是类型的实例 在创建对象时,会单独有内存区域存储对象的属性和方法.所以,一个类型的多个实例,在执行时,只要没有静态变量的参与,应该都是线程安全的 ...
- exp导出做成批处理注意事项
不能叫exp.bat,会一直显示导出这句话. 出现EXP-00106: 数据库链接口令无效:是因为http://blog.csdn.net/hzfu007/article/details/189823 ...