《构建之法》阅读提问
1.结对编程究竟是怎样的一个工作模式?如何能达到书上所说的效果?是否是说两人的问题都能被对方解决的情况是比较理想的开发状态?
2.单元测试是否要求模块对于任意的输入情况都能通过测试?那么是不是要求所有的测试单元都是全部过程?这样势必会导致每一个单元的错误处理都会非常冗长,整体来看的话会有许多不必要的重复判断,这样的理解是否合理?
3.对于敏捷开发的各种方法论,书上或多或少都进行了介绍,但是似乎有提到说在一个程序员或者团队在开发冲刺阶段的时候,突然提出需求改变或者新的需求,这样是否真的敏捷?或者是否会导致设计不成熟又投入到开发的恶性循环?
4.用户体验和用户界面设计是许多程序员所头疼的方面,通过怎样的方法才能获得更好的用户体验的开发模式?
5.关于个人开发的一个问题,精通医学理论的医生来开刀,固然很好。但是程序员经常是一边学习着新的技术一遍开发,并没有明白究竟有什么不好的深远的影响?或者说如何避免做一个刚刚看书上的病例,来开刀的医生?
"软件"和"软件工程"一词最早被谁提出?
“softwar”:1953年Richard R.Carhart在备忘录中使用software一词
“software engineering”:1968年在第一个软件工程大会上,NATO首次提出software engineering的概念。
版本管理软件和项目管理软件
TFS(Team Foundation Server )是一个工作流协作的引擎,它允许一个团队使用他们自定义的流程,并使用在项目历史中实时收集起来的一个集中的数据仓库。
优点:集成性。版本控制系统和工作项存储器在注册时集成在一起。当注册时,可以将其与一个或多个工作项关联。新概念:搁置集
GitHub:Ruby社区的程序员使用Git以后,找不到好的Git托管网站,于是就开发了Github出来。
优点:重视社区活动,在GitHub,用户可以十分轻易地找到海量的开源代码。
Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。
优点:力求不影响现有团队的开发过程,良好的扩充性,以里程碑的方式进行项目管理。
Bugzilla:是一款具有追踪系统的软件。
优点:开源免费,缺陷跟踪。强大的检索功能。
xcode集成了svn源代码管理客户端。
优点:分支管理系统,易于管理,集中式服务器更能保证安全性,管理方便,逻辑明确,符合一般人思维习惯.