作为程序员我们工作的宗旨是
“凡是需要重复做的,必须使用自动化工具完成。”
1.版本控制
一般自己的项目使用git,公司开发规定用svn。反正不管怎么样,版本控制少不了。有个说法,没有版本控制的项目,就等于没有。版本控制的好处太多了,用过的人都知道。等于历史版本+代码备份了。这个提到的很多,就不多说了。
2.单元测试工具
写程序需要验证,如果快速知道新的代码和过去的写的代码不冲突,这个时候单元测试就能起到作用了。当然单元测试的功能不仅仅是这个:
验证代码正确性和可靠性
验证新代码不和原有代码冲突
验证自己代码不合团队其他人员代码有冲突
验证合并是否有冲突
验证快速
可以作为API使用实例
跨平台和跨环境测试
这个是现代开发流程的基本模块之一,没有单元测试的项目,不是一个合格完整的项目。有了单元测试,就再也不用担心在大项目中,自己做的小修改有会有什么大影响了。开发压力大大减少PHP的我用的是PHPunit,JavaScript用过的就多了,Jasmine,Qunit,Mocha等工具(不管哪一个,至少要用到一个)C#一般用nUnit。还有各种mock,faker辅助。3.功能测试工具
就是交互界面测试,也可以是界面样式测试。代码写的方式大致过程和单元测试差不多,不过单元测试每个单元都是独立的,理论上不应该有任何依赖关系(只要有依赖关系就叫做集成测试);而功能测试,就是 成品的测试,必须把所有依赖打开,并且在界面上进行测试。界面功能测试的优点:
速度比人工快
模拟真人操作
可以录像后导出测试代码
可以抓图
缺点:
依赖多,依赖的环境变化可导致代码失效
速度相对单元测试慢很多
测试成功率可能不是%
功能测试,也是自动测试的一种,至少解放了大量重复性劳动,大大提升界面功能开发的速度。
功能测试工具主要有phantomjs和Selenium。我两个都用,根据不同情况使用不同策略。
4.依赖管理/程序包管理器
有了依赖管理,从此不用再手动去每个库的官方网站下载和更新库了。配置一下,运行一下命令行,然后就下载好了,定时在运行一下命令行,所有库又更新到 版本了。开发体验大大提高。
列举一下主要好处:
自动安装依赖库
自动更新依赖库
自动安装/更新依赖库的依赖
库和现有项目有冲突,可以强制降级依赖库
开发依赖和项目依赖分开,发布版本时候可以自动删除所有开发依赖库
版本控制可以只收入依赖管理配置,无需收入依赖库的目录,大大节省版本控制大小
统一团体所有人员依赖库的版本
依赖管理下载速度快,免除开发人员手动的重复劳动。大大提高开发效率
PHP的依赖管理是白癜风可以根治吗黑龙江治疗白癜风的医院