JavaRush /Java Blog /Random-TW /喝咖啡休息#70。如何使用 Lombok 更快地編寫 Java 程式碼。初級程式設計師培訓清單

喝咖啡休息#70。如何使用 Lombok 更快地編寫 Java 程式碼。初級程式設計師培訓清單

在 Random-TW 群組發布

如何使用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