Zen Go (Versi Saku)

Untuk mengantisipasi dimulainya kursus "Pengembang Golang", kami menyiapkan terjemahan sebuah catatan kecil yang bermanfaat.




Sepuluh kiat teknis untuk menulis kode Go yang sederhana, mudah dibaca, dan mudah dirawat. Disajikan sebagai bagian dari GopherCon Israel 2020 .

Setiap paket hanya memiliki satu tujuan.


Paket Go yang dirancang dengan baik seharusnya hanya menerapkan satu ide, memperkenalkan serangkaian perilaku terkait. Paket Go yang baik dimulai dengan nama yang bagus. Cobalah untuk membuat nama presentasi singkat dari paket Anda, menggambarkan apa yang disediakannya hanya menggunakan satu kata.

Penanganan Kesalahan Eksplisit


Program yang dapat diandalkan terdiri dari elemen-elemen yang menangani kesalahan sebelum mereka dapat memukulnya dari belakang. Kata kerja if err! = Nil {return err} dibenarkan oleh pentingnya penanganan setiap kesalahan di tempat-tempat di mana mereka dapat terjadi. Panik dan pulih bukanlah pengecualian, mereka tidak dimaksudkan untuk digunakan dengan cara ini.

Cegah sarang yang dalam dengan kembali


Setiap kali Anda indentasi, Anda menambahkan satu kondisi lagi ke tumpukan mental programmer, menempati salah satu dari 7 ± 2 slot dalam memori jangka pendeknya. Hindari aliran kontrol padding multi-level. Alih-alih bersarang dalam, pertahankan jalur kode yang berhasil sejauh mungkin ke kiri menggunakan operator batas.

Serahkan konkurensi kepada penelepon


Biarkan penelepon memilih apakah dia ingin menjalankan perpustakaan Anda atau berfungsi secara tidak sinkron, alih-alih memaksakan pilihan ini padanya. Jika pustaka Anda menggunakan multithreading, itu harus dilakukan secara transparan.

Sebelum memulai goroutine, tanyakan kapan akan berhenti.


Gorutin memiliki sumber daya; kunci, variabel, memori, dll. Cara paling dapat diandalkan untuk membebaskan sumber daya ini adalah dengan menghentikan goroutine yang memilikinya.

Hindari properti tingkat paket


Berusaha keras untuk transparansi, mengurangi konektivitas, dan menghindari tindakan jarak jauh yang mengerikan dengan menyediakan dependensi yang dibutuhkan tipe sebagai bidang jenis ini, daripada menggunakan variabel paket.

Kesederhanaan penting


Kesederhanaan tidak identik dengan keprimitifan. Kesederhanaan tidak berarti ketidaklengkapan, itu berarti keterbacaan dan pemeliharaan . Jika Anda punya banyak pilihan, selalu condong ke solusi paling sederhana.

Tulis tes untuk menangkap perilaku API paket Anda.


Apakah Anda memulai dengan tes atau berakhir, berjuang untuk cakupan 100% dengan tes atau puas dengan minimum yang diperlukan - terlepas dari semua ini, API paket Anda adalah kontrak Anda dengan pengguna. Tes adalah jaminan bahwa kontrak ini dinyatakan dengan jelas. Pastikan Anda menguji perilaku yang dapat diamati dan diandalkan pengguna.

Jika sesuatu terasa lambat bagi Anda, buktikan dulu menggunakan patokan.


Banyak kejahatan terhadap keberlanjutan dilakukan atas nama produktivitas. Optimalisasi menghancurkan abstraksi, mengekspos bagian dalam dan mengikat erat. Jika Anda memutuskan untuk menanggung beban ini, pastikan bahwa ada alasan nyata untuk itu.

Moderasi adalah Kebajikan


Gunakan goroutine, saluran, kunci, antarmuka, embedding dengan rasa proporsi.

Masalah dukungan


Kejelasan, keterbacaan, kesederhanaan adalah semua aspek keberlanjutan. Apakah mungkin untuk mendukung apa yang Anda kerjakan setelah Anda pergi? Apa yang dapat Anda lakukan hari ini untuk membuat hidup lebih mudah bagi mereka yang menggantikan Anda besok?



Pelajari lebih lanjut tentang kursus.



All Articles