JavaRush /Java Blog /Random-TL /Coffee break #70. Paano sumulat ng Java code nang mas mab...

Coffee break #70. Paano sumulat ng Java code nang mas mabilis sa Lombok. Listahan ng pagsasanay para sa mga baguhan na programmer

Nai-publish sa grupo

Paano Pabilisin ang Pagsusulat ng Java Code sa Lombok

Source: Dev.to Sinusulat namin ang parehong boilerplate code sa bawat application. Halimbawa:
  • Getters;
  • Setters;
  • Mga taga-disenyo;
  • Pattern ng disenyo ng tagabuo;
  • at marami pang iba…
Hindi ba't mas maganda kung ang nakagawiang gawaing ito ay maaaring ipagkatiwala sa isang tao? At dito tayo matutulungan ng Lombok.Coffee break #70.  Paano sumulat ng Java code nang mas mabilis sa Lombok.  Aking listahan ng pagsasanay para sa mga baguhan na programmer - 1

Ano ang ginagawa niya?

Bumubuo ito ng byte code para sa mga karaniwang gawaing ito (getters, setter, atbp.) at inilalagay ang mga ito sa isang .class, na ginagawang magagamit ang mga ito sa code na isinusulat namin.

Paano ito nangyayari?

Kailangan mong idagdag ang Lombok dependency sa iyong Maven build. Pagkatapos ay kailangan mong i-annotate ang mga gustong klase, mga field na may ilang anotasyon sa Lombok. Tingnan natin ang code! Nang walang 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);
    }
}
Ngayon gamitin natin ang Lombok:
import lombok.*;
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
@Builder @ToString
public class Human {
    @Setter(AccessLevel.NONE)
    private int id;
    private String name;
    private int ageInYears;
}
Ang Maven dependency ay ganito ang hitsura:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
    <scope>provided</scope>
</dependency>
Tandaan: Magbabago ang bahagi ng bersyon depende sa pinakabagong release ng Lombok.

Ano'ng nagawa natin?

Gumamit kami ng mga anotasyon upang lumikha ng mga getter, setter, constructor, pattern ng disenyo ng Builder, at pagpapatupad ng toString. Maaari rin kaming gumawa ng mga pagbabago sa ilang anotasyon, gaya ng setter para sa field ng id. Itinakda namin ang antas ng access nito sa Wala: nangangahulugan ito na hindi kami gumagawa ng setter para dito.

Ito ba ay nagkakahalaga ng paggawa?

Sumulat kami ng 52 linya noong hindi namin ginagamit ang Lombok. Sumulat kami ng 8 linya gamit ang Lombok. Tinulungan kami ng Lombok na bawasan ang laki ng code ng halos 4 na beses . Mapapabuti ang markang ito kung marami tayong variable sa ating mga silid-aralan. Ang Lombok ay may mas maraming anotasyon na may maraming kapaki-pakinabang na impormasyon. Upang tingnan ang mga ito, bisitahin ang website .

Konklusyon

Tinutulungan ka ng Lombok na tumuon sa iyong business code at huwag mag-alala tungkol sa maliliit na detalye (getters/setters/constructor/general design patterns at iba pang Java constructs).

Listahan ng pagsasanay para sa mga baguhan na programmer

Source: DZone My friend has a son who will soon graduate from high school. Alam niya ang kaunting programming at iniisip niya kung dapat ba siyang maging programmer. Kamakailan ay tinanong niya ako: “Ano ang susunod kong ituturo?” Coffee break #70.  Paano sumulat ng Java code nang mas mabilis sa Lombok.  Aking listahan ng pagsasanay para sa mga baguhan na programmer - 2Noong una kong sinimulan ang pag-aaral ng programming, ipinapalagay ko na ang sagot sa tanong na "Ano ang susunod kong matututunan" ay isang bagong teknolohiya ng programming, isang bagong wika, isang bagong library, o isang bagay na katulad nito. Habang umuunlad ako sa aking karera, nagbago ang isip ko. Bilang karagdagan sa pagpapahusay sa iyong mga kasanayan sa programming at pag-aaral ng mga bagong wika, ang mga naghahangad na programmer ay dapat mag-aral sa mga kaugnay na larangan (ipapaliwanag ko ito sa ibaba). Sa tekstong ito, gusto kong mangolekta ng isang listahan ng mga kasanayan na irerekomenda ko sa mga programmer na makabisado. Ang layunin ko ay hindi ilista ang lahat ng kasalukuyang kaalaman o magbigay ng mga link sa mga tutorial. Sa halip, gusto kong tulungan ang mga baguhan na maging pamilyar sa isang hanay ng mga tool, diskarte, at kasanayan na makakatulong sa kanila na magsulat ng mga programa.

Command line

Sa palagay ko ay itinuturing na akong "luma" sa ilang mga pamantayan. Sa aking panahon, ang paggamit ng isang computer ay nangangahulugan ng pag-upo sa DOS at pag-type ng mga utos. Maraming nagbago mula noon. Napakahalagang matutunan kung paano gamitin ang command line. Maraming mga tool ang nagbibigay lamang ng interface ng command line. Sa ilang mga kaso, maaari kang magtrabaho nang mas mabilis sa command line. Dapat mong magawa ang mga pangunahing bagay tulad ng:
  • Paglalakbay sa direktoryo.
  • Pamamahala ng file (kopyahin/ilipat/tanggalin).
  • Pag-compile at/o pagpapatakbo ng source code.
Kung nasa Windows ka, inirerekumenda kong maging pamilyar ka sa Linux, marahil gamit ang WSL2 sa halip na isang buong virtual machine. Kung gumagamit ka ng Mac, maaari mong gamitin ang shell na nakapaloob sa OS. Maaari ka ring makakuha ng magandang karanasan sa pamamagitan ng pag-install ng Linux virtual machine.

Kontrol ng bersyon

Kailangan mong matutunan kung paano subaybayan ang iyong source code gamit ang version control. Binibigyang-daan ka ng version control software na subaybayan ang kasaysayan ng rebisyon ng iyong proyekto, na maaaring maging mahalaga para sa pag-debug. Pinapadali din nito ang pakikipagtulungan sa codebase. Ang GitHub at GitLab ay dalawang sikat na site para sa pagho-host ng mga open source na proyekto. Pareho silang gumagamit ng Git (tulad ng iminumungkahi ko ang mga pangalan). Ang Git ay ang pinakasikat na tool sa mga araw na ito, kaya inirerekumenda kong kunin ang paggamit ng Git sa command line gamit ang GitHub o GitLab bilang iyong imbakan.

Mga network

Karamihan sa mga programa ngayon ay nangangailangan ng hindi bababa sa ilang antas ng networking. Ang pag-unawa sa kung paano gumagana ang mga network ay mahalaga. Hindi bababa sa, dapat mong maunawaan ang mga pangunahing kaalaman tulad ng mga IP address, port, at protocol. Ang pag-aaral tungkol sa mga firewall, pagbabalanse ng load, mga proxy ay magbabayad sa susunod. At hindi lang sa iyong programming career. Sumang-ayon, magandang maunawaan ang tanong na "bakit hindi gumagana ang Wi-Fi?" Inirerekomenda ko rin ang pag-aaral ng mga pangunahing kaalaman ng mga serbisyo sa cloud tulad ng AWS at Azure. Ang pagsubok na mag-set up ng AWS Virtual Private Cloud na may mga subnet, mga panuntunan sa pag-login, mga gateway ay magbibigay sa iyo ng karanasan sa networking.

Pagsubok

Isang mahalagang bahagi ng pagsulat ng magandang software ay ang pag-aaral kung paano subukan ang software. Marami sa atin ang natututong mag-program at pagkatapos ay "subukan" ang ating code. Ang pagsubok sa unit at integration ay mahahalagang kasanayan na maaaring ilapat sa halos anumang software na pinagtatrabahuhan mo. Bagama't tila nakakapagod ang pagsubok sa simula, ang kasanayang ito ay magbabayad at magbibigay-daan sa iyong magtrabaho nang mas mabilis at may higit na kumpiyansa.

Patuloy na integrasyon

Pinagsasama ng patuloy na pagsasama, o CI, ang pagsubok at kontrol sa bersyon. Sa tuwing gagawa ka ng bagong pag-ulit ng code, mayroon kang isang hanay ng mga pagsubok na awtomatikong tumatakbo. Malaki ang pagbuti ng mga tool ng CI sa nakalipas na 10 taon. Ang GitHub at GitLab ay may mga built-in na solusyon sa CI (GitHub Actions at GitLab CI, ayon sa pagkakabanggit) at madaling simulan. Tulad ng pagsubok, ang pagsisimula sa CI ay magiging mahirap. Ngunit kapag natutunan mo ang mga pangunahing kaalaman, mas madali at mas mabilis kang makakahanap ng mga problema. Inirerekumenda kong maghanap ng isang detalyadong tutorial na may mga halimbawa para sa programming language na iyong ginagamit.

Kasanayan sa pagsulat

Ito marahil ang lugar na pinaka-underestimated ko noong nagsimula akong magtrabaho bilang isang programmer. Hindi ako nagpapalaki: Naniniwala na ako ngayon na ang pinakamahalagang kasanayan na maidaragdag ng programmer sa kanilang arsenal ay ang pagsusulat. Ang ibig sabihin ng mahusay na mga kasanayan sa pagsulat ay malinaw mong maipaliwanag ang isang ideya gamit ang pinakamababang bilang ng mga salita. Kapag natuto kang magprograma, kadalasan ay gumagawa ka nang mag-isa, kaya hindi na kailangan ang pagsusulat. Ngunit kapag nagsimula kang magtrabaho sa mga koponan, kakailanganin mong isulat:
  • Dokumentasyon;
  • Mga ulat ng bug;
  • Mga kahilingan sa tampok;
  • Mga suhestiyon sa customer;
  • Mga dokumento na may mga kinakailangan;
  • Mga email (maraming email!);
  • Mga text message;
  • Mga post sa blog (maaaring);
Matutong magsulat. Mag-ehersisyo. Kumuha ng kursong pagsulat. Magbabayad ito ng mga dibidendo para sa natitirang bahagi ng iyong buhay. Gayundin: matutong magbasa nang mabuti. Noong una akong nagsimula ng propesyonal na pag-unlad, natakot ako sa mga dokumento ng kinakailangan. Napagtanto ko na ngayon na ang paglalaan ng ilang oras upang maingat na pag-aralan ang impormasyong ito ay magliligtas sa iyo ng mga buwan ng nasayang na paggawa ng maling bagay.

Iba pang mga programming language

Sa panahon ngayon, hindi sapat na malaman lamang ang isang programming language. Halos bawat programmer ay dapat na may alam ng kahit ilan. Mahalagang pag-aralan ang iba pang mga wika upang matuto ng mga bagong pamamaraan. Inirerekomenda ko ang pag-aaral ng ilang iba't ibang kategorya ng mga wika. Sa pababang pagkakasunud-sunod ng priyoridad: Functional programming. Karamihan sa mga paaralan ay hindi pa rin nagtuturo ng functional programming (FP). Ang FP ay isang mahusay na diskarte na nagpapadali sa pagsulat ng maraming uri ng code. Ako ay may kinikilingan, ngunit inirerekumenda ko ang Haskell bilang ang pinakamahusay na wika upang matutunan dahil makakatulong ito sa iyong maunawaan ang FP nang mas mahusay kaysa sa maraming iba pang mga wika. Kapaki-pakinabang din na matuto ng wika mula sa pamilyang LISP. Ang pag-aaral ng functional programming ay makakatulong sa iyo na magsulat ng mas mahusay na code sa halos anumang wika. System Programming. Ang mga wika ng system ay nabibilang sa isang mas mababang antas at nagbibigay-daan sa mas mahusay na kontrol sa pagpapatakbo ng programa. Sa pamamagitan ng pag-aaral sa mga ito, matututunan mo kung paano gumagana ang programa sa system, na maaaring maging lubhang kapaki-pakinabang para sa pag-unawa at pag-debug ng mga problema sa ibang mga wika. Inirerekomenda ko ang pag-aaral ng Rust, pagkatapos ay C at C++. Mga wikang nakatuon sa bagay. Ang Java at C# ay ang dalawang pinakasikat na object-oriented na wika sa pamilyang ito. (Oo, sikat din ang Python at C++, ngunit iha-highlight ko sila nang hiwalay). Ang OOP ay nagpakilala ng maraming bagong paradigms at marahil ito pa rin ang pinakasikat na diskarte sa programming, kahit na personal kong mas gusto ang mga functional na diskarte sa programming. Gayunpaman, maraming matututunan mula sa object-oriented na programming, at malamang na magtatapos ka sa pagsusulat ng object-oriented na code sa iyong karera. Pagsulat ng iskrip. Ang Python at Ruby ay dalawang sikat na scripting language sa pamilya ng mga object-oriented na application. Sa partikular, ang Python ay malawakang ginagamit sa mga kaugnay na larangan tulad ng DevOps at data science. Bukod pa rito, ito ay isang simpleng wika na medyo madaling simulan.

Mga Paraan ng Programming

Kahit anong programming language ang ginagamit mo, sulit na maging pamilyar ka sa ilang karagdagang diskarte na higit pa sa iyong partikular na wika, kabilang ang:
  • Pagprograma ng database. Lubos kong inirerekumenda ang pag-aaral ng SQL. Ang SQLite at PostgreSQL ay dalawang open source na DBMS upang galugarin.
  • Paralelismo at asynchronous na programming. Ito ay nagiging lalong mahalaga ngayon.
  • Network programming , lalo na ang paglikha ng mga HTTP server at kliyente.
  • Paglikha ng web interface gamit ang HTML/CSS/JavaScript.
  • I-serialize ang data sa mga format tulad ng JSON, YAML at binary file.

Konklusyon

Ang impormasyon sa itaas ay maaaring mukhang kumplikado. Hindi mo kailangang isipin na kailangan mong matutunan ang lahat ng ito upang maging isang programmer. Mali ito. Ang pagiging isang mahusay na programmer ay nangangailangan ng oras at propesyonal na kasanayan. Kung hindi ka pa nakakapagsimula ng programming, inirerekumenda kong magsimula sa ilang mga proyekto ng alagang hayop. Pag-isipang mag-ambag sa mga open source na proyekto. Makakatulong ito sa iyong maging komportable at matuto mula sa mga may karanasang coder. Maraming programmer ang gustong ibahagi ang kanilang kaalaman sa mga baguhan.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION