Какой обработчик корректнее в gRPC-сервере (Go)?
```go
// Вариант A
func (s *server) GetUser(ctx context.Context, req *pb.GetUserRequest) (*pb.User, error) {
u, err := s.repo.Find(req.Id)
if err != nil {
return nil, err
}
if u == nil {
return nil, fmt.Errorf("user %d not found", req.Id)
}
return u, nil
}
// Вариант B
func (s *server) GetUser(ctx context.Context, req *pb.GetUserRequest) (*pb.User, error) {
u, err := s.repo.Find(ctx, req.Id)
if err != nil {
return nil, status.Errorf(codes.Internal, "find: %v", err)
}
if u == nil {
return nil, status.Errorf(codes.NotFound, "user %d not found", req.Id)
}
return u, nil
}
```
middle
correct_vs_wrong
#425
Чтобы решить вопрос и сохранить попытку — войди.