阅读《构建之法》后的思考和疑问
几个问题:
1、关于单元测试的自动化。
大家都喜欢在写代码时能够确定自己原来写的东西没有错误,所以单元测试确实在开发中起到很是吸引人,但是单元测试又确实很是繁琐。那么这里所谓的单元测试“自动化”,其自动化是针对哪些方面?
2、关于项目设计与开发速度上的问题。
设计到怎样的程度有利于能够提高开发的速度,是否存在某些设计需要在实践中考察后才能判断优劣的情况?
3、关于软件工程师成长方面的问题。
书中有提到很多关于软件工程师资格认证的内容,那么一个优秀的软件工程师应该有怎样的习惯和精神素养呢?
4、关于敏捷流程。
现实的开发过程中往往会比理论中多出很多问题,比如需要如何能够将需求细化到任务,然后在细化到设计,最终使得能够在规定的时间内有条不紊的完成目标?
5、关于优化。
如果最后做性能分析的时候发现的性能问题造成的原因是前期一个隐藏在很深地方的不妥当架构造成的,这个时候该如何取舍?
“软件”和“软件工程”的由来:
软件:软件概念最早于1953年8月由Richard R. Carhart提出。真正电子上的软件由John Tukey于1958年在《The Teaching of Concrete Mathematics》中提出,当时发表在JSTOR上。
软件工程:Margaret Hamilton在NASA里参与阿波罗11号电脑系统软件开发时提出的。
目前流行的源程序版本管理软件和项目管理软件:
Git:
GitHub:
GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。
Bitbucket:
免费支持私有仓库,这一点无可比拟。它同时支持 hg / git,无论从界面还是功能上看,跟 GitHub 比都几乎没有什么缺点(GitHub 有的功能它全有)。