《编程珠玑(第2版•修订版)》—第1章1.7节深入阅读

1.7 深入阅读
这个小练习仅仅是令人痴迷的程序说明问题的冰山一角。要深入研究这个重要的课题,参见Michael Jackson②的Software Requirements & Specifications一书(Addison-Wesley出版社1995年出版)。该书用一组独立成章却又相辅相成的短文,以令人愉悦的方式阐述了这个艰涩的课题。

在本章所描述的实例研究中,程序员的主要问题与其说是技术问题,还不如说是心理问题:他不能解决问题,是因为他企图解决错误的问题。问题的最终解决,是通过打破他的概念壁垒,进而去解决一个较简单的问题而实现的。James L. Adams所著的Conceptuel Blockbusting一书(第3版由Perseus出版社于1986年出版)研究了这类跳跃,该书通常是触发创新性思维的理想选择。虽然该书不是专为程序员而写的,其中的许多内容却特别适用于编程问题。Adams将概念壁垒定义为“阻碍解题者正确理解问题或取得答案的心智壁垒”。习题10、习题11和习题12激励读者去打破一些这样的壁垒。

①折中在所有的工程领域中都存在。例如,汽车设计者可能会通过增加沉重的部件,用行驶里程的减少来换取更快的加速。但双赢是更好的结果。我对自己驾驶过的一辆小轿车做过一番研究,我观察到:“轿车基本结构重量的减少会使各底盘部件重量的进一步减少——甚至消除了对某些底盘部件的需求,例如转向助力系统。”

②Michael Jackson(1936—),软件工程先驱。他于20世纪70年代提出了影响深远的面向数据结构的Jackson方法。 ——编者注

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-08-20 02:38:25

《编程珠玑(第2版•修订版)》—第1章1.7节深入阅读的相关文章

《编程珠玑(续)(修订版)》—第2章2.6节深入阅读

2.6 深入阅读Aho.Kernighan和Weinberger在1977年设计并创建了最初的Awk语言.(无论如何,都不要重新排列他们姓氏的首字母!⑤)在Addison-Wesley出版社1988年出版的AWK Programming Language一书中,他们详细讲述了该语言及其高明的用法.该书第7章说明Awk如何成为实验算法的一个有用工具,我们将在本书的第3章.第13章和第14章以这样的目的来使用Awk:该书第6章把Awk作为一个小语言处理器来讲述,我们将在本书第9章这样使用Awk.该书

《编程珠玑(续)(修订版)》—第1章1.7节深入阅读

1.7 深入阅读 Don Knuth的"Empirical Study of Fortran Programs"发表在1971年Software--Practice and Experience 第一卷上(第105-133页).关于"动态统计"的第3节讨论了行计数和过程时间计数,以及用这两种计数搜集的统计数据.第4节调优了17个关键的内循环,获得了从1.5~13.1倍的加速.在过去的十几年中,我每年至少要读一遍这篇经典论文,越读越觉得好,因此我强烈推荐这篇论文. ①

《编程珠玑(第2版•修订版)》—第2章2.7节深入阅读

2.7 深入阅读 8.8节列出了算法方面的几本好书.

《SOA与REST:用REST构建企业级SOA解决方案》—第1章1.2节推荐阅读

1.2 推荐阅读为了进一步确保清晰理解后续章节中使用和引用的关键术语,你可以访问www.soaglossary.com网站,它提供了针对本系列书的在线主词汇表. 详细阐述本标题涵盖的关键主题的系列书籍包括下面两本. SOA Principles of Service Design--全面记录了面向服务设计范例,针对本书提到的所有原则,该书均提供了全面地描述.这些原则在www.soaprinciples.com网站和附录D中也有相应解释.SOA Design Pattern--该书是官方的SOA设

《Adobe Acrobat DC经典教程》—第1章1.11节在阅读模式下查看PDF文件

1.11 在阅读模式下查看PDF文件你可以最大化地运用屏幕空间查看PDF文档,而不必进入全屏模式.阅读模式下,将隐藏除了文档和菜单栏之外的工作区域的其他所有元素. 1.选择View > Read Mode(阅读模式). 2.移动光标至窗口底端附近,显示结果如图1.27所示. 在页面底部出现一个浮动的工具栏.浮动工具栏不同于页面控件工具栏,它包括导览工具,可以放大.缩小.跳至不同页面,以及保存和打印文件.3.单击浮动工具栏中的Show Main Toolbar(显示主工具栏)按钮(),或者再次选择

《Adobe Acrobat X中文版经典教程》—第1章1.7节在阅读模式下查看PDF文件

1.7 在阅读模式下查看PDF文件Adobe Acrobat X中文版经典教程也可在不进入全屏模式的情况下让PDF文档最大限度地利用屏幕空间,为此可使用阅读模式.除文档和菜单栏外,阅读模式隐藏工作区的其他所有元素. 1.选择菜单"视图">"阅读模式". 2.将鼠标光标移到窗口底部附近,将出现一个半透明的浮动工具栏,其中包含导航工具,让您能够缩放页面或切换到其他页面,如图1.13所示. http://write.epubit.com.cn/api/storage

《SOA Web Service合约设计与版本化》—第1章1.6节补充阅读

1.6 补充阅读SOA Web Service合约设计与版本化下面是一些推荐的补充书目,可以进一步阐释本书中包含的关键主题. SOA Principles of Service Design(中译版<SOA服务设计原则>)关于面向服务设计范型的综合参考书,包含本书中引用到的所有原则的全面描述:SOA Design Patterns 该书提供了设计模式的详尽目录,其中许多模式都是和Web服务合约设计与版本化相关的.你可以从http://www.soapatterns.org检索到这些模式的简单描

编程珠玑--粗略估算

粗略估算是<编程珠玑>中第七章提到的内容.   这篇文章将"粗略估算"看做是一项工程技术,是程序员必备的一项技能之一. 本人非常同意这个观点.粗略估算是一种把复杂的事情简单化的能力.我们对某个算法的时间复杂度和空间复杂度的估算就是基于这种估算的能力.如果你能较为准确的估算出一个程序的输出结果,如果你能准确估算出这个程序的运行时间,如果你能准确估算出这个项目的开发时间--如果你能拥有这样的能力,该有多么美好啊.所以难怪乎像微软.Google这样的大公司老喜欢出"请计

《编程珠玑(续)(修订版)》—第1章1.1节计算素数

第1章 性能监视工具 编程珠玑(续)(修订版) 听诊器是一种简单工具,却给医生的工作带来了革命:它让内科医生能有效地监控病人的身体.性能监视工具(profiler)对程序起着同样的作用. 你现在用什么工具来研究程序?复杂的分析系统很多,既有交互式调试器,又有程序动画系统.正如CT扫描仪永远代替不了听诊器一样,复杂的软件也永远代替不了程序员用来监控程序的最简单工具--性能监视工具,我们用它了解程序各部分的执行频率. 本章先用两种性能监视工具来加速一个小程序(记住真正的目的是说明性能监视工具).后续