又是被写其他语言库的 Java 党搞恶心的一天

查看 170|回复 23
javaisthebest   
假如有一天 v1 里面要新增功能你怎么做?新增字段在 New 里面?
假如这个 sdk 越来越复杂怎么处理? New 里面放七八个字段?
realpg
OP
  
@k9982874 #8
不知道你说的 slog 是啥
找到了 rust 的一个知名 slog
随便查看了他的 example
初始化并不需要我创建一大堆 provider with 一大堆东西 只需要必要参数


zone10   
golang 的惯例应该是这样子
client := oss.New("endpoint","accesskey","secretkey",
    oss.WithRegion(region),
    oss.WithUseDualStackEndpoint(true),
)
可选参数可以不填
FrankAdler   
@javaisthebest 改成 NewClient 传入 cfg 对象我觉得就能满足绝大多数的情况了吧,字段随便加,但是现在的明显复杂多了
realpg
OP
  
@javaisthebest #10
哪怕到地球毁灭, s3 协议初始化也只需要 ep ak sk 三个字段
如果不是这么稳定的特性 也不可能这么设计 肯定是传一个可变 struct
如果你觉得我吐槽的问题是这个 那只能说你的理解真的逆天
来世投胎一个高低杠吧
realpg
OP
  
@zone10 #12
endpoint 就覆盖了所有的 with 选项
它的 with 就是为了拼接 endpoint
s3 协议的标准都是只有 endpoint
然后它的 sample 里还是要求你这么写 为了不犯错误 所以我才这么写的 region 双栈 这类的
严格说 你指定了 endpoint 的域名 其他一切都没用了 只是它 sample 这么写 我才这么搞的
ripperdev   
@realpg #11 说的是 golang 里的官方库 slog
BeUself   
卧槽,你这么一说我还真有感觉,python 的 oss 库也是这个鸟样子,一堆 Provider ,原来是因为 javaer
gadfly3173   
很可惜云存储规范的权威 aws 也是类似写法,aws 不改其他人大概也不会改😅
lqm   
现在好多 golang 的库都这么写
您需要登录后才可以回帖 登录 | 立即注册

返回顶部