程序设计实践 - Brian W. Kernighan

程序设计实践

Brian W. Kernighan

出版时间

2015-12-31

ISBN

9787115407863

评分

★★★★★

标签

编程

书籍介绍

本书是计算机科学方面的经典名著,由计算机界极具影响力的两位专家Brian W. Kernighan和Rob Pike合著。书的内容围绕程序设计实践中的一系列问题展开,讲述对于程序员有共性的知识,以帮助各程序员写出更高效的程序。本书从排错、测试、性能、可移植性、设计、界面、风格和记法等方面,讨论了程序设计中既具有实际意义又具有广泛意义的思想、技术和方法。

本书值得每位梦想并努力成为程序员的人参考,值得每位计算机专业的学生和计算机工作者阅读,也适合作为程序设计高级课程的教材或参考书。

AI导读
核心看点
  • 编程风格与命名规范
  • 算法与数据结构选择
  • 性能测试与可移植性
适合谁读
  • 计算机专业学生
  • 软件开发者
  • 编程爱好者
读前提醒
  • 关注通用编程思想
  • 结合实践理解理论
  • 注意翻译版本差异
读者共识
  • 经典实用的编程指南
  • 适合各阶段程序员参考
  • 部分观点略显陈旧

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "全局变量、全局函数、类和结构体都应该有说明性的名字,以表明它们在程序里扮演的角色。 相反,对局部变量使用短名字就够了。按常规方式使用的局部联邦可以采用极短的名字,比如i、j作为循环变量;p、q作为指针;s、t表示指针等。 函数应该采用动作性的名字。函数名应当用动作性的动词,后面可以跟着名词: now = date.getTime(); putchar('\n');"
  • "对返回布尔类型值(或真/假)的函数命名时,应该清楚地反映其返回值情况。比如下面的命名就不是很好了: if (checkoctal(c)) ... 因为这里函数名字就没有指明什么时候返回真,什么时候返回假。而下面这种写法就挺好: if (isoctal(c)) ... 这样就把返回真假的情况指明了。"
  • "一个变量的作用域越大,它的名字所携带的信息就应该越多。 全局变量使用具有说明性的名字,局部变量用短名字。根据定义,全局变量可以出现在整个程序中的任何地方,因此它们的名字应该足够长,具有足够的说明性,以便使读者能够记得它们是干什么用的。"
  • "释放资源与分配资源应该在同一个层次进行。 这种处理原则的另一种说法是:资源的分配状态在跨过界面时不应该改变。"
  • "当系统内部提供的代码太多时,人们将无法知道程序在其表面下到底做了什么。我们应该如何评价这种对控制和洞察力的丧失,这是更不清楚的事情。这也就是STL版本中遇到的情况,它的性能无法预料,也没有很容易的办法去解决问题。 目前存在着一种对软件的广泛的不断增长的关注:当程序库、界面和工具变得越来越复杂时,它们也变得更难以理解和控制了。当所有东西都正常运转时,功能丰富的程序设计环境可以是非常有生产效率的,但是如果它们出了毛病,那就没什么东西可以依靠了。如果问题牵涉到的是性能或者某些难于捉摸的逻辑错误时,我们很可能根本没有意识到有什么东西出了毛病。"
  • "scanf的所有参数都在函数被真正调用前已经求好值了,所以&profit[yr]实际使用的总是yr原来的值 (PS:scanf("%d %d", &yr, &profit[yr]);)"
  • "含有否定运算的条件表达式比较难理解。"
  • "如果你工作在一个不是自己写的程序上,请注意保留程序原有的风格。当你需要做修改时,不要使用你自己的风格,即使你特别喜欢它。程序的一致性比你本人的习惯更重要,因为这将使随你之后的其他人生活得更容易些。"
作者简介
作者:[美] 布莱恩 W. 克尼汉(Brian W. Kernighan)罗勃·派克(Rob Pike) 译者:无 Brain Kernighan计算机科学家,曾与UNIX的缔造者Ken Thompson和Dennis Ritchie一起在贝尔实验室工作。他也是AWK和AMPL程序设计语言的共同作者。“K&R C”和“AWK”中的“K”都是指“Kernighan”。2000年起,他在普林斯顿大学计算机科学系任教授,并任本科部代表。 Rob Pike 软件工程师。他在贝尔实验室任职期间,作为UNIX小组成员参与开发了Plan 9和Inferno操作系统以及Limbo程序设计语言。目前他在Google公司工作,参与了Go和Sawzall程序设计语言的开发。
目录
目录
Chapter 1: Style / 风格 1
1.1 Names / 名字 3
1.2 Expressions and Statements / 表达式和语句6
1.3 Consistency and Idioms / 一致性和习惯用语10

显示全部
用户评论
养成良好的编程习惯, 学习优秀的编程手法. 本书可以说是涉及编程各阶段的技术与思路的引子, 可以按图索骥找具体的技术进行研究.
这本书或许会成为今年学过的最棒的CS书籍了(第二或许是SCIP)。全书虽然不厚 但包含了programming的方方面面。其中C2的Data Structure and Algorithm简洁明晰 C3和C4的Markov Chain和CSV值得反复琢磨。不同层册的prgrammer可以领悟到不同内容。期待《All of Programming》
Simplicity & Clarity; Generality; Evolution; Interface; Automation; Notation;
思想不多,读不进去。
一般
偏范式,一般
这本书是作者多年编程经历总结出来的很多经验。涉及编程的很多方面,比如编程风格,数据结构,性能调优,debug等等。虽然涉及了这么多方面,但是每一方面都写得很到位,不会让人觉得浅尝辄止。这个也推荐作为编程的入门读物。
还好
收藏