你应当知道的7个Java工具

AlexZhitnitsky告诉我们这7个辅助工具的主要功能特点,这些工具每个java程序员都应该了解一下。这篇文章最初发表在takipi的博客–Java与Scala异常分析和性能监控.

  在准备进行锁和负载测试之前,应该对一些最新的最具创新性的工具有一个快速了解。为了防止你错过这些信息,rebellabs最近公布了对Java工具和技术全景的一个全球性调查结果。除了一些已有的或知名度很高的工具,现在市场上还充满了很多不为人知的全新的工具和框架。

  在这篇文章中我们决定收集制作一个关于这类工具的简略名单,他们中的大多数工具只是最近推出的。其中一些工具是为Java定制的,但也有一些是支持其他语言。但对于Java项目而言,他们都是非常好的,并且拥有同一个愿景:简单化。让我们开始吧。

  1.JClarity–性能监测工具

  它发布于去年9月。围绕java性能,当前这款工具提供了两个产品:Illuminate和Censum。

  Illuminate是一款性能监测工具,而censum是一种聚焦于垃圾收集日志分析的应用。

  它不仅仅提供了数据收集功能和可视化,对于检测到的问题,这两个工具能够提供具有实践性强的建议,帮助开发人员去解决问题。

  “我们要做的是把问题从数据收集阶段转移到数据分析和观察阶段”–JClarityCo-FounderBenEvans.

  主要特性:

  瓶颈检测(磁盘I/O,垃圾收集,死锁等)

  实施计划–提出解决问题的具体建议,如“应用程序需要增加活动线程数”。

  解释–一般性问题的定义以及引起该问题的常见原因,例如“垃圾回收时停顿时间耗时比例过高,可能意味着堆内存不够,太小了”。

  独特之处:进行监测和性能问题确认后,他会立即提供可行性的意见来解决这些问题

  幕后故事:JClarity是在伦敦建立的,他的创始人包括MartijnVerburg,KirkPepperdin和BenEvans,都是在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’schoiceaward奖项

  JFrog也开发Artifactory,Artifactory当然也是跑在Bintray上的。

  3.Librato–监控和可视化云服务

  Librato作为一个监控和管理云应用的托管服务,它可以瞬间完成自定义面板的创建,而不需要用户去配置或者安装任何软件。

  相比其他面板,他的外观和感受如黄油般顺滑。

  “仅当你能够从数据中获得具有实际意义的信息时,数据才是有价值的”—JoeRuscio,Co-Founder&CTO

  主要特性:

  数据收集:集成了Heroku、AWS、数十种集成代理,以及绑定了java、Clojure等语言。

  自定义报告:性能指标和告警可以通过邮件、HipChat、Campfire以及HTTPPOST请求与你所想到的任何东西进行整合

  数据可视化:带有注释、相关性分析,共享和嵌入选项的美观的图片展示

  告警:当指标超过一定阈值时会自动发出通知告警

  特别之处:很难找到任何Librato不知道如何表述以及对数据的理解。

  幕后故事:FredvandenBosch,JoeRuscio,MikeHeffnerandDanStodin几个人在SanFrancisco创建了Librato

  4.Takipi的建立基于一个简单的目的:告诉开发人员到底在何时什么原因代码出现异常。每当一个新的异常抛出,或者一个错误日志发生,Takipi就会捕获它,给用户展示可能引起该异常的变量状态,经过的方法和设备。Takipi在错误发生时刻将会覆盖实际执行代码—所以在你分析异常时,就如同当异常发生时你正好在场。

  主要特性

  监控-捕获/未捕获的异常,http错误,和被日志记录的错误

  优先排序-如果异常错误涉及到新增的代码或者修改过的代码,工具会统计集群中这样的错误发生的频率,以及错误发生的概率是否在递增。

  分析-观测实际代码和变量状态,甚至跨越不同的机器和应用

  独特之处:

  生产环境的GodMode模式。错误发生时展示实际执行的异常代码和变量状态。这样你分析异常时,就如同当异常发生时你在场。

  幕后故事:Takipi创建于2012年的SanFrancisco和TelAviv。每种异常类型和错误都有唯一的怪物来代表他。\ 5.Elasticsearch–搜索和分析平台

  Elasticsearch已经存在一段时间了,但是他的1.0.0版本在2月份才发布。他是一个基于lucene的,托管在github上的开源项目,他有200位开发者。你可以从这checkout出代码.Elasticsearch提供的主要特性是易于使用的,可扩展的,分布式的,rest风格的检索。

  主要特性

  实时文档存储,文档对象的每个field都建立了索引,都能被检索

  构建适应于不同规模的应用的体系结构,在此之上实现分布式搜索。

  为其他平台系统提供了具有rest风格的和原生javaapi。他也有hadoop的依赖包

  简单可用性强,不需要对搜索原理有深入的理解。该平台有免费模式,所以你可以快速开始应用起来。

  独特之处:如他所说,他具有可伸缩性,灵活的构建和易用性。提供一个易用性的平台,进行规模扩展时无需考虑核心功能与用户自定义选项间妥协。

  幕后故事:Elasticsearch由ShayBanonback创建于2010年,最近募集到了7000万刀的资金。在创建该项目前,Banon就经营一个Compass的开源项目,现在他是一个著名的搜索专家。那他进入搜索领域的动机呢?原来是为了让他妻子能够保存和检索所喜欢的食谱,进而开发的一个应用。

  6.Spark–微型Web框架

  回到java语言,Spark是一个极具自由灵感的,能够快速创建Web应用程序的微型Web框架。为了支持java8和lambdas,今年早些时候他被重写了。Spark是一个开源项目,源代码可以在github上可以看到(请点击这里),目前开发该框架的人是PerWendel和过去几年为了实现只需要付出很小的努力,便可以快速构建一个web应用这样使命的一小撮人。

  主要特性:

  快速上手,配置简单

  直观的路由匹配器

  创建可复用组建的模板引擎,它支持Freemarker,ApacheVelocity和Mustache

  Spark可以运行在Jetty上,也可以在tomcat上跑

  独特之处:图片胜过千言万语,图片更加直观,把代码check出来感受一下吧

  幕后故事:Spark的创始人是PerWendel,瑞典人。目前与其他20个人开发Spark。去看看讨论组,学习更多的关于Spark的知识,了解如何去给这个开源项目做贡献,解决bug。

  7.Plumbr–内存泄漏检测

  深入研究java虚拟机,其中的GC(GarbageCollector垃圾收集器)将那些不再使用的对象进行回收,释放内存。尽管如此,有时候,开发人员仍旧会持有那些不再使用的对象引用,占用内存。这样就会发生内存泄漏,这个时候,Plumer就该登场了。如果应用发生了内存泄漏问题,Plumer就会进行检测,生成报告,并且提供切实可行的方案去fix掉这个问题。

  主要特性

  实时的内存泄漏检测和告警

  一份包含时间,内存大小,速度(MB/h)以及泄漏事件的重要级别的报告。

  内存泄漏的代码位置

  独特之处:快,切中要点,从代码中分析并给出建议帮你修复Bug

  幕后故事:Plumbr创建于Estonia,创始人是PriitPotter,IvoM?gi,NikitaSalnikov-Tarnovski和Vladimir?or。加入这样一个拥有非常丰富经验的java团队吧,这些家伙都是非常厉害的救火队员。嗯,是这样的

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-03 10:55:54

