Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!

3 jenis Dependency Hell (Masalah ketergantungan)

in Hardware on August 16, 2018

Permasalahan ketergantungan timbul karena shared package dan library dimana beberapa paket lain memiliki dependensi tetapi tergantung pada perbedaan dan versi yang tidak kompatibel dari sebuah shared packages. Jika shared package atau library hanya bisa diinstall menjadi satu versi, pengguna atau administrator akan perlu untuk mengatasi permasalahan yang didapat dari versi lama/baru dari ketergantungan paket.
Permasalahan umum bagi developer adalah sulitnya mengelola semua dependency aplikasi dalam sebuah cara otomasi yang sederhana. Hal ini merupakan bentuk dari dependency hell tersebut diatas.
Contoh permasalahan dependency hell yang disebutkan oleh developer Docker ada 3 yaitu Cross-platform dependencies, conflicting dependencies dan Custom dependencies.
Cross-Platform Dependencies
Aplikasi modern seringkali bergantung pada kombinasi sistem librarydan binary, paket bahasa yang spesifik, modul framework spesifik, komponen internal yang dikembangkan untuk projek lain, dan lain-lain. Dependencies tersebut hidup pada dunia yang berbeda dan memerlukan alat yang berbeda, alat tersebut biasanya tidak bekerja dengan baik antara satu dan lainnya, membutuhkan integrasi perubahan yang janggal.
Lintas platform (cross platform) adalah istilah teknologi informasi mengenai sebuah pernagkat lunak  yang dapat digunakan di beberapa sistem informasi yang berbeda seperti mikrosoft windows, Linux, Mac dan lain sebagainya. Umumnya perangkat lunak yang memiliki kemampuan lintas platform adalah perangkat lunak bebas.
Contoh perangkat lunak yang memiliki kemampuan lintas platform ini antara lain:
·   Apache HTTP server
·   MySQL
·   PHP
Conflicting Dependencies
Aplikasi yang berbeda akan bergantung pada versi yang berbeda dalam satu dependency. mempaketkan alat mengatasi situasi tersebut dengan berbagai tingkat kemudahan, namun ke semua itu mengatasinya dengan berbeda dan cara yang tidak kompatibel, yang lagi-lagi memaksa pengembang melakukan kerja ekstra.
Custom Dependencies
Seorang developer mungkin perlu menyiapkan sebuah versi kostum dari ketergantungan aplikasinya. Beberapa sistem pemaketan bisa mengatasi versi kostum dari sebuah dependency, namun yang lainnya tidak bisa dan mengatasi secara berbeda.