JavaRush /จาวาบล็อก /Random-TH /คอฟฟี่เบรค #70. วิธีเขียนโค้ด Java ให้เร็วขึ้นด้วยลอมบอก ...

คอฟฟี่เบรค #70. วิธีเขียนโค้ด Java ให้เร็วขึ้นด้วยลอมบอก รายการฝึกอบรมสำหรับโปรแกรมเมอร์มือใหม่

เผยแพร่ในกลุ่ม

วิธีเร่งความเร็วในการเขียนโค้ด Java ด้วยลอมบอก

ที่มา: Dev.to เราเขียนโค้ดสำเร็จรูปเดียวกันในทุกแอปพลิเคชัน ตัวอย่างเช่น:
  • รับ;
  • ผู้ตั้งค่า;
  • นักออกแบบ;
  • รูปแบบการออกแบบของผู้สร้าง
  • และอีกมากมาย…
จะดีกว่าไหมถ้างานประจำนี้สามารถฝากไว้กับใครสักคนได้? และนี่คือจุดที่ลอมบอกสามารถช่วยเราได้คอฟฟี่เบรค #70.  วิธีเขียนโค้ด Java ให้เร็วขึ้นด้วยลอมบอก  รายการฝึกอบรมของฉันสำหรับโปรแกรมเมอร์มือใหม่ - 1

เขากำลังทำอะไร?

โดยจะสร้างโค้ดไบต์สำหรับงานทั่วไปเหล่านี้ (getters, setters ฯลฯ) และจัดเก็บไว้ใน .class ทำให้สามารถใช้งานได้ในโค้ดที่เราเขียน

สิ่งนี้เกิดขึ้นได้อย่างไร?

คุณต้องเพิ่มการพึ่งพาลอมบอกให้กับ Maven build ของคุณ จากนั้นคุณจะต้องใส่คำอธิบายประกอบให้กับคลาสที่ต้องการ ฟิลด์ที่มีคำอธิบายประกอบของลอมบอก มาดูโค้ดกันดีกว่า! หากไม่มีลอมบอก:
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>
หมายเหตุ: ส่วนของเวอร์ชันจะเปลี่ยนแปลงขึ้นอยู่กับรุ่นล่าสุดของลอมบอก

เราทำอะไรไปแล้วบ้าง?

เราใช้คำอธิบายประกอบเพื่อสร้าง getters, setters, Constructor, รูปแบบการออกแบบ Builder และการใช้งาน toString นอกจากนี้เรายังสามารถเปลี่ยนแปลงคำอธิบายประกอบบางอย่างได้ เช่น ตัวตั้งค่าสำหรับช่องรหัส เราตั้งค่าระดับการเข้าถึงเป็นไม่มี ซึ่งหมายความว่าเราไม่ได้สร้างผู้ตั้งค่าให้

มันคุ้มค่าที่จะทำไหม?

เราเขียน52 บรรทัดเมื่อเราไม่ได้ใช้ลอมบอก เราเขียน8 บรรทัดโดยใช้ลอมบอก ลอมบอกช่วยให้ เราลดขนาดโค้ดได้เกือบ 4 เท่า คะแนนนี้สามารถปรับปรุงได้หากเรามีตัวแปรมากขึ้นในห้องเรียนของเรา ลอมบอกมีคำอธิบายประกอบพร้อมข้อมูลที่เป็นประโยชน์มากมาย หากต้องการดู โปรดไปที่เว็บไซต์

บทสรุป

Lombok ช่วยให้คุณมุ่งเน้นไปที่รหัสธุรกิจของคุณ และไม่ต้องกังวลกับรายละเอียดเล็กๆ น้อยๆ (getters/setters/constructors/รูปแบบการออกแบบทั่วไป และโครงสร้าง Java อื่นๆ)

รายการฝึกอบรมสำหรับโปรแกรมเมอร์มือใหม่

ที่มา: DZone เพื่อนของฉันมีลูกชายคนหนึ่งซึ่งจะจบมัธยมปลายเร็วๆ นี้ เขารู้การเขียนโปรแกรมเพียงเล็กน้อยและกำลังสงสัยว่าเขาควรจะเป็นโปรแกรมเมอร์หรือไม่ เมื่อเร็วๆ นี้เขาถามฉันว่า “ฉันควรสอนอะไรต่อไป” คอฟฟี่เบรค #70.  วิธีเขียนโค้ด Java ให้เร็วขึ้นด้วยลอมบอก  รายการฝึกอบรมของฉันสำหรับโปรแกรมเมอร์มือใหม่ - 2เมื่อฉันเริ่มเรียนการเขียนโปรแกรม ฉันคิดว่าคำตอบของคำถาม “ฉันควรเรียนรู้อะไรต่อไป” น่าจะเป็นเทคโนโลยีการเขียนโปรแกรมใหม่ ภาษาใหม่ ห้องสมุดใหม่ หรืออะไรทำนองนั้น เมื่อฉันก้าวหน้าในอาชีพการงาน ฉันก็เปลี่ยนใจ นอกเหนือจากการฝึกฝนทักษะการเขียนโปรแกรมและการเรียนรู้ภาษาใหม่แล้ว โปรแกรมเมอร์ที่ต้องการควรศึกษาในสาขาที่เกี่ยวข้อง (ฉันจะอธิบายสิ่งนี้ด้านล่าง) ในบทความนี้ ฉันต้องการรวบรวมรายการทักษะที่ฉันอยากจะแนะนำให้โปรแกรมเมอร์เป็นผู้เชี่ยวชาญ เป้าหมายของฉันไม่ใช่การแสดงรายการความรู้ปัจจุบันทั้งหมดหรือให้ลิงก์ไปยังบทช่วยสอน แต่ฉันอยากช่วยให้มือใหม่คุ้นเคยกับชุดเครื่องมือ เทคนิค และทักษะที่สามารถช่วยพวกเขาในการเขียนโปรแกรมได้

บรรทัดคำสั่ง

ฉันเดาว่าฉันถือว่า "เก่า" ตามมาตรฐานบางอย่างแล้ว ในยุคสมัยของฉัน การใช้คอมพิวเตอร์หมายถึงการนั่งอยู่บน DOS และพิมพ์คำสั่ง มีการเปลี่ยนแปลงมากมายตั้งแต่นั้นมา การเรียนรู้วิธีใช้บรรทัดคำสั่งเป็นสิ่งสำคัญมาก เครื่องมือจำนวนมากมีเฉพาะอินเทอร์เฟซบรรทัดคำสั่งเท่านั้น ในบางกรณี คุณสามารถทำงานบนบรรทัดคำสั่งได้เร็วขึ้น คุณควรจะทำสิ่งพื้นฐานได้ เช่น:
  • การข้ามผ่านไดเรกทอรี
  • การจัดการไฟล์ (คัดลอก/ย้าย/ลบ)
  • การคอมไพล์และ/หรือการรันซอร์สโค้ด
หากคุณใช้ Windows ฉันขอแนะนำให้ทำความคุ้นเคยกับ Linux อาจใช้ WSL2 แทนเครื่องเสมือนเต็มรูปแบบ หากคุณใช้ Mac คุณสามารถใช้เชลล์ที่มีอยู่ในระบบปฏิบัติการได้ คุณยังสามารถรับประสบการณ์ที่ดีได้ด้วยการติดตั้งเครื่องเสมือน Linux

การควบคุมเวอร์ชัน

