17611538698
webmaster@21cto.com

想成为更好的 Java 开发人员吗?送你保持领先的 19 条秘诀

编程语言 0 359 2024-08-31 03:50:36

图片

最近,我与一位经验丰富且一直在该行业工作的 Java 开发人员同事沟通,并询问他对 JDK 21 和 Spring Boot 3.2 中可观察性改进的看法,还有他是否已经从 17 迁移到 21 并迁移到 Spring Boot 3.2的。

下面是他给我的回复。我进行了节选:

“最近,我感觉自己的技术生疏了,目前的工作让我只专注于构建 IntelliJ 插件,到现在已经快两年了。我担心自己快跟不上时代。我答应自己要参加一个教程节奏,学习从 Java 版本 17 到 21 的所有内容。随着 Java 22 即将发布还有 Spring 3.2 的推出,我还不熟悉改进了哪些。我已经听说过 Java 22 令人兴奋的新功能,例如非 Java 互操作和对 LAPACK 和 BLAS 等重要库的访问。这些库为 NumPy 等重要的 Python 库提供支持,为 Java 提供了新的机会。

我仍在版本 17上开发。我知道还有不少公司仍在使用 Java 8写程序。但我仍然希望体验新 Java 规范带来的节省时间、节省内存或者新的可能性。当我听说 lambda 函数得以支持时,我欣喜若狂。最新版本中的某些内容对我来说像是黑魔法,但我知道我会喜欢它。它就像我最喜欢的视频游戏中的新关卡。”

与朋友交谈后,我决定联系 Reddit 上 r/ExperiencedDevs 上的人士。我想知道其他开发人员是否有类似的感受,以及除了教程之外,他们是否有建议来增强作为 Java 开发人员的信心。。

在发布我的问题后,收到了不少的反馈,我与我的朋友分享了它。他很高兴知道他并不孤单。我们都觉得我应该整理我收到的所有提示,并为那些觉得自己在保持最新状态方面落后的开发人员写上一篇文章。

图片
来源:Reddit

以下,便是我送给大家成为更好 Java 开发人员的一些建议:


  1. 增加版本号,JetBrains IDE 会自动建议大多数新更改。如果没有利用新的语言功能,IntelliJ 自动会很体贴地告诉您。

  2. 学习 Kotlin:它可能会给你一些有趣的视角(以及在需要时换工作的能力等)。我的理解是,Java 17 和 21 实际上比 9 和 11 好得多,并且采用了很多与 Kotlin 引入的类似更改(除了空安全,并且向后兼容)

  3. 生疏意味着成长的机会。这是一项挑战,这也是让我不感到无聊的原因。想想你觉得整个计算堆栈中最令人畏惧和难以理解的是什么?那就是深入学习。

  4. 了解其他语言/框架的工作方式。有时,一个框架有一个长期存在的问题,每个人都在抱怨,而另一个框架中却没有这样的问题。更好的方法可以让你的生活变得如此轻松,这是令人大开眼界的事情。

  5. 熟悉 Loom。这是很长一段时间以来 Java 最基础的改变。

  6. 阅读有关 JDK 21 中的结构化并发的信息:https://openjdk.org/jeps/428它确实是并发编程的一次飞跃。有两个独立的并发创新。这两者都是重大改进。

  • 虚拟线程。这是 JDK 21 中的最终版本。这基本上就是 Golang(和其他语言)所做的。您可以获得异步/反应式编程的高性能,而无需编程复杂性。

  • 结构化并发。这在 JDK 21 中仍处于预览阶段。Golang 有类似的东西(https://pkg.go.dev/golang.org/x/sync/errgroup),但在我看来,Java API 更好。

  1. Oracle 提供给我们一些不错的报道,他们用 21 个版本介绍了 Java 生态系统的许多新功能和变化。大多数情况下,添加的功能都有您可能需要也有不需要的用例,因此应该在需要时花时间阅读;否则,只需从 Oracle 的 Java Day 演示中获得一些通用性的了解和更新。这些大厂的演讲也非常有趣。并不那么枯燥。

  2. 先学习 Groovy,然后再学习 Scala。学习完 Scala 后,你可能再也不想用 Java 编程了。此外,Scala 的薪水比 Java 或 Kotlin 要高,而且学习后编程起来也更轻松。但 Scala 的工作机会比 Java 少一些。

  3. 查看https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features-since-jdk-8-to-21/。你会看到有些功能不错,但很多功能都比较次要。例如,未命名变量。很好,我已经在其他语言中使用过它了,但没有什么太大的变化。我喜欢他们添加了密封类。

  4. 在开发周期中实行持续反馈。收集有关代码的数据,以便在投入生产之前发现问题、了解测试结果并做出正确的设计决策。

  5. 尝试 Ktor 的原因如下:

    • 由于不存在相互依赖关系,因此升级更容易。

    • 没有“魔法”,你编写的代码就是运行的代码

    • AOP 的调试可能会是一场噩梦。

    • 性能更高。Spring Kafka 比使用 Apache API 慢一个数量级

    • 依赖关系树的大小约为相同功能的 1/3,启动时间基本上是即时的

  6. 尝试创建一个副项目:如果您正在寻找要构建的项目,请尝试一下https://codingchallenges.fyi/,它做得真的很不错。

  7. 认真对待可观察性,并熟悉可观察性工具和技术。了解分析、监控、跟踪和调试。探索 JVisualVM、JProfiler 和 Continuous Feedback 等工具。

  8. 与社区保持联系 – Java 是一个成熟的社区,拥有许多非常乐于助人的 Java 冠军。团结和共享知识可以增强您的信心。

  9. 找到您所在地附近的 JUG 并参与聚会,这样可以获得最新信息,还可以与一些非常有才华的同好交流。

  10. 阅读专业的开发者博客,并在社交媒体上关注这些开发者以获取最新信息。以下是与 Java 和相关主题相关的 10 个开发者博客的列表:例如本公众号,还有一些网站,如 Foojay 和 Digma,它们为开发人员提供高质量的内容。

  11. 关注社交媒体上的有影响力的人。例如 Red Hat 的解决方案架构师 Piotr Mińkowski。他撰写了有关 Java、Spring、Kotlin、微服务和 K8s 的文章。此外,Spring 开发者倡导者 Josh Long (@Java_Champions & @Kotlin @GoogleDevExpert) @VMwareTanzu https://YouTube.com/@coffeesoftware了解有关 Spring Boot 的最新信息。

  12. 订阅 Rodrigo Graciano 的周末阅读清单,他会在其中分享本周最佳 Java 文章。网址为:https://graciano.dev/。

  13. 我习惯把最好的留到了最后,因为我知道人们会把“感觉生疏”和“生锈”联系起来:“如果你感觉自己很生疏,我建议你接受我的主和救世主——生锈”


最后的话:)


我相信你们中的一些人能够体会到这种情况,并且发现这些建议是非常有价值。


而且再次有一个支持社区随时准备为您提供帮助,这真是太美好了!

作者:万能的大雄

评论