Grow with AppMaster Grow with AppMaster.
Become our partner arrow ico

Modul Go dan Manajemen Ketergantungan

Modul Go dan Manajemen Ketergantungan

Pengantar Manajemen Ketergantungan di Go

Manajemen ketergantungan adalah aspek penting dari setiap proyek perangkat lunak, karena membantu mengelola versi pustaka dan paket yang diandalkan oleh proyek Anda. Di Go (Golang) , manajemen ketergantungan memastikan bahwa proyek Go Anda dapat direproduksi dan dipelihara dengan membuatnya lebih mudah untuk menyelesaikan masalah pembuatan versi, menjaga kompatibilitas dengan paket lain, dan merampingkan proses pengembangan secara keseluruhan.

Software development process

Sebelum Go Modules, manajemen ketergantungan di Go kurang disederhanakan. Pengembang sering menggunakan alat seperti dep , glide , atau govendor untuk mengelola dependensi mereka. Sementara alat-alat ini sangat membantu, mereka bukan bagian dari proyek Go resmi dan, dengan demikian, menimbulkan gesekan dalam mengadopsi Go sebagai bahasa untuk beberapa pengembang.

Modul Era Go

Pada tahun 2018, tim Go memperkenalkan konsep "modul", sebuah standar baru untuk manajemen ketergantungan dalam proyek Go. Modul adalah kumpulan paket terkait yang diberi versi bersama, menyediakan semua dependensi yang diperlukan untuk basis kode Anda. Dengan diperkenalkannya Go Modules di Go 1.11, manajemen ketergantungan menjadi lebih sederhana, lebih serbaguna, dan didukung secara resmi oleh proyek Go. Go Modules memperkenalkan fitur-fitur seperti:

  • Pembuatan versi dependensi menggunakan Semantic Versioning (SemVer)
  • Perintah pengelolaan dependensi yang disederhanakan (misalnya, go get , go mod tidy )
  • Pembuatan otomatis file manifes ( go.mod ) yang berisi informasi detail dependensi
  • Pengunduhan otomatis dan penyimpanan cache dari dependensi yang diperlukan

Dengan Go Modules, Anda tidak perlu lagi menempatkan kode Anda di dalam direktori $GOPATH , yang sebelumnya merupakan kendala dalam pengembangan Go. Sistem baru ini memungkinkan struktur proyek yang lebih fleksibel, membuatnya lebih mudah untuk bekerja pada proyek Go saat beralih di antara repositori yang berbeda.

Menyiapkan Proyek Modul Go Anda

Memulai Go Modules sangatlah mudah. Ikuti langkah-langkah di bawah ini untuk menyiapkan proyek Go Modules baru.

  1. Pertama, pastikan Anda telah menginstal Go versi 1.11 atau lebih baru di sistem Anda. Anda dapat memeriksa versi Go Anda dengan menjalankan go version di terminal.
  2. Pergi ke lokasi yang Anda inginkan dan buat folder proyek baru dengan nama deskriptif, misalnya my-go-project .
  3. Arahkan ke folder yang baru dibuat di baris perintah.
  4. Inisialisasi modul Go baru dengan menjalankan perintah go mod init , diikuti dengan jalur modul. Misalnya, Anda dapat menjalankan go mod init github.com/your-username/my-go-project jika Anda bermaksud menghosting proyek di GitHub. Perintah ini menghasilkan file baru bernama go.mod di dalam folder proyek Anda.

File go.mod adalah inti dari proyek Go Modules Anda. Ini berisi metadata tentang modul, seperti namanya, dan mencantumkan semua dependensi yang diperlukan. Anda akan berinteraksi dengan file go.mod selama siklus proyek Go Anda untuk mengelola dependensi Anda. Setelah proyek Go Module Anda siap, Anda siap untuk mulai menambahkan dan mengelola dependensi menggunakan sistem Go Modules.

Mengelola Ketergantungan dalam Go Modules

Go Modules menyediakan pendekatan langsung dan efektif untuk mengelola dependensi proyek Anda. Ini memungkinkan Anda untuk menambah, memperbarui, atau menghapus versi dependensi tertentu, membantu Anda mempertahankan kendali atas proyek Anda dan interaksinya dengan paket lain. Bagian ini akan memandu Anda melalui proses pengelolaan dependensi dalam proyek Go Modules Anda.

Menambahkan Ketergantungan

Untuk menambahkan dependensi baru, yang perlu Anda lakukan hanyalah mengimpor paket yang diinginkan dalam kode Go Anda. Misalnya, jika Anda ingin menambahkan github.com/gorilla/mux ke proyek Anda, impor seperti ini:

 impor (
  "github.com/gorilla/mux"
)

Lain kali Anda menjalankan go build atau go test , Go akan secara otomatis mengunduh paket yang diperlukan, memperbarui file go.mod dan go.sum , dan mengonfigurasi proyek Anda untuk menggunakan paket yang ditentukan. Sebagai alternatif, Anda dapat menggunakan perintah go get untuk menambahkan dependensi baru secara eksplisit:

 dapatkan github.com/gorilla/mux

Ini tidak hanya mengambil paket tetapi juga memperbarui berkas go.mod dan go.sum proyek Anda.

Memperbarui Ketergantungan

Untuk memperbarui dependensi tertentu ke versi baru, gunakan perintah go get diikuti jalur impor paket dan nomor versi yang diinginkan:

 dapatkan github.com/gorilla/[email protected]

Perintah ini akan memperbarui berkas go.mod dengan versi baru paket dan mengunduh kode sumbernya. Perhatikan bahwa jika paket yang diperbarui memperkenalkan perubahan yang dapat merusak, Anda mungkin perlu menyesuaikan kode Anda.

Menghapus Ketergantungan

Untuk menghapus ketergantungan dari proyek Anda, pertama-tama, hapus pernyataan impor yang sesuai dari kode sumber Anda. Setelah itu, jalankan perintah go mod tidy untuk membersihkan file go.mod :

Try AppMaster today!
Platform can build any web, mobile or backend application 10x faster and 3x cheaper
Start Free
 pergi mod rapi

Perintah ini akan menghapus dependensi yang tidak terpakai dari file go.mod dan memastikan proyek Anda tetap bersih dan teratur.

Semantic Versioning dan Go Modules

Semantic Versioning (SemVer) adalah sistem versi yang diadopsi secara luas yang menetapkan nomor versi unik untuk rilis perangkat lunak. Ini menggunakan format penomoran tiga bagian: Major.Minor.Patch (mis., 1.2.3). Di SemVer:

  • Perubahan versi utama menunjukkan perubahan yang merusak dan memerlukan penyesuaian kode manual.
  • Perubahan versi kecil memperkenalkan fitur-fitur baru namun tetap kompatibel dengan versi sebelumnya.
  • Perubahan versi tambalan mencakup perbaikan bug dan peningkatan kinerja kecil, juga kompatibel mundur.

Go Modules menggabungkan Semantic Versioning untuk menangani versi dependensi, memungkinkan pengembang mengelola pembaruan, kompatibilitas mundur, dan menghentikan perubahan dengan lebih mudah. Saat menentukan versi dependensi dengan Go Modules, Anda dapat menggunakan rentang versi atau nomor versi tertentu. Misalnya: - Untuk mengambil versi stabil terbaru dari sebuah paket, gunakan jalur impor paket tanpa nomor versi: go get github.com/gorilla/mux . - Untuk mengambil versi tertentu, tambahkan nomor versi setelah simbol @ : go get github.com/gorilla/[email protected] . - Untuk mengambil pembaruan minor atau tambalan terbaru dalam versi utama tertentu, gunakan simbol ^ (tanda sisipan): go get github.com/gorilla/mux@^v1.0.0 .

Perintah Modul Common Go dan Kegunaannya

