程序设计实践

[美] Brian W. Kernighan

出版时间

2000-07-31

ISBN

9787111075738

评分

★★★★★

标签

编程

书籍介绍

这本书从排错、测试、性能、可移植性、设计、界面、风格和记法等方面,讨论了程序设计中实际的、又是非常深刻和具有广泛意义的思想、技术和方法。

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]);)"
  • "含有否定运算的条件表达式比较难理解。"
  • "如果你工作在一个不是自己写的程序上,请注意保留程序原有的风格。当你需要做修改时,不要使用你自己的风格,即使你特别喜欢它。程序的一致性比你本人的习惯更重要,因为这将使随你之后的其他人生活得更容易些。"
作者简介
Brian W.Kernighan和Rob Pike在朗讯科技贝尔实验室的计算机科学研究中心工作。Brian Kernighan是Addison-Wesley的“专业计算丛书”顾问编辑,也是《C程序设计语言》的合著者之一(与Dennis M.Ritchie合作)。Rob Pike是Plan 9和Inferno操作系统的主要结构设计与实现者,他的主要研究兴趣是如何帮助人们更容易地开发软件。
目录
译者序
前言
第1章 风格
1.1 名字
1.2 表达式和语句

显示全部
用户评论
言简意赅 不过该说的也说了蛮多了
新手码农最大的苦恼往往是:书看的太少而想到太多。就像书中说的:“好的设计是思考和经验的结合;纯粹靠玩命干不可能造就出好系统。”当然,对于老码农,也是一本不可多得的好书,阅读的过程中,你(好吧,其实是我)会一次次的跪谢大师,帮你把心中模糊的想法做出如此完美的系统性的总结。特别是第九章 记法(Notation)值得每个程序员认真读几遍。
非常好
非常平淡
首先这封面就不对,我读的版本是棕色封面。内容还不错,一些译法已经与今天不同,但别有古韵。
这就是那种边看边发出现在不都是这样的么?然后一看是1999年写的书
古老的书本 道理却很坚固
不错,学到了!
更多的在讲写代码的行规 入行应该看看,各大培训班也应该买一本,告诉你的学员们,不要用abc来给变量命名 不然像我一样要被骂的(逃)
这本书很内容很“朴实”。
下载
收藏