JavaRush /Blog Jawa /Random-JV /Ngopi #89. 10 Plugins IntelliJ IDEA paling apik kanggo ng...

Ngopi #89. 10 Plugins IntelliJ IDEA paling apik kanggo ngedongkrak Produktivitas. Nangani pengecualian ing Java Streams nggunakake antarmuka fungsional

Diterbitake ing grup

10 Plugins IntelliJ IDEA paling apik sing bakal nambah produktivitas sampeyan

Sumber: Hackernoon Aku bubar takon pangembang sing nggunakake IntelliJ IDEA plugin apa sing paling disenengi kanggo IDE iki? Adhedhasar tanggapan sing diklumpukake, dhaptar 10 ekstensi sing paling populer dipikolehi. Ngopi #89.  10 Plugins IntelliJ IDEA paling apik kanggo ngedongkrak Produktivitas.  Nangani Pengecualian ing Java Streams Nggunakake Antarmuka Fungsional - 1

1. WakaTime

WakaTime ngidini sampeyan ndeleng metrik, analytics, lan nglacak wektu sing digunakake kanggo program. Kanthi, sampeyan bakal ngerti persis sepira wektu sampeyan nglampahi coding minangka plugin kanthi otomatis nglacak nalika sampeyan miwiti lan mandheg ngetik, kanthi metrik rinci kanggo proyek, file, cabang, komitmen / PR, fitur, lan liya-liyane.

2.Stepsize

Plugin iki mbantu ngrampungake masalah sing ana gandhengane karo utang teknis, pangopènan, lan refactoring kode. Stepsize ngidini sampeyan:
  • nggawe tetenger ing kode;
  • trek utang technical langsung saka editor;
  • nggawe TODO;
  • prioritas masalah teknis sajrone perencanaan sprint;
  • Kolaborasi karo kanca-kanca sajrone pangopènan kode lan refactoring.

3. Promotor Kunci X

Key Promoter X mbantu sampeyan sinau makna trabasan lan tombol ing IntelliJ IDEA. Nalika sampeyan nglayang mouse liwat tombol ing IDE, Key Promoter X nuduhake trabasan keyboard sing bisa digunakake tinimbang ngeklik mouse.

4. ZIO kanggo IntelliJ

ZIO bakal menehi saran, refactorings lan dandan liyane kanggo ekosistem Scala ZIO. Plugin ngluwihi perpustakaan ZIO kanthi fungsi kayata:
  • refactorings lan saran;
  • dhukungan kanggo zio macro (contone, @accessible);
  • dibangun ing test run.

5. Protobuf

Plugin Protobuf Language kanggo IDE berbasis IntelliJ nyedhiyakake dhukungan kanggo basa Protobuf. Protobuf mbantu nyorot sintaks, ngimpor file saka perpustakaan lan SDK, navigasi, lempitan kode, analisis semantik, lan dokumentasi cepet.

6. SonarLint

SonarLint ngidini sampeyan ndandani masalah kode sadurunge kedadeyan. Minangka pamriksa ejaan, SonarLint nyorot kesalahan lan kerentanan keamanan nalika sampeyan nulis kode, kanthi instruksi sing jelas babagan carane ndandani, supaya sampeyan bisa ndandani sadurunge kode kasebut ditindakake. SonarLint ing VS Code ndhukung analisis kode ing Jawa, JavaScript, TypeScript, Python, HTML lan PHP.

7. ESLint

ESLint ndhukung nampilake bebaya eslint minangka inspeksi IntelliJ, mbantu nindakake koreksi cepet kanggo sawetara aturan, ndhukung aturan eslint khusus, lan anotasi konfigurasi lan completion eslint.

8. Luwih ayu

Ekstensi Prettier mbantu kode sampeyan katon luwih apik lan luwih konsisten. Iki njamin gaya sing konsisten kanthi nganalisa kode sampeyan lan nulis maneh miturut aturan lan dawa garis maksimal.

9. Kukuh

Quokka.js minangka alat produktivitas pangembang kanggo prototipe cepet JavaScript/TypeScript. Ing IDE, nganyari metrik wektu eksekusi ing jejere kode nalika sampeyan ngetik. Iki nyepetake prototipe, latihan, lan uji coba JavaScript/TypeScript.

10. AceJump

AceJump ngidini sampeyan mindhah kursor kanthi cepet menyang posisi sing katon ing editor. Cukup pencet "CRTL +;", ketik karakter, banjur ketik karakter sing cocog kanggo Ace Jump. Yen ora ana pertandhingan sing ditemokake ing layar, AceJump bakal pindhah menyang pertandhingan sabanjure sing bisa ditemokake.

Nangani pengecualian ing Java Streams nggunakake antarmuka fungsional

Sumber: Dev.to Ngopi #89.  10 Plugins IntelliJ IDEA paling apik kanggo ngedongkrak Produktivitas.  Nangani Pengecualian ing Java Streams Nggunakake Antarmuka Fungsional - 2 Aku bubar nggoleki sawetara kode lan nemoni kaya iki:
subject.getIdentities().forEach(i -> {
  try {
    caseService.updateDocument(i.getCase());
  } catch (Exception e) {
    log.error(e);
  }
});
Wiwit aku penggemar gedhe saka lambda expression lan katresnan brevity, kode ndhuwur misale jek sing sethitik ringkes lan dicokot bingung kanggo kula. Kanggo mbusak, sampeyan kudu nggunakake antarmuka fungsional. Apa sing kita butuhake kanggo iki? Kita ngerti manawa forEach ngarepake input Konsumen. Yen kita bisa mbungkus logika nangani pengecualian ing Konsumen, banjur kita bisa nggunakake logika ing forEach. Logika utama ing njero forEach yaiku baris ing ngisor iki:
//try catch removed
// i is an Identity and updateDocument returns a UpdateResponse
i -> caseService.updateDocument(i.getCase());
We ngerti input lan bali jinis, lan kita bisa nggawe antarmuka fungsi kang cara mbalang pangecualian.
@FunctionalInterface
public interface ThrowingFunction<Identity, UpdateResponse> {
  UpdateResponse apply(Identity i) throws Exception;
}
Kita bisa nggawe kode luwih trep nggunakake generik.
@FunctionalInterface
public interface ThrowingFunction<T, R> {
  R apply(T t) throws Exception;
}
Sawise antarmuka digawe, logika asli bisa diketik:
ThrowingFunction<Identity, UpdateResponse> tf = i -> caseService.updateDocument(i.getCase());
Saiki kita duwe antarmuka fungsional kanggo logika kita, kita bisa pass minangka parameter kanggo cara sing nangani istiméwa lan ngasilake Konsumen sing bisa digunakake ing forEach.
private static <T, R> Consumer<T> wrap(ThrowingFunction<T, R> f) {
  return t -> {
    try  {
      f.apply(t);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  };
}
Iku katon sethitik aneh, nanging ateges cara bungkus njupuk ThrowingFunction minangka input lan nangani eksekusi fungsi utawa keno lan mbalang istiméwa ing Consumer. Saiki kita bisa mbungkus sembarang logika digunakake ing forEach sing bisa mbuwang pangecualian. Iku katon kaya iki:
// target type the original logic
ThrowingFunction<Identity, UpdateResponse> tf = i -> caseService.updateDocument(i.getCase()):

// pass logic to the wrapmethod
// which will execute the function or throw a RunTimeException.
Consumer<Identity> p = wrap(tf);

// use Consumer in foreach
subject.getIdentities().forEach(p);
Utawa yen sampeyan seneng siji baris:
subject.getIdentities().forEach(wrap(i -> caseService.updateDocument(i.getCase())));
Setuju yen iki luwih apik! Sampeyan bisa nindakake kaya iki kanggo nangani macem-macem antarmuka fungsional. Contone, operasi Peta mung njupuk Fungsi minangka input . Tinimbang cara pambungkus ngasilake Konsumen, sampeyan bisa duwe cara ngasilake fungsi. Iki mung salah siji cara kanggo nangani pengecualian ing thread. Aku kudu nyebutake manawa ana perpustakaan sing nindakake iki kanggo sampeyan. Sampeyan uga bisa nggunakake monad kanggo nangani sukses utawa gagal, nanging iku ngluwihi orane katrangan saka kirim iki.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION