加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮安站长网 (https://www.0517zz.com.cn/)- 数据开发、人脸识别、智能机器人、图像处理、语音技术!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

被开发人员们忽略的最重要技能之一……

发布时间:2021-01-30 10:35:06 所属栏目:外闻 来源:互联网
导读:最终选择方案 Jackson适用于高性能场景,Gson适用于高安全性场景 对于新项目仓库,不再使用fastjson。对于存量系统,考虑到Json更换成本,由以下几种方案可选: 项目未使用autoType功能,建议直接切换为非fastjson,如果切换成本较大,可以考虑继续使用fastj

最终选择方案

  • Jackson适用于高性能场景,Gson适用于高安全性场景
  • 对于新项目仓库,不再使用fastjson。对于存量系统,考虑到Json更换成本,由以下几种方案可选:
    • 项目未使用autoType功能,建议直接切换为非fastjson,如果切换成本较大,可以考虑继续使用fastjson,关闭safemode。
    • 业务使用了autoType功能,建议推进废弃fastjson。

替换依赖注意事项

企业项目或者说大型项目的特点:

  • 代码结构复杂,团队多人维护。
  • 承担重要线上业务,一旦出现严重bug会导致重大事故。
  • 如果是老项目,可能缺少文档,不能随意修改,牵一发而动全身。
  • 项目有很多开发分支,不断在迭代上线。

所以对于大型项目,想要做到将底层的fastjson迁移到gson是一件复杂且痛苦的事情,其实对于其他依赖的替换,也都一样。

我总结了如下几个在替换项目依赖过程中要特别重视的问题。

谨慎,谨慎,再谨慎

再怎么谨慎都不为过,如果你要更改的项目是非常重要的业务,那么一旦犯下错误,代价是非常大的。并且,对于业务方和产品团队来说,没有新的功能上线,但是系统却炸了,是一件“无法忍受”的事情。尽管你可能觉得很委屈,因为只有你或者你的团队知道,虽然业务看上去没变化,但是代码底层已经发生了翻天覆地的变化。

所以,谨慎点!

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

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

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

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

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

做好回归/接口测试

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

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

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

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

https://www.sojson.com/

考虑迁移前后的性能差异

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

使用Gson替换Fastjson

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

Json反序列化

(编辑:淮安站长网)

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

    热点阅读