GitHub旅行者指南:您应该尝试的13个Java项目

我们已经在GitHub上收集了一些实用且简单的Java存储库

GitHub上有很多存储库。 有些您想分叉,有些可能会帮助您编写自己的代码,有些则是为了帮助您了解有关编程的更多信息。 无论哪种方式,都有很多可以看的东西,而没有足够的时间来使用它们。

在接下来的文章中,我们收集了一些最有趣,最有用的Java存储库,这些存储库在过去的几个月中引起了我们的注意。 愿叉子与你同在。

在回购中寻找针头

git存储库托管服务GitHub为来自全球3,800万个存储库的1500万开发人员提供服务。 330,550个存储库是Java。 简而言之,GitHub拥有来自众多开发人员的大量信息。

这些可能包括与您当前项目相关的代码,或者是旨在帮助您使用其他编程语言的简单游戏。 无论您要寻找什么,都可以找到数百种,这才是真正的问题。

这就是为什么我们决定帮助您寻找存储库的原因,因此您至少会知道从哪里开始。

1.最小的Java简单性

Bootique是用于构建无容器可运行Java应用程序的最低要求的技术。 该项目允许您创建基于模块的REST服务,Web应用程序,作业,数据库迁移任务等。 这样,您将能够像简单命令一样运行它们。

该项目的目标是从Java容器中释放应用程序,并让开发人员收回其main()方法。 有一个好处-有一些内置命令,因此,如果您没有那么多代码,或者如果您没有将任何模块导入到您的应用程序中,您仍然可以使用Bootique来执行它们。

2.优雅的问题解决

这个名字说明了一切: 99问题 。 如您所料,这是一系列问题,旨在帮助您练习逻辑编程技能。 您可以选择使用Java 8,Scala或Haskell解决问题,最终目标是找到最优雅的解决方案。

如果您是拼图大师–不用担心。 难度级别不同,每个级别的时间范围从15分钟到几个小时不等。 没有人会检查您实际解决每个问题所需的时间,但是它使您基本了解应该花多长时间。

如果您已经解决了这99个问题,那么您可能会面临另一个挑战。 您应该查看面向开发人员的迷你益智游戏: Java Deathmatch 。 万一您陷入困境,解决方案就在这里 ,但是,嘿! 不要偷看

3.字符串操作

Strman-java存储库是一个Java 8库,专门用于处理String。 如您所知,这很简单。 由于它在Maven上可用,因此您要做的就是向您选择的构建工具添加依赖项。

如果您使用过Kik (Node.js的扩展名),并且听说过拆掉leftPad危机时,您可能会喜欢Strman的选择,即返回给定长度的新字符串,以便填充字符串的开头。

import static strman.Strman.leftPad
leftPad("1", "0", 5)
    // result => "00001"

除此之外,您还将找到一个函数列表,其中包括将字符串追加到值,在特定索引处获取字符并返回一个从头到尾之间包含字符串的数组等等。

4.数据浏览器

如果您想以一种很酷的方式与您的数据进行交互,则应查看Dex 。 有了它,您可以提取,转换和可视化数据,同时还具有预测功能。 您可以将可视化内容发布为3D或任何其他想要HTML变量。

Dex使您可以生成50多种不同的可视化模式,包括世界地图,参与时间轴,网络使用情况等等。 您可以将其与正在运行的R实例集成,并利用复杂的统计分析和预测分析。

弦

民主还是共和党? 用和弦图显示关系

5.小大数据

Tablesaw是内存中的数据表,其中包括数据工具和面向列的存储格式。 它的设计理念是,没有人需要为较小的任务进行分布式分析,并且您可以在单个服务器上与2M行表进行交互工作。

您可以使用Tablesaw来应用规则,以确定显示演示文稿的布局,数据优先级,或添加一系列扩展以使用户可以控制数据显示和交互。 使用它,您可以从RDBMS和CSV文件导入数据,添加和删除列,执行映射和简化操作或以压缩的列存储格式存储表。

6.关键值存储

编年史地图是内存中的键值存储。 它设计用于低延迟和/或多进程应用程序,例如交易和金融市场应用程序。 该存储库的目标是读写查询的中值延迟,并使您编写的查询可以扩展到服务器中硬件执行线程的数量。

这里的主要用例是在单个服务器(如Redis)中使用时替换较慢的键值存储,或替换类似的以JVM为中心的解决方案以加速它们。 您还可以将部分应用程序状态移出Java堆,并减少堆大小和GC压力。

7.负载调查器

Gumshoe使您可以监视应用程序性能统计信息。 使用它,您可以查明代码行,并获取与调用堆栈和单个堆栈框架相关的统计信息。 这意味着您将能够分析资源使用情况(TCP,UDP,文件系统或处理器使用情况)。

该存储库允许捕获,过滤和可视化生成的统计信息,并为您提供火焰图和根图的直观视图。 如果您正在寻找应用程序中更具体的内容,则还可以在捕获和/或可视化期间过滤堆栈帧,并在运行时对其进行更改。

8. Java音乐

SoundSea可让您搜索和下载内置了元数据和专辑封面的歌曲。当您搜索某首歌曲时,SoundSea会在iTunes上查找相关的元数据和专辑封面,并将其呈现给您。 如果有不止一首歌曲,则可以搜索正确的歌曲。

歌曲本身是从Pleer.com下载的,您可以过滤高,低或VBR比特率。 如果您感到幸运,甚至可以将其配置为立即下载第一个搜索结果。 它也是一个迷你播放器,因此您可以简单地听这首歌而不会超载音乐库。

声海

搜索并下载

9.检测您的泄漏

LeakCanary是一个开放源代码库,旨在帮助您阻止内存泄漏。 您可以在调试版本中使用它来检测Java(和Android)中的内存泄漏。 正如他们在GitHub页面上所写的那样,“小小的泄漏将击沉一艘大船。” (-本杰明·富兰克林)。

设置LeakCanary后,可以对其进行配置,以在检测到活动内存泄漏时自动显示通知。 另一个可能的用途是设置智能销,以检测是否已对某些收藏品进行了垃圾收集。

10.多维数组

ND4J是一个开放源代码库,它将来自Python社区的直观科学计算工具引入JVM。 它专为生产环境而设计,因此运行速度很快,但对RAM的要求却最低。 有了它,工程师可以轻松地将算法和接口移植到其他Java和Scala库中。

该库提供的主要功能是通用的n维数组对象,包括GPU和线性代数以及信号处理功能在内的多平台功能。 它与Hadoop和Spark集成在一起,其API模仿了流行的Python数学库Numpy的语义。

11.监视Java

不管使用哪种监视工具, Automon都将其功能与AOP(AspectJ)结合在一起,以声明方式监视Java代码,JDK和相关库。 它可与已知的监视工具(如JAMon,JavaSimon,Yammer Metrics,StatsD)以及包括perf4j,log4j,sl4j等在内的日志记录库一起使用。

Automon通常用于跟踪方法调用时间和异常计数,在所选工具内部存储和显示数据。 您应该意识到,它本身并没有进行任何监视,而是充当“我应该监视什么”和“我如何监视它”之间的中间人,但是它仍然对您很有用。

您可以尝试用于生产监控的另一个很酷的工具是Takipi 。 有了它,您将能够知道何时以及为什么代码中断,查看所有异常并获取它们的完整堆栈,源和状态。

12.照顾好您的Java

Jvm-tools或SJK是用于JVM故障排除,监视和分析的一组工具。 它是一种命令行工具,可利用JVM的标准诊断接口(例如JMX,JVM附加和性能计数器),同时在顶部添加更多逻辑以用于常见的故障排除情况。

该库允许池化目标JVM的线程CPU使用率,并定期向控制台报告,实时报告有关GC的信息并获得基本的样本探查器功能。 在其中,您还将找到从命令行对MBean进行基本操作的工具,并将目标Java进程的所有MBean转储到JSON。

13.有史以来最好的Java

认识awesome-java 。 这是精选的Java框架,库和软件的清单。 如果您不确定要选择什么,请查看以下列表。 它甚至被过滤到不同的类别中,因此您将了解要关注的内容。

您可以找到仍在使用的古老工具,简化Bean映射的框架,处理构建周期和应用程序依赖性的工具以及以编程方式操作字节码的库。

最后的想法

这只是GitHub冰山一角,我们确信还有更多项目可以帮助您度过时光或增加您的代码。 如果我们错过了某些事情,而您认为必须在列表中,请在下面给我们一行。

翻译自: https://www.javacodegeeks.com/2016/07/hitchhikers-guide-github-13-java-projects-try.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值