1、常用开发工具
作为一名java程序开发人员,可以的选择集成开发环境ide(integrated development environment)非常多,得益于java是一门开源语言。有开源免费的;有商用收费的。如何选择一款适合自己的集成开发环境,亦或说选择一款符合自己项目开发需要的集成开发环境。如果选择得当,那么就能够使得开发工作事半功倍;否则事倍而功半。
eclipse最初是由ibm公司开发的替代商业软件visual age for java的下一代ide开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟eclipse基金会(eclipse foundation)管理。eclipse 是一个开放源代码的、基于 java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是eclipse 附带了一个标准的插件集,包括 java 开发工具(java development tools,jdt)。
eclipse是著名的跨平台的自由集成开发环境(ide)。最初主要用来java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如c 、php、python等语言的开发工具。eclipse的本身只是一个框架平台,但是众多插件的支持使得eclipse拥有其他功能相对固定的ide软件很难具有的灵活性。许多软件开发商以eclipse为框架开发自己的ide。
商用收费myeclipse(,)
myeclipse是eclipse的插件,也是一款功能强大的j2ee集成开发环境,由genuitec公司发布,它是商用收费的。
myeclipse 是对eclipse ide的扩展,利用它可以在数据库和javaee的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的javaee集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持html、struts、jsp、css、javascript、sql,hibernate,spring。
netbeans是sun公司(2009年被甲骨文收购)在2000年创立的开放源代码供开发人员和客户社区的家园,旨在构建世界级的java ide。
netbeans当前可以在solaris、windows、linux和macintosh os x平台上进行开发,并在spl(sun公用许可)范围内使用,是一个屡获殊荣的集成开发环境。netbeans包括开源的开发环境和应用平台,netbeans ide可以使开发人员利用java平台能够快速创建web、企业、桌面以及移动的应用程序,netbeans ide目前支持php、ruby、javascript、ajax、groovy、grails和c /c 等开发语言。
netbeans项目由一个活跃的开发社区提供支持, netbean开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件。
intellij idea是一款综合的java 编程环境,被许多开发人员和行业专家誉为市场上最好的ide。它提供了一系列最实用的的工具组合:智能编码辅助和自动控制,支持j2ee,ant,junit,svn和git集成,非平行的编码检查和创新的gui设计器。idea把java开发人员从一些耗时的常规工作中解放出来,显著地提高了开发效率。具有运行更快速,生成更好的代码;持续的重新设计和日常编码变得更加简易,与其它工具的完美集成;很高的性价比等特点。intellij idea以前是收费软件,不过在2009年以后就开始推出了免费的社区开源版本。不过商用还是需要收费的。
eclipse、myeclipse、netbeans和intellij idea的特点和适用场景:
eclipse、myeclipse、netbeans和intellij idea这四个ide有着不同的特性和优点,根据开发的不同可能需要选择不同的ide。在java开发的每个方面,这四个ide都能胜任工作,然而根据你所做的不同开发例如swing开发,web开发或者企业开发,选择ide就有所偏向。
- swing开发:
如果你专门从事swing开发,netbeans无疑是最好的选择,如果你没有选择netbeans而是选择了eclipse,建议使用myeclipse 和它的matisse4eclipse构造器。idea由于对jgoodies forms的支持,所以在开发swing方面与前两者相比并不占有优势。
- jsp/struts开发:
开发jsp/struts首选的是idea,接下来是myeclipse,然后是netbeans,由于缺少对内建struts的支持,eclipse的基本版本没有竞争优势。
- jsf开发:
在开发jsf方面,这三个ide可以说都是很好的选择,但是idea可能会更好一点,接下来是eclipse/myeclipse,最后是netbeans。
- 企业开发:
由于netbeans对jpa的支持和它产生代码的质量以及对持久化单元合适的设置,所以在企业开发方面,netbeans是首选,接下来是idea,由于eclipse的dali项目的限制,eclipse可能是最后选择的。如果放弃标准的jpa,从事hibernate开发,myeclipse是最好的选择。
除了上面提到的这四款由大公司开发的ide外,java开发的ide还有很多,例如spring基于eclipse推出的sts()、小而且快,但是以上最常用的eclipse和intellij idea。国内java开发人员使用的最多也是eclipse和intellij idea。笔者用的最多是eclipse及spring基于eclipse推出的sts。如果在使用中遇到什么可以无时无刻咨询。
2、常用接口测试工具
作为一名开发人员,完成开发工作后,单元测试及接口测试必不可少。单元测试不用说了,java人员几乎都是使用junit及junit相关的测试框架。对于接口测试呢?有什么工具可以使用呢?在说工具之前先来了解两个问题。
什么是接口测试?
用来检查各个组件的接口的测试,接口测试主要检查外部系统与系统之间以及各个子系统之间的交互点,测试的重点在数据的传递上。
为什么要做接口测试?
如果项目全部推行单元测试,时间上不允许,而接口测试是一种特殊的单元测试,覆盖率没有做到所谓的单元测试的百分之百,不过覆盖了所有的面像用户的功能点,而且接口测试可以采用自动化 持续集成的方式,节约时间了成本,同时提高了效率。
java第三方包httpclient
如果使用httpclient进行接口测试,免不了开发人员还需要自己动手去编写代码,这个不是首选方案。笔者也不推荐这个方案,增加了程序人员的工作强度。
postman是一款功能非常棒的chrome扩展,提供功能强大的api&http请求调试。它可以发送几乎所有类型的http请求,并可以附带任何数量的参数和请求头(headers)。可以说postman满足了http接口测试的大部分功能,只有少部分的功能不被支持,比如:请求流程的控制;使得程序员可以在编写一些单元测试中解脱出来。
postman特点:
- 支持用例管理
- 支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能
- 支持批量运行
- 支持用例导出、导入
- 支持云端保存用例【付费用户】
apache jmeter是apache组织开发的压力测试工具,也是目前应用最广泛的开源性能测试工具之一。它最初被设计用于web应用测试,后来扩展到其他测试领域。像其他性能测试工具一样,jmeter可以用于对服务器、网络或对象模拟巨大的负载,来测试不同压力类别下应用系统的强度,分析应用系统的整体性能。jmeter由100% java开发,开源,具备完全的可移植性;采用swing界面和轻量组件支持包;支持插件扩展,可以通过扩展插件支持新的协议,监控系统资源,展示更丰富的性能图表等。企业能够在jmeter的基础上实现二次开发,扩展jmeter的功能为己所用。不过要记住jmeter由java开发,安装jmeter之前需要先安装jdk。jmeter功能非常强大是笔者最喜欢的接口测试工具,没有之一。
postman和jmeter特点:
(1)测试用例组织形式
jmeter和postman的测试用例组织形式都比较扁平,jmeter通过测试计划(testplan)来组织测试用例;postman主要通过集合(collection)来组织测试用例。
(2)支持的接口类型与测试类型
从功能上jmeter最为强大,可以测试各种类型的接口(包括http、数据库、webservice、ftp等),不支持的也可以通过网上或自己编写的插件进行扩展;postman是轻量级的,定位也不同,可用来测试http接口和rest接口。
(3)流程控制
jmeter支持switch控制器、if控制器、随机控制器等一系列控制器实现流程控制,以及beanshell脚本;postman则需要通过javascript脚本控制
(4)断言
jmeter中的testplan、threads group和sampler均可添加断言;postman的http请求的tests中可添加断言。
(5)脚本扩展能力
jmeter支持用java语言编写的bean shell;postman支持使用javascript语言编写的脚本
(6)团队协作
jmeter的一个testplan就是一个jmx(xml)文件,无法分割,但是jmeter有一个合并的功能,允许将多个文件合并在一起。只能每个团队成员自己建立一个testplan,分功能块进行测试,最后整理合并;postman虽然有团队协作的功能,但是需要付费。
jmeter和postman都还支持数据参数化、自定义变量、显示日志等功能。其中重点要说的是jmeter还可以在无界面的linux环境进行压力测试、性能测试;以便分析系统的瓶颈;jmeter的功能覆盖了postman的所有功能,所以强烈推荐使用jmeter。
3、常用远程连接工具
做开发是国内程序员大部分都是在windows环境开发,但是开发完毕后,免不了需要部署到服务器(liunx);特别是java开发的程序,几乎都是部署在unix或者linux系统,而unix和liunx系统是无界面的系统。如何把程序部署到远程的unix或者linux服务呢?这时候远程连接工具就派上用场了。这里特别提一下如果做得是银行项目,远程连接工具是常伴左右的。
securecrt是一款支持ssh协议(ssh1和ssh2)的终端仿真程序,简单地说是windows下登录unix或linux服务器主机的软件;securefx是对应的文件上传工具,使用securefx可以让我们使用ssh协议上传文件到远程服务器。
xshell是一个功能强大的终端模拟器,支持ssh、sftp、telnet、远程登录命令连接; xftp是一个灵活和轻量级sftp / ftp客户端用户需要安全地通过网络传输文件。它提供了强大的功能,如直接编辑多个窗格、文件夹同步、他们支持服务器到服务器转移和第三方编辑器集成。
远程连接和文件上传工具笔者最常用的就是这两款,有这任何一款都足以满足我们日常工作的需要了。如果只想上传文件话也可以使用total commander;如果只想远程连接的话也可以使用putty.exe,这个远程连接工具非常小巧,而且免费使用。
4、一些其他常用工具
文本编辑工具notepad 和ultraedit
对比工具beyond
使用场景:在进行版本上线时,有时需要对比一下生产版本与现在马上需要投产的版本有什么区别就需要用到该工具了,该工具提供了非常强大的对比功能。
使用场景:有时开发的代码某个接口在开发环境是好好的,跑的没有任何问题和纰漏;但是uat环境或者准生产环境(部署人员确认已经部署了对应的接口),如果开发人员需要进一步确认部署人员正在部署了jar包,这时反编译工具就派上用场了,开发人员可以在uat环境或者准生产环境获取相应的jar包,然后反编译看看相应接口的逻辑跟开发环境的是否一致。
快速启动工具typeandrun
typeandrun (tar) 是一个可以用热键呼出的控制台,从这个控制台上可以运行任何程序、打开各类文档、url、电子邮件和文件目录。除了可以方便的为自己的常用程序建立别名,typeandrun也内置了大量“系统别名”用自定义的快捷键调出命令行后,输入别名即可执行相应操作。而且typeandrun 可以为已经建立的别名自动补全,无需记住全部名称。也不用像一些快捷键工具一样要记住那么多快捷键。这个工具是我极力推荐给广大开发人员的,使用了它就不需要打开“我的电脑”每次都使用鼠标双击了。
source insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对c/c ,c#和java等程序的分析。sourceinsight能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。
使用场景:如果想在大量java代码中搜索某些关键字,使用source insight工具可以非常快速找到相应的关键字;同时source insight支持java关键字的高亮功能。
mysql连接工具sqlyog
使用场景:sqlyog是一款小巧的、连接mysql数据库的图形化工具。使用sqlyog主要方便开发人员操作mysql数据库,他提供了补全、关键字高亮、格式化sql语句等功能,在同类mysql图形界面工具中相当好用。
5、总结
以上推荐了十几款软件,涉及到开发工具、接口测试工具、远程连接工具、文本工具、数据库连接工具等等。这些工具有免费开源的;有商用收费的(任何长期使用自己想办法哦!!)。在小公司使用以上的这些工具能满足程序员百分之八十的开发需要。这里的工具没有涉及到uml工具、原型工具、项目管理工具等。
6 楼 2018-03-26 11:54
5 楼 2018-03-23 16:40
4 楼 2018-03-20 14:55
以后慢慢看
3 楼 2018-03-17 21:04
2 楼 2018-03-16 14:05
totalcommander也没有好好写,这可以平时用起来很强大的管理器呢,还开啥我的电脑。
1 楼 somefuture 2018-03-13 13:19