加入收藏 | 设为首页 | 会员中心 | 我要投稿 长春站长网 (https://www.0431zz.com.cn/)- 媒体智能、开发者工具、运维、低代码、办公协同!
当前位置: 首页 > 站长资讯 > 动态 > 正文

微软和思科等公司的源代码被公开出售

发布时间:2021-01-29 16:01:45 所属栏目:动态 来源:互联网
导读:现在,假设我们可以通过提供9个有序数字的序列,并让网络猜测第10个数字,来利用这种网络进行顺序分析。网络不仅会知道如何区分10位数字,而且还会知道从0到8的顺序,下一位数字很可能是9。 在分析序列数据时,我们了解到,序列中的元素通常以某种方式相关,

现在,假设我们可以通过提供9个有序数字的序列,并让网络猜测第10个数字,来利用这种网络进行顺序分析。网络不仅会知道如何区分10位数字,而且还会知道从0到8的顺序,下一位数字很可能是9。

在分析序列数据时,我们了解到,序列中的元素通常以某种方式相关,这意味着它们彼此依赖。因此,我们需要考虑每个元素以了解序列的想法。

剑桥大学出版社将序列定义为"事物或事件彼此跟随的顺序",或者最重要的是,"一系列相关事物或事件"。为了将此定义调整到深度学习的范围内,顺序是一组包含可训练上下文的数据,删除一些元素可能会使它无用。

但是序列包含什么?哪些分组数据可以具有上下文?以及如何提取上下文来利用神经网络的力量?在进入神经网络本身之前,让我向您展示使用递归神经网络(RNN)经常解决的两种类型的问题。

时间序列预测
 

常见问题排雷

下面整理了我们在公司项目迁移Gson过程中,踩过的坑,这些坑现在写起来感觉没什么技术含量。但是这才是我写这篇文章的初衷,帮助大家把这些很难发现的坑避开。

这些问题有的是在测试进行回归测试的时候发现的,有的是在自测的时候发现的,有的是在上线后发现的,比如Swagger挂了这种不会去测到的问题。

Date序列化方式不同

不知道大家想过一个问题没有,如果你的项目里有缓存系统,使用fastjson写入的缓存,在你切换Gson后,需要用Gson解析出来。所以就一定要保证两个框架解析逻辑是相同的,但是,显然这个愿望是美好的。

在测试过程中,发现了Date类型,在两个框架里解析是不同的方式。

  • fastjson:Date直接解析为Unix
  • Gson:直接序列化为标准格式Date

做好开发团队和测试团队的沟通

在依赖替换的过程中,需要做好项目的规划,比如分模块替换,严格细分排期。

把前期规划做好,开发和测试才能有条不紊的进行工作。

开发之间,需要提前沟通好开发注意事项,比如依赖版本问题,防止由多个开发同时修改代码,最后发现使用的版本不同,接口用法都不同这种很尴尬,并且要花额外时间处理的事情。

而对于测试,更要事先沟通好。一般来说,测试不会太在意这种对于业务没有变化的技术项目,因为既不是优化速度,也不是新功能。但其实迁移涉及到了底层,很容易就出现BUG。要让测试团队了解更换项目依赖,是需要大量的测试时间投入的,成本不亚于新功能,让他们尽量重视起来。

做好回归/接口测试

上面说到测试团队需要投入大量工时,这些工时主要都用在项目功能的整体回归上,也就是回归测试。

当然,不只是业务回归测试,如果有条件的话,要做接口回归测试。

如果公司有接口管理平台,那么可以极大提高这种项目测试的效率。

打个比方,在一个模块修改完成后,在测试环境(或者沙箱环境),部署一个线上版本,部署一个修改后的版本,直接将接口返回数据进行对比。一般来说是Json对比,网上也有很多的Json对比工具:

  • https://www.sojson.com/

考虑迁移前后的性能差异

正如上面描述的Gson和Fastjson性能对比,替换框架需要注意框架之间的性能差异,尤其是对于流量业务,也就是高并发项目,响应时间如果发生很大的变化会引起上下游的注意,导致一些额外的后果。

使用Gson替换Fastjson

这里总结了两种json框架常用的方法,贴出详细的代码示例,帮助大家快速的上手Gson,无缝切换!

Json反序列化


(编辑:长春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读