本月,在王老师的推荐下,我进行了对美国的史蒂夫·麦克奈尔先生编著的《代码大全2中文版》这本书的学习工作。本次学习让我受益匪浅,以下是我个人的一些所思所想。
         最开始映入我们眼帘的是,本书的出版人周筠的一些感言《一切皆有可能》讲述了出版人在出版本书时经历的一些事。

       之后我便阅读了本书的第一章——《欢迎进入软件构建的世界》。构建是什么意思捏,构建是指建设的过程,构建过程可能包含有计划、设计、检查工作的一些方面,但在多数时候,“构建”就是指创建事务的过程中动手的哪些部分。

        软件构件中有很多不同的活动:定义问题、欲求分析、规划构建、软件架构或者说叫高层设计、详细设计、编码与测试、单元测试、集成测试、集成、系统测试、保障维护等等。可见编程活动是十分复杂的、设计了很多方面。

        之后作者在第二节作者讲述了软件构建为何如此重要。因为构建活动是软件开发的重要组成部分,而且软件活动室软件开发的核心活动,如果把主要精力集中在构建活动,可以大大提高程序员的生产率。构建活动的产物——源代码,对于软件工程来说往往是软件唯一精确的描述。以上便是作者论述的构建活动对于软件工程的重要性。

        之后便是本书的第二章——《用隐喻来更充分地理解软件开发》。作者首先介绍了一下软件中的隐喻:建模,之后讲了一下隐喻的重要性。之后作者讲了讲如何使用软件之中的隐喻,而软件之中的隐喻又是什么呢:软件中的书法——代码、软件中的耕作法——系统的培养、软件中的养殖场——系统成长、软件构建——建造软件、应用软件技术——只会工具箱,以及各种各样的其他隐喻。

        隐喻是一种启示而不是一种算法。而隐喻把软件开发过程和其它人类的活动联系到了一起,帮助人类理解。有些软件工程中的隐喻可以比其它的隐喻更加贴切,通过把团建构建过程比作房屋的建设过程,我们可以发现,仔细准备是必要的,而大型项目和小型项目之间也是有很大差异的。不同的隐喻彼此之间并不排斥,作为一名合格的软件工程师应当使用对自己最有益的某种隐喻组合来提高自己的工作效率。

       以上就是我阅读这本书的一些收获。