JavaRush /Blog Java /Random-MS /Coffee break #70. Bagaimana untuk menulis kod Java dengan...

Coffee break #70. Bagaimana untuk menulis kod Java dengan lebih cepat dengan Lombok. Senarai latihan untuk pengaturcara pemula

Diterbitkan dalam kumpulan

Cara Mempercepatkan Penulisan Kod Java dengan Lombok

Sumber: Dev.to Kami menulis kod boilerplate yang sama dalam setiap aplikasi. Sebagai contoh:
  • Getters;
  • Setter;
  • Pereka bentuk;
  • Corak reka bentuk pembina;
  • dan banyak lagi…
Alangkah bagusnya jika kerja rutin ini boleh diamanahkan kepada seseorang? Dan di sinilah Lombok boleh membantu kami.Coffee break #70.  Bagaimana untuk menulis kod Java dengan lebih cepat dengan Lombok.  Senarai latihan saya untuk pengaturcara pemula - 1

Apa yang dia buat?

Ia menjana kod bait untuk tugasan biasa ini (getters, setter, dll.) dan meletakkannya ke dalam .class, menjadikannya boleh digunakan dalam kod yang kita tulis.

Bagaimana ini berlaku?

Anda perlu menambah pergantungan Lombok pada binaan Maven anda. Kemudian anda perlu menganotasi kelas yang dikehendaki, medan dengan beberapa anotasi Lombok. Mari lihat kodnya! Tanpa 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);
    }
}
Sekarang mari kita gunakan Lombok:
import lombok.*;
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
@Builder @ToString
public class Human {
    @Setter(AccessLevel.NONE)
    private int id;
    private String name;
    private int ageInYears;
}
Ketergantungan Maven kelihatan seperti ini:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
    <scope>provided</scope>
</dependency>
Nota: Bahagian versi akan berubah bergantung pada keluaran Lombok terkini.

Apa yang telah kita lakukan?

Kami menggunakan anotasi untuk mencipta getter, setter, pembina, corak reka bentuk Builder dan pelaksanaan toString. Kami juga boleh membuat perubahan pada beberapa anotasi, seperti penetap untuk medan id. Kami menetapkan tahap aksesnya kepada Tiada: ini bermakna kami tidak membuat penetap untuknya.

Adakah ia berbaloi untuk dilakukan?

Kami menulis 52 baris semasa kami tidak menggunakan Lombok. Kami menulis 8 baris menggunakan Lombok. Lombok membantu kami mengurangkan saiz kod hampir 4 kali ganda . Skor ini boleh dipertingkatkan jika kita mempunyai lebih banyak pembolehubah dalam bilik darjah kita. Lombok mempunyai lebih banyak anotasi dengan banyak maklumat berguna. Untuk melihatnya, lawati tapak web .

Kesimpulan

Lombok membantu anda menumpukan pada kod perniagaan anda dan tidak bimbang tentang butiran kecil (getters/setters/constructor/corak reka bentuk am dan binaan Java yang lain).

Senarai latihan untuk pengaturcara pemula

Sumber: DZone Kawan saya mempunyai seorang anak lelaki yang akan menamatkan pengajian di sekolah menengah tidak lama lagi. Dia tahu sedikit pengaturcaraan dan tertanya-tanya sama ada dia patut menjadi seorang pengaturcara. Baru-baru ini dia bertanya kepada saya: "Apa yang perlu saya ajar seterusnya?" Coffee break #70.  Bagaimana untuk menulis kod Java dengan lebih cepat dengan Lombok.  Senarai latihan saya untuk pengaturcara pemula - 2Apabila saya mula belajar pengaturcaraan, saya menganggap bahawa jawapan kepada soalan "Apa yang perlu saya pelajari seterusnya" ialah teknologi pengaturcaraan baharu, bahasa baharu, perpustakaan baharu atau sesuatu seperti itu. Semasa saya maju dalam kerjaya saya, saya berubah fikiran. Selain mengasah kemahiran pengaturcaraan anda dan mempelajari bahasa baharu, pengaturcara yang bercita-cita tinggi harus belajar dalam bidang yang berkaitan (saya akan menerangkan perkara ini di bawah). Dalam teks ini, saya ingin mengumpul senarai kemahiran yang saya akan mengesyorkan pengaturcara untuk menguasai. Matlamat saya bukan untuk menyenaraikan semua pengetahuan semasa atau menyediakan pautan ke tutorial. Sebaliknya, saya ingin membantu pemula membiasakan diri dengan set alat, teknik dan kemahiran yang boleh membantu mereka menulis program.

Barisan arahan

