S1.阅读疑问
1、我们知道,团队协作过程中,为了提高对于彼此代码的理解能力,增强团队项目编码上的一致性,提高团队协作效率,制定代码规范是非常重要的,不过对于通用的代码规范(在不熟悉团队各个成员代码风格的前提下制定一个较为普适的版本)是何种形式的,以及如何去制定的一个代码规范(依据什么去决定最适合团队的代码规范呢?),我还是不太理解,希望能够得到解答
2. 诚然,当我看到书中提到写了再改模式的时候,我觉得自己中枪了,不过也许这是大学课程以来基本以个人项目为主的结果?我觉得写了再改模式未必一定不好,它对于程序员的代码修改能力,代码补全完善能力,查错能力均有一定的提升,一个好的程序员不仅能够写出好的代码,也应当能够从不同的代码风格中迅速定位自己需要负责的那一部分并完善好,写了再改模式,也许对于代码修改,开发人员而言,是有益的?
3.关于单元测试必须和代码一起保存和维护,并集成到自动测试框架中这两点,能否理解为,对于一个好的程序,执行单元测试应当作为其定期/开机 自检过程?
4.如何看待优化,我们知道好而繁琐的优化可能仅仅是适应当下的应用环境,而很多程序员也提倡最好的优化就是不做优化,为以后代码维护留下接口,我想知道,在软件工程的视角,负责优化的开发人员在这一点上应当怎样思考?
5. 软件开发的Beta阶段,Alpha阶段的界限较为模糊,ZBB与RC阶段也较为模糊,我想知道,这两个界限平时是依据怎样的条件去断定的?怎样才算是从前一个较不稳定的阶段跳跃到一个较稳定的阶段?
S2.软件和软件工程概念的提出
软件:1958年,由Turkey在论文《The Teaching of Concrete Mathematics》提到
软件工程:由Margaret Hamilton在NASA里参与阿波罗11号电脑系统软件时提出
S3.代码版本管理软件
Microsoft TFS
优点:直观显示项目需求与进度,与VS无缝结合,集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM
缺点:asp实现,浏览器访问较慢,不便于配合自动化测试,团队的邮件细节配置也比较复杂
Git
优点:离线工作,自由工作模式,可以选择有用的代码提交,速度较快
缺点:信息模型复杂,命令行语法较为繁琐,不安全的版本控制
GitHub
优点:pull request,issue, 功能设计简洁,适用于私有项目,个人项目
缺点:不能很好的解决GB2312/GBK,中文使用不太方便,国内访问速度较慢