第1章 概论 什么才是软件工程,以前我并不理解软件工程,以为软件工程就是编程序。其实并不是。软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。软件工程和下列的学科相关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户界面设计。人们在开发、运营、维护软件的过程中有很多技术、 做法、习惯和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。软件开发流程的目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。
第2章 个人技术和流程 关于单元测试,以前概念很模糊。就觉得写程序就是玩玩。差不多就行。再看了书之后,发现单元测试有很重要的作用。软件的成功与否就在于单元测试。并且单元测试不能攒着,要边编程,边测试。再就是回归测试的概念,在单元测试的基础上我们就能够建立关于这一模块的回归测试1. 验证新的代码的确改正了缺陷2. 同时要验证新的代码有没有破坏模块的现有功能,有没有Regression。最后是关于效能分析,以前并不注意效能分析,应为编的程序太小,算法无所谓。但是以后的工作毕竟不会是这样的小程序了,所以效能分析十分重要。效能分析:抽样就是当程序运行时,Visual Studio时不时看一看这个程序运行在哪一个函数内,并记录下来。程序结束后,Visual Studio就会得出一个关于程序运行时间分布的大致印象。再根据图像改程序。
第3章 软件工程师的成长 以前对代码的第一次编写不是很用心,总是要改很多遍。其实改的多并不能写出高质量的代码。在低级的问题上犯错耗费了大量的时间。同时,编代码的时间稳定也是很重要的。可以赢得顾客的信赖。 第二个问题就是,对自己的低级错误放任不管,总是觉得把高级的问题解决了,自己的水平就很高了。其实并不是,低级的问题都解决不了,加断点都不会。又哪有精力去解决高级的问题呢。正所谓熟能生巧,在今后的学习中要重视低级问题,多加练习。
第4章 两人合作 现代软件产业经过几十年的发展,一个软件由一个人单枪匹马完成,已经很少见了,软件都是在相互合作中完成的。合作的最小单位是两个人,两个工程师在一起,做的最多的事情就是“看代码”,每人都能看“别人的代码”,并发表意见。之前我对代码的可读性并不重视,认为能运行就可以了。然而,这样影响了同伴之间的交流。不要说别人看不懂你的代码,你自己都不能解释清楚。代码风格的原则是:简明,易读,无二义性。4个空格缩进,格式采用
if (condition)
{
DoSomething();
}
else
{
DoSomethingElse();
}
不要把多条语句放在一行上。更严格地说,不要把多个变量定义在一行上。程序中的实体、变量是程序员昼思夜想的对象,要起一个好的名字才行。大家都知道,用单个字母给有复杂语义的实体命名并不可取,也是经过了实践检验的方法叫“匈牙利命名法”。在变量面前加上有意义的前缀,程序员就能一眼看出变量的类型及相应的语义。这就是“匈牙利命名法”的用处。还有一些地方不适合用“匈牙利命名法”,比如,在一些强类型的语言。下划线
下划线用来分隔变量名字中的作用域标注和变量的语义。由多个单词组成的变量名,如果全部都是小写,很不易读,一个简单的解决方案就是用大小写区分它们。复杂的注释应该放在函数头,很多函数头的注释都用来解释参数的类型等,如果程序正文已经能够说明参数的类型in/out,就不要重复!注释也要随着程序的修改而不断更新,一个误导的(Misleading)注释往往比没有注释更糟糕。另外,注释(包括所有源代码)应该只用ASCII字符。函数最好有单一的出口,为了达到这一目的,可以使用goto。只要有助于程序逻辑的清晰体现,什么方法都可以使用,包括goto。今后要按此编程,规范格式。