1. 作为 IT 从业人员,你觉得有什么工具大大提高了你的工作效率
我也谈谈自己的一些提高开发体验经验,就说软件工具部分。
这里的经验基本上都是冲着一个原则去的:“凡是需要重复做的,必须使用自动化工具完成。”
1. 版本控制
一般自己的项目使用git,公司开发规定用svn。反正不管怎么样,版本控制少不了。有个说法,没有版本控制的项目,就等于没有。
版本控制的好处太多了,用过的人都知道。等于历史版本 + 代码备份了。这个提到的很多,就不多说了。
2.单元测试工具
写程序需要验证,如果快速知道新的代码和过去的写的代码不冲突,这个时候单元测试就能起到作用了。
当然单元测试的功能不仅仅是这个:
验证代码正确性和可靠性
验证新代码不和原有代码冲突
验证自己代码不合团队其他人员代码有冲突
验证合并是否有冲突
验证快速
可以作为API使用实例
跨平台和跨环境测试
这个是现代开发流程的基本模块之一,没有单元测试的项目,不是一个合格完整的项目。
有了单元测试,就再也不用担心在大项目中,自己做的小修改有会有什么大影响了。开发压力大大减少
PHP的我用的是PHPunit,JavaScript用过的就多了,Jasmine,Qunit,Mocha等工具(不管哪一个,至少要用到一个)C#一般用nUnit。还有各种mock,faker辅助。
8.持续集成
有人和我说过,持续集成可以让你开发水平提高达到到另外一个层级。当我实践后,终于明白持续集成的魅力所在了。
要会持续集成,你首先必须学会以上6条(live reload除外),以上6条基本就是持续集成的几个基础模块,学会后,你自然而然就已经会了持续集成了。
持续集成的主要流程如下
检查版本控制库是否更新
如果更新,就下载最新版本的代码
构建
测试
报告
当你设置好一个持续集成的项目后,以上的步骤应该就是全自动的了。还是那句老话: 凡是重复的步骤,应该用工具来完成。而持续集成就是这个终极工具。
持续集成其实就是流程管理的一个升级版本,或者说一个扩充。它们都是自动流程工具。它们的差别是:
流程管理主要在本机(开发人员自己的开发环境)上执行,而持续集成则是在一个独立设置的环境下执行。
流程管理继续的是本机代码,而持续集成构建的是版本控制中保存的代码
团队中任何一个人push代码到版本控制中,持续集成就开始构建验证新代码的可靠性。
项目流程配置完成后,流程管理需要执行命令行,持续集成应该全自动
流程管理是持续集成的一个模块,属于持续集成的构建模块
持续集成会有更多后续的专业功能,比如说产生报告,错误通知,构建历史,测试历史等开发新型
我们可以设想一下这样的一个情况,在有20-50个人的团队在开发一个PHP项目,每个人每天至少往版本控制中push大约10次新代码,而这个项目你又要保证在3个主流的浏览器中功能一致,样式相同,而这个项目又必须跨平台,可以在mac,window,linux上都可以运行,而且还要保证PHP5.4~5.6都可以运行。这个时候,持续集成系统的优势就会显示其真正的威力了。
总之,在一个专业项目中,持续集成服务所提供的自动构建和专业报告,可以把项目开发的专业水准再次提高到一个新的层次当中。
我用过的持续集成是Jenkins。
文章到此算完结了。其实开发中,还有很多优秀的工具,但无法和这些主要的开发工具相比,就不在这里说了。
2. SVN(版本控制系统)是个什么东西
一个版本控制软件,可以上传、下载自己的代码,同时SVN记载着修改、删除等记录,可以下载任何时候的上传代码。
3. Java程序员编写代码时用什么上传到公司服务器上
利用SVN这个软件,网络就能下载,安装完后根据公司的SVN地址就可以访问提交的代码等文件并导入到本地,自己写的代码也可以提交上去。
而且eclipse、Myeclipse也可以安装SVN插件,直接在软件内检出和提交代码。
绝大部分公司都是用的SVN软件来管理、同步代码。