5、编程珠玑笔记五编程小事

来源:互联网 发布:js div隐藏与显示出来 编辑:程序博客网 时间:2024/05/22 11:55

5、编程珠玑笔记五编程小事

         本篇名言:“人生只有必然,没有偶然。”

         欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48420025

        作者在前面四个章节中强调的是四个事情,分别是:正确的定义问题,认真设计算法,仔细选择数据结构,最后写出正确的伪代码。就差编程了,这也是作者在第五章所要讲述的事情。

         不过差点忘了介绍,编程珠玑作者来历了,蛤蟆会在本次笔记最后补充介绍。

         关于伪代码转换为程序,基本上大部分伪代码可以直接逐行转换成C程序。不过一些循环的实现可以通过for也可以通过while语句来实现。

         编程结束得到一段程序,任何程序都是需要经过一些测试。常用的就是手动输入一些例子来进行测试,是否能够得到我们期望的输出,如果有问题那么需要进行定位。常用的是通过printf函数来实现。

         此外,作者介绍了断言assert使用的艺术。语句assert即可用来指导程序代码的开发,也可以用来判断程序的正确性。而且可以再项目中使用预处理定义断言,可以再编译阶段处理断言,而不会导致运行时的额外开销。不过蛤蟆绝对最有意思的是作者打了这样一个比方:在测试时使用断言,而在产品发布时将断言关闭的程序员,就像在岸上操练时穿着救生衣,而下海时将救生衣脱下的水手。

         当然,很多测试手动完成未免过于枯燥,所以我们必要使用自动化测试来替代人工测试。最后需要测试下程序运行话费的平均时间。看看实际程序运行的时间复杂度是不是和我们理论计算的一样。这个关于计算程序时间的事情,不得不承认蛤蟆在周边环境中很少看到有同事在做这样的事情。如果运行时间不重要,那么我们就可以用简单的线性搜索,干嘛要用复杂的二分搜索呢?对不对?

         最后,作者分享了自己的一些经验如

         对于比较难写的函数,使用方便的高级伪代码来构建程框架,然后将伪代码翻译成要实现的语言。对组件进行测试要比在大系统中更容易、更彻底。

        

 

关于调试

         专业的调试人员永远也不会忘记,无论系统的行为看起来多么神秘莫测,其背后总有合乎逻辑的解释。截出几个小故事来和大家分享。



         如果讲完了,我们来看下补充下作者信息吧 。

Jon Bentley

世界著名计算机科学家,被誉为实践探索先锋,影响算法发展的十位大师之一。

1974年获得了斯坦福大学的学士学位,1976年获得北卡罗莱纳大学的硕士和博士学位。

毕业后在卡耐基梅隆大学教授了6年(1976——1982)计算机科学课程,任教期间,他培养了包括Tcl语言设计者John Ousterhout、Java语言设计者James Gosling、《算法导论》作者之一Charles Leiserson在内的许多计算机科学大家。1982年进入贝尔实验室。2001年退休后加入了现在的Avaya实验室。他还曾作为访问学者在西点军校和普林斯顿大学工作。

       培养的学生包括Tcl语言设计者John Ousterhout, JAVA语言设计者 James Gosling等。

        

        

 

 

 

 

0 0