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方法。 ——编者注
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
时间: 2025-01-13 01:45:14