本节将要介绍的多种实用工具,就能够帮咱们全方位武装成“懒惰”的程序员,例如可帮咱们提高工做效率的硬件、操做系统和软件。php
能够帮咱们提高工做效率的硬件这里盘点一下那些能够提高程序员工做效率的硬件设备。html
1.显示器java
笔记本电脑基本上是程序员开发的标配,那么要不要给本身再多配置一台显示器呢?配置一台多大的显示器呢?程序员
在 StackOverflow2018 开发者调查报告中显示,有 51.1%的开发者使用两个显示器,有17%的开发者使用三个以上显示器。正则表达式
美国犹他州立大学的研究人员也测试了工做效率与不一样电脑配置的 关 联 性 。他 们 让 受 访 者 完 成 同 样 的 工 做 , 测 试 结 果 如 下(http://dwz.cn/Kf579):算法
◎ 使用24寸显示器工做的人比使用18寸显示器工做的人在工做效率上要高52%;sql
◎ 使用两个 20 寸显示器工做的人比使用单个 18 寸显示器工做的人在工做效率上要高44%;数据库
◎ 当显示器达到26寸时,受访者的工做效率开始降低。编程
因此,咱们基本能够得出结论:额外配置一台24寸左右的显示器能够提高工做效率。由于做为程序员,咱们可能要同时和 IDE、Linux命令行及浏览器等打交道,有多台显示器能够帮咱们减小切换时间。json
2.外设
键盘和鼠标等外设对于程序员来讲,其重要性不言而喻。在
StackOverflow2018 开发者调查报告中显示,有超过52%的开发者认为
人体工程学键盘和鼠标可使本身在繁忙的工做中感到一点点温馨
感。
关于键盘和鼠标,笔者认为,一个好的机械键盘或电容键盘加一个比较灵敏的无线鼠标,不只能够令一个程序员的工做效率获得很大提高,还能够在必定程度上起到愉悦心情的做用,尤为是经过调试解决一个Bug后,最后敲击键盘的那一刻。
能够帮咱们提高工做效率的操做系统目前,主流的操做系统共有三种:Linux、Windows及Mac OS。关于操做系统的使用及选择,StackOverflow 在 2018 年也作过相似调查(DeveloperSurveyResults2018,https://insights.stackoverflow.com/survey/2018),
结果显示:
主要使用Windows操做系统的开发者占了49.9%,主要使用Mac OS操做系统的开发者占了 26.7%,主要使用 Linux操做系统的开发者占了23.2%。从数字上来看,虽然使用Windows操做系统的开发者占了一半左右,但另外一项关于程序员最想使用的系统平台的调查结果显示,有76.5%的开发者指望使用Linux操做系统,有63.9%的开发者喜欢而且指望使用Mac OS操做系统,有61.2%的开发者指望使用Windows操做系统。
对于以上三种操做系统,笔者在本身的开发生涯中均使用过,目前使用Mac OS做为主要的操做系统进行开发。因为开发者开发出来的应用基本都部署在Linux服务器上,并且 Linux 操做系统提供了不少Shell 命令,能够快速地进行构建、编译、执行、排查问题等,因此在平常的纯代码开发、交付及运维方面能够大大提高效率。可是,程序员又没法避免地要和各类软件打交道,好比开发工具、浏览器、画图工具等,这时提供图形界面的Windows操做系统就能够很好地支持这些图形化软件了。Mac OS做为一款基于UNIX的图形化操做系统,就兼容了Linux和Windows操做系统的优势,既能够运行Shell命令,又能够进行图形化操做,固然,Mac OS操做系统也有一些缺点,好比支持的软件不够多、价格昂贵等。
笔者以为,程序员选择操做系统的优先级顺序应该是Mac OS、Linux、Windows。
能够帮咱们提高工做效率的软件这里再介绍一些能够帮助开发者提高工做效率的软件,主要包括开发工具、版本控制工具、自动化构建工具和画图工具等。
1.开发工具对于开发者,
尤为是Java开发者来讲,使用开发工具编写代码真的能够大大提高工做效率,由于如今不少IDE都有很强大的工具,不只提供了代码补全、错误提示、自动编译等功能,还提供了各类插件,方便和其余工具融合,能大大提高写代码的效率及代码质量。
目前市面上主要有两款Java代码开发工具:Eclipse和IntelliJIDEA,这两款开发工具之争由来已久,不过最近几年,IntelliJ IDEA逐渐撼动了Eclipse的霸主地位,成为开发者的首选开发工具。在2013年的Google I/O大会上,Google推出了新的Android集成IDE“AndroidStudio”,其最大的转变就是从Eclipse切换到了IntelliJ IDEA。
笔者也经历过从Eclipes转向IntelliJ IDEA的过程,相比之下,Intellij IDEA在某些方面确实比Eclipse更加出色一些,配合Mac OS操做系统上的快捷键,真的能够在开发效率上提高一大截。
关于开发者使用的 IDE,Jet Brains 作过一项调查,结果显示:有 59%的开发者使用IntelliJ,有30%的开发者使用Eclipse,只有不到5%的开发者使用Sublime和Vim等普通文本编辑器。
2.版本控制工具
程序员在协做开发时不可避免地要使用版本控制工具对代码进行管理,版本控制工具主要用于存储和追踪被管理的文件的修改历史,是软件开发者的必备工具。
目 前 市 面 上 比 较 成 熟 的 版 本 控 制 工 具 有 CVS 、 VisualSourceSafe、PVCS、Subversion (SVN)和Git等,SVN和Git的使用较为普遍。
不管是SVN仍是Git,都提供了很好的版本控制功能,例如对代码的统一管理、冲突解决、代码权限控制、分支开发和合并等。笔者认为,开发者应该熟练掌握SVN和Git,好比代码拉取、代码提交、代码合并和冲突解决等,尤为要掌握一些 Shell 命令,这能够节省大量的时间。虽然目前有不少开源代码及不少公司的内部代码都倾向于使用Git进行代码托管,但咱们不能保证所遇到的全部代码都使用了Git。公司规模越大,使用SVN进行代码托管的可能性便越大,毕竟迁移也是须要必定成本的。
3.自动化构建工具
自动化构建指自动建立软件组建的一组进程,包括将计算机源代码编译成二进制码、将二进制码包装成软件包并对其进行自动化测试。很早之前的自动化构建都是经过建立Make 来完成的,后来发展为GNU Make。随着时间的推移,现在的软件开发主要使用更优秀的自动化构建工具来完成,例如Java世界中的三大构建工具Ant、Maven和Gradle,现在,Ant几乎要退出历史的舞台了。
Maven和Gradle之因此可以赢得众多程序员的青睐,主要是由于它们在依赖管理、冲突解决、项目构建、项目结构管理和插件机制等方面的出色表现。
4.画图工具
所谓一图胜千言,不管是本身梳理思路,仍是给别人讲解,图案都是很好的形式。并且,程序员还常常要作一些PPT等,有了这些画图工具,就能大显身手。
1)思惟导图——XMind
人类大脑的最天然思考方式是放射性思考,也就是咱们常说的发散性思惟。咱们一般在思考一个问题的时候,都是以一个思惟点为起点,而后不断进行发散式展开的。若是咱们将这个思考过程经过图形化的方式表达出来,就是一张思惟导图。思惟导图能够有效地把思惟模式表现出来,有利于人脑的扩散思惟的展开。如图1.12所示是一张关于“提高工做效率的软件”的思惟导图。
图1.12
XMind 是一款很是实用的商业思惟导图软件,采用 Java 语言开发而成,具有跨平台运行的性质,且基于EclipseRCP体系结构,支持插件经过编写XML清单文件扩展系统定义好的扩展点,帮助用户在真正意义上提升生产效率,被著名的互联网媒体Lifehacker评选为“最佳头脑风暴和思惟导图工具”及“最受欢迎的思惟导图软件”。
XMind 的程序主体由一组插件构成,包括一个核心主程序插件、一组 Eclipse 运行时插件、一个帮助文档插件和一组多语种资源文件插件,对Eclipse用户很是友好。
XMind不只能够绘制思惟导图,还能够绘制鱼骨图、二维图、树形图、逻辑图和组织结构图(Org、Tree、Logic Chart、Fishbone),而且能够方便地在这些展现形式之间进行转换。用户能够导入MindManager、FreeMind数据文件,灵活定制节点外观、插入图标、丰富的样式和主题。其输出格式有HTML和图片。
2)UML画图工具
UML(Unified Model Language)即统一建模语言,又被称为标准建模语言,是用来对软件密集系统进行可视化建模的一种语言。开发人员在作详细设计时,免不了要和各类UML图打交道,例如用例图、类图、对象图、时序图、活动图和状态图等。
简单来讲,开发人员在写代码以前就须要了解需求,在这以后要对软件系统进行建模,将抽象的语言描述转换成可视化的模型。而在建模过程当中须要一种标准的语言,这种语言就是UML。
目前市面上有不少 UML画图工具可供选择,它们均能知足基本的画图功能,下面简单列举几种。
◎ Rational Rose:是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具,主要用于可视化建模。
◎ Visual Paradigm for UML(VP-UML):是一种功能强大、跨平台、使用便捷、直观的 UML建模和 CASE工具,它能够被整合在其余CASE工具或者其余 IDE工具中。Visual Paradigm for UML支持UML建模、数据库建模、对象关系映射、逆向工程和Java双向工程等,功能异常强大。
◎ StarUML(SU):是一款开源的UML开发工具,支持绘制用例图、类图、序列图、状态图等9种经常使用的UML图,具备发展快、灵活、可扩展性强等优势,惟一的不足之处是在反向工程时只能生成类图,不能生成类之间的关系。
5.Markdown编辑器
Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(JohnGruber),容许人们使用易读易写的纯文本格式编写文档,而后将文本格式转换成有效的 XHTML (或者HTML)文档。
做为程序员,咱们除了要具有编程的硬技能,还要具有写做的软件,而首选的写做方式就是 Markdown。目前,不少大型博客网站都开始支持使用 Markdown 写文章,这无疑是对程序员的一种示好行为,著名的代码托管网站 GitHub 也支持使用 Markdown 语法来编辑README文件等,如图1.13所示。
图1.13
关于Markdown的编辑器,目前市面上也有不少选择,主要有Mou、MacDown、Typed和Bear等,还有不少在线的Markdown编辑器,在后面的在线工具章节中会详细介绍。
还须要说起的一点是,其实使用哪一种Markdown编辑器并不很重要,重要的是程序员应该掌握经常使用的Markdown语法。这样写出来的文章或者文档,能够在任意支持MD语法的平台上查看。
6.文本编辑器
前面介绍过Java开发经常使用的IDE,可是在某些状况下咱们仅须要打开一个单独的文本文件,好比打开一个 XML格式的文件、一个 JSON格式的文件等,这时一款好用的文本编辑器就派上用场了。
Sublime Text是一款流行的代码编辑器软件,可运行在Linux、Windows和Mac OS X等操做系统之上,是许多程序员喜欢使用的一款文本编辑器软件。它具备代码高亮、语法提示、自动完成且反映快速的编辑器软件,不只界面华丽,还支持插件扩展机制,如图1.14所示。
图1.14
Atom是GitHub专门为程序员推出的跨平台的文本编辑器,由于有简洁、直观的图形界面而受到了广大程序员的青睐,并且它有不少有趣的特色:支持CSS、HTML、JavaScript等网页编程语言;支持宏,自动完成分屏功能,集成了文件管理器;支持Mac OS、Windows和Linux操做系统,支持Node.js所写的插件,并内置由GitHub提供的Git版本控制系统。多数的延伸包皆为开放源代码受权,并由社区建置与维护。
Notepad++也是一套被广大程序员选用的纯文本编辑器,基于一样开放源码的Scintilla文本编辑组件研发而成,整个项目起初被托管于SourceForge.net,曾经两度得到SourceForge社区选择奖——最佳开发工具。Notepad++在2010年6月被托管于TuxFamily,现被托管于GitHub。
7.其余软件
除了以上介绍的一些必备软件,还有些经常使用工具也是程序员在平常工做中必不可少的,例如Host绑定、HTTP调试等。
1)Host绑定
在平常开发工做中,咱们对 Host 绑定确定不陌生,由于咱们几乎天天都要和它打交道。咱们可能常常要在不一样的Host绑定之间来回切换,尤为是在Java Web开发中,在本地开发测试时可能使用的是一套 Host 绑定,在测试环境部署以后提交给测试人员进行测试时又要使用另外一套 Host 绑定。在测试以后,要经历预发布、灰度发布等,都须要一套新的Host绑定。采用好用的Host绑定工具能够大大节省Host绑定切换的时间。
SwitchHosts是一个很是方便、快捷的Host绑定切换工具,免费、开源,支持预发高亮、方案多选、单击行号快速切换注释、系统菜单栏快捷切换、方案导入导出等功能,如图1.15所示。
图1.15
2)HTTP调试
在平常的Web开发中,咱们除了会和Host绑定打交道,还常常会和RESTful API打交道,有时咱们须要一个工具来帮咱们发送HTTP请求,或者说是模拟HTTP请求,好比帮咱们发送POST请求等,这时就须要一款能够模拟发送HTTP请求的工具。
Postman是Google开发的一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的Chrome插件。除插件外,也提供软件下载。它能够模拟各类HTTP请求,从经常使用的GET、POST到RESTful的PUT、DELETE等,甚至能够发送文件及额外的Header等。Postman 能够将Response内容的格式自动美化,将 JSON、XML或者 HTML都整理成咱们能够阅读的格式。Postman 还支持编写测试脚本,能够快速检查Request 结果,并返回测试结果。总之,Postman是一款很是不错的能够用来作HTTP调试的软件。
在线工具前面介绍了不少经常使用软件,接下来介绍一些在线工具,咱们无须安装这些在线工具,能够在浏览器上直接使用,很是便捷。
1.搜索类在线工具
本节讲解几种搜索类在线工具。Grepcode(http://grepcode.com/)是一个面向于 Java 开发人员的网站,在这里你能够经过Java的projects、classes等关键字在线查看对应的源码。经过Grepcode,还能够在线查看不少不一样版本的源码,并下载相关的 jar 包、源码 jar 包和 Doc 文件。一样,咱们可使用xxx-1.1.1.jar相似的名字直接找到对应的jar包并下载。
SearchCode(https://searchcode.com/)是一个源码搜索引擎,目前支持从 GitHub、Bitbucket、Google Code、CodePlex、SourceForge和Fedora Project平台搜索公开的源码,如图1.16所示。
图1.16
对于 mvnrepository(http://mvnrepository.com)就不详细解释了,它用于查询 Maven的gav(groupId、artifactId、version)等信息,如图1.17所示。
图1.17
2.生成类在线工具
下面讲解各类生成类在线工具。1)用SQL自动生成Java代码AutoJCode(http://www.autojcode.com/code/sql2class.jsp)能够从SQL的建表语句中生成一个DO类。不少时候,咱们在有了数据库的建表语句以后,会但愿快速生成与之相对应的POJO,这时这种自动生成工具就派上用场了。
2)用JSON生成Java类
JSON是目前Java Web中数据传输的主要格式,咱们在不少时候都会有将JSON转成Java对象的需求。有时合做方会提供一个JSON样例,需 要 我 们 自 定 义 Java 类 , 这 时 这 个 工 具 就 派 上 用 场 了 。
BeJSON(http://www.bejson.com/json2javapojo)就是一款比较好用的工具。
3)Corn表达式的生成
Cron通常用于配置定时任务的执行,可是要想一次性地把一个Corn表达式配置好,确实很难,须要咱们记住其语法。有一些在线工具能够提供图形化的界面,只要输入想要定时执行的周期等,就能够自 动 生 成 Corn 表 达 式 。推 荐 使 用 pdtools 提 供 的 becorn(http://www.pdtools.net/tools/becorn.jsp)。
4)正则代码的生成
正则表达式,又叫做规则表达式,是计算机科学中的一个概念,一般被用于检索、替换那些符合某个模式(规则)的文本。在使用正则表达式进行字符串过滤时,须要用事先定义好的一些特定字符及这些特定字符的组合,组成一个规则字符串,这个规则字符串用于表达对字符串的一种过滤逻辑。这个规则字符串的定义一般是比较麻烦和复杂的,也须要通过大量的测试和验证才能被采用。某些网站(如http://tool.chinaz.com/tools/regexgenerate)提供了正则表达式的生成工具,能够一键生成身份证号、邮箱、手机号等经常使用的正则表达式。
3.转换类在线工具
下面讲解一些转换类在线工具。
1)编码转换
编码问题一直困扰着开发人员,尤为在Java中更加明显,由于Java是跨平台的语言,在不一样的平台之间及编码之间的切换较多。在计算机中提供了多种编码方式,常见的有ASCII、ISO-8859-一、GB23十二、GBK、UTF-八、UTF-16等。有些时候,开发人员须要经过编码转换的方式来查看不一样编码下的文件内容。“站长工具”的编码转换(http://tool.chinaz.com/tools/unicode.aspx)功能比较全面,提供了Unicode编码、UFT8编码、URL编码及解码等功能。
2)时间戳转换
时间戳(英语:Timestamp)是指在一连串的资料中加入辨识文字,如时间或日期,用于保障本地端(local)资料的更新顺序与远端(remote)一致。
在 Java 中有不少地方都会用到时间戳,也常常会使用这种转换工具(http://tool.chinaz.com/Tools/unixtime.aspx)。
3)世界时间转换
世界时间转换,比较常见的是将北京时间转换成纽约时间、将纽约时间转换成洛杉矶时间等。Timebie(http://www.timebie.com/cn/easternbeijing.php)便提供了世界时间相互转换的功能。
4)加密、解密加密、解密也是在 Java Web 中常常遇到的,有时咱们须要验证加密算法是否正确,或者须要解密等,就须要一款在线工具(参见http ://tool.chinaz.com/tools/textencrypt.aspx ) 来 快 速 验 证了。
5)单位换算
Convertworld(https://www.convertworld.com/zh-hans/)是一个比较全的单位换算的网站。笔者常常用它进行时间单位和货币单位的换算。
4.检查类在线工具
下面讲解一些检查类在线工具。
1)JSON在线验证及格式化
JSON 是一种由道格拉斯·克罗克福特构想和设计的轻量级的数据交换语言,该语言以容易让人阅读的文字为基础,传输由属性值或者序列性的值组成的数据对象。目前有不少编程语言都支持JSON格式数据的生成和解析。
在不少Web应用中都会使用JSON进行数据传输,因此,咱们在开发过程当中会常常接触JSON格式的文本,有时咱们不肯定这个文本是否彻底符合JSON格式,或者想更清晰地查看这个JSON文本的格式关系,这就须要一款工具进行JSON格式的验证和格式化。
笔 者 用 过 很 多 JSON 在 线 格 式 化 工 具 , 经 过 实 践 发 现 ,Json.cn(https://www.json.cn/)比较不错,不只支持JSON格式的验证及格式化,还能够将JSON格式压缩成普通文本等,如图1.18所示。
图1.18
2)Diff Check
使用过SVN或者Git的人对Diff Check确定不陌生,但有时候咱们修改的文本内容并无被版本控制工具管理起来,那么可使用在线的网站查看文件的修改状况,好比Diffchecker(https://www.diffchecker.com/),如图1.19所示。
图1.19
3)正则验证
Java 开发人员对正则表达式确定不陌生。“站长工具”提供的正则验证(http://tool.chinaz.com/regex)就比较不错。
5.对照类在线工具
对照类在线工具以下。
◎ ASCII 对 照 表 :http ://tool.oschina.net/commons ?type=4。
◎ HTTP状态码:http://tool.oschina.net/commons?type=5。
◎ HTTP Content-type:http://tool.oschina.net/commons.
◎TCP/UDP常见端口参考:http://tool.oschina.net/commons?type=7。◎ HTML 转 义 字 符 :http ://tool.oschina.net/commons ?type=2。
◎ RGB 颜 色 参 考 :http ://tool.oschina.net/commons ?type=3。
◎ 网 页 字 体 参 考 :http ://tool.oschina.net/commons ?type=8。
6.其余类型的在线工具
下面讲解其余类型的一些在线工具。
1)在线UML制图
ProcessOn(https://www.processon.com/)是一个在线协做绘图平台,为用户提供了很是强大、易用的做图工具,支持在线创做流程图、BPMN、UML 图、UI 界面原型设计、iOS界面原型设计等。
2)在线代码运行
coderunner(https://tool.lu/coderunner/)能够在线运行PHP、C、C++、Go、Python、Java、Groovy等代码,在咱们手头没有IDE又想执行一个小程序时是个不错的选择。
IT技术分享社区
我的博客网站:https://programmerblog.xyz
文章推荐程序员效率:画流程图经常使用的工具程序员效率:整理经常使用的在线笔记软件远程办公:经常使用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识