-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #43 from mmdmthr/article-20230823
add article: Menulis Versi Package Dependency
- Loading branch information
Showing
1 changed file
with
49 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
--- | ||
title: 'Menulis Versi Package Dependency dalam Pengembangan Perangkat Lunak' | ||
date: 2023-08-23 | ||
category: 'notes' | ||
--- | ||
|
||
Pengembangan perangkat lunak modern seringkali melibatkan penggunaan banyak paket (_package_) atau pustaka (_library_) dari sumber eksternal. Ketergantungan paket ini memungkinkan pengembang untuk memanfaatkan fungsionalitas yang sudah ada tanpa perlu membuat semuanya dari awal. Namun, dalam pengelolaan dependency paket, salah satu hal yang penting adalah menentukan versi yang sesuai. | ||
|
||
### Mengapa Package Version Penting? | ||
|
||
Ketika kita menggunakan paket atau pustaka dari pihak ketiga, sangat penting untuk memilih versi yang sesuai dengan proyek kita. Setiap versi mungkin memiliki perbaikan bug, peningkatan performa, atau bahkan perubahan fungsionalitas yang signifikan. Memilih versi yang tepat dapat mencegah konflik dan masalah yang tidak diinginkan dalam pengembangan perangkat lunak kita. | ||
|
||
### Menggunakan Format _Semantic Versioning_ (SemVer) | ||
|
||
Cara umum untuk menentukan versi dependency paket adalah melalui prinsip _Semantic Versioning_ (SemVer). SemVer terdiri dari tiga angka yang menunjukkan "MAJOR.MINOR.PATCH". Ketiga komponen ini memiliki arti sebagai berikut: | ||
|
||
1. **MAJOR**: Ditingkatkan ketika kita melakukan perubahan yang tidak kompatibel dengan versi sebelumnya dalam API paket. | ||
2. **MINOR**: Ditingkatkan ketika kita menambahkan fitur baru yang kompatibel dengan versi sebelumnya (_backward compatible_) dalam API paket. | ||
3. **PATCH**: Ditingkatkan ketika kita membuat perbaikan yang kompatibel dengan versi sebelumnya (_backward compatible_) dalam API paket. | ||
|
||
Misalnya, jika paket memiliki versi "2.1.3", artinya versi utama adalah 2, versi minor adalah 1, dan versi patch adalah 3. | ||
|
||
### Menulis Package Dependency dalam File Konfigurasi | ||
|
||
File konfigurasi proyek seperti "package.json", "composer.json atau "requirements.txt" biasanya digunakan untuk menulis daftar dependency paket. Berikut adalah contoh bagaimana kita dapat menulis dependency dengan menggunakan format SemVer: | ||
|
||
**package.json:** | ||
```json | ||
{ | ||
"dependencies": { | ||
"nama-paket": "^1.2.0" | ||
} | ||
} | ||
``` | ||
|
||
**requirements.txt:** | ||
``` | ||
nama-paket==1.2.0 | ||
``` | ||
|
||
Pada contoh di atas, tanda `^` pada "package.json" dan tanda `==` pada "requirements.txt" memberi tahu sistem manajemen paket untuk menggunakan versi yang kompatibel dengan versi yang ditentukan, namun tetap memperbolehkan peningkatan versi minor atau patch. | ||
|
||
### Menangani Versi Secara Hati-hati | ||
|
||
Saat menulis versi dependency, penting untuk mempertimbangkan seberapa kritis paket tersebut terhadap proyek kita. Jika kita membutuhkan stabilitas, mungkin lebih baik untuk menentukan versi yang spesifik. Namun, jika kita ingin memanfaatkan perbaikan dan peningkatan baru, menggunakan tanda seperti `^` atau `~` dapat membantu kita tetap mendapatkan pembaruan tanpa mengorbankan stabilitas sepenuhnya. | ||
|
||
### Memantau Pembaruan Paket | ||
|
||
Terkadang, pembaruan paket dapat mempengaruhi kinerja atau stabilitas proyek kita. Oleh karena itu, penting untuk secara berkala memeriksa pembaruan yang tersedia untuk dependency kita dan melakukan uji coba sebelum menerapkannya dalam produksi. |