JavaRush /Blog Jawa /Random-JV /Ngopi #73. Cara Ngapikake Kode Jawa nganggo Aliran. Lima ...

Ngopi #73. Cara Ngapikake Kode Jawa nganggo Aliran. Lima Plugins IntelliJ IDEA paling apik kanggo Pangembang Jawa

Diterbitake ing grup

Cara Ngapikake Kode Jawa nganggo Aliran

Sumber: Dev.toNgopi #73.  Ngapikake kode Jawa nganggo Streams.  Lima Plugin IntelliJ IDEA paling apik kanggo Pangembang Jawa - 1

Apa iku Streams?

Aliran pisanan muncul ing Jawa 8. Miturut dokumentasi Oracle, minangka kelas kanggo ndhukung operasi gaya fungsional ing aliran unsur, kayata transformasi map-reduce ing koleksi. Ing istilah prasaja, stream kasusun saka sumber data, ngiring dening nol utawa luwih operasi penengah, lan banjur operasi terminal.

Apa sumber data?

  • Koleksi, Dhaptar, Set, ints, longs, ganda, larik, baris file.

Apa operasi penengah?

  • Filter, peta, urut, lsp.
  • Operasi iki ngasilake Stream supaya bisa dirantai menyang operasi liyane.

Apa operasi terminal?

  • ForEach, ngumpulake, nyuda, golekFirst, lsp.
  • Dheweke ngasilake asil sing ora bener utawa non-stream.
  • Yen thread ora duwe operasi terminal, intermediet ora bakal disebut.

Ayo ngowahi fungsi saka imperatif menyang gaya deklaratif nggunakake Streams

Fungsi Imperatif (Ora Ana Aliran):

private int getResult_imperative(List<String> strings) {
    int result = 0;
    for (String string : strings){
        if(isDigit(string.charAt(0))) continue;
        if (string.contains("_")) continue;
        result += string.length();
    }
    return result;
}
Ing kene kita weruh yen kita kudu nindakake sawetara perkara kanthi manual:
  • Nyatakake variabel asil kanggo nglacak asil.
  • Loop liwat Strings.
  • Tulis rong pernyataan yen (sing bisa dadi luwih rumit tinimbang kasus iki).
  • Tambah dawa saben asil.

Ayo priksa gaya deklaratif (Stream):

private int getResult_Declarative(List<String> strings){
    return strings.
            stream().
            filter(s -> !isDigit(s.charAt(0))).
            filter(s -> !s.contains("_")).
            mapToInt(String::length).
            sum();
}
Dadi apa bedane?
  • Kita entuk obyek Stream kanthi nelpon fungsi stream () .
  • (Operasi penengah) kita nggunakake fungsi panyaring kaping pindho - saben-saben kita nemtokake kondisi sing kudu ditemokake mung dening unsur sing arep dipindhah ing tahap sabanjure.
  • (Operasi penengah) kita peta saben obyek String menyang int kanthi nelpon metode dawa (nggunakake gaya referensi metode).
  • (Operasi terminal) jumlah kabeh nilai int sadurunge .

Observasi

Apa pendekatan kapindho katon luwih gampang? Kita nuduhake apa sing dikarepake, dudu kepiye carane . Iki minangka semangat pemrograman deklaratif lan tujuan API Stream ing aplikasi Java modern.

Lima Plugins IntelliJ IDEA paling apik kanggo Pangembang Jawa

Sumber: Plugins GitHubNgopi #73.  Ngapikake kode Jawa nganggo Streams.  Lima Plugins IntelliJ IDEA paling apik kanggo Pangembang Jawa - 2 bisa migunani banget ing akeh kahanan nalika nggarap kode kanthi rutin. Dheweke bisa nambah fungsi inti, nyedhiyakake macem-macem integrasi, lan ndhukung otomatisasi akeh tugas. Mangkene plugin paling apik miturut pendapatku:

SonarLint

SonarLint ngidini sampeyan ndandani kesalahan lan kerentanan nalika nulis kode. Iki nyorot masalah coding ing wektu nyata, menehi pangembang instruksi sing jelas babagan carane ndandani, supaya sampeyan bisa ndandani sadurunge kode kasebut ditindakake. Plugin iki perlu amarga nambah coding.

Maven Helper

Mugi sampeyan nggunakake Maven? Aku! Plugin Maven Helper nyedhiyakake:
  • cara prasaja kanggo nganalisa lan ngilangi dependensi sing bertentangan;
  • cara sing gampang kanggo nemokake dependensi langsung utawa transitif;
  • langkah kanggo mbukak / debug target maven kanggo modul ngemot file saiki, utawa ing modul ROOT;
  • tumindak kanggo mbukak terminal ing dalan saiki kanggo modul maven;
  • tumindak kanggo mbukak / debug file test saiki. Yen maven-surefire-plugin dikonfigurasi kanggo ngliwati utawa ngilangi tes, tujuan "verifikasi" bakal digunakake. Macem-macem gaya konfigurasi bisa ditemokake ing GitHub .

KodeMetrik

Plugin iki nduweni indikator tab adhedhasar petungan kesulitan khusus kanggo file Java. Dheweke menehi pitunjuk pangembang ing kelas lan metode supaya bisa nemtokake kanthi gampang apa sing kudu dipriksa. Sanajan iki dudu metrik standar, iki minangka perkiraan sing cedhak karo kompleksitas cyclomatic . Sampeyan uga bisa ngatur pitungan kerumitan proyek kanthi ngganti entri konfigurasi sing cocog.

Manipulasi String

Ngalih kasus, ngurutake, nyaring, zoom, keselarasan kolom, grepping, escaping, encoding lan liya-liyane ...

JPA sobat

JPA Buddy ndadekake kabeh sing gegandhengan karo JPA gampang lan cepet. Nyedhiyakake alat kanggo mbantu sampeyan nggarap Hibernate, Spring Data JPA, Liquibase, Flyway. Fitur utama JPA Buddy:
  • Entitas JPA: Nggawe lan ngowahi entitas, atribut entitas, callback siklus urip, indeks, lan kendala. Dhukungan kanggo konverter JPA lan jinis khusus Hibernate. Kemampuan kanggo nggunakake anotasi Lombok kanggo entitas.
  • Nggawe implementasine sing bener saka cara sing padha, hashCode lan toString kanggo entitas JPA.
  • Maksud kode sumber, mriksa, lan ndandani cepet kanggo deklarasi entitas JPA.
  • Tampilake grafis hubungan entitas ing panel struktur JPA ing simpul unit sing terus-terusan.
  • Generasi otomatis log pangowahan Liquibase lan migrasi versi Flyway: database-to-database, model-to-database, model-to-snapshot mbandhingake.
  • Desainer changelog Visual Liquibase lan pitulungan coding: nggawe lan nyunting item, referensi jeneng tabel, jeneng kolom, file sing kalebu lan liya-liyane.
  • Tindakan: nggawe gambar asli saka Liquibase, nglakokaké printah "Liquibase nganyari" lan "Liquibase updateSQL".
  • Repositori Data Spring: Nggawe repositori, nggawe metode repositori, nyunting properti metode, nggawe proyeksi adhedhasar kelas entitas, ngekstrak pitakon JPQL.
  • Kotlin: Kabeh desainer visual ndhukung kanthi lengkap nggawe kode kanggo obyek lan repositori Kotlin.
Aku ngomong babagan limang plugin paling ndhuwur, nanging aku duwe siji liyane ...

Ikon Tambahan

Iki minangka koleksi lambang sing nambah trabasan menyang file kayata Markdown, Yaml, Maven, Git lan liya-liyane. Sampeyan bakal njaluk digunakake kanggo wong-wong mau lagi mbantu sampeyan ngenali file gampang. Sampeyan mesthi bakal mbutuhake wong-wong mau.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION