请问七牛的大牛们,能不能说说你们的代码演变逻辑?
碰到断点续传的问题,突然看到七牛的类库更新到 7.2.6,刚好解决了这个问题,欣喜若狂的去更新了 dll,但是一编译,一大堆错,方法名或参数顺序、类型什么的,到底有没有定数啊?
举个栗子:获取上传 Token(7.x 版本之后,14 天以内的变化历程)
// 第一版(7.0.5)
// 初次接触
var token = Auth.createUploadToken(putPolicy, mac);
// 第二版(7.2.3)
// 命名空间改变
// 类改变(变为 UploadManager,说是为了统一)
// 参数顺序改变
var token = UploadManager.createUploadToken(mac, putPolicy);
// 第三版(7.2.6)
// 命名空间再次改变
// 类也再次改变(变回第一版的 Auth,又不统一了?)
// 参数类型改变(变为字符串,即 JSON 序列化之后再传参)
var token = Auth.createUploadToken(mac, putPolicy.ToJsonString());
我就没明白了,之前就是 Auth,你们说为了统一,全部改为 UploadManager,现在又改回 Auth,这是几个意思啊?又不统一了?合久必分,分久必合吗?
还有就是,那个 putPolicy 在传参时序列化,和放到方法里面去序列化,有啥区别?在外面序列化成字符串还有一个风险,那就是:如果开发人员采用非 JSON.NET 进行序列化,那传参之后,很有可能在方法内部就反序列化失败了,所以,还是建议放在方法内部进行序列化比较好。
下一版预计怎么变呢?麻烦告知一声,好有心理准备。
感谢反馈,您的问题总结切中要点,非常值得参考。
C# SDK最近版本更新比较频繁,期间几次改动逻辑比较乱,这个确实是处理失当,这也是代码规范的问题,我们需要改进。
不过好在目前代码结构已基本稳定并且和其他语言版本基本一致,所以后续更新在代码结构方面不会有太大变动。
我们照旧会充分考虑到用户的一些反馈和意见并及时更新SDK,不过前提是:不再胡乱更改代码结构。
总之,保持规范,在重大升级之前,除了新增功能或者模块,原有代码结构会保持。
关于后续版本更新,预告一下:
1.代码结构保持不变
2.部分细节优化(使用方式照旧,如有变动的地方会特别指明)
3.加入Windows10 UWP支持(感谢GitHub上的用户反馈以及大力支持)
4.对于.NET4.5+/.NET Core/UWP来说,HTTP、文件IO等相关操作均改为异步方式(async),低版本.NET保持不变
btw,后续每次更新都会同步更新对应SDK文档。