Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mereka bentuk API fungsi elegan di Golang?
Mereka bentuk API berfungsi yang elegan dalam Go memerlukan mengikut konvensyen penamaan, mengoptimumkan jenis parameter, mengurus ralat dan mempertimbangkan kebolehujian. Gunakan konvensyen penamaan untuk membezakan dengan jelas nama fungsi dan kaedah serta mengenal pasti kategori atau tujuan API. Optimumkan jenis parameter, gunakan struktur dan bukannya penunjuk atau jenis nilai, dan tentukan parameter input dan output yang jelas. Gunakan jenis ralat untuk mewakili sebab mengapa panggilan API gagal dan elakkan daripada mengembalikan rentetan ralat atau nilai secara terus. Tulis fungsi yang boleh diuji unit dan elakkan menggunakan keadaan global atau data boleh ubah yang dikongsi.
Mereka bentuk API berfungsi yang elegan dalam Go
Mereka bentuk API berfungsi yang intuitif dan mudah digunakan adalah penting untuk membina asas kod yang boleh diselenggara dan berskala. Begini cara melakukannya dalam Go:
1. Gunakan konvensyen penamaan
get_
, calculate_
. get_
、calculate_
。// Get the current user. func GetCurrentUser() *User { ... } // Calculate the discount for a given user. func CalculateDiscountForUser(user *User) float64 { ... }
2. 优化参数类型
type User struct { ID int Name string IsPremium bool } func CreateUser(u *User) error { ... }
3. 管理错误
error
接口。errors.Is
和 errors.As
import "errors" var ErrUserNotFound = errors.New("user not found") func GetUserByID(id int) (*User, error) { ... }
2. Optimumkan jenis parameter
import ( "fmt" "io" ) // Logger接口定义了Write方法。 type Logger interface { Write(string) } // FileLogger将日志写入文件。 type FileLogger struct { File *io.File } // Write implements the Logger interface. func (l *FileLogger) Write(msg string) { fmt.Fprintf(l.File, msg) } // NewLogger创建新的日志记录器。 func NewLogger(path string) (Logger, error) { f, err := os.Create(path) if err != nil { return nil, err } return &FileLogger{f}, nil }
3. Urus Ralat
Gunakan jenis ralat untuk menunjukkan dengan jelas sebab panggilan API gagal.
Elakkan daripada mengembalikan rentetan atau nilai ralat secara langsung, sebaliknya gunakan antara muka error
standard.
Gunakan errors.Is
dan errors.As
untuk menyemak jenis ralat tertentu.
// Hash计算给定字符串的哈希值。 func Hash(s string) string { ... }🎜🎜4. Fikirkan tentang kebolehujian🎜🎜🎜🎜Tulis fungsi untuk ujian unit. 🎜🎜Elakkan menggunakan keadaan global atau data boleh ubah yang dikongsi. 🎜🎜Gunakan antara muka atau suntikan kebergantungan untuk mensimulasikan kebergantungan luaran. . 🎜
// ComputeHash计算给定字符串的哈希值。 func ComputeHash(s string) []byte { ... } // FormatHash格式化哈希值以进行显示或比较。 func FormatHash(hash []byte) string { ... }🎜 Dengan cara ini kita boleh mengasingkan kefungsian API dan menjadikannya lebih mudah untuk dilanjutkan dan diuji. 🎜
Atas ialah kandungan terperinci Bagaimana untuk mereka bentuk API fungsi elegan di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!