Perkenalan

Dalam lanskap pengembangan perangkat lunak yang bergerak cepat saat ini, penggunaan perpustakaan pihak ketiga telah menjadi praktik umum untuk mempercepat proses pengembangan. Perpustakaan seperti day.js, big.js, dan moment.js menyediakan banyak fungsi yang dapat menghemat banyak waktu dan tenaga saat mengembangkan aplikasi. Namun, mengimpor perpustakaan ini langsung ke kode klien Anda mungkin tidak selalu merupakan ide terbaik.

Meskipun mungkin tampak mudah pada awalnya, mengimpor perpustakaan langsung ke kode klien Anda dapat menimbulkan sejumlah tantangan, termasuk kesulitan dalam mengubah perpustakaan, kurangnya kemampuan pengujian, dan organisasi kode yang buruk. Untuk mengatasi masalah ini, penting untuk merangkum perpustakaan pihak ketiga dengan membuat kelas terpisah dan mengimpor perpustakaan ke kelas ini. Hal ini memungkinkan Anda dengan mudah mengubah perpustakaan dan menulis pengujian unit untuk fungsionalitas spesifik yang Anda perlukan, sekaligus meningkatkan organisasi dan pemeliharaan kode.

Pada artikel ini, kita akan mengeksplorasi kelemahan mengimpor perpustakaan pihak ketiga secara langsung ke dalam kode klien dan manfaat merangkumnya. Kami juga akan melihat bagaimana menerapkan enkapsulasi ini di proyek Anda sendiri.

Kelemahan mengimpor perpustakaan langsung ke kode klien

Kesulitan dalam mengubah perpustakaan

Salah satu kelemahan utama mengimpor perpustakaan langsung ke kode klien adalah kesulitan dalam mengubah perpustakaan. Jika pustaka yang Anda impor langsung menjadi usang atau Anda ingin beralih ke pustaka lain, membuat perubahan pada basis kode Anda mungkin sulit. Hal ini karena pustaka terkait erat dengan kode Anda yang lain dan perubahan tersebut dapat menimbulkan konsekuensi yang tidak diinginkan yang memengaruhi bagian lain aplikasi Anda.

Kurangnya kemampuan untuk diuji

Kelemahan lain dari mengimpor perpustakaan langsung ke kode klien adalah kurangnya kemampuan untuk diuji. Saat perpustakaan diimpor secara langsung, akan sulit untuk menulis pengujian unit untuk fungsionalitas spesifik yang Anda perlukan. Hal ini dapat mengakibatkan basis kode menjadi kurang andal dan kurang dapat dipelihara, karena perubahan pada pustaka dapat menimbulkan konsekuensi yang tidak diinginkan pada aplikasi Anda lainnya.

Dengan merangkum perpustakaan ke dalam kelas terpisah, Anda dapat menulis pengujian unit untuk fungsionalitas spesifik yang Anda perlukan, dan membuat perubahan pada perpustakaan dengan percaya diri, mengetahui bahwa dampak pada basis kode Anda yang lain akan diminimalkan.

Manfaat merangkum perpustakaan pihak ketiga

Peningkatan organisasi dan pemeliharaan kode

Salah satu manfaat utama enkapsulasi perpustakaan pihak ketiga adalah peningkatan organisasi dan pemeliharaan kode. Dengan membuat kelas terpisah untuk perpustakaan, Anda dapat memisahkan kode perpustakaan dari basis kode lainnya. Hal ini memudahkan untuk memahami struktur kode Anda dan memeliharanya seiring waktu. Selain itu, dengan merangkum pustaka, Anda dapat mengabstraksikan detail implementasi dan menyediakan API yang lebih intuitif dan terorganisir untuk digunakan oleh kode Anda. Hal ini dapat menghasilkan basis kode yang lebih bersih dan mudah dikelola serta lebih mudah digunakan.

Peningkatan fleksibilitas dan portabilitas

Manfaat lain dari enkapsulasi perpustakaan pihak ketiga adalah peningkatan fleksibilitas dan portabilitas. Dengan mengabstraksi detail implementasi perpustakaan ke dalam kelas terpisah, Anda dapat lebih mudah beralih ke perpustakaan lain jika diperlukan. Ini bisa sangat berguna jika perpustakaan sudah ketinggalan zaman atau jika Anda menemukan alternatif yang lebih baik. Selain itu, dengan mengenkapsulasi pustaka, Anda dapat mempermudah penggunaan kembali kode Anda di proyek berbeda atau mem-portingnya ke platform berbeda. Hal ini dapat menghemat waktu dan tenaga dalam jangka panjang serta membuat kode Anda lebih berharga dan dapat digunakan kembali.

Peningkatan pengujian dan debugging

Manfaat lain dari merangkum perpustakaan pihak ketiga adalah peningkatan pengujian dan debugging. Dengan merangkum perpustakaan, Anda dapat membuat pengujian unit untuk perilaku perpustakaan dan dengan mudah mengisolasi dan men-debug masalah yang muncul. Hal ini dapat menghemat waktu dan tenaga dibandingkan mencoba menguji pustaka secara langsung, dan dapat menghasilkan basis kode yang lebih kuat dan andal. Selain itu, mengenkapsulasi pustaka dapat mempermudah simulasi berbagai skenario dan kasus edge selama pengujian, sehingga semakin meningkatkan kualitas kode Anda.

Menerapkan enkapsulasi

Menerapkan enkapsulasi perpustakaan pihak ketiga sangatlah mudah dan dapat dilakukan dalam beberapa langkah. Pertama, Anda perlu membuat kelas baru yang akan bertindak sebagai pembungkus perpustakaan. Di kelas ini, Anda harus menentukan semua metode yang Anda perlukan dari perpustakaan, dan mengimplementasikannya menggunakan API perpustakaan. Anda juga harus mempertimbangkan fungsionalitas tambahan apa pun yang mungkin Anda perlukan, seperti penanganan kesalahan atau nilai default untuk argumen tertentu.

Selanjutnya, Anda harus mengimpor perpustakaan ke kelas baru Anda dan menginisialisasinya. Kemudian, Anda dapat menulis pengujian unit untuk kelas tersebut untuk memastikan bahwa kelas berperilaku seperti yang diharapkan dan mencakup semua skenario yang Anda perlukan. Terakhir, Anda dapat mengimpor kelas baru ke dalam kode klien Anda, dan menggunakan metodenya sebagai pengganti panggilan langsung ke perpustakaan.

Dengan mengikuti langkah-langkah ini, Anda dapat dengan mudah merangkum perpustakaan pihak ketiga dan menikmati manfaat yang ditawarkan pendekatan ini. Baik Anda sedang mengerjakan proyek baru atau menambahkan perpustakaan ke proyek yang sudah ada, menerapkan enkapsulasi adalah cara sederhana dan efektif untuk meningkatkan kualitas dan pemeliharaan kode Anda.

Berikut ini contohnya:

import Big from 'big.js';

class MoneyService {
  private value: Big;

  constructor(value: string) {
    this.value = new Big(value);
  }

  public add(value: string): MoneyService {
    this.value = this.value.plus(value);
    return this;
  }
  public subtract(value: string): MoneyService {
    this.value = this.value.minus(value);
    return this;
  }
  public multiply(value: string): MoneyService {
    this.value = this.value.times(value);
    return this;
  }
  public divide(value: string): MoneyService {
    this.value = this.value.div(value);
    return this;
  }
  public toString(): string {
    return this.value.toString();
  }
}

Dengan implementasi ini, Anda dapat menggunakan kelas MoneyService untuk melakukan operasi aritmatika pada nilai keuangan, dan pustaka big.js dienkapsulasi dalam kelas tersebut. Hal ini memudahkan untuk beralih ke perpustakaan lain atau menulis pengujian unit untuk perhitungan keuangan Anda, karena detail implementasi disembunyikan di dalam kelas MoneyService.

Kesimpulan

Pada artikel ini, kita membahas kelemahan mengimpor perpustakaan eksternal seperti langsung ke kode klien. Kami juga membicarakan tentang manfaat mengenkapsulasi perpustakaan ke dalam sebuah kelas, seperti kelas MoneyService yang kami terapkan. Dengan melakukan hal ini, kami dapat mengelola dependensi dengan lebih baik, menyederhanakan pemeliharaan kode, dan meningkatkan kemampuan pengujian. Mengenkapsulasi pustaka dalam kelas layanan adalah praktik terbaik yang dapat meningkatkan kualitas kode secara signifikan dan mempermudah bekerja dengan pustaka pihak ketiga dengan cara yang dapat diskalakan dan dipelihara. Jadi, lain kali Anda bekerja dengan perpustakaan pihak ketiga, pertimbangkan untuk merangkumnya dalam kelas layanan untuk pengalaman pengembangan yang lebih baik.

Selain itu, mengambil langkah berikutnya dan menjelajahi Dependency Injection juga merupakan cara terbaik untuk merangkum dan mengelola kode lebih lanjut. Dengan menggunakan Injeksi Ketergantungan, Anda dapat mencapai tingkat pemisahan antar komponen yang lebih tinggi dan mempermudah pemeliharaan basis kode Anda dalam jangka panjang.