คุณจำเป็นต้องเรียนรู้วิธีติดตามซอร์สโค้ดของคุณโดยใช้การควบคุมเวอร์ชัน ซอฟต์แวร์ควบคุมเวอร์ชันช่วยให้คุณติดตามประวัติการแก้ไขของโปรเจ็กต์ของคุณ ซึ่งอาจมีความสำคัญสำหรับการแก้ไขจุดบกพร่อง นอกจากนี้ยังทำให้การทำงานร่วมกันบนโค้ดเบสง่ายขึ้นอีกด้วย GitHubและGitLabเป็นไซต์ยอดนิยมสองแห่งสำหรับการโฮสต์โครงการโอเพ่นซอร์ส พวกเขาทั้งคู่ใช้ Git (ตามที่ฉันเดาชื่อที่แนะนำ) Git เป็นเครื่องมือที่ได้รับความนิยมมากที่สุดในปัจจุบัน ดังนั้นฉันขอแนะนำให้ลองใช้ Git บนบรรทัดคำสั่งโดยมี GitHub หรือ GitLab เป็นพื้นที่เก็บข้อมูลของคุณ

เครือข่าย

โปรแกรมส่วนใหญ่ในปัจจุบันต้องการระบบเครือข่ายอย่างน้อยระดับหนึ่ง การทำความเข้าใจวิธีการทำงานของเครือข่ายเป็นสิ่งสำคัญ อย่างน้อยที่สุด คุณควรเข้าใจพื้นฐาน เช่น ที่อยู่ IP พอร์ต และโปรโตคอล การเรียนรู้เกี่ยวกับไฟร์วอลล์ การทำโหลดบาลานซ์ และพร็อกซีจะมีประโยชน์ในภายหลัง และไม่ใช่แค่ในอาชีพการเขียนโปรแกรมของคุณเท่านั้น เห็นด้วย เป็นการดีที่จะเข้าใจคำถามที่ว่า "ทำไม Wi-Fi ใช้งานไม่ได้" ฉันอยากจะแนะนำให้เรียนรู้พื้นฐานของบริการคลาวด์เช่น AWS และ Azure การพยายามตั้งค่า AWS Virtual Private Cloud ด้วยซับเน็ต กฎการเข้าสู่ระบบ เกตเวย์จะทำให้คุณได้รับประสบการณ์เครือข่าย

การทดสอบ

ส่วนสำคัญของการเขียนซอฟต์แวร์ที่ดีคือการเรียนรู้วิธีทดสอบซอฟต์แวร์ พวกเราหลายคนเรียนรู้ที่จะเขียนโปรแกรมแล้วจึง "ทดสอบ" รหัสของเรา การทดสอบหน่วยและบูรณาการเป็นทักษะสำคัญที่สามารถนำไปใช้กับซอฟต์แวร์เกือบทุกชนิดที่คุณทำงานอยู่ แม้ว่าการทดสอบอาจดูน่าเบื่อในช่วงแรก แต่ทักษะนี้จะให้ผลดีและช่วยให้คุณทำงานได้เร็วขึ้นและมีความมั่นใจมากขึ้น

การบูรณาการอย่างต่อเนื่อง

การบูรณาการอย่างต่อเนื่องหรือ CI ผสมผสานการทดสอบและการควบคุมเวอร์ชัน ทุกครั้งที่คุณสร้างโค้ดซ้ำ คุณจะมีชุดการทดสอบที่ทำงานโดยอัตโนมัติ เครื่องมือ CI ได้รับการปรับปรุงอย่างมีนัยสำคัญในช่วง 10 ปีที่ผ่านมา GitHub และ GitLab มีโซลูชัน CI ในตัว (GitHub Actions และ GitLab CI ตามลำดับ) และเริ่มต้นได้ง่าย เช่นเดียวกับการทดสอบ การเริ่มต้นใช้งาน CI จะเป็นเรื่องยาก แต่เมื่อคุณเรียนรู้พื้นฐานแล้ว คุณจะพบปัญหาได้ง่ายและรวดเร็วยิ่งขึ้น ฉันขอแนะนำให้มองหาบทช่วยสอนโดยละเอียดพร้อมตัวอย่างสำหรับภาษาการเขียนโปรแกรมที่คุณใช้

