Keserasian Ke Hadapan dalam gRPC dengan mustEmbedUnimplemented*
Pustaka gRPC-go telah memperkenalkan kaedah mustEmbedUnimplemented*** untuk meningkatkan keserasian hadapan dalam pelayan pelaksanaan.
Pada masa lalu, pelayan gRPC akan gagal penyusunan jika kaedah yang diperlukan tidak dilaksanakan. Untuk mengurangkan perkara ini, pembangun terpaksa melaksanakan kaedah yang tidak dilaksanakan secara manual, walaupun ia tidak bertujuan untuk digunakan.
mustEmbedUnimplemented* menyelesaikan isu ini dengan membuat tarik diri keserasian ke hadapan. Ini bermakna:
Sebagai contoh, jika anda mempunyai antara muka GreetService:
type GreetService interface { Greet(ctx context.Context, req *pb.GreetRequest, opts ...gax.CallOption) (*pb.GreetResponse, error) }
Anda sebelum ini akan melaksanakannya sebagai:
type server struct {...} func (s *server) Greet(ctx context.Context, req *pb.GreetRequest, opts ...gax.CallOption) (*pb.GreetResponse, error) {...} func (s *server) MustEmbeddUnimplementedGreetServiceServer() {...}
Sekarang, dengan mustEmbedUnimplemented ***, anda boleh menarik diri daripada keserasian hadapan dengan membenamkan antara muka Tidak Selamat*** sebaliknya:
type server struct { grpc.UnsafeGreetServiceServer ... }
Perubahan ini memberikan fleksibiliti yang lebih besar dan menghalang kod yang tidak diperlukan dalam pelaksanaan pelayan anda.
Atas ialah kandungan terperinci Bagaimanakah `mustEmbedUnimplemented` gRPC Meningkatkan Keserasian Hadapan Pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!