目录
一个常见的HTTP服务器
拆分可选配置
函数式选项
更进一步
ServerConfig
我们先来看看一个常见的HTTP服务器的配置,它区分了2个必填参数与4个非必填参数
type ServerCfg...string, port int, maxconns int, timeout time.Duration, tls *tls.Config) (*Server, error) {}
SplitConfig
编程的一大重点...0.0.0.0", 8080, Timeout(300*time.Second), MaxConns(1000))
fmt.Println(s1, s2, s3)
}
耗子哥给出了6个点,但我感受最深的是以下两点...:
可读性强,将配置都转化成了对应的函数项option
扩展性好,新增参数只需要增加一个对应的方法
那么对应的代价呢?...就是需要编写多个Option函数,代码量会有所增加。
如果大家对这个感兴趣,可以去看一下Rob Pike的这篇blog 。