Week1个人作业
1.快速看完整部教材,列出你不懂的 5 - 10 个问题,发布在你的个人博客上。
- 都是和计算机相关的,为何软件工程和计算机科学与技术要分成不同的学院?
- 计算机科学与技术学院的学生将来毕业之后大多是要编写软件的,软件工程的知识应该很重要,为何必修课中没有软件工程这一门课?
-
看到书中提到代码风格我想起一个问题,我自己的代码风格是大括号换行,如下
if(...) { ... } else { ... }
而之前操作系统课程的小组中除了我之外的其他组员都是大括号不换行的代码风格,如下
if(...) { ... } else { ... }
大家的代码放到一起之后,我负责的那部分代码就显得很奇怪。在处于这样的小组的时候有没有必要迎合其他人的代码风格,自己也改成大括号不换行?
-
书中说到了goto语句的问题,有时候使用goto语句可以让实现某些功能变得非常方便,如跳出多层循环。但很多老师都说了最好不要用goto,不少IT公司禁止程序员使用goto语句,使用goto语句真的会使代码的可读性降低得那么严重吗?如果在使用goto的时候写好注释注明跳转的目的呢?
- 书中敏捷流程这章中提出的一个问题但没有给出答案,我很好奇。如果所有团队成员都对某个任务不感兴趣而不去认领的话一般会怎么解决?
- 开发进行到一半,客户突然说要改功能怎么办?
- 现在开发软件好像都比较讲究UI的简洁,然而这在某些情况下会造成困扰。比如win10在更新的时候只会显示“正在处理一些事情”,而并不在屏幕上显示一大堆信息告诉用户正在做什么,可能是因为这样会显得很乱很难看。但是更新卡在“正在处理一些事情”的时候就很尴尬,用户完全不知道更新卡在了什么地方,问题出在哪里,这种简洁到底是好是坏呢?
2.请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人?
- “软件”这个词是John Tukey创造的,最早出现于他1958年的论文"The Teaching of Concrete Mathematics"。而Paul Niquette在1995年声称他在1953年10月份的时候创造了“软件”这个词,但是他找不到任何证据证明他的说法。
- “软件工程”一词是Margaret Hamilton在阿波罗计划期间发明的。当时,人们并不是十分重视这个学科,没有把它当成一门“科学”来看,所以Margaret Hamilton创造了“软件工程”这个词,希望人们像看待其他工程学一样来看待这门学科。
3.上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?
- Microsoft TFS
- 优点:5人内免费,与VS无缝接合,无需部署
- 缺点:只有很少的功能比较常被使用,比如源代码管理
- Git Hub
- 优点:
- pull request功能
- 对于开源项目是理想的选择
- 缺点:
- 私有项目收费
- 对中文字符集支持不好,会出乱码
- 优点:
- bugzilla
- 优点:
- 免费
- 有中文支持
- 缺点:只有缺陷管理功能
- 优点: