Alex Zhitnitsky告诉我们这7个辅助工具的主要功能特点,这些工具每个java程序员都应该了解一下。这篇文章最初发表在takipi的博客–Java与Scala异常分析和性能监控.
在准备进行锁和负载测试之前,应该对一些最新的最具创新性的工具有一个快速了解。为了防止你错过这些信息,rebellabs最近公布了对Java工具和技术全景的一个全球性调查结果。除了一些已有的或知名度很高的工具,现在市场上还充满了很多不为人知的全新的工具和框架。
在这篇文章中我们决定收集制作一个关于这类工具的简略名单,他们中的大多数工具只是最近推出的。其中一些工具是为Java定制的,但也有一些是支持其他语言。但对于Java项目而言,他们都是非常好的,并且拥有同一个愿景:简单化。让我们开始吧。
1. JClarity – 性能监测工具
它发布于去年9月。围绕java性能,当前这款工具提供了两个产品:Illuminate 和 Censum。
Illuminate是一款性能监测工具,而censum是一种聚焦于垃圾收集日志分析的应用。
它不仅仅提供了数据收集功能和可视化,对于检测到的问题,这两个工具能够提供具有实践性强的建议,帮助开发人员去解决问题。
“我们要做的是把问题从数据收集阶段转移到数据分析和观察阶段”– JClarity Co-Founder Ben Evans.
主要特性:
- 瓶颈检测(磁盘I/O,垃圾收集,死锁等)
- 实施计划–提出解决问题的具体建议,如“应用程序需要增加活动线程数”。
- 解释–一般性问题的定义以及引起该问题的常见原因,例如“垃圾回收时停顿时间耗时比例过高,可能意味着堆内存不够,太小了”。
独特之处 : 进行监测和性能问题确认后,他会立即提供可行性的意见来解决这些问题
幕后故事: JClarity是在伦敦建立的,他的创始人包括Martijn Verburg, Kirk Pepperdin 和 Ben Evans,都是在java性能领域有着非常丰富经验的人。
想要获取更多关于JClarity的信息,点击这里
2. Bintray-二元次的社交平台
当从一些”匿名”仓库中导入库文件时,Java开发人员在某种程度上被蒙在鼓里。Bintray给这些代码添了“一张脸”,作为一个社会化平台为java开发者服务,分享开源的软件包(会不会有人说这是二元次的github?).它拥有超过85000个文件包,涵盖18000个库,展示了当前流行的和新版本的包。
主要特性:
- 上传你的二进制文件,让全世界都可以看到,并且可以和其他开发者进行交流,并得到一些反馈。
- 使用 Gradle / Maven / Yum / Apt工具下载包文件,或者直接从平台下载。
- 管理包的版本说明和相关文档
- REST风格的API -查询/检索 文件接口 和 自动分发接口
独特之处:Bintray的基础功能类似于maven中央仓库。但他增加了一个社交层,提供了一个将文件分发到CDN服务器的简单办法。
幕后故事:JFrog基于Israel 和California,开发了Bintray。该工具是去年4月公开的,并在上次JavaOne大会上赢得了Duke’s choice award奖项
JFrog也开发Artifactory,Artifactory当然也是跑在Bintray上的。
3. Librato–监控和可视化云服务
Librato作为一个监控和管理云应用的托管服务,它可以瞬间完成自定义面板的创建,而不需要用户去配置或者安装任何软件。
相比其他面板,他的外观和感受如黄油般顺滑。
“仅当你能够从数据中获得具有实际意义的信息时,数据才是有价值的”—Joe Ruscio, Co-Founder & CTO
主要特性:
- 数据收集:集成了Heroku、AWS、数十种集成代理,以及绑定了java、Clojure等语言 。
- 自定义报告:性能指标和告警可以通过邮件、HipChat、 Campfire以及HTTP POST请求 与你所想到的任何东西进行整合
- 数据可视化:带有注释、相关性分析,共享和嵌入选项的美观的图片展示
- 告警 :当指标超过一定阈值时会自动发出通知告警
特别之处:很难找到任何Librato不知道如何表述以及对数据的理解。
幕后故事:Fred van den Bosch, Joe Ruscio, Mike Heffner and Dan Stodin 几个人在San Francisco 创建了Librato
4. Takipi的建立基于一个简单的目的:告诉开发人员到底在何时什么原因代码出现异常。每当一个新的异常抛出,或者一个错误日志发生,Takipi就会捕获它,给用户展示可能引起该异常的变量状态,经过的方法和设备。Takipi在错误发生时刻将会覆盖实际执行代码—所以在你分析异常时,就如同当异常发生时你正好在场。
主要特性
- 监控-捕获/未捕获的异常,http错误,和被日志记录的错误
- 优先排序- 如果异常错误涉及到新增的代码或者修改过的代码,工具会统计集群中这样的错误发生的频率,以及错误发生的概率是否在递增。
- 分析-观测实际代码和变量状态,甚至跨越不同的机器和应用
独特之处:
生产环境的God Mode模式。错误发生时展示实际执行的异常代码和变量状态。这样你分析异常时,就如同当异常发生时你在场。
幕后故事: Takipi创建于2012年的San Francisco 和Tel Aviv。每种异常类型和错误都有唯一的怪物来代表他。
5. Elasticsearch – 搜索和分析平台
Elasticsearch已经存在一段时间了,但是他的1.0.0版本在2月份才发布。他是一个基于lucene的,托管在github上的开源项目,他有200位开发者。你可以从这check out出代码. Elasticsearch提供的主要特性 是易于使用的,可扩展的,分布式的,rest风格的检索。
主要特性
- 实时文档存储,文档对象的每个field都建立了索引,都能被检索
- 构建适应于不同规模的应用的体系结构,在此之上实现分布式搜索。
- 为其他平台系统提供了具有rest风格的和原生java api。他也有hadoop的依赖包
- 简单可用性强,不需要对搜索原理有深入的理解。该平台有免费模式,所以你可以快速开始应用起来。
独特之处:如他所说,他具有可伸缩性,灵活的构建和易用性。提供一个易用性的平台,进行规模扩展时无需考虑核心功能与用户自定义选项间妥协。
幕后故事:Elasticsearch由 Shay Banon back创建于2010年,最近募集到了7000万刀的资金。在创建该项目前,Banon就经营一个Compass的开源项目,现在他是一个著名的搜索专家。那他进入搜索领域的动机呢?原来是为了让他妻子能够保存和检索所喜欢的食谱,进而开发的一个应用。
6. Spark – 微型Web框架
回到java语言,Spark是一个极具自由灵感的,能够快速创建Web应用程序的微型Web框架。为了支持java8和lambdas,今年早些时候他被重写了。Spark是一个开源项目,源代码可以在github上可以看到(请点击这里),目前开发该框架的人是Per Wendel和 过去几年为了实现只需要付出很小的努力,便可以快速构建一个web应用这样使命的一小撮人。
主要特性:
- 快速上手,配置简单
- 直观的路由匹配器
- 创建可复用组建的模板引擎,它支持Freemarker, Apache Velocity 和 Mustache
- Spark可以运行在Jetty上,也可以在tomcat上跑
独特之处:图片胜过千言万语,图片更加直观,把代码check出来感受一下吧
幕后故事:Spark的创始人是Per Wendel,瑞典人。目前与其他20个人开发Spark。去看看讨论组,学习更多的关于Spark的知识,了解如何去给这个开源项目做贡献,解决bug。
7. Plumbr – 内存泄漏检测
深入研究java虚拟机,其中的GC(Garbage Collector 垃圾收集器)将那些不再使用的对象进行回收,释放内存。尽管如此,有时候,开发人员仍旧会持有那些不再使用的对象引用,占用内存。这样就会发生内存泄漏,这个时候,Plumer就该登场了。如果应用发生了内存泄漏问题,Plumer就会进行检测,生成报告,并且提供切实可行的方案去fix掉这个问题。
主要特性
- 实时的内存泄漏检测和告警
- 一份包含时间,内存大小,速度(MB/h) 以及泄漏事件的重要级别的报告。
- 内存泄漏的代码位置
独特之处:快,切中要点,从代码中分析并给出建议帮你修复Bug
幕后故事:Plumbr创建于Estonia,创始人是Priit Potter, Ivo Mägi, Nikita Salnikov-Tarnovski 和 Vladimir Šor。加入这样一个拥有非常丰富经验的java团队吧,这些家伙都是非常厉害的救火队员。嗯,是这样的
译文链接: http://www.importnew.com/13756.html
[ 转载请保留原文出处、译者和译文链接。]
相关推荐
"C++转换JAVA工具" 提供了一种解决方案,使得开发者可以从C++代码无缝过渡到Java代码,或者将Java代码转换为C++,以适应不同的开发需求和环境。这种工具的主要目标是提高开发效率,降低维护成本,以及实现平台间的...
Java到Python的转换工具,如"java2python",是一个重要的软件开发辅助工具,它能够帮助程序员将已有的Java代码转换成Python代码,以便在Python环境中执行或进行进一步的开发工作。这种转换过程涉及到多种语言特性和...
7. 版本控制:生成的代码应当被纳入版本控制系统(如Git),便于团队协作和追踪代码变更。 8. 性能优化:工具的性能也是关键,尤其是在处理大型数据库时,应尽可能快速地生成代码,减少对开发环境的影响。 9. 错误...
Java短信服务工具类是开发过程中...以上是关于"Java短信服务工具类"的一些关键知识点,涵盖了从基础的协议理解到高级的性能优化等多个层面。理解并熟练运用这些知识点,可以帮助开发者高效、稳定地实现短信服务功能。
标题"Java反序列化漏洞利用工具.zip"表明该压缩包内包含了针对Java反序列化漏洞的利用工具,特别提到了针对JBOSS和WebLogic两个流行的Java应用服务器。JBOSS和WebLogic都是企业级的应用服务器,广泛用于部署各种业务...
JavaTools是一款基于Java开发的数据导入导出工具,主要用于数据库管理和数据迁移工作。它提供了一种简单易用的图形用户界面,使得非编程人员也能轻松处理数据的导入与导出任务。在更新后的版本v1.0.5中,开发者对...
这个工具是绿色免安装的,意味着你可以直接解压并运行,无需进行复杂的安装步骤。然而,正如描述中提到的,由于Java 1.8引入了Lambda表达式,jd-gui在处理包含Lambda的代码时可能会遇到问题。Lambda表达式是一种简洁...
工具会读取这个路径,然后自动在系统的环境变量设置中添加或更新相应的JAVA_HOME、PATH和可能的CLASSPATH。对于新手开发者来说,这减少了因环境变量配置错误导致的各种问题,比如"java命令未找到"或者"找不到主类"等...
Java反编译图形界面工具是开发者用来查看和理解Java字节码的利器,它能够将已编译的.class文件转换回可读的源代码形式。这类工具对于软件调试、学习库的内部工作原理以及逆向工程等场景尤其有用。本文将深入探讨Java...
标签中的"java反编译"、"java"、"反编译"和"java反编译工具"强调了这个主题的核心——Java语言的反编译过程。反编译对于软件逆向工程、故障排查、学习库的实现细节等场景都是必要的。 "class转java"是指将Java字节...
2. **Java反序列化终极测试工具**:这是一个通用的反序列化测试工具,适用于多种Java环境,包括WebLogic和Websphere等。它可能包含了一系列预设的payloads(即恶意序列化对象),可以用来检查应用程序是否容易受到反...
KeyGen.exe这个名字通常与生成序列号或密钥生成器相关,但在Java编译的上下文中,这并不常见,可能是非官方或非法的工具,因此应当谨慎处理。readme.txt文件通常包含关于压缩包内容的说明或使用指南,对于理解如何...
标题中的"手机java电子书制作工具"指的是一个专门用于创建Java格式电子书的软件,这种电子书可以在具有Java支持的手机上运行。这些工具简化了内容的整理和打包过程,使得非专业程序员也能轻松制作自己的手机电子书。...
本文将深入探讨七个Java程序员应当了解的日志管理工具,以及相关的经验技巧。 1. Log4j:Log4j是Apache的一个开源项目,广泛应用于Java应用中。它提供了灵活的日志记录配置,允许开发者控制日志信息的输出级别,如...
本项目是一个基于Java开发的XML规范检查小工具,它具有用户界面,能够帮助开发者或使用者快速检查XML文件是否符合规范。XML规范主要包括但不限于以下几点: 1. **语法正确性**:XML文件必须以`...
"java class文件反编译工具"是专门针对这个需求而设计的软件。 jd-gui.exe是一个常见的Java反编译工具,它是一款图形用户界面的应用程序,允许用户直接打开并查看Class文件的内容。它的主要功能包括: 1. **反编译...
Java常见工具类及异常处理 在 Java 编程中,异常处理是一个非常重要的概念。异常是指在程序执行过程中出现的非正常情况,可能会导致程序终止或崩溃。Java 提供了一个完善的异常处理机制,允许开发者捕获和处理异常...
在这个主题中,我们将深入探讨Java反编译工具,特别是提及的"JAVA反编缉YingJAD.EXE"。 首先,Java反编译工具有多种,例如JD-GUI、JAD、FernFlower等。这些工具能够解析.class文件,并尝试重构出接近原始的Java源...
Java中的`File`类是Java I/O流体系中不可或缺的一部分,它是用来操作文件和目录的基础类。`File`对象代表了文件和目录路径名的抽象表示。在这个详细的讲解中,我们将深入探讨`File`类的各种功能,包括创建、读取、...