Saat mempelajari Go, penting untuk menghindari kesalahan umum yang dapat menyebabkan kode tidak efisien, kesalahan, dan frustrasi. Berikut beberapa kesalahan umum yang harus dihindari:
1. Masuk di Peta Nihil:
- Masalah: Saat Anda mendefinisikan peta di Go, awalnya nihil. Jika Anda mencoba mengaksesnya secara langsung, program Anda akan panik.
- Solusi: Inisialisasi peta Anda menggunakan fungsi `make` atau literal peta.
2. Dereferensi Penunjuk Nihil:
- Masalah: Jika Anda mencoba melakukan dereferensi pointer nihil, program Anda akan panik.
- Solusi: Pastikan Anda membuat penunjuk baru atau menggunakan metode penerima penunjuk.
3. Beberapa Nilai dalam Konteks Nilai Tunggal:
- Masalah: Saat Anda mencoba mengembalikan beberapa nilai dalam konteks nilai tunggal, program Anda akan panik.
- Solusi: Pastikan Anda menggunakan jenis pengembalian yang benar dan menangani kesalahan dengan benar.
4. Nilai Array yang Tidak Dapat Diubah:
- Masalah: Array di Go adalah nilai, bukan referensi. Artinya perubahan pada array tidak mempengaruhi array aslinya.
- Solusi: Gunakan irisan, bukan array, karena irisan adalah referensi dan dapat dimodifikasi.
5. Variabel Bayangan:
- Masalah: Jika Anda mendeklarasikan variabel dengan nama yang sama dengan parameter fungsi, parameter tersebut akan dibayangi.
- Solusi: Gunakan nama yang berbeda untuk variabel atau gunakan perintah `go run` dengan tanda `-gcflags` untuk menonaktifkan shadowing.
6. Koma Hilang dalam Array atau Irisan Multi-Baris:
- Masalah: Jika Anda lupa menyertakan koma di akhir setiap baris dalam array atau irisan multi-baris, kode Anda tidak akan dapat dikompilasi.
- Solusi: Pastikan setiap baris diakhiri dengan koma.
7. Penggunaan Fungsi Trim yang Salah:
- Masalah: Fungsi `trim` di Go menghapus semua titik Unicode dalam sebuah cutset. Hal ini dapat menimbulkan hasil yang tidak terduga.
- Solusi: Gunakan `TrimSuffix` daripada `trim` untuk kontrol lebih besar atas proses pemangkasan.
8. Penggunaan Fungsi Salin yang Salah:
- Masalah: Fungsi `salin` di Go menyalin jumlah minimum elemen dari sumber ke tujuan. Hal ini dapat menimbulkan hasil yang tidak terduga.
- Solusi: Pastikan Anda menggunakan jumlah elemen yang benar dan menangani kesalahan dengan benar.
9. Tidak Meninjau Game:
- Masalah: Tidak meninjau game Anda dapat mengakibatkan hilangnya peluang untuk perbaikan.
- Solusi: Tinjau game Anda secara berkala untuk mengidentifikasi area yang perlu ditingkatkan.
10. Tidak Mendapat Bantuan dari Pemain yang Lebih Kuat:
- Masalah: Tidak mencari bantuan dari pemain yang lebih kuat dapat menyebabkan hilangnya peluang untuk perbaikan.
- Solusi: Carilah bantuan dari pemain yang lebih kuat untuk mempelajari strategi baru dan meningkatkan permainan Anda.
11. Tidak Menggunakan Nilai Pengembalian Bernama:
- Masalah: Tidak menggunakan nilai pengembalian bernama dapat menyebabkan kode lebih sulit dibaca.
- Solusi: Gunakan nilai pengembalian bernama untuk membuat kode Anda lebih mudah dibaca dan dipelihara.
12. Penggunaan Penundaan yang Salah:
- Masalah: Penyalahgunaan kata kunci `defer` dapat menyebabkan kode sulit dibaca dan dipahami.
- Solusi: Pastikan Anda menggunakan `defer` dengan benar untuk menunda eksekusi suatu fungsi hingga fungsi di sekitarnya kembali.
13. Penggunaan Tipe Data yang Salah:
- Masalah: Menggunakan tipe data yang salah dapat menyebabkan perilaku yang tidak terduga.
- Solusi: Pastikan Anda menggunakan tipe data yang benar untuk pekerjaan itu.
14. Tidak Menggunakan Perpustakaan Bawaan:
- Masalah: Tidak menggunakan pustaka bawaan dapat menyebabkan kode lebih sulit untuk ditulis dan dipelihara.
- Solusi: Gunakan perpustakaan bawaan untuk menghemat waktu dan tenaga.
15. Tidak Menggunakan Alat Linting:
- Masalah: Tidak menggunakan alat linting dapat menyebabkan kode lebih sulit dibaca dan dipahami.
- Solusi: Gunakan alat linting seperti `golangci-lint` untuk mengidentifikasi kesalahan dalam kode Anda.
Dengan menghindari kesalahan umum ini, Anda dapat memastikan bahwa kode Go Anda efisien, mudah dibaca, dan dipelihara.
Kutipan:[1] https://www.bacancytechnology.com/blog/common-mistakes-in-go
[2] https://www.reddit.com/r/baduk/comments/9wocj0/common_mistakes_in_learning_go/
[3] https://www.manning.com/books/100-go-mistakes-and-how-to-avoid-them
[4] https://www.linkedin.com/posts/ubaydah_five-common-mistakes-to-avoid-when-learning-activity-7057402591013482496-TeIu?trk=public_profile_like_view
[5] https://www.tftus.com/blog/the-most-common-golang-development-mistakes