Saya rasa saya sudah dianggap "lama" mengikut beberapa piawaian. Pada zaman saya, menggunakan komputer bermakna duduk dalam DOS dan menaip arahan. Banyak yang berubah sejak itu. Adalah sangat penting untuk mempelajari cara menggunakan baris arahan. Banyak alatan hanya menyediakan antara muka baris arahan. Dalam sesetengah kes, anda boleh bekerja lebih cepat pada baris arahan. Anda sepatutnya boleh melakukan perkara asas seperti:
  • Lintasan direktori.
  • Pengurusan fail (salin/pindah/padam).
  • Menyusun dan/atau menjalankan kod sumber.
Jika anda menggunakan Windows, saya akan mengesyorkan membiasakan diri dengan Linux, mungkin menggunakan WSL2 dan bukannya mesin maya penuh. Jika anda menggunakan Mac, anda boleh menggunakan shell terbina dalam OS. Anda juga boleh mendapatkan pengalaman yang baik dengan memasang mesin maya Linux.

Kawalan versi

Anda perlu belajar cara menjejak kod sumber anda menggunakan kawalan versi. Perisian kawalan versi membolehkan anda menjejaki sejarah semakan projek anda, yang boleh menjadi penting untuk penyahpepijatan. Ia juga memudahkan untuk bekerjasama dalam pangkalan kod. GitHub dan GitLab ialah dua tapak popular untuk mengehos projek sumber terbuka. Mereka berdua menggunakan Git (seperti yang saya rasa nama itu mencadangkan). Git ialah alat yang paling popular hari ini, jadi saya akan mengesyorkan agar anda mula menggunakan Git pada baris arahan dengan GitHub atau GitLab sebagai repositori anda.

Rangkaian

Kebanyakan program hari ini memerlukan sekurang-kurangnya beberapa tahap rangkaian. Memahami cara rangkaian berfungsi adalah penting. Sekurang-kurangnya, anda harus memahami asas seperti alamat IP, port dan protokol. Belajar tentang tembok api, pengimbangan beban, proksi akan membuahkan hasil kemudian. Dan bukan hanya dalam kerjaya pengaturcaraan anda. Setuju, adalah bagus untuk memahami soalan "mengapa Wi-Fi tidak berfungsi?" Saya juga akan mengesyorkan mempelajari asas perkhidmatan awan seperti AWS dan Azure. Cuba untuk menyediakan AWS Virtual Private Cloud dengan subnet, peraturan log masuk, get laluan akan memberi anda pengalaman rangkaian.

Menguji

Bahagian penting dalam menulis perisian yang baik ialah mempelajari cara menguji perisian. Ramai di antara kita belajar memprogram dan kemudian "menguji" kod kita. Ujian unit dan penyepaduan ialah kemahiran penting yang boleh digunakan pada hampir mana-mana perisian yang anda kerjakan. Walaupun ujian mungkin kelihatan membosankan pada mulanya, kemahiran ini akan membuahkan hasil dan membolehkan anda bekerja dengan lebih pantas dan lebih yakin.

Integrasi berterusan

Penyepaduan berterusan, atau CI, menggabungkan ujian dan kawalan versi. Setiap kali anda membuat lelaran kod baharu, anda mempunyai satu set ujian yang dijalankan secara automatik. Alat CI telah bertambah baik dengan ketara sepanjang 10 tahun yang lalu. GitHub dan GitLab mempunyai penyelesaian CI terbina dalam (GitHub Actions dan GitLab CI, masing-masing) dan mudah untuk dimulakan. Seperti ujian, memulakan CI akan menjadi sukar. Tetapi sebaik sahaja anda mempelajari asasnya, anda akan menemui masalah dengan lebih mudah dan lebih cepat. Saya akan mengesyorkan mencari tutorial terperinci dengan contoh untuk bahasa pengaturcaraan yang anda gunakan.

Kemahiran Menulis

Ini mungkin bidang yang paling saya pandang rendah semasa saya mula bekerja sebagai pengaturcara. Saya tidak keterlaluan: Saya kini percaya bahawa kemahiran paling penting yang boleh ditambah oleh pengaturcara pada senjata mereka ialah menulis. Kemahiran menulis yang baik bermakna anda boleh menerangkan idea dengan jelas menggunakan bilangan perkataan yang minimum. Apabila anda belajar memprogram, anda biasanya bekerja sendiri, jadi menulis tidak perlu. Tetapi apabila anda mula bekerja dalam pasukan, anda perlu menulis:
  • Dokumentasi;
  • Laporan pepijat;
  • Permintaan ciri;
  • Cadangan pelanggan;
  • Dokumen dengan keperluan;
  • E-mel (banyak e-mel!);
  • Mesej teks;
  • Catatan blog (mungkin);
