本书是关于如何设计超大型高质量软件系统的。本书适合经验丰富、努力构造易于维护且高度可测试的软件体系结构的C++开发者。本书不是关于编程理论方法的书籍,而是引导开发者成功开发大型C++项目的全面实用指南。本书是精通C++的程序员在开发大型多站点系统方面多年经验的总结。我们将会展示如何设计一个需要数以百计的程序员、成千上万的类和上百万行C++源代码的系统。
本书介绍
大规模软件项目通常由大型开发团队承担。大型团队生成的代码要有项目范围内可评测的质量,代码必须遵从某一标准并以此来评价。因此,对大型的项目团队来说,建立一个编程标准或一组指南很重要。本书主要是论述C++编程概念、原理、规则、指南和提示,它们可作为编程标准的基础。对工作在大型项目团队的软件工程师来说,这些都是需要了解的。
本书作者John Lakos曾在Mentor Graphics公司IC部门工作,从事大规模C++项目的研发工作。Mentor Graphics公司是首先尝试真正的大规模C++项目的公司之一。Lakos从1987年开始就一直使用C++进行专业的大规模的软件编程,并于1990年在哥伦比亚大学开设了面向对象编程方面的研究生课程。
作者结合自己多年从事大规模C++项目的开发经验精心设计并写作了本书,书中所介绍的一系列概念、理论、原理、设计规则及编程规范可以作为每一个开发团队制定实际开发标准的基础,更是每一位C++程序员应该遵循的准则。其中特别有价值的是一些来自真实世界的编程示例,这些示例说明了物理设计和逻辑设计的一些新概念和新理论,阐明了在从事大规模和超大规模C++软件项目时应该遵循的一系列设计规则,论述了具有易测试、易维护和可重用等特性的高质量大规 模C++软件产品的设计方法。
许多阅读过本书英文版的读者可能会认为本书比较难读。真正理解本书的一般性内容需要花一些时间,融会贯通则更需要下功夫。理解本书的内容不仅需要花费大量的阅读时间,还需要花费更多的时间去从事C++的开发实践。
如果读者致力于将自己发展成从事大规模C++开发的专业人员,或者要在计算机方面的技术领域中长期工作下去,读者从本书中收获的将与阅读和实践所花费的时间成正比。由于作者有着极其丰富的实践经验,因此,当他想要论述一个问题、提出一个观点时,常会想到在自己长期实践中最适合说明这个问题的示例,用几句简短的话引述有关的情况。
因此,在论述中作者有时会不知不觉地将某些并不显然的东西当成是不言自明的事情提出来。而对于许多初学者而言,这些都可能成为学习中的障碍。
开发优秀的C++程序并非易事。随着项目变得更大,使用C++开发高可靠性和易维护的软件变得更加困难,而且会涉及许多新概念。正如木匠建造一栋房屋所获取的经验不适用于建造一栋摩天大楼一样,从开发小型C++项目那里学到的许多技术经验和实践经验也不能直接扩展运用至大型项目开发。
作者简介
John Lakos 世界级软件开发大师,现为Bloomberg公司经理,带领BDE团队使用基于组件的方法和过程开发精密可重用的C++软件,同时,他还经常指导其他软件基础设施部门的工程师和团队主管。Lakos自1987年起就一直使用C++进行专业编程,之前曾担任Mentor Graphics公司高级软件工程师、哥伦比亚大学计算机学院客座教授、Bear Stearns公司MDP(Managing Director Principle)。
译者简介
刘冰,重庆邮电大学计算机科学与技术学院讲师,重庆大学计算机学院在读博士生。先后荣获重庆邮电大学优秀青年教师、课堂优秀教学二等奖、优秀班导师、优秀班主任等荣誉称号。曾获国家专利授权1项,编著教材5部,译著1部,参与国家级项目3项,主研重庆市市级项目4项。
张林,重庆邮电大学,主要从事嵌入式系统、无线宽带网络、未来网络研究。发表论文5篇,编写教材2部。主要讲授的课程包括:大学计算机基础、C语言程序设计、面向对象编程——C++、软件技术基础、Windows程序设计、面向对象编程——Java。