Berikut adalah beberapa perintah Go Modules yang paling umum digunakan dan skenario penggunaannya:

pergi mod init

go mod init menginisialisasi proyek Go Modules baru di dalam direktori saat ini. Ini menghasilkan file go.mod , yang berisi informasi tentang modul, dependensinya, dan batasan versi.

 buka mod init example.com/myproject

Ganti example.com/myproject dengan jalur modul Anda.

pergi dapatkan

go get adalah perintah serbaguna yang digunakan untuk menambah, memperbarui, atau menghapus ketergantungan. Berikan jalur impor paket, secara opsional diikuti dengan nomor atau rentang versi.

 dapatkan github.com/gorilla/[email protected]

Perintah ini menambah atau memperbarui paket github.com/gorilla/mux ke versi v1.8.0.

pergi mod rapi

go mod tidy menghapus dependensi yang tidak terpakai dari file go.mod dan memperbaruinya untuk mencerminkan pernyataan import dalam kode sumber proyek Anda.

 pergi mod rapi

Jalankan perintah ini setelah menghapus pernyataan import untuk dependensi yang tidak diinginkan.

pergi grafik mod

go mod graph menampilkan pohon ketergantungan proyek, menunjukkan ketergantungan langsung dan tidak langsung dalam format yang dapat dibaca. Perintah ini dapat membantu saat men-debug masalah ketergantungan yang kompleks.

 pergi grafik mod

pergi mod verifikasi

go mod verify memeriksa integritas dependensi yang tercantum dalam file go.sum . Jika checksum dependensi tidak cocok dengan nilai yang tercatat, perintah akan melaporkan kesalahan.

 pergi mod verifikasi

Menyelesaikan Konflik Ketergantungan

Konflik ketergantungan dapat muncul ketika proyek Anda bergantung pada banyak paket dengan persyaratan versi yang berbeda untuk ketergantungan bersama. Go Modules menyediakan mekanisme bawaan untuk menangani konflik ini menggunakan arahan replace dan exclude dalam file go.mod .

Arahan Ganti

Arahan replace memungkinkan Anda mengubah versi modul ke versi lain atau memetakannya ke jalur lokal. Ini dapat berguna dalam situasi di mana Anda perlu menguji versi tertentu, proyek bercabang, atau perubahan lokal sebelum berkomitmen ke repositori jarak jauh. Untuk menggunakan direktif ganti, tambahkan baris berikut ke berkas go.mod Anda:

 ganti example.com/original/module v1.2.3 => example.com/new/module v1.4.0

Ini menggantikan example.com/original/module versi v1.2.3 dengan example.com/new/module version v1.4.0 . Anda juga dapat mengganti modul dengan jalur lokal:

 ganti example.com/original/module v1.2.3 => ../local/path/to/new/module

Petunjuk Pengecualian

Anda dapat menggunakan arahan exclude untuk mencegah versi modul tertentu digunakan dalam proyek Anda. Ini berguna ketika Anda mengetahui versi tertentu memiliki masalah kompatibilitas atau kerentanan keamanan. Untuk mengecualikan versi modul, tambahkan baris berikut ke file go.mod Anda:

 kecualikan example.com/target/module v1.2.3

Ingatlah untuk menjalankan go mod tidy setelah menerapkan perubahan ini untuk memperbarui berkas go.sum dan menghitung ulang pohon ketergantungan.

Modul Private Go dan Manajemen Repositori

Bekerja dengan Modul dan repositori Go pribadi mirip dengan bekerja dengan modul dan repositori publik, tetapi ada beberapa langkah tambahan untuk memastikan autentikasi dan privasi yang tepat.

Konfigurasi GOPRIVATE