Belajar menulis. Senaman. Ambil kursus menulis. Ia akan membayar dividen sepanjang hayat anda. Juga: belajar membaca dengan baik. Apabila saya mula-mula memulakan pembangunan profesional, saya takut dengan dokumen keperluan. Saya kini menyedari bahawa mengambil beberapa jam untuk mengkaji maklumat ini dengan teliti akan menjimatkan berbulan-bulan anda terbuang untuk membina perkara yang salah.

Bahasa pengaturcaraan lain

Pada masa kini, tidak cukup untuk mengetahui hanya satu bahasa pengaturcaraan. Hampir setiap pengaturcara harus mengetahui sekurang-kurangnya beberapa. Adalah penting untuk mempelajari bahasa lain untuk mempelajari teknik baru. Saya mengesyorkan mempelajari beberapa kategori bahasa yang berbeza. Dalam urutan keutamaan menurun: Pengaturcaraan fungsional. Kebanyakan sekolah masih tidak mengajar pengaturcaraan berfungsi (FP). FP ialah pendekatan berkuasa yang memudahkan penulisan pelbagai jenis kod. Saya berat sebelah, tetapi saya akan mengesyorkan Haskell sebagai bahasa terbaik untuk dipelajari kerana ia akan membantu anda memahami FP lebih baik daripada banyak bahasa lain. Ia juga berguna untuk mempelajari bahasa daripada keluarga LISP. Mempelajari pengaturcaraan berfungsi akan membantu anda menulis kod yang lebih baik dalam hampir semua bahasa. Pengaturcaraan Sistem. Bahasa sistem tergolong pada tahap yang lebih rendah dan membenarkan kawalan yang lebih baik ke atas pengendalian program. Dengan mempelajarinya, anda akan mempelajari cara program ini berfungsi pada sistem, yang boleh menjadi sangat berguna untuk memahami dan menyahpepijat masalah dalam bahasa lain. Saya cadangkan belajar Rust, kemudian C dan C++. Bahasa berorientasikan objek. Java dan C# ialah dua bahasa berorientasikan objek yang paling popular dalam keluarga ini. (Ya, Python dan C++ juga popular, tetapi saya akan menyerlahkannya secara berasingan). OOP memperkenalkan banyak paradigma baharu dan mungkin masih merupakan pendekatan pengaturcaraan yang paling popular, walaupun saya secara peribadi lebih suka pendekatan pengaturcaraan berfungsi. Walau bagaimanapun, terdapat banyak perkara yang perlu dipelajari daripada pengaturcaraan berorientasikan objek, dan kemungkinan besar anda akan menulis kod berorientasikan objek dalam kerjaya anda. Penulisan skrip. Python dan Ruby ialah dua bahasa skrip popular dalam keluarga aplikasi berorientasikan objek. Khususnya, Python digunakan secara meluas dalam bidang berkaitan seperti DevOps dan sains data. Selain itu, ia adalah bahasa mudah yang agak mudah untuk dimulakan.

Kaedah Pengaturcaraan

Tidak kira apa bahasa pengaturcaraan yang anda gunakan, anda perlu membiasakan diri dengan beberapa teknik tambahan yang melampaui bahasa khusus anda, termasuk:
  • pengaturcaraan pangkalan data. Saya sangat mengesyorkan belajar SQL. SQLite dan PostgreSQL ialah dua DBMS sumber terbuka untuk diterokai.
  • Paralelisme dan pengaturcaraan tak segerak. Ini menjadi semakin penting hari ini.
  • Pengaturcaraan rangkaian , terutamanya mencipta pelayan HTTP dan pelanggan.
  • Mencipta antara muka web menggunakan HTML/CSS/JavaScript.
  • Mensiri data dalam format seperti JSON, YAML dan fail binari.

Kesimpulan

Maklumat di atas mungkin kelihatan rumit. Anda tidak perlu berfikir bahawa anda perlu mempelajari semua ini untuk menjadi seorang pengaturcara. Ini adalah salah. Menjadi seorang pengaturcara yang hebat memerlukan masa dan amalan profesional. Jika anda belum memulakan pengaturcaraan lagi, saya akan mengesyorkan bermula dengan beberapa projek haiwan kesayangan. Pertimbangkan untuk menyumbang kepada projek sumber terbuka. Ini akan membantu anda berasa selesa dan belajar daripada pengkod yang berpengalaman. Ramai pengaturcara suka berkongsi pengetahuan mereka dengan pemula.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION