Newtonsoft.Json作为知名Json库,明明已经很好用了,并且它还是MIT协议的,但是,我工作那么久,总是会在一些项目里发现写项目的人不会选择直接引用Newtonsoft.Json的库,而是自己重新写一套出来,有些是改了名字的,有的甚至连名字都不改,虽然复制粘贴的确不费什么劲,可是这样做不光会让代码结构变得臃肿,而且如果Newtonsoft.Json的源生代码有任何漏洞的话,本地代码就得随之更改,关键是,您也不能天天盯着Newtonsoft.Json漏洞更新去看呀!

打开网易新闻 查看精彩图片

我的电脑有大概上百个国内互联网公司的SDK源码,当然了,很多都比较旧了,稍微搜索了下,这么干的公司还不少!

更让我不解的就是,明明Newtonsoft.Json很好用,但很多程序员就偏不用,明明JsonConvert.SerializeObject()和JsonConvert.DeserializeObject()已经能够满足大部分Json的序列化和反序列化场景了,但是我还是会看到很多程序员喜欢自己写一个Json序列化和反序列化的接口,就是不用Newtonsoft.Json!

打开网易新闻 查看精彩图片

当然,能够自己写也是本事,虽然用库对于很多程序员来说的确体现不了技术,可是用库的好处就是库有专门的人或机构去维护,稳定性较好,而自己重新写,除非经过大量项目的验证,否则稳定性可能还是差那么一点!

结语

作为程序员,该用库我们就应该用库,程序员写项目我觉得还是以实现为主,只要使用的库没有协议上的约束,用库不光稳定,而且也能提高编程效率!何乐不为呢?

当然了,像一些比较敏感的项目,可能真的自己造轮子是很有必要的,因为一个库用得人越多,那么当这个库发生了一些漏洞的话,可能就会被人利用,从而威胁项软件的安全。

可话又说回来,您的项目安全标准有那么高吗?您确保您自己造轮子造出来的东西就没有漏洞吗?