ทักษะการเขียน

นี่อาจเป็นด้านที่ฉันประมาทที่สุดเมื่อเริ่มทำงานเป็นโปรแกรมเมอร์ ฉันไม่ได้พูดเกินจริง: ตอนนี้ฉันเชื่อว่าทักษะที่สำคัญที่สุดที่โปรแกรมเมอร์สามารถเพิ่มลงในคลังแสงของพวกเขาคือการเขียน ทักษะการเขียนที่ดีหมายความว่าคุณสามารถอธิบายแนวคิดได้อย่างชัดเจนโดยใช้จำนวนคำขั้นต่ำ เมื่อคุณเรียนเขียนโปรแกรม คุณมักจะทำงานด้วยตัวเอง ดังนั้นจึงไม่จำเป็นต้องเขียน แต่เมื่อคุณเริ่มทำงานเป็นทีม คุณจะต้องเขียนว่า:
  • เอกสาร;
  • รายงานข้อผิดพลาด;
  • คำขอคุณลักษณะ
  • ข้อเสนอแนะของลูกค้า
  • เอกสารที่มีข้อกำหนด
  • อีเมล (อีเมลจำนวนมาก!);
  • ข้อความ;
  • โพสต์ในบล็อก (อาจเป็นไปได้);
เรียนรู้การเขียน ออกกำลังกาย. เรียนหลักสูตรการเขียน. ก็จะจ่ายปันผลไปตลอดชีวิต นอกจากนี้: เรียนรู้ที่จะอ่านให้ดี เมื่อฉันเริ่มการพัฒนาทางวิชาชีพเป็นครั้งแรก ฉันรู้สึกหวาดกลัวกับเอกสารข้อกำหนด ตอนนี้ฉันรู้แล้วว่าการใช้เวลาสองสามชั่วโมงในการศึกษาข้อมูลนี้อย่างรอบคอบจะช่วยคุณประหยัดเวลาหลายเดือนในการสร้างสิ่งที่ไม่ถูกต้อง

ภาษาโปรแกรมอื่นๆ

ปัจจุบันการรู้ภาษาโปรแกรมเพียงภาษาเดียวนั้นไม่เพียงพอ Programmer เกือบทุกคนควรรู้อย่างน้อยสองสามอย่าง สิ่งสำคัญคือต้องศึกษาภาษาอื่นเพื่อเรียนรู้เทคนิคใหม่ๆ ฉันแนะนำให้เรียนรู้ภาษาประเภทต่างๆ สองสามประเภท ตามลำดับความสำคัญจากมากไปหาน้อย: การโปรแกรมเชิงฟังก์ชัน โรงเรียนส่วนใหญ่ยังไม่สอน Functional Programming (FP) FP เป็นแนวทางอันทรงพลังที่ทำให้การเขียนโค้ดหลายประเภทง่ายขึ้น ฉันมีอคติ แต่ฉันอยากจะแนะนำ Haskell เป็นภาษาที่ดีที่สุดในการเรียนรู้ เพราะจะช่วยให้คุณเข้าใจ FP ได้ดีกว่าภาษาอื่นๆ มากมาย นอกจากนี้ยังเป็นประโยชน์ในการเรียนรู้ภาษาจากตระกูล LISP การเรียนรู้ Functional Programming จะช่วยให้คุณเขียนโค้ดได้ดีขึ้นในเกือบทุกภาษา การเขียนโปรแกรมระบบ ภาษาของระบบอยู่ในระดับที่ต่ำกว่าและช่วยให้ควบคุมการทำงานของโปรแกรมได้ดีขึ้น โดยการศึกษาสิ่งเหล่านี้ คุณจะได้เรียนรู้ว่าโปรแกรมทำงานบนระบบอย่างไร ซึ่งมีประโยชน์มากในการทำความเข้าใจและแก้ไขปัญหาในภาษาอื่น ฉันแนะนำให้เรียนรู้ Rust จากนั้นจึงใช้ C และ C++ ภาษาเชิงวัตถุ Java และ C# เป็นสองภาษาเชิงวัตถุที่ได้รับความนิยมมากที่สุดในตระกูลนี้ (ใช่ Python และ C++ ก็ได้รับความนิยมเช่นกัน แต่ฉันจะเน้นแยกกัน) OOP นำเสนอกระบวนทัศน์ใหม่ๆ มากมาย และอาจยังคงเป็นวิธีการเขียนโปรแกรมที่ได้รับความนิยมมากที่สุด แม้ว่าโดยส่วนตัวแล้วฉันจะชอบวิธีการเขียนโปรแกรมเชิงฟังก์ชันมากกว่าก็ตาม อย่างไรก็ตาม ยังมีอะไรอีกมากมายให้เรียนรู้จากการเขียนโปรแกรมเชิงวัตถุ และมีโอกาสที่คุณจะลงเอยด้วยการเขียนโค้ดเชิงวัตถุในอาชีพของคุณ การเขียนสคริปต์ Python และ Ruby เป็นภาษาสคริปต์ยอดนิยมสองภาษาในตระกูลแอปพลิเคชันเชิงวัตถุ โดยเฉพาะอย่างยิ่ง Python ถูกใช้กันอย่างแพร่หลายในสาขาที่เกี่ยวข้อง เช่น DevOps และวิทยาศาสตร์ข้อมูล นอกจากนี้ยังเป็นภาษาง่ายๆ ที่เริ่มต้นได้ง่ายอีกด้วย

