作为 IT 从业人员,你觉得有什么工具大大提高了你的工作效率? 如何提高IT运维人员工作效率

作者&投稿:苦厕 (若有异议请与网页底部的电邮联系)

我也谈谈自己的一些提高开发体验经验,就说软件工具部分。
这里的经验基本上都是冲着一个原则去的:“凡是需要重复做的,必须使用自动化工具完成。”



1. 版本控制
一般自己的项目使用git,公司开发规定用svn。反正不管怎么样,版本控制少不了。有个说法,没有版本控制的项目,就等于没有。
版本控制的好处太多了,用过的人都知道。等于历史版本 + 代码备份了。这个提到的很多,就不多说了。
2.单元测试工具
写程序需要验证,如果快速知道新的代码和过去的写的代码不冲突,这个时候单元测试就能起到作用了。
当然单元测试的功能不仅仅是这个:

  • 验证代码正确性和可靠性

  • 验证新代码不和原有代码冲突

  • 验证自己代码不合团队其他人员代码有冲突

  • 验证合并是否有冲突

  • 验证快速

  • 可以作为API使用实例

  • 跨平台和跨环境测试

这个是现代开发流程的基本模块之一,没有单元测试的项目,不是一个合格完整的项目。
有了单元测试,就再也不用担心在大项目中,自己做的小修改有会有什么大影响了。开发压力大大减少
PHP的我用的是PHPunit,JavaScript用过的就多了,Jasmine,Qunit,Mocha等工具(不管哪一个,至少要用到一个)C#一般用nUnit。还有各种mock,faker辅助。

3.功能测试工具
就是交互界面测试,也可以是界面样式测试。代码写的方式大致过程和单元测试差不多,不过单元测试每个单元都是独立的,理论上不应该有任何依赖关系(只要有依赖关系就叫做集成测试);而功能测试,就是最后成品的测试,必须把所有依赖打开,并且在界面上进行测试。

界面功能测试的优点

  • 速度比人工快

  • 模拟真人操作

  • 可以录像后导出测试代码

  • 可以抓图

缺点:

  • 依赖多,依赖的环境变化可导致代码失效

  • 速度相对单元测试慢很多

  • 测试成功率可能不是100%

功能测试,也是自动测试的一种,至少解放了大量重复性劳动,大大提升界面功能开发的速度。

功能测试工具主要有phantomjs和Selenium。我两个都用,根据不同情况使用不同策略。

4. 依赖管理/程序包管理器

有了依赖管理,从此不用再手动去每个库的官方网站下载和更新库了。配置一下,运行一下命令行,然后就下载好了,定时在运行一下命令行,所有库又更新到最新版本了。开发体验大大提高。

列举一下主要好处:

  • 自动安装依赖库

  • 自动更新依赖库

  • 自动安装/更新依赖库的依赖

  • 最新库和现有项目有冲突,可以强制降级依赖库

  • 开发依赖和项目依赖分开,发布版本时候可以自动删除所有开发依赖库

  • 版本控制可以只收入依赖管理配置,无需收入依赖库的目录,大大节省版本控制大小

  • 统一团体所有人员依赖库的版本

依赖管理下载速度快,免除开发人员手动的重复劳动。大大提高开发效率

PHP的依赖管理是composer,js的依赖管理是npm和bower,C#的是nuget,

5. 流程管理/构建工具

这个叫法很多还有叫做任务自动管理工具的,不管是什么名字,都是一个意思:自动化流程管理。

简单的说从源代码到产品之间,中间还有一个复杂的过程,一般大致如下:

  • 代码清洁

  • 编译

  • 配置

  • 测试

一般对开发人员来说,凡是重复的,必须使用工具自动完成。开发人员是不愿意重复做这些流程,所以需要流程管理,把这些步骤全部用代码编排好,然后执行一个命令行,让电脑反复执行去。没有流程管理的项目不是一个好项目

JavaScript有grunt和gulp,PHP有Phing,Java有ANT。我用grunt比较多。

6. Live Reload

Live Reload一般是和流程管理一起使用的,(也有独立使用的版本)。独立出来说也是为了体现程序员一个终极特质:懒。凡是重复的,必须使用工具完成。Live Reload就是这个体现:按F5是个重复的低效率行为,必须交给工具完成

Live Reload的功能说起来很简单:

  • 检查文件是否变动

  • 如果变动刷新页面

给开发人员带来的直接好处就是查看页面变动,只要按ctrl+s保持代码就行了,连f5都不用按了。就这好处,足以把Live Reload这个工具当作神器了。配合流程管理工具,只要保存代码(ctrl+s),就马上进行构建,构建完成自动刷新页面。

我用的Live Reload是grunt-contrib-watch。

7.代码质量分析工具

人工检查代码的效率是比较低下的,所以质量分析这一块可以作为开发辅助工具,来提高开发质量

常见的代码质量工具有:

  • 语法检查,保证代码语法正确,可以跨平台,使用最佳实践

  • 代码风格检查,保证团队代码风格一致

  • 代码压缩,减少尺寸

  • 重复代码检查

  • 无用代码检查

  • 模块复杂度分析

  • 模块连接分析

等等,让然还有其他的质量分析,这些都是可以整合到流程管理上的。

JavaScript和PHP的用的比较多,Jshint,Jscs,uglifyjs,phpcpd,phpcs,phpdcd,PHPLOC等等工具,可以帮助开发人员提高代码质量,控制团队代码风格。

8.持续集成

有人和我说过,持续集成可以让你开发水平提高达到到另外一个层级。当我实践后,终于明白持续集成的魅力所在了。

要会持续集成,你首先必须学会以上6条(live reload除外),以上6条基本就是持续集成的几个基础模块,学会后,你自然而然就已经会了持续集成了。

持续集成的主要流程如下

  • 检查版本控制库是否更新

  • 如果更新,就下载最新版本的代码

  • 构建

  • 测试

  • 报告

当你设置好一个持续集成的项目后,以上的步骤应该就是全自动的了。还是那句老话: 凡是重复的步骤,应该用工具来完成。而持续集成就是这个终极工具。

持续集成其实就是流程管理的一个升级版本,或者说一个扩充。它们都是自动流程工具。它们的差别是:

  • 流程管理主要在本机(开发人员自己的开发环境)上执行,而持续集成则是在一个独立设置的环境下执行。

  • 流程管理继续的是本机代码,而持续集成构建的是版本控制中保存的代码

  • 团队中任何一个人push代码到版本控制中,持续集成就开始构建验证新代码的可靠性。

  • 项目流程配置完成后,流程管理需要执行命令行,持续集成应该全自动

  • 流程管理是持续集成的一个模块,属于持续集成的构建模块

  • 持续集成会有更多后续的专业功能,比如说产生报告,错误通知,构建历史,测试历史等开发新型

我们可以设想一下这样的一个情况,在有20-50个人的团队在开发一个PHP项目,每个人每天至少往版本控制中push大约10次新代码,而这个项目你又要保证在3个主流的浏览器中功能一致,样式相同,而这个项目又必须跨平台,可以在mac,window,linux上都可以运行,而且还要保证PHP5.4~5.6都可以运行。这个时候,持续集成系统的优势就会显示其真正的威力了。

总之,在一个专业项目中,持续集成服务所提供的自动构建和专业报告,可以把项目开发的专业水准再次提高到一个新的层次当中。

我用过的持续集成是Jenkins。

文章到此算完结了。其实开发中,还有很多优秀的工具,但无法和这些主要的开发工具相比,就不在这里说了。



IT职业就是传统的IT行业的工作职位,主要是计算机类的男性比较多在从事。这个行业的发展前景永无止境。对于系统运维来说,这是熊熊最熟悉的职业了,但是也是熊熊最深恶痛绝的一个职业之一。


行业发展

至于IT发展方向,我本不想多说,每个人的想法不一样,但是我还是希望唠叨几句,算是个建议吧,首先,大家可以去各大招聘网站浏览,热门的职位,如项目经理、技术总监甚至CTO等,还是以软件开发为主,毕竟,我们要考虑一个公司的组成架构(不考虑人力行政及财务后勤等职能部门),对于一个大型互联网企业来说,拳头部门是他的产品与研发部门,这两个部门支撑着整个网站乃至整个公司的核心,没有产品没有平台谈其他的都没有任何意义。

自动化测试工具

自动化测试的一个很重要的目的就是提高测试效率,并且快速的反馈质量。但是各个领域的自动化还是有一些区别的,比如:web自动化和手机软件自动化。而对于自动化来说,首先还是要去学习自动化的框架(这里跟一些朋友理解的自动化主要就是去写代码还是有一定区别的),好的框架能够让你事半功倍。而对于自动化人员来说,学习自动化框架对于自己后面的自动化开发工作是很有帮助的。

性能测试工具

要做好性能测试,一个最重要的前提就是需要了解被测试产品的系统架构,掌握整个系统的数据流向和交互;这样你才能够分析出系统的压力点,从而制定性能测试计划,否则你再牛逼的性能测试工具都可能达不到测试目的。这写都能够大大提升工作效率。



如果想提高工作效率的话,建议可使用一些办公类的便签软件,以此来规划每日的工作内容,以便提高工作效率。

  1. 敬业签可记录每日工作待办事项,针对记录的工作待办事项可设置时间提醒;

  2. 每一项工作任务的提醒支持单次定时提醒、周期循环提醒、重要事项间隔时间提醒和到期延时提醒;

  3. 可以在规定的时间内提醒自己什么时间该做哪些事情了,大大提高工作效率。



Mac 上有哪些鲜为人知但极大提高工作效率的工具~

一、Noizio - 自然而然的白噪声,专注工作

Noizio是一款OS X 下的白噪音应用,可以让自己觉着是坐在一个壁炉前、咖啡馆里、森林里,海边,有 10种模拟音效,可以让你忽略其他噪音,专注工作。这是一种自然而然的感觉,不需要刻意去倾听,一种背景音。Noizio 支持优山美地、支持
Retina,可以随机启动,总之很棒呆。


