Eduenth 2020-08-29
毫无疑问,Java是企业软件开发中的王者,也是需求量最大的编程语言之一。最近,Java迎来了其25周年庆典,未来几年,它仍然会是领先的编程语言之一。GitHub拥有超过1亿个储存库,它就像是软件开发界的百宝箱,包含了框架、库、教程和书籍,甚至还有编程语言。
如果你是一名Java开发人员,并且希望提高自身技能,那么GitHub对你来说就是一座金矿。但是,面对这么庞大一座矿你可能会抓狂,从中找到正确的储存库仿佛大海捞针一般艰难。
来吧,我将向你介绍十佳Java GitHub储存库。请注意,大热的Java框架和Java库不包含在内。
1. Java设计模式
图源:Github
软件工程师通过软件设计模式提供通用方案,解决软件设计中反复出现的问题。设计模式中还有通用词汇表供软件工程师和架构师讨论共同问题,还能利用测试和验证的开发范式提高代码质量和编码速度。学习设计模式的最好方法是观察实际操作,即代码示例。
这个强大的GitHub储存库可以实现Java的所有设计模式:从最常见、最传统的迭代器模式、单例模式,到最现代的聚合器微服务模式。GitHub储存库不仅能帮助你提高编码技能,还可以使你成为一个更优秀、更高效的开发人员。
2.面试
图源:GitHub
参加编程岗位的面试是很有挑战性的。许多人去面试时准备得不充分,就说是自己运气不好才没能得到这份工作。
为面试做充分的准备会增加得到理想工作的机率。这个GitHub储存库包含了你准备面试所需要的一切:YouTube视频、文章、实时编码练习、数据结构、算法、面试书籍和视频讲座,还包含针对Java常见编码问题的LeetCode(全球极客的技术成长平台)。
图源:Pexels
3.算法
图源:GitHub
如果你是一个软件工程师,那么算法就像是生活中的豆浆和油条,使用正确的算法可以提高软件的性能。为给定的约束条件(CPU复杂性、内存消耗)选择正确算法的能力表明了软件工程师的素质,无论是谷歌、微软这样的科技巨头,还是初创公司,都会在面试过程中大量使用这些算法。
如果你是初级或中级Java开发人员,那么你将经常需要这个GitHub储存库;如果你是有多年经验的Java开发人员,仍然会发现这个GitHub储存库非常有用。
4. RealWorld储存库
图源:GitHub
如果你正在用Java开发最新的全栈应用程序,很有可能在前端使用JavaScript SPA,在后端使用Java。RealWorld提供了一个应用“导管”(中等克隆),几乎使用了所有前端和后端组合。开发者称它为“所有演示应用程序之母”,因为它允许开发一个真实世界的应用程序。RealWorld这个品牌名副其实,因为它支持着很多前端、后端技术。
目前,RealWorld支持所有可能的JavaScript前端框架(例如,React,Angular,Vue,Svelte,AngularJS,Ember),以及所有主流编程语言中所有可能的后端框架。在Java中,它支持Quarkus和Vert.x。
Realworld也是一个GitHub储存库,你在整个职业生涯中都会需要它,特别是全栈开发岗位的人。
5. Awesome Java
图源:GitHub
有时我们需要在谷歌上花几个小时搜索一些与Java相关的内容,这个GitHub储存库可以给Java开发人员提供帮助。Awesome Java就像一本字典,几乎包含了所有与Java相关的内容。不论你想寻找字节码操作器、机器学习库,或者是实用程序库,Awesome Java都有相关链接。
这个储存库由约300名志愿者组成的活跃社区维护,定期更新。
图源:unsplash
6. Baeldung教程
图源:GitHub
如果你是一名Java开发人员,你很可能已经看过Baeldung提供的各种教程和案例了。目前,它是Java、Web和Spring开发教程中排名第一的在线资源平台。Baeldung与其他类似平台的区别在于,它涵盖了Java和Spring开发中从基础到高级的内容。除了教程,它还包含课程、指南和电子书等。Baeldung另一个重要特性是,所有的示例和教程都支持运行GitHub代码。
GitHub储存库包含Java和Spring开发领域的普通和重点教程,还包括了教程中对代码详细解释的文章链接。这不仅是Spring开发人员的必备储存库,也是Vanila Java开发人员的必备储存库。
7. JHipster
图源:GitHub
如果你使用的是企业级Java,那么你很可能听说过JHipster。JHipster提供开发平台来生成、开发和部署基于生产级单体应用或微服务的Web程序。在前端,它提供前3大SPA框架(Angular、React和Vue),在后端提供Spring Boot。
它还支持所有主要的数据存储(Oracle、PostgreSQL、MySQL、MS-SQL、MongoDB、Cassandra、ELK、Kafka)。JHipster的安全性级别很高,比如提供OAuth2+OpenIDConnect。它还提供了许多扩展,帮助你开发几乎适用于任何环境(包括云)的基于Spring的企业应用程序。
JHIpster强大且成熟,可以用于开发POC甚至生产级应用程序。
8. RxJava Android案例
图源:GitHub
近年来,反应式编程因为可以处理不同时存在的、基于事件的编程而大受欢迎。RxJava是ReactiveX通过Java实现的,可以通过观察对象提供反应式编程。学习Java反应式编程有点困难,因为Java在默认情况下是同步编程方式。
在GitHub项目中有RxJava的实际案例。虽然这些案例是针对Android开发的,但Java开发人员也可以将它们轻松应用于非Android开发。
图源:unsplash
9. Java8教程
图源:GitHub
Java8是最具颠覆性和创新性的Java之一,因为它引入了“函数式编程”。有了Lambda表达式和流媒体的概念,Java最终实现了函数式编程,还保持了出色的、统一的向后兼容性。
并非所有Java开发人员都充分利用了Java8的新功能。我见过许多有经验的Java开发人员,他们仍然在用传统的开发方法。其中一个原因是,与传统的面向对象编程相比,函数式编程是一种范式转换,开发人员希望留在自己的舒适区。
这个GitHub储存库包含了许多小而有用的函数式编程概念示例(Lambda表达式、流媒体、函数式接口和并行流等),这些示例行文流畅,清晰易懂。如果你是Java函数编程的小白,这个储存库将极大地帮助你。
10.《程序员面试金典》
图源:GitHub
无论你是在财富500强公司还是初创公司申请编程工作,都要参加编程面试。备受好评的《程序员面试金典》可以帮助你准备具有挑战性的编码面试。这本书涵盖了所有类型的编码,包括算法复杂性、数学和逻辑难题、动态编程、排序和搜索、多线程等。
本书的出彩之处在于优美、简洁地解释了所有的示例,GitHub储存库包含了该书第六版关于Java的所有示例。即使买不到原版书,浏览GitHub对你下次的面试也有帮助。