11 Alat Manajemen Ketergantungan untuk Pengembang Web
Ketergantungan adalah landasan pengembangan web modern. Ini adalah alat, plugin, pustaka, dan kerangka kerja yang diperlukan diperlukan untuk membangun aplikasi web tingkat tinggi.
Banyaknya ketergantungan telah meroket dalam beberapa tahun terakhir. Seiring waktu pengembang telah mengadopsi alat manajemen ketergantungan yang meringankan tekanan menjaga agar dependensi tetap teratur dan terkini. Alat-alat ini menghasilkan alur kerja yang dioptimalkan untuk pengembang dan manajer proyek.
Saya telah membuat katalog alat ketergantungan terbaik di sini termasuk platform yang mapan dan yang baru muncul. Pengembangan web profesional membutuhkan pembelajaran berkelanjutan dan saya berpendapat manajemen ketergantungan adalah pembelajaran yang layak.
1. NPM
Saya tidak bisa menulis panduan ini tanpa memberikan kredit kepada Node Package Manager. Dibangun pada Node.js, sistem ini mendukung repositori yang luar biasa 100.000+ paket dan modul.
Setiap proyek dapat menggunakan pengaturan file package.json melalui NPM dan bahkan dikelola dengan Gulp (on Node). Ketergantungan dapat diperbarui dan dioptimalkan langsung dari terminal. Dan Anda dapat membangun proyek baru dengan file dependensi dan nomor versi yang secara otomatis ditarik dari file package.json.
NPM berharga untuk lebih dari sekadar manajemen ketergantungan, dan ini praktis merupakan alat yang harus diketahui untuk pengembangan web modern. Jika Anda bingung silakan lihat utas Reddit ini untuk penjelasan pemula.
2. Bower
Sistem manajemen paket Bower berjalan pada NPM yang tampaknya sedikit berlebihan tetapi ada perbedaan di antara keduanya, terutama bahwa NPM menawarkan lebih banyak fitur sementara Bower bertujuan untuk pengurangan filesize dan waktu buka untuk dependensi frontend.
Lihatlah pertanyaan Stack ini untuk mempelajari lebih lanjut tentang perbedaan halus.
Beberapa pengembang berpendapat bahwa Bower pada dasarnya sudah usang karena berjalan pada NPM, layanan yang dapat melakukan hampir semua yang dapat dilakukan Bower. Secara umum ini tidak salah.
Tapi devs harus menyadari Bower bisa mengoptimalkan alur kerja secara khusus dengan dependensi frontend. Saya merekomendasikan artikel Ben McCormick Is Bower Berguna untuk mempelajari lebih lanjut tentang nilai yang ditawarkan dari kedua alat manajemen paket.
3. RubyGems
RubyGems adalah manajer paket untuk Ruby dengan popularitas tinggi di antara pengembang web. Proyek ini open source dan termasuk semua permata Ruby gratis.
Untuk memberikan gambaran singkat untuk pemula, a “permata” hanya beberapa kode yang berjalan di lingkungan Ruby. Hal ini dapat menyebabkan program seperti Bundler yang mengelola versi gem dan menjaga semuanya diperbarui.
Pengembang Rails akan menyukai fitur ini, tetapi bagaimana dengan paket-paket frontend? Karena Ruby adalah open source, pengembang dapat membangun proyek seperti Bower for Rails. Ini membawa manajemen paket frontend ke platform Ruby dengan kurva belajar kecil.
4. Membutuhkan JS
Ada sesuatu yang istimewa tentang RequireJS karena pada dasarnya ini adalah JS toolset. Dapat digunakan untuk memuat modul JS dengan cepat termasuk modul Node.
Wajib bisa secara otomatis mendeteksi dependensi yang diperlukan berdasarkan apa yang Anda gunakan sehingga ini mungkin mirip dengan pemrograman perangkat lunak klasik di C / C ++ di mana perpustakaan disertakan dengan perpustakaan lebih lanjut.
Anda akan menemukan diskusi GitHub yang menarik tentang topik ini dan nilai yang ditawarkan pengembang web modern. Memang alat manajemen JS lainnya seperti webpack telah muncul, RequireJS masih berfungsi di lingkungan produksi. Dan jika itu berhasil untuk Anda, itu yang terpenting.
5. Selai
Manajemen paket berbasis browser hadir dalam bentuk baru dengan JamJS. Ini adalah pengelola paket JavaScript dengan manajemen otomatis mirip dengan RequireJS.
Semua dependensi Anda ditarik menjadi satu file JS yang memungkinkan Anda menambah dan menghapus item dengan cepat. Plus ini dapat diperbarui di browser terlepas dari alat lain yang Anda gunakan (seperti RequireJS).
Perpustakaan diperbarui berdasarkan versi terbaru melalui terminal. Setiap proyek bisa dibuat secara otomatis dengan komponen yang dioptimalkan berdasarkan kebutuhanmu. Jam gratis di GitHub dan patut dilihat jika Anda punya waktu.
6. Browserify
Sebagian besar pengembang mengetahui Browserify bahkan jika itu bukan bagian dari alur kerja khas mereka. Ini adalah alat manajemen ketergantungan lain yang mengoptimalkan modul dan pustaka yang diperlukan dengan menggabungkannya.
Bundel ini adalah didukung di browser yang berarti kamu bisa termasuk dan gabungkan modul dengan JavaScript biasa. Yang Anda butuhkan adalah NPM untuk memulai dan kemudian Browserify untuk bergerak.
Lihatlah tutorial intro ini untuk melihat bagaimana Node dapat dikelola langsung di browser. Ada juga buku pegangan Browserify panjang yang di-host di GitHub secara gratis. Idenya adalah untuk membawa semua alat Node ini ke dalam browser dan menghemat waktu dengan mengotomatiskan proses dengan Browserify.
7. Mantri
Masih dalam tahap awal pertumbuhannya, MantriJS adalah sistem ketergantungan untuk aplikasi web tingkat menengah hingga tinggi. Dependensi dikelola melalui ruang nama dan diatur secara fungsional untuk menghindari tabrakan dan mengurangi kekacauan.
Mantri saat ini di v0.2.2 pada saat penulisan. Sepenuhnya open source dan dibangun untuk aplikasi web yang lebih kompleks yang membutuhkan banyak dependensi. Mantri bertujuan untuk mengikuti praktik pemrograman modular dan berharap dapat mendorong pengembang ke jalur yang sama.
8. Volo
Volo alat manajemen proyek adalah repo NPM open source yang dapat membuat proyek, menambah pustaka, dan mengotomatiskan alur kerja.
Volo berjalan di dalam Node dan mengandalkan JavaScript untuk manajemen proyek. Panduan intro singkat dapat ditemukan di GitHub menjelaskan proses instalasi dan penggunaan umum. Misalnya jika Anda menjalankan perintah Volo buat
Anda dapat membubuhkan pustaka apa pun seperti HTML5 Boilerplate.
Tetapi selain menciptakan proyek baru Anda juga bisa tambah / perbarui perpustakaan untuk proyek yang lebih lama. Volo mengikat semua yang Anda butuhkan untuk pengembangan frontend. Lihatlah sasaran desain volo untuk melihat bagaimana operasinya di proyek dunia nyata.
9. Ender
Ender adalah “perpustakaan tanpa perpustakaan” dan merupakan salah satu manajer paket paling ringan yang akan Anda temukan online. Ini memungkinkan devs untuk cari melalui paket JS dan instal / kompilasi langsung dari baris perintah. Ender dianggap sebagai “Adik perempuan NPM” oleh tim dev.
Secara alami seluruh kerangka kerja Ender tersedia secara gratis di GitHub. Ini hanyalah alat yang Anda instal untuk membantu mengelola konsumsi kerangka JavaScript frontend untuk proyek lokal. Semuanya dimaksudkan untuk berjalan dengan mudah ke potensi penuh untuk alur kerja pengembang frontend.
Situs web utama Ender memiliki dokumentasi berkualitas sehingga layak untuk dilihat jika Anda tertarik.
10. pip
Metode yang disarankan untuk menginstal dependensi Python adalah melalui pip. Alat ini dibuat oleh Python Packaging Authority dan sepenuhnya open source seperti halnya Python itu sendiri.
Mayoritas pengembang Python merekomendasikan pip untuk dependensi termasuk tim Django. Apakah Anda baru memulai dengan Python atau sudah menggunakannya secara konsisten dengan pengembangan backend, ini adalah paket manajer yang Anda akan senang memilikinya di kotak peralatan Anda.
11. Komposer
Komposer adalah manajer paket yang sangat mirip dengan NPM, tetapi hanya berfokus pada pustaka PHP. Anda dapat menemukan daftar dependensi pada Packagist yang mencakup kerangka PHP besar seperti Laravel.
Jika Anda adalah pengembang PHP dalam bentuk apa pun, saya dengan serius merekomendasikan untuk melihat ke dalam Komposer. Nya mudah untuk memulai tetapi sulit untuk dipasangkan ke dalam alur kerja Anda. Namun dengan latihan itu akan menjadi pokok untuk proyek-proyek dev PHP.
Ini adalah alat serbaguna dengan potensi untuk tumbuh lebih besar dalam waktu. Plus NPM dapat bergabung dengan Komposer untuk membuat sistem manajemen ketergantungan frontend + backend untuk semua proyek PHP / JS Anda.
Membungkus
Sudah jelas banyak dari manajer ketergantungan ini memiliki sifat yang sama dengan kualitas yang sama. Beberapa dibangun untuk memecahkan masalah alternatif dan bahkan dapat berjalan bersama satu sama lain (mis. Komposer dan NPM).
Subjek manajemen ketergantungan bisa jadi sulit bagi pengembang baru. Saya sarankan memilih salah satu alat ini dan meneliti secara mendalam untuk belajar sebanyak mungkin. Coba buat webapps kecil dan pelajari mengapa manajemen ketergantungan berguna.
Setelah Anda mempelajari cara menerapkan alat-alat ini ke dalam alur kerja Anda, Anda tidak akan pernah mempertimbangkan untuk kembali.