且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-09-22 22:10:22

本节书摘来自异步社区《编程珠玑(第2版•修订版)》一书中的第1章1.7节深入阅读,作者【美】Jon Bentley,更多章节内容可以访问云栖社区“异步社区”公众号查看。

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方法。 ——编者注

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