上一页 1 ··· 4 5 6 7 8 9 10 11 下一页

过程作为黑箱抽象——《计算机程序的构造和解释》

摘要: 可以看到,对于平方根的计算问题可以自然地分解为若干子问题:怎样说一个猜测是足够好了,怎样去改进一个猜测,等等。这些工作中的每一个都通过一个独立的过程完成,整个sprt程序可以看做一族过程(如图1-2所示),它们直接反应了从原问题到子问题的分解。 这一分解的重要性,并不仅仅在于它将一个问题分解成了几个 阅读全文
posted @ 2016-02-22 10:53 dongtshj 阅读(364) 评论(0) 推荐(0)

过程与它们所产生的计算——《计算机程序的构造和解释》

摘要: 之所以写这篇以及之后的几篇笔记,主要是因为,当我读了《计算机程序的构造和解释》这本书的相关内容时,实在是觉得书中说的太TM有道理了!!! 不说出来都觉得浑身不舒服。。。,真的是这样(/ □ \) 我们现在已经考虑了程序设计中的一些要素:使用过许多基本的算术操作,对这种操作进行组合,通过定义各种复合过 阅读全文
posted @ 2016-02-18 10:42 dongtshj 阅读(455) 评论(0) 推荐(0)

重构手法(四)之在对象之间搬移特性

摘要: 1、Move Method(搬移函数) 症状:你的程序中,有个函数与其所驻类之外的另一个类进行更多交流:调用后者,或被后者调用。 解决方法:在该函数最常引用的类中建立一个有着类似行为的新函数。将旧函数变成一个单纯的委托函数,或是将旧函数完全移除。 2、Move Field(搬移字段) 症状:你的程序 阅读全文
posted @ 2016-02-03 16:21 dongtshj 阅读(517) 评论(0) 推荐(0)

重构手法(三)之简化条件表达式

摘要: 1、Decompose Conditional(分解条件表达式) 重构前: if(date.before(SUMMER_START) || date.after(SUMMER_END)) charge = quantity * _winterRate + _winterServiceCharge; 阅读全文
posted @ 2016-01-27 13:34 dongtshj 阅读(537) 评论(0) 推荐(0)

重构手法(二)之简化函数调用

摘要: 1、Rename Method(函数改名) 我极力提倡的一种编程风格就是:将复杂的处理过程分解成小函数。但是,如果做得不好,这会使你费尽周折却弄不清楚这些小函数各自的用途。要避免这种麻烦,关键就在于给函数起一个好名称。函数的名称应该准确表达它的用途。给函数命名有一个好办法:首先考虑应该给这个函数写上 阅读全文
posted @ 2016-01-27 13:28 dongtshj 阅读(388) 评论(0) 推荐(0)

重构手法(一)之重新组织函数

摘要: 1、Extract Method(提炼函数) 重构前: void printOwing(double amount){ printBanner(); //print details System.out.println("name:" + _name); System.out.println("am 阅读全文
posted @ 2016-01-27 13:20 dongtshj 阅读(660) 评论(0) 推荐(0)

代码的坏味道

摘要: 1、Duplicated Code(重复代码) 坏味道行列中,首当其冲的就是Duplicated Code。如果你在一个以上的地点看到相同的程序结构,那么可以肯定:设法将它们合而为一,程序会变得更好。 2、Long Method(过长函数) 拥有短函数的对象会活得比较好、比较长。不熟悉面向对象技术的 阅读全文
posted @ 2016-01-27 12:01 dongtshj 阅读(496) 评论(0) 推荐(0)

泛型算法(二十三)之排列算法

摘要: 1、is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2):C11版本,判断两个序列是否为同一元素集的两个排列。 std::vector<int> c1 = {1, 2, 3, 阅读全文
posted @ 2016-01-21 11:05 dongtshj 阅读(392) 评论(0) 推荐(0)

泛型算法(二十二)之集合操作算法

摘要: 1、includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2):判断第2个已为升序的序列的元素是否都出现在第1个升序序列中。 std::vector<int> c 阅读全文
posted @ 2016-01-21 10:46 dongtshj 阅读(342) 评论(0) 推荐(0)

泛型算法(二十一)之比较算法

摘要: 1、equal(inIter1Begin, inIter1End, inIter2Begin):比较两个序列的对应元素是否相等 std::vector<int> c1 = {1, 2, 3, 4, 5}; std::vector<int> c2 = {1, 2, 3, 4, 5}; //比较c1,c 阅读全文
posted @ 2016-01-21 10:15 dongtshj 阅读(608) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 下一页