写在前面:
这门课程有点像国内的软件工程课程,而国内的软件工程课程,一般是讲一些软件工程的哲学…这门课程是将软件工程的哲学放在 reading 中而项目作业分开。个人认为软件工程哲学就是一种认同 ,即信则有,不信则无。更多的其实可以在今后工程项目中验证。所以我的笔记其实就是我所认可的软件工程哲学
goal
这门课所有的软件工程哲学都围绕着3个目标:
- safe from bugs
- easy to understand
- Ready for Change
这和我自己平时所写的 ACM-ICPC 风格的代码有所不同,ACM-ICPC 代码只有一下一些目标:
- safe from bugs
- performence
- quick to code
特别是性能,ACMer 为了性能往往写出很多 geek 风的代码
好进入这节reading的主题----code review
完整reading可参见
Reading 4: Code Review
HIT 中文翻译-代码审查
Style standards
其实关于 代码风格 我是并不刻意的,个人认为好的代码风格应该是好读, 但是好读的标准并不是一致的,因为个人的逻辑和条理性可能不同。但基本的换行空格还是要有的。这个没啥好说的,各家公司都有自己的代码风格,说到某些特别的可能甚至会引起圣战: 比如 {
的位置该换行还是不换行…,这种是很boring的
DRY(Don’t Repeat Yourself)
这个其实挺好理解的,比如
public static int dayOfYear(int month, int dayOfMonth, int year) {
if (month == 2) {
dayOfMonth += 31;
} else if (month == 3) {
dayOfMonth += 59;
} else if (