Sebuah posting singkat, nilai utamanya adalah komentar (saya harap).
Saya beralih ke Go baru-baru ini. Sejauh ini saya telah mencatat tiga masalah:
time.Tickertidak berhenti: garis yang dilewatidefer tick.Stop()Komentar pada tipe perpustakaan mengatakan itu "secara bersamaan aman", tetapi tidak mengatakan dengan tepat bagaimana metode dapat dipanggil atau dari goroutine mana. Defaultnya dapat dianggap "metode jenis apa pun dapat dipanggil dari mana saja dalam urutan apa pun", tetapi dalam praktiknya hal ini tidak berlaku untuk sebagian besar jenis thread-safe: mereka memiliki beberapa siklus hidup (start-stop), atau semantik hanya mendukung satu penulis: mutasi metode dapat dipanggil hanya dari satu goroutine, atau keduanya.
Intinya terkait dan sebagian tumpang tindih dengan yang sebelumnya: ada bidang dalam struktur
sync.Mutex, tetapi tidak ada komentar yang menjelaskan apa yang dilindungi, dan yang terpenting mengapa (misalnya, "akses ke bidang ini harus dilindungi, karena ditulis dari ini dan itu dari goroutine dan dibaca dari goroutinenet/httpserver ").
Perhatikan bahwa bahkan dalam sumber golang / go, yang biasanya tidak dikomentari (selain yang dokumenter), semua mutex dalam subnet/- paket memiliki komentar pendek.
Sebuah pertanyaan untuk orang-orang yang telah menulis di Go lebih lama - masalah apa yang Anda perhatikan secara teratur, selama peninjauan, mempelajari kode lama, atau kode pustaka?
Posting ini adalah terjemahan lintas posting dari posting di Reddit .