天天看点

代码大全——第一部分

 本书第一部分以一种幽默有趣的方式介绍了软件工程的内容,其核心围绕着构建(construction)展开。软件构建对我来说是个新的词语。构建虽然包括软件过程的各个方面(除了问题定义),但它更侧重于实际设计、代码和测试。说得更直接一点就是,构建就是软件专业技术上的活,但作者又不断强调构建之前的“问题定义”的重要性,并且“问题定义”应该使用用户的语言,而非专业语言,同时“问题定义”也是一个项目的基石,引用一句经典的话“许多项目在开始编码之前就已经决定其成败”

后面文章用软件隐喻(Software Metaphors)来表达了软件工程中的不同模型,有点类似原型模型,迭代模型,瀑布模型等。相比一般软件工程教科书的独到之处在于,作者阐述了不同规模的项目,应该选择与之相适应的开发模型。“适用的才是最好的”

第三章阐述了构建之前的工作,这往往是一个方向性的问题,如果方向错了,后面的工作也只是南辕北辙了。对问题的正确认识,“杀鸡用牛刀,或者用铅笔刀,都是错误的判断”

最后,文章描述了构建中关键的决策,如语言选择,编程的约定,在技术浪潮的位置,这主要是让设计者意识到自己所做的开发其技术的成熟性,许多技术已经很成熟,如在windows下用dotNET设计应用程序,这样就可以花更多时间在设计本身上,而在某些其他领域里,技术并不是非常成熟,如在ucLinux下做图形设计,要是还用了一个不是很成熟的图形库,那要做的事情完全不是和windows做应用程序一回事了。

看惯了教科书式的软件工程,读起该书来,更能体会到作者实际项目经验和思想的表达,而不是概念的堆砌。

技术性文章不一定是要“说明文”,再看《深入浅出设计模式》,死板的陈述已经落伍,如何诙谐有效的表达才是好的表达。技术也是艺术。

继续阅读