关于教材的疑问linux
阅读的教材《构建之法》windows
1第一章中提到:“软件企业=软件+商业模式”,这样的结构是否过于简单,尤为是在互联网+时代浏览器
2.在进行单元测试的时候,怎么作到100%覆盖服务器
3.我的项目中Code Review有什么做用,应该怎么去作分布式
...(由于主要时间都花在我的项目了,在书里面发现的问题很少)工具
“软件”的提出单元测试
电脑问世初期,人们只是把软件当成为了使计算机完成某个任务所须要的指令的集合,并无专门对它进行定义。以后到了20世纪50年代,专门卖软件的公司开始增长,规模也愈来愈大。其中,第一家软件公司CUC逐渐走上正轨后,在1959年首次使用了“软件”一词。测试
“软件工程”的提出spa
北大西洋公约组织在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 系统中速度引擎的能量,同时有撤销,重作等功能。
缺点是系统更新不稳定,可能会有插件失效的状况。