你应当知道的7个Java工具的相关文章

每个Java开发者都应该知道的5个JDK工具

[编者按]JDK是Java语言的软件开发工具包,没有它就无法编译Java程序.目前,有许许多多的JDK工具呈现在大家面前,但最常用的莫过于java.exe.javac.exe.jar等.除了这几个,还有哪些呢?本文作者Joe拥有多年的Java开发经验,其在博客上分享了一篇文章:5 JDK Tools Every Java Developer Should Know,笔者对其进行了编译,以下为译文. 目前,有许多工具可以绑定到Java JDK上面,其中java.exe和javac.exe是每位Ja

你应该知道的 8个Java 的领军人物

下面将介绍8个Java的领军人物,他们创建了框架,产品,工具或者书籍,并将其捐献给了Java社区,改变了Java的编码方式.   8. Tomcat & Ant创始人 James Duncan Davidson,Tomcat和Ant创始人. Duncan于1970年7月29日生于美国德克萨斯州.主要专注在Mac OS X.Java和XML技术.他频繁地在全世界各种会议上演讲,话题范围从开源到高效Java开发.   Duncan 是Apache Tomcat和Apache Ant的原创作者,199

你应该知道的 5 个 Docker 工具

你可以在网上找到大量炫酷的Docker 工具,并且大部分是开源的,可以通过Github访问.在过去的两年里,我开始在开发项目中大量使用Docker.当你开始使用Docker,你会发现它比你想象的还要适合于更多的使用场景.你也许希望Docker能够做的更多,当然你不会失望. Docker社区非常活跃,每天都会推出大量有用的工具.要想持续追踪社区中发生的各项创新其实非常困难.为了帮助你,我收集了一些每天在日常工作中使用.令人感兴趣并且十分有用的Docker工具.这些工具消除了大量手工工作,让我更有生