วิธีการเขียนโปรแกรม

ไม่ว่าคุณจะใช้ภาษาการเขียนโปรแกรมใดก็ตาม คุณควรทำความคุ้นเคยกับเทคนิคเพิ่มเติมบางอย่างที่นอกเหนือไปจากภาษาเฉพาะของคุณ รวมถึง:
  • การเขียนโปรแกรมฐานข้อมูล ฉันขอแนะนำให้เรียนรู้ SQL เป็นอย่างยิ่ง SQLite และ PostgreSQL เป็น DBMS โอเพ่นซอร์สสองตัวที่น่าสำรวจ
  • การเขียนโปรแกรมแบบขนานและแบบอะซิงโครนัส สิ่งนี้เริ่มมีความสำคัญมากขึ้นในปัจจุบัน
  • การเขียนโปรแกรมเครือข่ายโดยเฉพาะการสร้างเซิร์ฟเวอร์และไคลเอนต์ HTTP
  • การสร้างเว็บอินเตอร์เฟสโดยใช้ HTML/CSS/JavaScript
  • ทำให้ข้อมูลเป็นอนุกรมในรูปแบบต่างๆ เช่น JSON, YAML และไฟล์ไบนารี

บทสรุป

ข้อมูลข้างต้นอาจดูซับซ้อน คุณไม่จำเป็นต้องคิดว่าจำเป็นต้องเรียนรู้ทั้งหมดนี้เพื่อที่จะเป็นโปรแกรมเมอร์ นี่เป็นสิ่งที่ผิด การเป็นโปรแกรมเมอร์ที่ยอดเยี่ยมต้องใช้เวลาและการฝึกฝนอย่างมืออาชีพ หากคุณยังไม่ได้เริ่มเขียนโปรแกรม ฉันขอแนะนำให้เริ่มต้นด้วยโปรเจ็กต์สัตว์เลี้ยงบางรายการ พิจารณามีส่วนร่วมในโครงการ Open Source ซึ่งจะช่วยให้คุณรู้สึกสบายใจและเรียนรู้จากผู้เขียนโค้ดที่มีประสบการณ์ โปรแกรมเมอร์หลายคนชอบแบ่งปันความรู้กับผู้เริ่มต้น
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION