编写好的软件需要使用正确的工具。选择正确的框架、库和设计“聪明”的系统。因为有这些东西需要学习和担心,很容易忘记另外一件非常重要的事情:明智地选择使用编程语言。在本文中,我想向您介绍Joshua Bloch写的“Effective Java”。
随着JVM生态系统比以往任何时候都快,我们很容易忘记编写好的软件不仅仅是正确使用框架。
在编写代码时,我们应该经常考虑一些关键问题。这些东西在很大程度上独立于我们使用的框架。在执行代码评审时,我总是喜欢问这些问题:
代码是否可读且易于理解?
可维护的代码吗?
代码是正确的吗?
它是否遵循公认的最佳实践?
如果您是一位经验丰富的Java开发人员,那么您可能已经具备了帮助您回答这些问题的直觉和知识。但是你怎样才能做得更好呢?
假设您可以让世界上最好的Java开发人员向您解释他们如何回答这些问题?Joshua Bloch, Java Collections Framework 的主要作者之一,当然可以称得上是世界级的。
他还编制了一份清单,列出了在编写Java时值得考虑的90个项目。让他向您解释如何编写有效的Java的前提。
一旦您通读了这些规则并理解了其背后的原因,您就会真正开始感觉自己正在成为Java语言的母语使用者。
在过去两年的职业生涯中,我一直在使用Spring Boot和基于Grails的微服务。这两种都是很好的技术(如果你要求的话,我更喜欢Spring Boot),可以让你快速交付……这两种技术都不能让你免于编写糟糕的代码!
根据我的经验,微服务体系结构是相当困难的。有很多可移动的部分,不同服务之间的集成可能具有挑战性。这只会强调在您的服务中编写绝对可靠的代码的必要性。
由于体系结构的复杂性,您希望服务是简单的。为了使它们变得简单,您不仅需要正确划分域模型,还需要编写干净的可维护代码。
我们从现代微服务框架中获得的速度不应该阻止我们编写高质量的代码。服务的编写速度可能很快,但可能会维持数年。开发人员花在阅读代码上的时间要比编写新代码多得多。
Java不是一种新语言,我们知道好的Java是什么样子的。通过更新“有效的Java”以涵盖Java 9,您可以得到如何编写良好的现代Java的专家建议。
这本书具体包括哪些内容?既然你可以在亚马逊上查找这本书的索引,我觉得我也可以在这里分享它。你会得到12个信息丰富的部分:
引言——好吧,这一条信息不够充分!
创建和销毁对象——这对于任何Java应用程序都是基本和关键的。
所有对象的通用方法——处理Java对象的ABC。
类和接口——Java中OOP实践的良好概述。
泛型——深入研究泛型和多态性。
枚举和注释——解释语言中经常被误解和未充分使用的特性。
Lambdas和Streams——如何处理Java 8的新特性。
方法——解释了使用方法的良好规则。
通用编程-混合通用编程建议。
异常——处理不断混乱的Java异常框架的指南。
并发性——Java并发性和最佳实践的坚实介绍。
序列化——序列化Java对象。
正如你所看到的,书的主题领域非常广泛。它与众不同,尽管如此,它仍能保持深刻而深刻的见解。这是通过挑选特定的项目并深入研究它们来实现的。
举个例子:
44、喜欢使用标准的功能接口。在这里,我们深入了解了Java中的功能接口以及围绕它们的使用的最佳实践。
Java 8中一个有趣的新特性,我认为它没有得到足够广泛的使用和理解。
另外还有89个知识项,每个项都有几页深入的解释和讨论。
Joshua Bloch的《Effective Java》是我读过的关于Java的最好的书之一。虽然总是追求最新的和最令人兴奋的新框架和体系结构,但有时放慢速度是好的。回顾基础知识,确保我们有坚实的基础是件好事。“Effective Java”可以为您提供基础。