小编Nit*_*ant的帖子

什么是静态站点生成器?

放弃Wordpress后,我一直在试验Jekyll创建一个博客.我选择它(通过Ghost)来帮助我在博客时学习Web开发的基础知识.此外,GitHub页面上的免费托管是整洁和免费的.

什么是静态站点生成器(如Jekyll),为什么它们存在?

static-site jekyll

7
推荐指数
1
解决办法
512
查看次数

在自定义拦截器/中间件中访问 gRPC 请求对象

gRPC 的 Go 库提供了用于创建您自己的自定义拦截器(即中间件函数)的接口,我正在尝试编写两个日志拦截器。第一个是一元服务器拦截器,我可以使用传递到拦截器函数的对象轻松记录请求参数。

func loggingUnary(context context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
    start := time.Now()
    resp, err := handler(context, req)

    printLogMessage(err, info.FullMethod, context, time.Since(start), req)

    return resp, err
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能对流服务器拦截器做同样的事情,它不能方便地将请求对象作为参数传递?还有其他方法可以访问请求吗?

func loggingStream(srv interface{}, stream grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error {
    start := time.Now()
    err := handler(srv, stream)

    printLogMessage(err, info.FullMethod, stream.Context(), time.Since(start), "")

    return err
}
Run Code Online (Sandbox Code Playgroud)

middleware go interceptor grpc

5
推荐指数
1
解决办法
4792
查看次数

如何在协议缓冲区中实现映射列表?

我正在寻找创建一个返回地图列表的 gRPC 响应。这是我想象的结构:

message GetSettingsResponse {
    repeated map<string, string> settings = 1;
}
Run Code Online (Sandbox Code Playgroud)

但是,不支持重复映射,我必须将映射嵌套在单独的消息中才能使其工作:

message GetSettingsResponse {
    repeated Setting settings = 1;
}

message Setting {
    map<string, string> setting = 1;
}
Run Code Online (Sandbox Code Playgroud)

这有效,但它迫使我们在客户端和服务器上编写一些令人困惑的代码。有什么办法可以避免这种解决方案并更接近我想要的结构吗?

protocol-buffers

4
推荐指数
1
解决办法
2284
查看次数

在访问文本方法之前检查Nokogiri对象是否为nil

我正在使用Nokogiri搜索我从API收到的XML.

fiber = doc.xpath("/*[name()='food']/*[name()='servings']/*
 [name()='serving']/*[name()='fiber']").first.text
Run Code Online (Sandbox Code Playgroud)

但有时候,响应中缺少子元素(例如光纤).在这种情况下,Nokogiri返回一个nil对象,我的代码抛出相应的异常(未定义的方法`text'为nil:NilClass)因为我试图访问nil对象的'text'方法.

在实际尝试调用"text"方法之前,检查子元素(例如光纤)是否存在的干净而快速的方法是什么?如果它不存在,我想将值设置为0.我也在为其他几个子元素(例如卡路里,碳水化合物等)做这个.

ruby ruby-on-rails nokogiri

2
推荐指数
1
解决办法
498
查看次数

这个Ruby表达式发生了什么计算:5 << 7?

两个整数之间的铲运算符如何导致返回值?

irb(main):001:0> 5 << 7
=> 640
Run Code Online (Sandbox Code Playgroud)

ruby

0
推荐指数
2
解决办法
55
查看次数