22.1.2 编程理念
《C++Programming Language》的序言中提到,“C++语言是一种通用程序设计语言,它的一个主要设计目的就是让那些认真严肃的程序员也能体验到程序设计的乐趣”。这是什么意思?程序设计不就是生产产品么?不就是正确性、质量和可维护性吗?不就是上市日期吗?不就是效率么?不就是对软件工程的支持吗?当然,这些说法都没错,但是我们不能忘记程序员——也就是人。考虑另外一个例子,Don Knuth说过,“Alto最好的特性就是它不会在晚上运行得更快”。Alto是来自施乐Palo Alto研究中心(PARC)的一台计算机,是最早的“个人计算机”之一。而当时的主流计算机是与之相对的“分时共享计算机”,在白天会有大量用户竞争访问计算机(因而晚上会运行更快)。
程序设计工具和技术存在的意义是为了让一个程序员——一个人,能更好地工作并创造出更好的成果。请不要忘记这一点。那么,什么样的指导方针可以帮助程序员以最小的代价设计出最好的软件呢?本书自始至终都在阐述我们对此的理念,因此本节只是对这些内容做一个总结。
我们希望自己的代码有良好架构的主要原因是,在良好架构下,我们可以不必花费很大力气就能修改程序。架构越好,修改程序、寻找和修正错误、增加新特性、移植到新的体系结构中以及优化性能等等工作就更容易。这就是我们所说的“良好”的准确含义。
在本节的剩余部分,我们将:
·重新审视我们尝试达到的目标,也就是我们想从代码中得到什么。
·提出两种一般性的软件开发方法,并说明两者的结合比单独使用其中任何一种方法都要更好。
·思考用代码表达程序结构的关键问题:
·直接表达思想;
·抽象层次;
·模块化;
·一致性和简约主义。
理念是要拿来用的。它是思考的工具,而不仅仅是用来取悦管理人员和考核人员的华丽词汇。我们所编写的程序应该尽可能接近我们的设计理念。当陷入程序泥潭的时候,我们最好回过头来看一看,问题是否出在违背了设计理念。有时这是很有帮助的。当评估一个程序时(最好是在交付用户之前),我们应该寻找那些违背设计理念的部分,这些部分是将来最有可能出问题的地方。应该尽可能广泛地应用设计理念,但也要考虑实践相关问题(例如性能和简单性)和语言的弱点(不存在完美的语言),这些因素会阻碍我们得到符合设计理念的完美结果。 ...
Get C++程序设计:原理与实践(进阶篇)(原书第2版) now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.