你应该知道的5个Docker工具

你可以在网上找到大量炫酷的 Docker 工具,并且大部分是开源的,可以通过Github访问.在过去的两年里,我开始在开发项目中大量使用Docker.当你开始使用Docker,你会发现它比你想象的还要适合于更多的使用场景.你也许希望Docker能够做的更多,当然你不会失望. Docker社区非常活跃,每天都会推出大量有用的工具.要想持续追踪社区中发生的各项创新其实非常困难.为了帮助你,我收集了一些每天在日常工作中使用.令人感兴趣并且十分有用的Docker工具.这些工具消除了大量手工工作,让我更有

你需要知道的10位Java开发牛人

1.James Gosling 1983 年,Gosling 获得了加州大学的计算机科学学士学位.1990 年,他获得了卡内基梅隆大学的计算机科学博士学位,师从 BobSproull.在攻读博士期间,他自己开发了一款 emacs,叫 Gosling Emacs(Gosmacs),在大学的这段时间,他还开发了一个多处理器版本的 Unix,以及数个编译器和邮件系统,之后才加入 Sun 公司. 1984 到 2010 年间,Gosling 一直在 Sun 公司工作.他被公认为 Java 之父. Ora

你应该知道的10件关于Java 6的事情

<What's New in Java SE 6 Beta 2>一文中描述了你应该知道的10件关于Java 6的事情,下面总结如下 1.Web Services. 优先支持编写 XML web service 客户端程序.你可以用过简单的annotaion将你的API发布成.NET交互的web services. Mustang 添加了新的解析和 XML 在 Java object-mapping APIs中, 之前只在Java EE平台实现或者Java Web Services Pack中提

五个你应该知道的Docker实用工具

本文讲的是五个你应该知道的Docker实用工具[编者的话]文章介绍了作者工作中收集到的一些有趣而实用的Docker工具. [3 天烧脑式 Docker 训练营 | 上海站]随着Docker技术被越来越多的人所认可,其应用的范围也越来越广泛.本次培训我们理论结合实践,从Docker应该场景.持续部署与交付.如何提升测试效率.存储.网络.监控.安全等角度进行. 网上有很多不错的Docker工具,大部分在GitHub上都是开源的.最近两年,我一直在使用Docker,并将其应用到了一些开发项目上.如果你

[转载]一名优秀的Flex开发者需要知道的10样东西

原文:http://blog.flexdevelopers.com/2010/04/10-things-good-flex-developer-should.html 翻译:http://bbs.9ria.com/viewthread.php?tid=54144&from=recommend_f   要想成为一名优秀的Flex编程人员,单单知道怎么样去使用Flex内建的容器和组件是不够的,而且是远远不够. 下面是我对这个问题的一些看法......并且给出了一些资源和关键字,你可以通过Google

网站开发人员应该知道的61件事

有人在Stack Overflow上发问,动手开发网站之前,需要知道哪些事情? 不出意料地,他得到了一大堆回答. 通常情况下,你需要把所有人的发言从头到尾读一遍.但是,Stack Overflow有一个很贴心的设计,它允许在问题下方开设一个wiki区,让所有人共同编辑一个最佳答案.于是,就有了下面这篇文章,一共总结出六个方面共计61条"网站开发须知". 我发现,这种概述性的问题,最适合这种集合群智.头脑风暴式的回答方式了.这也是我第一次觉得,Stack Overflow做到了Wikip