Konvensyen Penamaan Antara Muka dalam Go
Masalah:
Amalan terbaik untuk menamakan antara muka dalam Go, terutamanya mereka yang mentakrifkan satu kaedah atau satu set yang berkaitan kaedah.
Jawapan:
-
Antara Muka Kaedah Tunggal: Untuk antara muka dengan kaedah tunggal, konvensyennya adalah menggunakan akhiran seperti "-er" untuk mencipta kata nama ejen. Contohnya termasuk "Pembaca", "Penulis", "Pendekat".
-
Antara Muka Berbilang Kaedah: Apabila antara muka mempunyai berbilang kaedah, pilih nama deskriptif yang menggambarkan tujuan yang dimaksudkan. Contohnya termasuk "net.Conn", "http.ResponseWriter", "io.ReadWriter".
Penjelasan Terperinci:
Kaedah Tunggal Antara muka:
- Akhiran "-er" membantu wujudkan corak penamaan yang konsisten untuk antara muka satu kaedah.
- Konvensyen ini mengelakkan kekeliruan dengan nama fungsi yang mempunyai maksud yang serupa. Sebagai contoh, jangan namakan kaedah antara muka "ToString" melainkan ia mempunyai tandatangan dan fungsi yang sama seperti kaedah "String".
Antara Muka Berbilang Kaedah:
- Apabila antara muka termasuk berbilang kaedah, nama itu hendaklah menerangkan dengan jelas tujuan keseluruhannya.
- Ini memastikan bahawa pembangun boleh memahami dengan mudah kefungsian antara muka tanpa perlu membaca setiap dokumentasi kaedah.
Nama Penerima dalam Kaedah:
- Jangan' t gunakan nama penerima generik seperti "ini" atau "diri".
- Sebaliknya, gunakan pendek, satu atau nama dua aksara yang mencerminkan jenis penerima. Ini membantu meningkatkan kebolehbacaan dan ketekalan kod.
Sumber Tambahan:
- [Effective Go: Interface names](https://go.dev /doc/effective_go#interface_names)
- [Jenis Antaramuka @ Apa yang terkandung dalam nama? - Ceramah di golang.org](https://talks.golang.org/2011/names.slide)
- [Penerima @ Apa ada pada nama? - Ceramah di golang.org](https://talks.golang.org/2011/names.slide#47)
- [Komen Semak Kod Go: Nama Penerima](https://github.com/ golang/go/wiki/CodeReviewComments#receiver-names)
Atas ialah kandungan terperinci Bagaimanakah anda menamakan antara muka dengan berkesan dalam Go, terutamanya apabila mereka mentakrifkan satu kaedah atau satu set kaedah yang berkaitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!