主页 > 公司新闻 >

存在大量冗余的内容

时间:2018-08-17 11:05

来源:未知作者:admin点击:

 
  目前,在红芯浏览器的安装包中有两个浏览器插件可以看到源代码,不少互联网工程师通过阅读代码发现,红芯的代码存在过度注释、代码冗余、语言陈旧等问题,甚至还有工程师测试后发现,它在插件的保密性上存在虚假宣传。
 
  一位从事数据相关业务的工程师对澎湃新闻记者表示,红芯浏览器插件的源代码中存在大量的注释,显得注释过度。一般熟练的程序员日常写代码时不会所有内容都进行注释,简单的接口不用注释,也不用重复注释。
 
  “注释的主要功能是提醒程序员某一段代码的用途,但每一句都加注释,太浪费工作效率,而且显得十分业余。”一位从事汽车软件开发的工程师这样说道。
 
  另一位来自外资科技公司的程序员则向记者评价称:“中文注释说明水平可能不高,说明懂英文的人不多。”
 
  而且,一位程序员认为,产品上线后大量注释都没有处理,没办法期待它有什么安全性可言的,“注释就是解释程序运行的文档,产品上线之后一般是要去掉的,防止被其他人摸清运行机制后进行攻击,这是最基本的安全意识。”
 
  红芯浏览器插件代码几乎每一行都有中文注释。红芯浏览器插件代码几乎每一行都有中文注释。
 
  而另一个比较显著的问题是,红芯的代码被指层层复制,存在大量冗余的内容。
 
  “以密码管家这款插件为例,它的源代码中,一个仅350行的文件就有100行是重复的。说明写该插件代码的程序员不懂封装,即把代码中相同的部分抽象成一个单独的函数。”一位程序员指出。
 
  “有些重复的代码可以写成一个函数。业务逻辑通过参数传进去。”一位工程师向澎湃新闻记者打比方称,“比如要得到某人老公的姓名,用函数实现的话,就是输入‘孙俪’得到‘邓超’,而不用写孙俪老公邓超、杨颖老公黄晓明等好多个。”
 
  另外,还有程序员向记者指出,上述插件代码中,大量使用常量字符串,这使得之后可能的重构变得非常困难,以及不利于国际化等进一步开发。此外还充斥着大量面条式代码,导致开发人员阅读和后续开发困难。(编注:面条式代码,指源代码的控制流程复杂,混乱难以理解。)
 
  一位在出行互联网公司工作的工程师在看过红芯插件的代码后表示:“水平还凑合,就是写法有些陈旧,差不多是四五年前的写法吧。”这一说法得到另一位工程师的认同:“代码中大量使用的jQuery是12年前发布的,已经过时,使得代码冗长不易读懂”。
 
  一位资深前端工程师则指出,现在市面上成熟的前端团队很少使用JavaScript语言,为了工程化都是用Typescript进行工程构建的。“红芯的代码不仅是JavaScript,还是第六版之前的风格,没有经过代码构建和混淆以及去注释、压缩等过程。这是严重缺乏专业性的表现,一般这种代码只会在外包代码中出现。”
 
  除了代码的被指显得不够专业,更值得注意的是,红芯浏览器插件在数据安全方面也值得商榷。

【责任编辑:admin】
热门文章 更多>>