JavaRush /Blog Jawa /Random-JV /Ngopi #109. Katrampilan sing paling dikarepake ing pangem...

Ngopi #109. Katrampilan sing paling dikarepake ing pangembangan Jawa saiki. 7 Tip Pilihan Jawa kanggo Nyingkirake Keruwetan Kode

Diterbitake ing grup

Katrampilan sing paling dikarepake ing pangembangan Jawa saiki

Sumber: Jawa Sedheng tetep dadi salah sawijining basa pamrograman sing paling populer lan dikarepake, sanajan umure meh seprapat abad. Mula, cukup wajar yen popularitas Jawa bakal terus berkembang lan para pangembang Jawa bakal weruh panjaluk sing luwih gedhe saka pengusaha ing mangsa ngarep. Ngopi #109.  Katrampilan sing paling dikarepake ing pangembangan Jawa saiki.  7 Tip Pilihan Jawa kanggo Nyingkirake Keruwetan Kode - 1Kanggo nggawe produk sing berkualitas, pangembang kudu ngupayakake alat Java paling anyar lan nambah katrampilan lan kawruh teknis. Ing ngisor iki kita nampilake enem katrampilan penting sing dibutuhake kanggo pangembang Java.

1. Kawruh Basa Jawa 8

Sanajan versi Java sing luwih anyar wis digunakake kanthi akeh, kabeh pangembang Jawa sing kepengin banget mbutuhake kawruh lan pengalaman sing jero babagan Java 8. Sawetara fitur Java 8 sing paling migunani kalebu:
  • Cara standar lan statis kanggo nggawe antarmuka karo implementasi metode.
  • Antarmuka fungsional sing mung nduweni siji metode abstrak lan mbantu pangembang supaya ora nambah metode abstrak liyane.
  • Ekspresi Lambda sing mbantu nggawe antarmuka fungsional.
  • Java Stream API kanggo ngaktifake eksekusi paralel lan sekuensial.
  • Cara anyar ing API Koleksi.
Kabeh fitur kasebut ndadekake Java 8 dadi penting kanggo program fungsional. Pemrograman fungsional nyedhiyakake konkurensi lan ringkesan kode, lan mbantu nggawe aplikasi kanthi beban dhuwur kanthi kode sing dioptimalake. Java 8 uga dadi basis kanggo optimasi kode asli, ngidini kanggo ngoptimalake pangembangan ing basa liya kayata Scala, Kotlin, lan Grails.

2. Pengalaman karo testing

Pengujian unit ing Jawa minangka topik sing rada kontroversial. Sawetara pangembang mbantah yen nulis tes unit minangka sampah wektu, nanging kita yakin manawa katrampilan tes unit dibutuhake kanggo pangembang Java profesional. Pengujian unit ngidini sampeyan nguji blok kode individu lan mesthekake yen produk pungkasan bisa digunakake tanpa kesalahan. Mulane, yen pangembang pengin nambah katrampilan lan kawruh, dheweke kudu sinau carane nggunakake alat tes sing paling populer lan efektif. Kerangka pengujian utama sing kudu sampeyan kenal yaiku perpustakaan JUnit 5. Piranti liyane kalebu:
  • Kerangka Robot
  • Mockito
  • PowerMock
Kajaba saka testing unit, pangembang Jawa ora kudu lali babagan cara testing liyane (testing sistem, testing acceptance lan testing integrasi). Iki ngidini sampeyan nindakake tes lengkap piranti lunak lan priksa manawa ora ana kesalahan, bug utawa gagal kritis. Sing penting kanggo elinga babagan tes yaiku owah-owahan cilik nyebabake asil gedhe. Yen sampeyan ora ragu-ragu kanggo nyelehake wektu lan gaweyan ing testing unit, sampeyan bakal kaget ing asil dandan ing kualitas karya.

3. DevOps

Sanajan ora dibutuhake, sinau babagan DevOps lan prinsip-prinsipe bisa migunani kanggo sampeyan minangka pangembang lan kanggo perusahaan sing digunakake. Fleksibilitas lan organisasi pangolahan DevOps ngidini perusahaan kanggo ngoptimalake kualitas produk lan streamline operasi. lan uga nambah transparansi pangolahan. DevOps ing Jawa sejatine minangka aplikasi DevOps kanggo pangembangan Jawa. Iki kalebu:
  • Pangiriman lan integrasi sing terus-terusan.
  • Nggarap microservices tinimbang monoliths.
  • Infrastruktur minangka kode.
  • Tes otomatis.
DevOps minangka lapangan sing jembar lan mbutuhake wektu lan sumber daya sing akeh kanggo sinau. Nanging yen sampeyan dadi pangembang Java, sinau DevOps bakal migunani amarga bisa dadi insinyur DevOps ing mangsa ngarep. Yen sampeyan ora pengin dadi insinyur DevOps utawa perusahaan sampeyan ora kasengsem, mula ora apa-apa. Elinga yen DevOps saya tambah populer ing komunitas Jawa.

4. Kawruh perpustakaan lan API Jawa.

Amarga Jawa minangka salah sawijining basa pamrograman sing unggul ing saindenging jagad, mula ora kaget manawa ana akeh API lan perpustakaan sing kasedhiya kanggo digarap. Piranti kasebut nyederhanakake proses pangembangan lan ngidini pangembang nggawe piranti lunak sing dipercaya kanthi cepet. Ing ngisor iki kita wis dhaptar piranti dhasar sing bisa dingerteni pangembang Java sing apik lan bisa digunakake kanthi yakin. Piranti kasebut mbantu sampeyan nggawe aplikasi kanthi cepet lan ngatur data lan panyimpenan kanthi efektif:
  • Gradle (alat kanggo mbangun aplikasi);
  • Maven (rada ketinggalan jaman nanging isih populer, uga digunakake kanggo mbangun aplikasi);
  • Java 8 Paket Standar;
  • Spring Frameworks;
  • JPA ORM (Hibernate, TopLink);
  • Database NoSQL (MongoDB, Cassandra).
Kanggo API, kanggo nggarap inti Java API, pangembang kudu duwe kawruh sing apik babagan OpenJDK, Android, Oracle lan IS2T. Kauntungan gedhe saka alat kasebut yaiku kabeh dilengkapi dokumentasi sing rinci lan informatif. Kajaba iku, pangembang mesthi bisa entuk dhukungan komunitas, sing uga dadi kauntungan gedhe.

5. Kawruh manteb ing ati saka Spring lan Spring Boot

Spring Framework minangka kerangka kerja sing paling umum digunakake kanggo ngembangake aplikasi basis Java, mula pangembang kudu ngerti carane nggarap. Salah sawijining mupangat utama Spring yaiku injeksi dependensi, sing ngidini sampeyan nggawe aplikasi sing digabungake lan menehi pangembang luwih fleksibel. Spring uga entheng banget, ndhukung konfigurasi XML, anotasi, lan program deklaratif. Dadi yen sampeyan pengin nguwasani katrampilan pangembangan Jawa, sampeyan uga kudu nguwasani penyebaran Spring. Spring Boot minangka pengulangan Spring sing nyedhiyakake alat sing trep kanggo nyebarake aplikasi kanthi cepet. Aman yen Spring Boot nggunakake Spring minangka basis lan nggawe fitur dhewe ing ndhuwur. Nalika Spring fokus ing keluwesan, Spring Boot mbantu nyuda kode lan nyederhanakake proses pangembangan. Iku nawakake pangembang fitur out-of-the-box, mbantu mbangun app dewekan, lan sakabèhé luwih gampang kanggo miwiti lan ngatur. Spring Boot apik kanggo layanan mikro lan aplikasi sing kudu dibangun kanthi cepet, amarga nggawe cepet lan gampang kanggo nyetel lan mbukak aplikasi kanggo macem-macem lingkungan (produksi, test, kualitas, CI / CD). Spring lan Spring Boot wis ditambah karo kemampuan program React, sing dadi tren panas liyane ing komunitas pangembang. Spring 5, contone, saiki duwe WebFlux kanggo ngleksanakake pendekatan reaktif kanggo program lan ngrampungake sistem distribusi sing kompleks.

6. Pengalaman karo Big Data

Big Data minangka tren sing kudu ditindakake para pangembang kanggo nyukupi panjaluk pasar. Piranti utama sing bisa dingerteni para pangembang Jawa profesional yaiku:
  • Apache Spark
  • Apache Kafka
  • Hadoop (kanggo pangolahan batch)
Apache Spark minangka platform pangolahan Big Data sing disebarake sing nyedhiyakake binding asli kanggo Jawa. Kerangka iki dadi populer banget amarga fitur lan kinerja lan saiki dadi alat data gedhe sing paling disenengi ing komunitas Jawa. Apache Spark bisa mlaku ing mode mandiri kluster lan iki mung mbutuhake lingkungan Apache Spark lan JVM (kanggo saben mesin ing kluster). Spark uga luar biasa cepet lan duwe Spark API banget pangguna-loropaken. Hadoop minangka platform panyimpenan data sing uga dikenal kanggo pangembang Java. Sanajan Hadoop ora cepet kaya Spark, nanging tetep dadi salah sawijining alat sing paling populer kanggo nggarap data gedhe. Iki uga amarga kasunyatan manawa Hadoop (lan solusi sing padha) duwe akeh plugin sing ngidini sampeyan ngatasi masalah pangolahan Big Data kanthi efisien lan umume ngoptimalake kinerja Hadoop (kalebu dhukungan kanggo pangolahan stream wektu nyata).

7 Tip Pilihan Jawa kanggo Nyingkirake Keruwetan Kode

Sumber: Sedheng "Aku duwe kanca sing ora ngerti babagan anane Opsional," tulis salah sawijining pangembang Jawa ing Reddit. Apa kita bisa nganggep manawa Opsional nambah "keterbacaan" kode kasebut? Apa worth nggunakake kabeh wektu? Ing endi panggunaan Opsional pancen ora perlu? Wiwit akeh pangembang isih ora ngerti carane nggunakake Pilihan bener, Aku bakal menehi 7 conto pilihan abuses lan apa apa bab mau. Ngopi #109.  Katrampilan sing paling dikarepake ing pangembangan Jawa saiki.  7 Tip Opsional Jawa kanggo Nyingkirake Keruwetan Kode - 2

1. Aja nggunakake Pilihan kanggo mriksa null

Nggunakake Opsional tinimbang null mriksa mung nambah keruwetan. Ora ana keuntungan saka iki. Iku uga kesalahan kanggo nggunakake opsional lan isPresent lan njaluk cara . Pangembang percaya yen entuk kudu bisa kaya sing dikarepake. Dheweke banjur nambah isPresent lan bali menyang mriksa null. Elinga yen Opsional ora ndandani mriksa null. Sabanjure sampeyan ndeleng isPresent lan entuk (utawa ElseThrow ) ngganti potongan kode iki. Gunakake pemetaan lan orElse kanggo mbusak mriksa null standar, lan nggunakake Pilihan luwih selektif. Iki salah sawijining conto sing apik:
var user = userService.getCurrentUser();
if(user == null) {
    return "(unknown)";
}
var username = user.getUsername();
if (username == null) {
    return "(unknown)";
}
return username;
vs

var user = userService.getCurrentUser();
if(user.isEmpty()) {
    return "(unknown)";
}
var username = user.orElseThrow().getUsername();
if (username == null) {
    return "(unknown)";
}
return username;
vs

return userService.getCurrentUser()
                  .map(User::getUsername)
                  .orElse("(unknown)");
Sampeyan bisa miwiti karo target Opsional. Tujuan Opsional kanggo makili opsional, nilai sing ilang. Banjur bali menyang masalah sampeyan lan deleng yen bisa kanggo sampeyan. Cara liya kanggo ngatasi mriksa null yaiku nggunakake anotasi. Nullable utawa NotNull kudu apik. Bener, bisa ngrusak kode sampeyan, lan mung nglindhungi nalika kompilasi. Kanggo mriksa runtime nggunakake Objects.requireNonNull .

2. Nindakake penanganan kesalahan sing tepat

Kadhangkala null nggantosi pangecualian. Lan iki cara sing salah kanggo menehi tandha kesalahan lan pengecualian. "Ana sing salah, lan kene null" minangka anti-pola sing kudu dihindari. Uga, sampeyan ora kudu nggunakake Opsional kanggo nutupi pangecualian. Punika conto.
public Optional<MyObject> getMyObject(final String jql) {
    try {
        return Optional.ofNullable(get(sql));
    } catch (final JqlParseException e) {
        return Optional.empty();
    }
}
Kenapa myObject kosong? Iki salah siji kesalahan utawa nilai kosong. Dadi sampeyan bakal entuk asil sing ora jelas lan mbusak keuntungan saka Opsional minangka asil. Kode iki ana amarga wong nyoba nggunakake Pilihan kanggo aliran kontrol. Opsional bakal mbusak sawetara nol saka basis kode sampeyan. Nanging sampeyan isih kudu nggunakake konstruksi nyoba-nyekel kanggo nangani pengecualian. Gunakake try-catch kanggo nangani pangecualian kanthi bener. Aja mbusak Opsional nalika nangani kasalahan, mung ngenteni lan bakal bisa sampurna. Nanging ana siji pangecualian ing kene - nyekel kosong . Yen sampeyan ora ngerti apa sing bakal bali ing keno kosong, Opsional kosong kudu apik.
private int readExpirationAsInt(Milk milk)
{
  String expiration = milk.getExpiration();
  try {
    return Integer.parseInt(expiration);
  }
  catch(NumberFormatException ignored) {}

  return 0;
}


private OptionalInt readExpirationAsInt(Milk milk)
{
  String expiration = milk.getExpiration();

  try {
    return Optional.of(Integer.parseInt(expiration));
  }
  catch(NumberFormatException e) {
    return OptionalInt.empty();
  }
}

3. Aja bali null saka cara Pilihan

public static Optional<POSType> getPOSType(String posName) {
    if (StringUtils.isNotBlank(posName)) {
        return Arrays.stream(POSType.values())
                .filter(type -> type.toString().equalsIgnoreCase(posName))
                .findFirst();
    }
    return null;
}
Iki ngalahake tujuan Opsional. Iki minangka conto liyane saka tes sing ora apik. Amarga input kosong, iki tegese kita butuh file IllegalArgumentException . Uga, iki salah. Ora ana sing kudu mriksa metode panggilan opsional. Mbalikake unsur Opsional kosong lan aja mriksa unsur Opsional kanggo null.

4. Aja nggunakake Opsional karo koleksi.

Ora perlu mbungkus koleksi ing Opsional. Kajaba iku, aja sijine Pilihan ing koleksi. Iki mung nggawe rumit kanthi nambah tinju sing ora ana gunane lan unwrapping ekstra. Aja nambah opsional menyang koleksi. Ora ana keuntungan sing katon saka iki. Tansah prasaja lan gunakake Opsional kanggo nilai sing ilang.

5. Aja renteng-renteng merga rante

Optional.ofNullable(foo).ifPresent(value -> {
  //do something
})
Opsional duwe cara rinci sing bisa mbantu iki. Tinimbang chain, mriksa null prasaja bakal cukup. Aku ngerti Opsional duwe cara sing apik lan dhukungan IDE sing apik. Sampeyan bisa nggunakake.

6. Gunakake pambungkus nilai primitif

Iku ora masalah gedhe, nanging sampeyan bisa nggunakake OptionalInt utawa OptionalLong . Mung kanthi mbusak generik sing ora perlu, sampeyan bakal nambah kinerja lan nulis kode sing luwih ringkes.

7. Sampeyan kudu ngerti babagan ofNullable

if (a==null){
  return Optional.empty();
} else {
  return Optional.of(a);
}
Jinis kode iki biasane ditulis dening pangembang sing ora ngerti babagan Optional#ofNullable . Umume pangembang ora ngerti bedane antarane Nullable lan . Dheweke ora ngerti kepiye Opsional # bisa dadi backfire. Umume bakal nggunakake ofNullable amarga wedi mbuwang NullPointerException ing Opsional # saka . Maneh, iki ngalahake tujuan saka rong cara kasebut. Yen kita mung nggunakake ofNullable , kenapa kita kudu Opsional# saka kabeh ? Opsional # saka mbuwang NPE nalika sampeyan pass menyang null. Iki kedadeyan kanthi alesan. Cara iki kudu digunakake nalika sampeyan ngarepake nilai kasebut. Yen ora ana, bakal cepet gagal. Opsional#ofNullable ngowahi null dadi Opsional kosong. Cara iki njupuk null minangka argumen, sing cocog karo Opsional kosong.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION