第四章
原文:
错误处理
断言
如何验证正确性?那就要用断言(Assert)。断言和错误处理是什么关系?当你觉得某事肯定如何时,就可以用断言。
Assert (p != NULL)
- 1
然后可以直接使用变量p。如果你认为某事可能会发生,这时就要写代码来处理可能发生的错误情况。如
…… p = AllocateNewSpace(); // could fail if (p == NULL) { // error handling. } else { // use p to do something }
1) 如果发现了逻辑错误,必须修改程序,而不可能在程序中进行处理和恢复,所以不需要向外传送,没有必要使用异常。
2) 使用断言的开销比异常小得多,而且断言可以从发布版中完全去除。
异常用于处理正确程序中的运行期问题(比如内存分配失败,窗口创建失败,线程创建失败,打开文件失败),以尽可
1) 断言在发布版不起作用;
2) 断言的处理方式不够友好;
3) 运行异常不是程序错误,没有必要报告源代码出错位置;
原文:
如何处理C++中的类
虚函数(Virtual Function)
1)使用虚函数来实现多态(Polymorphism)
2)仅在很有必要时,才使用虚函数
3)如果一个类型要实现多态,在基类(Base Class)中的析构函数应该是虚函数
虚函数对我来说是很模糊的概念,然而书中的文字并未解答我的疑惑---虚函数的定义及其作用
以下是查阅的相关资料:
简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。
虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;
用形象的语言来解释就是实现以共同的方法,但因个体差异,而采用不同的策略。
困惑2、文章说在c++中使用虚函数来实现多态,那么与java实现多态的区别是怎样的?
原文:
结对编程
结对编程的优势
在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作解决问题的能力更强
对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感
在企业管理层次上,结对能更有效地交流,相互学习和传递经验,分享知识,能更好地应对人员流动
总之,如果运用得当,结对编程可以取得更高的投入产出比(Return of Investment)
困惑3、结对编程可以应用到其他开发模式中吗?
第十七章
原文:
效能曲线和假团队
...到各种阶段的团队之间,往往还有一个“假团队”的阶段...面和心不和,有人打酱油,这样的团队的效率低还不如个人单干的工作组。
困惑:通过对本段文字的阅读,似乎没有看到对“假团队”的处理方法!前面也讲过结对编程的好处与挑选队友的技巧,那么团队成员应该是常常相互沟通,彼此相对了解的,出现此种情况归根于什么呢?