Untuk mencegah bocornya jalur impor ke server publik, konfigurasikan variabel lingkungan GOPRIVATE . Variabel ini menentukan daftar pola jalur impor yang dipisahkan koma untuk repositori pribadi.

 pergi env -w GOPRIVATE=example.com/private/path/*

Menggunakan Token Akses

Untuk menggunakan repositori pribadi, Anda biasanya perlu mengautentikasi dengan layanan hosting kode sumber, seperti GitHub atau GitLab. Buat token akses pribadi dengan izin yang sesuai (seperti cakupan repo untuk GitHub). Lihat dokumentasi layanan hosting Anda untuk langkah spesifik membuat token akses. Setelah mendapatkan token akses, konfigurasikan variabel lingkungan untuk autentikasi. Gunakan variabel lingkungan yang sesuai berdasarkan layanan VCS Anda.

Try AppMaster today!
Platform can build any web, mobile or backend application 10x faster and 3x cheaper
Start Free
 ekspor GIT_TERMINAL_PROMPT=0
ekspor GITHUB_TOKEN=YOUR_ACCESS_TOKEN

Ini memungkinkan perintah go untuk mengunduh dan mengautentikasi repositori pribadi sebagai Modul Go. Jika Anda bekerja dengan beberapa layanan VCS, Anda dapat mengonfigurasi masing-masing token akses dengan menentukan variabel lingkungan terpisah sesuai kebutuhan.

Bermigrasi dari sistem Manajemen Ketergantungan Sebelumnya

Sebelum Go Modules, ada berbagai sistem manajemen ketergantungan seperti Dep, glide, atau solusi direktori vendor kustom. Jika Anda masih menggunakan sistem ini, saatnya untuk bermigrasi ke Go Modules agar tetap terkini dan menuai manfaat dari pengelolaan dependensi Golang modern. Untuk bermigrasi dari sistem manajemen ketergantungan sebelumnya ke Go Modules, ikuti langkah berikut:

  1. Buat cadangan proyek asli Anda untuk memastikan Anda dapat kembali ke keadaan sebelumnya jika perlu.
  2. Hapus semua file manajemen ketergantungan yang ada (misalnya, Gopkg.toml atau Gopkg.lock ).
  3. Arahkan ke akar proyek Anda di terminal, dan jalankan go mod init untuk membuat berkas go.mod baru. Ini juga akan mencoba mengonversi file dependensi Anda sebelumnya, jika ada, menjadi entri Go Modules.
  4. Jalankan go mod tidy untuk mengisi file go.mod dengan dependensi dari sistem Anda sebelumnya. Perintah ini memastikan bahwa hanya paket-paket yang diperlukan saja yang merupakan bagian dari pohon ketergantungan.
  5. Pada titik ini, Anda mungkin perlu melakukan penyesuaian pada berkas go.mod Anda untuk mengatasi konflik ketergantungan atau untuk menjalankan versi tertentu. Gunakan arahan replace dan exclude sesuai kebutuhan untuk menangani masalah ini.
  6. Verifikasi bahwa proyek Anda masih membangun dan lulus pengujian seperti yang diharapkan.

Dengan mengikuti langkah-langkah ini, proyek Anda sekarang akan bekerja dengan Go Modules, merampingkan manajemen ketergantungan dan membuatnya lebih dapat dipertahankan dalam jangka panjang. Setiap masalah yang tersisa harus diselesaikan dengan menyesuaikan file go.mod atau memeriksa jalur impor Anda untuk memastikannya mengikuti format yang benar.

AppMaster: Percepatan Pengembangan Aplikasi Berbasis Golang

Memasukkan Modul Go dan praktik terbaik manajemen ketergantungan ke dalam alur kerja harian Anda sangat penting untuk memastikan proyek perangkat lunak berbasis Golang yang dapat dipelihara dan diskalakan. Tetapi bagaimana jika Anda dapat mempercepat seluruh proses pengembangan aplikasi sambil tetap memanfaatkan kekuatan Golang?

Masukkan AppMaster.io , platform tanpa kode yang komprehensif dengan penekanan pada pembuatan aplikasi backend berbasis Golang menggunakan lingkungan pengembangan visual. Selain aplikasi backend, AppMaster memungkinkan pembuatan aplikasi web dan seluler menggunakan pendekatan terintegrasi yang dirancang untuk merampingkan proses pengembangan.

Dengan AppMaster, pengguna dapat membuat model data (skema database), merancang proses bisnis, dan menentukan endpoints REST API dan WebSocket melalui UI visual. Aplikasi web dibuat menggunakan antarmuka seret dan lepas bersama dengan perancang Proses Bisnis Web untuk pengalaman pengguna yang sepenuhnya interaktif. Aplikasi seluler dirancang serupa, dengan perancang Proses Bisnis seluler dan kemampuan desain UI.

Platform AppMaster mengambil cetak biru Anda dan menghasilkan kode sumber untuk aplikasi Anda setelah Anda menekan tombol 'Publikasikan'. Ini mengkompilasi aplikasi, menjalankan pengujian, mengemasnya ke dalam wadah Docker (untuk aplikasi backend), dan menyebarkan semuanya ke cloud, semuanya dalam hitungan detik.

Aplikasi backend dihasilkan menggunakan Golang (Go), yang diuntungkan dari kinerja, kesederhanaan, dan pemeliharaan yang ditawarkan Golang. Aplikasi web dibuat menggunakan framework Vue3 dan JavaScript/TypeScript , sedangkan aplikasi seluler menggunakan framework berbasis server AppMaster, Kotlin dan Jetpack Compose untuk Android, dan SwiftUI untuk aplikasi iOS.

Berkat platform AppMaster yang kuat, bahkan mereka yang tidak memiliki pengalaman coding dapat membuat solusi perangkat lunak yang lengkap dan dapat diskalakan yang mencakup backend server, situs web, portal pelanggan, dan aplikasi seluler asli. AppMaster tidak hanya mempercepat seluruh proses pengembangan perangkat lunak, tetapi juga menghilangkan utang teknis sepenuhnya dengan membuat aplikasi dari awal setiap kali persyaratan diubah.

Jika Anda mempertimbangkan untuk mengadopsi platform no-code untuk kebutuhan pengembangan perangkat lunak Anda, terutama yang memanfaatkan keunggulan Golang, AppMaster harus berada di urutan teratas daftar Anda. Daftar untuk mendapatkan akun gratis dan jelajahi masa depan pengembangan aplikasi dengan solusi yang 10x lebih cepat dan 3x lebih hemat biaya.

Apa saja perintah Go Modules yang umum dan penggunaannya?

Perintah Common Go Module meliputi:
  • go mod init - menginisialisasi proyek Go Modules baru
  • go get - tambahkan, perbarui, atau hapus ketergantungan
  • go mod tidy - menghapus dependensi yang tidak terpakai
  • go mod graph - menampilkan pohon ketergantungan
  • go mod verify - memeriksa pohon ketergantungan untuk masalah

Apa itu pembuatan versi semantik dan perannya dalam Modul Go?

Semantic Versioning (SemVer) adalah sistem pembuatan versi menggunakan format penomoran tiga bagian: Major.Minor.Patch (misalnya, 1.2.3). Ini membantu pengembang mengkomunikasikan perubahan dalam perangkat lunak mereka. Go Modules menyertakan SemVer untuk dependensi pembuatan versi, membuatnya lebih mudah menangani pembaruan, kompatibilitas mundur, dan merusak perubahan.

Bagaimana cara menyiapkan proyek Go Module baru?

Buat folder proyek baru, arahkan ke sana melalui baris perintah, lalu gunakan perintah go mod init diikuti dengan jalur modul. Ini menghasilkan file go.mod , yang menunjukkan bahwa folder tersebut adalah proyek Go Modules. Edit file untuk mengelola dependensi Anda.

Bagaimana AppMaster.io dapat mempercepat pengembangan aplikasi berbasis Golang?

AppMaster.io adalah platform no-code yang menghasilkan aplikasi backend berbasis Golang. Memanfaatkan AppMaster dapat mempercepat pengembangan aplikasi secara drastis, karena memungkinkan pengguna merancang model data, proses bisnis, dan endpoints API secara visual, menghasilkan kode sumber aplikasi, dan memberikan manfaat skalabilitas dan pemeliharaan penuh.

Apa itu Modul Go dan mengapa manajemen ketergantungan penting di Go?

Go Modules adalah sistem manajemen ketergantungan resmi untuk proyek Go (Golang). Ini membantu Anda mengelola dependensi proyek dengan mudah, memastikan bahwa proyek Go Anda dapat direproduksi dan dipelihara. Manajemen ketergantungan sangat penting untuk menyelesaikan masalah pembuatan versi, memastikan kompatibilitas dengan paket lain, dan merampingkan proses pengembangan.

Bagaimana cara menambah, memperbarui, atau menghapus dependensi di Go Modules?

Untuk menambah atau memperbarui dependensi, gunakan perintah go get diikuti dengan jalur impor paket dan nomor versi. Untuk menghapus dependensi, hapus pernyataan import yang sesuai di kode sumber Anda, dan jalankan go mod tidy untuk membersihkan dependensi yang tidak terpakai dari file go.mod .

Bagaimana cara bermigrasi dari sistem manajemen ketergantungan sebelumnya ke Modul Go?

Untuk bermigrasi dari Dep, glide, atau sistem manajemen ketergantungan lainnya, buat cadangan proyek asli Anda terlebih dahulu. Kemudian jalankan go mod init untuk membuat file go.mod baru. Selanjutnya, gunakan go mod tidy untuk mengisi file go.mod dengan dependensi dari sistem Anda sebelumnya, dan lakukan penyesuaian yang diperlukan.

Bagaimana cara menggunakan Modul Go pribadi dan mengelola repositori?

Untuk menggunakan Modul Go privat, konfigurasikan lingkungan Anda dengan go env -w GOPRIVATE , diikuti dengan daftar pola pathspec modul privat yang dipisahkan koma. Gunakan konfigurasi Git atau token akses untuk mengautentikasi terhadap repositori pribadi, dan kelola dependensi Anda seperti proyek Modul Go lainnya.

Bagaimana cara mengatasi konflik ketergantungan di Go Modules?

Konflik ketergantungan dapat diselesaikan dengan menggunakan arahan replace atau exclude dalam berkas go.mod . Arahan replace memungkinkan Anda untuk mengganti ketergantungan dengan versi lain atau jalur lokal, sedangkan arahan exclude mencegah versi tertentu digunakan dalam proyek Anda.

Posting terkait

Bagaimana Platform Telemedicine Dapat Meningkatkan Pendapatan Praktik Anda
Bagaimana Platform Telemedicine Dapat Meningkatkan Pendapatan Praktik Anda
Temukan bagaimana platform telemedicine dapat meningkatkan pendapatan praktik Anda dengan menyediakan akses pasien yang lebih baik, mengurangi biaya operasional, dan meningkatkan perawatan.
Peran LMS dalam Pendidikan Daring: Transformasi E-Learning
Peran LMS dalam Pendidikan Daring: Transformasi E-Learning
Jelajahi bagaimana Sistem Manajemen Pembelajaran (LMS) mengubah pendidikan daring dengan meningkatkan aksesibilitas, keterlibatan, dan efektivitas pedagogi.
Fitur Utama yang Perlu Diperhatikan Saat Memilih Platform Telemedicine
Fitur Utama yang Perlu Diperhatikan Saat Memilih Platform Telemedicine
Temukan fitur-fitur penting dalam platform telemedicine, dari keamanan hingga integrasi, yang memastikan penyampaian layanan kesehatan jarak jauh yang lancar dan efisien.
Mulai Gratis
Terinspirasi untuk mencoba ini sendiri?

Cara terbaik untuk memahami kekuatan AppMaster adalah dengan melihatnya sendiri. Buat aplikasi Anda sendiri dalam hitungan menit dengan langganan gratis

Hidupkan Ide Anda