首页 > 代码库 > Week1个人作业
Week1个人作业
关于教材的疑问
阅读的教材《构建之法》
1第一章中提到:“软件企业=软件+商业模式”,这样的结构是否过于简单,尤其是在互联网+时代
2.在进行单元测试的时候,怎么做到100%覆盖
3.个人项目中Code Review有什么作用,应该怎么去做
...(因为主要时间都花在个人项目了,在书里面发现的问题不多)
“软件”的提出
电脑问世初期,人们只是把软件当成为了使计算机完成某个任务所需要的指令的集合,并没有专门对它进行定义。之后到了20世纪50年代,专门卖软件的公司开始增加,规模也越来越大。其中,第一家软件公司CUC逐渐走上正轨后,在1959年首次使用了“软件”一词。
“软件工程”的提出
北大西洋公约组织在1968年10月召开的计算机科学会议上,FritzBauer首次提出“软件工程”的概念,试图将工程化方法应用于软件开发。
一些源代码管理工具的对比(由于个人只用过GitHub所以对于其他的工具的描述都是拾人牙慧,不能判断其客观性)
Visual Source Safe,简称VSS,是微软出品的版本管理系统:
优点是配置起来比较简单,易于上手,而且,版本回退方便。
缺点是只局限于内网,开发者一旦离开,就无法再进行代码的更新合并了,并且,因为是微软出品,只支持windows系统,而且据用户反映,提交较大文件(50M)时,会出现问题。
Concurrent Version System,简称CVS:
优点是对中文路径支持的比较好,本地文件和库文件可以多对多。
缺点CVS不支持本地文件重命名提交,管理员很难清楚的知道一个项目到底有多少个用户各用户的权限和密码是什么只能用分组的方式管理用户而且密码和权限还是不清晰,并且,采用了完全用户可见的方式。
SVN是一种集中式的源码管理软件,是CVS的接班人:
优点是,速度比较快(相对于CVS而言),支持文件重命名提交系统会提示删除旧文件,创建新文件,有创建标志和分支dubious等功能。
SVN的工作流程是,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。所以缺点就是,如果脱离了服务器,开发者基本上可以说是无法工作的。
Microsoft TFS,同样是微软出品的系统:
优点是不论在本地还是 在云中,TFS 均可支持灵活的开发实践、 多个 IDE 和平台,并提供有效管理整个 IT 生命周期的软件开发项目所需的工具。
缺点是用浏览器访问,比较慢。
GitHub Git是一个分布式的版本控制系统:
优点是拥有pull request等强大功能,功能简介,易于上手。
缺点是对中文支持不够好,局部还原不够完美,在国内访问比较慢,而且,对于企业而言,价格比较昂贵。对Windows的支持不是很友好,毕竟Git是linux创始人弄出来的东西,其指令有点类似与linux命令行里面的指令
Trac:
优点是使用非常灵活,可以和SVN集成。
缺点是,系统比较简单,功能和其他系统相比,不够强大。
Bugzilla:
优点是支持中文,再linux和unix扩展比较好。
缺点是快速搜索不准确,只能管理缺陷,不能管理测试计划,测试用例等。
Apple XCode,由苹果公司开发,编译器采用许多新的编译技术:
优点是编译速度快,自动向量化技术可以释放每台 Intel 系统中速度引擎的能量,同时有撤销,重做等功能。
缺点是系统更新不稳定,可能会有插件失效的情况。
Week1个人作业