JavaRush /Java 博客 /Random-ZH /喝咖啡休息#70。如何使用 Lombok 更快地编写 Java 代码。初级程序员培训清单

喝咖啡休息#70。如何使用 Lombok 更快地编写 Java 代码。初级程序员培训清单

已在 Random-ZH 群组中发布

如何使用Lombok加速编写Java代码

来源:Dev.to 我们在每个应用程序中编写相同的样板代码。例如:
  • 吸气剂;
  • 设定者;
  • 设计师;
  • 建造者设计模式;
  • 以及更多…
如果这些日常工作可以委托给某人,那不是很好吗?这就是 Lombok 可以帮助我们的地方。喝咖啡休息#70。 如何使用 Lombok 更快地编写 Java 代码。 我的初学者程序员培训清单 - 1

他在做什么?

它为这些常见任务(getter、setter 等)生成字节代码,并将它们放入 .class 中,使它们可以在我们编写的代码中使用。

这是怎么发生的?

您需要将 Lombok 依赖项添加到 Maven 构建中。然后你需要用一些Lombok注释来注释所需的类、字段。我们来看看代码吧! 没有龙目岛:
public class Human {
    private int id;
    private String name;
    private int ageInYears;

    public Human() { }

    public Human(int id, String name, int ageInYears) {
        this.id = id;
        this.name = name;
        this.ageInYears = ageInYears;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public int getAgeInYears() {
        return ageInYears;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAgeInYears(int ageInYears) {
        this.ageInYears = ageInYears;
    }

    // Builder pattern
  public Human id(int id){
        this.id = id;
        return this;
    }
    public Human name(String name){
        this.name = name;
        return this;
    }
    public Human ageInYears(int ageInYears){
        this.ageInYears = ageInYears;
        return this;
    }

    @Override
  public String toString(){
        return String.format("Human(id=%s, name=%s, ageInYears=%s)",
                this.id, this.name, this.ageInYears);
    }
}
现在让我们使用龙目岛:
import lombok.*;
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
@Builder @ToString
public class Human {
    @Setter(AccessLevel.NONE)
    private int id;
    private String name;
    private int ageInYears;
}
Maven 依赖关系如下所示:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
    <scope>provided</scope>
</dependency>
注意:版本部分将根据最新的 Lombok 版本而变化。

我们做了什么?

我们使用注释来创建 getter、setter、构造函数、Builder 设计模式和 toString 实现。我们还可以更改一些注释,例如 id 字段的 setter。我们将其访问级别设置为 None:这意味着我们不会为其创建 setter。

值得做吗?

当我们不使用 Lombok 时,我们写了52 行。我们使用 Lombok 编写了8 行。Lombok 帮助我们将代码大小减少了近 4 倍。如果我们在课堂上有更多的变量,这个分数就可以提高。Lombok 有更多注释和大量有用信息。要查看它们,请访问网站

结论

Lombok 帮助您专注于业务代码,而不用担心小细节(getters/setters/constructors/一般设计模式和其他 Java 构造)。

初级程序员培训清单

来源:DZone 我的朋友有一个儿子,即将高中毕业。他懂一点编程,正在考虑是否应该成为一名程序员。最近他问我:“接下来我应该教什么?” 喝咖啡休息#70。 如何使用 Lombok 更快地编写 Java 代码。 我的初学者程序员培训清单 - 2当我第一次开始学习编程时,我认为“接下来我应该学什么”这个问题的答案将是一种新的编程技术、一种新语言、一个新库或类似的东西。随着我职业生涯的进步,我改变了想法。除了磨练编程技能和学习新语言之外,有抱负的程序员还应该学习相关领域(我将在下面解释)。在本文中,我想收集一系列我建议程序员掌握的技能。我的目标不是列出所有当前知识或提供教程链接。相反,我想帮助新手熟悉一套可以帮助他们编写程序的工具、技术和技能。

命令行

我想从某些标准来看我已经被认为是“老”了。在我那个时代,使用计算机意味着坐在 DOS 下输入命令。从那以后很多事情改变了。学习如何使用命令行非常重要。许多工具仅提供命令行界面。在某些情况下,您可以在命令行上更快地工作。您应该能够做一些基本的事情,例如:
  • 目录遍历。
  • 文件管理(复制/移动/删除)。
  • 编译和/或运行源代码。
如果您使用的是 Windows,我建议您熟悉 Linux,也许使用 WSL2 而不是完整的虚拟机。如果您使用的是 Mac,则可以使用操作系统内置的 shell。通过安装Linux虚拟机也可以获得不错的体验。

版本控制

您需要学习如何使用版本控制来跟踪源代码。版本控制软件允许您跟踪项目的修订历史记录,这对于调试至关重要。它还使得代码库上的协作变得更加容易。 GitHubGitLab是托管开源项目的两个流行站点。他们都使用 Git(正如我猜的名字所暗示的那样)。Git 是当今最流行的工具,因此我建议在命令行上使用 Git,并将 GitHub 或 GitLab 作为存储库。

网络

今天的大多数程序至少需要一定程度的网络。了解网络如何工作非常重要。至少,您应该了解 IP 地址、端口和协议等基础知识。了解防火墙、负载平衡、代理将在以后得到回报。不仅仅是在你的编程生涯中。同意,很高兴理解“为什么 Wi-Fi 不起作用?”这个问题。我还建议学习 AWS 和 Azure 等云服务的基础知识。尝试设置具有子网、登录规则、网关的 AWS 虚拟私有云将为您带来网络体验。

测试

编写优秀软件的一个组成部分是学习如何测试软件。我们中的许多人学习编程,然后“测试”我们的代码。单元测试和集成测试是基本技能,几乎可以应用于您使用的任何软件。尽管测试一开始可能看起来很乏味,但这项技能将会带来回报,让您更快、更有信心地工作。

持续集成

持续集成(CI)结合了测试和版本控制。每次创建新的代码迭代时,都会有一组自动运行的测试。CI 工具在过去 10 年中得到了显着改进。GitHub 和 GitLab 都有内置的 CI 解决方案(分别是 GitHub Actions 和 GitLab CI),并且很容易上手。与测试一样,开始使用 CI 会很困难。但一旦你学会了基础知识,你就会更容易、更快地发现问题。我建议您寻找包含您正在使用的编程语言示例的详细教程。

写作技能

这可能是我刚开始做程序员时最低估的领域。我并不夸张:我现在相信程序员可以添加到他们的武器库中的最重要的技能就是写作。良好的写作技巧意味着您可以使用最少的单词清楚地解释一个想法。当你学习编程时,你通常会自己工作,所以写作是没有必要的。但是当你开始团队工作时,你需要写:
  • 文档;
  • 错误报告;
  • 功能请求;
  • 客户建议;
  • 有要求的文件;
  • 电子邮件(很多电子邮件!);
  • 短信;
  • 博客文章(可能);
学习写作。锻炼。参加写作课程。它将为你的余生带来红利。另外:学会好好读书。当我第一次开始专业发展时,我对需求文档感到害怕。我现在意识到,花几个小时仔细研究这些信息可以节省您几个月的时间来构建错误的东西。

其他编程语言

如今,仅了解一种编程语言是不够的。几乎每个程序员都应该至少了解一些。学习其他语言以学习新技术很重要。我建议学习几种不同类别的语言。按优先级降序排列: 函数式编程。大多数学校仍然不教授函数式编程(FP)。FP 是一种强大的方法,可以更轻松地编写多种类型的代码。我有偏见,但我会推荐 Haskell 作为最好的学习语言,因为它比许多其他语言更能帮助你理解 FP。学习 LISP 家族的语言也很有用。学习函数式编程将帮助您用几乎任何语言编写更好的代码。 系统编程。系统语言属于较低级别,可以更好地控制程序的运行。通过研究它们,您将了解程序如何在系统上运行,这对于理解和调试其他语言的问题非常有用。我建议学习 Rust,然后是 C 和 C++。 面向对象的语言。Java 和 C# 是这个家族中最流行的两种面向对象语言。(是的,Python 和 C++ 也很流行,但我将分别重点介绍它们)。OOP 引入了许多新的范例,并且可能仍然是最流行的编程方法,尽管我个人更喜欢函数式编程方法。然而,从面向对象编程中可以学到很多东西,并且您很可能最终会在职业生涯中编写面向对象的代码。 写剧本。Python 和 Ruby 是面向对象应用程序家族中两种流行的脚本语言。尤其是Python在DevOps和数据科学等相关领域得到广泛应用。此外,它是一种简单的语言,很容易上手。

编程方法

无论您使用哪种编程语言,都值得熟悉一些超出您的特定语言范围的其他技术,包括:
  • 数据库编程。我强烈建议学习 SQL。SQLite 和 PostgreSQL 是两个值得探索的开源 DBMS。
  • 并行和异步编程。这在今天变得越来越重要。
  • 网络编程,尤其是创建 HTTP 服务器和客户端。
  • 使用 HTML/CSS/JavaScript创建 Web 界面
  • 以 JSON、YAML 和二进制文件等格式序列化数据。

结论

上面的信息可能看起来很复杂。你不必认为你需要学习所有这些才能成为一名程序员。这是错误的。成为一名优秀的程序员需要时间和专业实践。如果您还没有开始编程,我建议您从一些喜欢的项目开始。考虑为开源项目做出贡献。这将帮助您更加适应并向经验丰富的程序员学习。许多程序员喜欢与初学者分享他们的知识。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION