创世魂 发表于 2021-6-11 22:20:03

【关于开源】规范开源,做良好的火山软件开发者!

本帖最后由 创世魂 于 2021-6-11 23:16 编辑





规范开源,做良好的火山软件开发者!开源是好事,但希望都能遵循基本规范开源

   本帖仅供探讨交流,“规范开源”并无任何恶意,也希望水淼JSON的作者能进来看看。          开源!      是一个很伟大的事情,往大了说能够造福社会,比如安卓的开源早就了如今的国产手机,华米OV等都是在安卓的开源下茁壮成长。      甚至安卓系统的存在都是因为Linux开源贡献,才有了安卓系统,华为的鸿蒙也是基于安卓开源魔改而来,创造了自己的生态APP同时也兼容安卓APP,至于鸿蒙是否为安卓套壳这个不重要,毕竟安卓也是Linux套壳,探讨这些没有任何意义,毕竟鸿蒙敢于把“Android”从系统中移除也证明了鸿蒙已经脱力了谷歌的掌控,不再受谷歌的限制可以任意的修改系统源码。       扯远了,回归正题。      从上面的大案例可以看出,开源确实是很伟大很好的事情,哪怕你只是开源一个很小的工具集,对于很多人来说,可能如获至宝,可能会让很多小白从此走入软件开发者大门,创出一片天,掉更多的头发。也可能会有很多大佬,基于这个开源的工具集进行扩展维护,创造了属于自己的工具集造福更多的开发者。    总之,开源是一个很好的事情,造福社会,造福他们,也造福自己。
   开源是好事,这是一个很好的事情。但是开源也应当有开源精神,遵守基本的开源规范,就好像取GitHub或gitee发布开源代码的时候,会请你选择开源协议一样。遵循开源协议,基本上不能说所有人吧,至少大多数人都还是很遵守开源协议的。 当然开源协议有很多吃相都挺难看的,比如那个什么GPL病毒协议(太过理想化的协议,病毒一样,强制别人也开源),让暴风、QQ影音等一些音频视频相关的软件都因为这个开源协议被钉在“耻-辱-柱”上,甚至QQ影音直接下架停止更新数年,最近两年才重启项目。
   火山作为很小众的编程平台,也都在在很谨慎的遵循开源协议,尽管这个开源协议是没有法.律效力,如果对方想打官司,实际上打不赢的,法.律不认可这些协议的,但是也依然在遵守。 目前火山的类库封装人员已经发现了很多很多很有意义的类库,很好的库,但是就是因为开源协议这个门槛,让火山官方很难去封装这个库,虽然封装了并不会有什么法律风险,仅仅只是随大众的也遵循一下,毕竟火山也不想被钉在“耻.辱.柱”上。
   当然这个开源协议这个是小事,重点也不是开源协议,开源内容,也同样重要。 这里要说一下火山最近的开源贴“水淼JSON”模块很强,很好的开源项目,但是希望能够编辑一下帖子并注明,“本模块仅供交流学习JSON格式解析,建议规范使用JOSN解析,遵循JSON基本规范。”
      可能会有一些疑惑,接下来解答一下。
       问:为什么要添加这句话?       答:JSON使用是有自己的规范标准的,自研JSON解析并无错,哪怕自研一个路径解析,或者自己通过算法提升解析效率都无任何错,但是水淼JSON的容错处理已经超出的JSON解析规范,容错处理的太多了,容易误导新手,让新手,注意是新手小白,他们会认为JSON就是这样的,或者说JSON就应该这样。
       这是一种极其不好的现象,虽然可能作者本人并没有意识到这一点,或者说觉得这个无所谓,毕竟火山还只是小众,终究只会影响少数人。       但是这就错了,火山现在用户是少,但是未来呢?火山下个平台出H5跨平台会吸引更多人进入火山生态,一传十十传百,可能会有很多新人小白来使用你的模块,影响会越来越大。        也可能吴总突然间开窍,下个平台开发鸿蒙插件,鸿蒙两个字,没准都能从华为那边吸引几十万的流量。             蝴蝶效应都知道吧?      我说的就是这个意思,虽然看上去没有影响,但是一旦影响起来也是非常大的。            虽然编辑帖子贴上那句话,可能并不会改变什么,也可能让人会影响很多人,但是你贴上和不贴上是两个完全不同的概念。
       就好像我的无名模块里面永远帖子一条注释“开源提示:开源代码应遵循开源精神,请勿将本模块用于非法用途,否则后果自负,如转载模块源码请注明原作者.”        可能很多人不会遵循这个“规矩”但是你贴上就是表达了一种态度,别用模块搞坏事,如果搞了后果自负。              做一个好榜样的同时也要学会如何规避一些潜在的风险。        就比如这个JSON,既然起名叫JSON,就应当遵循JSON规范,容错处理可以有,但是不能过度,如果过度就会破坏JSON规范。       举个例子说:官方库用的是jsoncpp,这个库其实也是有容错处理的,但是这也仅仅是针对要解析的文本中存在JSON规范格式,如果有JSON规范格式,则会剔除无效文本,将正确的JSON解析。      这种程度的容错处理是可以被认可的,因为他并没有破坏内部的JSON格式解析,里面的键值解析是什么样子还是什么样,自然这种容错是可以被理解的,也可以被认可。
      总结,这并不是我一家之言,这确实是一个需要重视的事情,我不希望火山软件开发平台因为没有遵循JSON规范被钉在JSON规范的“耻.辱.柱”上。         自研解析算法并无任何错,但是必要的提示还是很重要的,恳请编辑帖子声明:规范使用JSON,本模块仅供交流学习JSON容错解析,以及如何自定义解析文本存储格式(因为水淼JSON容错解析的容错已经脱离了JSON的解析规范,不属于JSON解析,算是自定义存储格式解析。)

   




shuimiao 发表于 2021-6-11 22:31:48

好的听从您的说法,我加上这句提示,哈哈

小蜗牛 发表于 2021-6-11 22:38:57

:噜阿噜我写的JSON解析也有容错,不过给了一个参数...是否容错模式..

伟业 发表于 2021-6-11 23:45:09

长见识...

zhizhi520 发表于 2021-6-12 07:12:06

魂魂老师,我会持续关注您的:噜阿噜

Vanyogin 发表于 2021-6-12 09:01:12

感谢科普!

大强 发表于 2021-6-12 09:05:20

这个得注意

666 发表于 2021-6-12 09:40:21

是的,如果不是标准的规范解析,可以做为模块的特色功能,在模块的介绍中特别说明一下!

免得小白不知所以然,一开始就以为本该如此,以后与人交流对接功能时,让其他人一头雾水。。。

nuan1989 发表于 2021-6-16 12:02:10

吴总突然间开窍
-------------------------------
吴总急了: TM我看谁敢在我脑袋上面开窍.:噜阿噜
页: [1]
查看完整版本: 【关于开源】规范开源,做良好的火山软件开发者!