Noizio for Mac (环境声模拟) V1.5 破解版
Noizio for Mac (环境声模拟)是一款为Mac OS平台上模拟身边噪音的工具,Noizio for Mac (环境声模拟)可以模拟你在咖啡厅内的环境噪音
二、Recordit - 两次点击即可轻松做出GIF

Recordit 是一款 Windows、OS X 平台下的屏幕录制工具,非常易用并且可以导出为 GIF 动画。一共就一个按钮,开始/结束即完成录屏。视频会自动上传到Recordit网站并得到一个url,你可以直接分享这个 url 或者打开后下载 GIF 再分享,支持直接分享到 Twitter。


Recordit for Mac(屏幕录屏工具) v1.6.10免费版
Recordit for Mac(屏幕录屏工具)是未来软件园收集的一款Mac平台上的屏幕录制工具。Recordit免费版不同于其他录屏软件操作那么繁琐,因为它一共就一个按钮,开始或者结束即可完成录屏。Recordit还有一个特色就是录屏结束后可立即专为GIF,然后支持分享。
三、Cmd Markdown - 简洁易用的Markdown编辑阅读工具

Cmd Markdown(作业部落)是一款Markdown编辑阅读工具,拥有 Windows、OS X、Linux 以及网页版,除了以 Markdown 格式进行编辑、阅读外,还支持文档管理、代码支持以及针对学术论文的 LaTeX 公式支持。界面简洁,让你专心沉浸在码字/写作中。


Cmd Markdown(编辑阅读器) V2.0破解版
我们理解您需要更便捷更高效的工具记录思想,整理笔记、知识,并将其中承载的价值传播给他人,Cmd Markdown 是我们给出的答案 —— 我们为记录思想和分享知识提供更专业的工具。 您可以使用 Cmd Markdown。

四、Snappy - 快速截屏并将截图钉在桌面

Snappy是一个快速方便的截屏,分享工具。使用Snappy截屏后,图片会自动保持顶端停在桌面上。你可以移动图片,或者再次截屏,每次截下来的图片都会保持在桌面最上方。然后,你可以右键点击你要的图片,选择拷贝、保存、分享(email,facebook,pinterest)或删除。Snappy免去了参考资料时,不同窗口之间频繁切换的烦恼。

Snappy for Mac(快速截屏) v1.4.7破解版
Snappy for Mac(快速截屏)是一款极度快速方便的截屏软件。Snappy for Mac破解版又不仅仅是一个截屏软件,而且可以快速的分享出去。Snappy的特色在于截屏之后图片会自动停留在桌面上。
五、Snap - 给Dock上的程序添加快捷键

Snap 可以给这些Dock 上的程序添加快捷方式,默认从左向右依次排序,第一个程序 Command+1,第二个程序 Command+2 (Finder 与 Trash默认跳过不排序)。添加或修改 Dock 程序,Snap 会自动重排。第二次按下快捷键则是最小化。如果你不满意 Snap 默认的1234,还可以自定义全局快捷键。按照自己的习惯排列Dock后,用键盘就能控制程序打开/最小化。


Snap(快速启动应用程序) v1.5破解版
Snap(快速启动应用程序)是由未来软件园收集的Indragie Karunaratne开发的Mac平台上一款快速启动应用程序的软件。Snap大大提高了你的应用程序打开的效率。
六、flux for mac - 改变屏幕色温

flux for mac是由未来软件园收集的一款屏幕色温调节软件。flux for mac是一款根据时间变化来改变屏幕色温的软件。让你在深夜也能感受到太阳的温暖,顺便还有助于睡眠,flux for mac要是根据日出及日落的时间来调节色温的。


flux for mac(屏幕色温调节工具) v39.94破解版
flux for mac是由未来软件园收集的一款屏幕色温调节软件。flux for mac是一款根据时间变化来改变屏幕色温的软件。让你在深夜也能感受到太阳的温暖,顺便还有助于睡眠,flux for mac要是根据日出及日落的时间来调节色温的。
七、App Pier - 应用程序切换软件

App Pier(应用程序切换软件)是一款专为mac电脑开发应用程序切换软件,在App Pier mac版中用户可以通过MacBook pro touchbar来快速的切换程序,操作体验十分的简单,感兴趣的小伙伴不妨下载App Pier mac版探索体验一番!

用一些IT运维管理软件,比如流程管理软件,监控软件。每发生一个事件就创建一个工单,创建工单后就开始计时,运维人员必须在规定事件内完成,如果没能完成,就会在后续的统计分析中显示出来,影响当月或者当年度的绩效考核。当然,这需要一个统一的服务台进行调度,对每个工程师的特长,还有是否有空闲都清楚。云雀运维就是这样的,通过这个平台可以监控大部分的设备节点,当发生故障的时候,会自动的向工程师的手机发短信和微信,工程师只有接收并创建工单后才能停止,创建工单后就会显示时间,所以工程师必须尽力解决,这样就大大提高了工作效率。