我第一次帮公司整理软著申报材料的时候,在源代码这块踩了超大的坑。当时觉得不就是凑够60页代码吗,直接把整个项目包导出来,随便复制粘贴了几十页就交上去,结果没到一周就被驳回,理由列了三四条:连续空行过多、包含第三方开源库代码、页眉版本号和申请表不一致,前前后后折腾了快20天才重新提交过审。
后来自己帮公司、帮朋友前后申报了快10次软著,才摸透源代码整理的门道。很多人觉得软著审核卡得最严的是说明书,其实不是,源代码作为软件著作权的核心证明材料,出问题的概率比说明书高得多,而且一旦被驳回,修改的工作量也更大。
要是你还没搞清楚最新的官方格式要求,可以先去软著申请相关的平台查一下最新规则,避免用几年前的旧标准准备,白忙活一场。
先说说选代码的原则,很多人上来就把整个项目的代码全导出来,不管什么内容都往提交的文档里粘,这是最容易踩的第一个坑。你首先要把非自主编写的代码全部筛掉:比如前端项目的node_modules文件夹里的依赖代码、引入的第三方开源插件、工具库的代码,还有各种配置文件比如package.json、vue.config.js、.env这类,都不要放进去。这些代码要么不属于你,要么没有实际的业务逻辑,放进去只会增加出问题的概率,比如第三方代码里带的开源协议声明,直接就会被审核员判定为存在版权纠纷。
选的时候就挑你自己写的核心业务代码:比如后端的接口实现逻辑、核心算法模块、数据处理部分,前端的业务组件、交互逻辑代码这些,这些内容才是能证明你对这个软件拥有著作权的核心材料。也不要全拿样式代码凑数,比如前30页全是CSS样式,核心业务逻辑一页都没有,审核员也会怀疑你提交的材料真实性。
选好代码之后就是预处理环节。首先是清理注释,不是让你把所有注释都删掉,正常的功能说明注释留着反而能证明代码的归属,要删掉的是那些带内部信息的注释,比如标注了内部项目代号、开发人员姓名、测试标记的内容,还有// TODO 后续优化、// 这里先临时写死这种没用的注释,也要一并清掉。尤其要注意,注释和变量名里不要出现“测试”“demo”“试用”这类字样,不然会被判定为软件还没开发完成,不符合申报要求。
然后是处理空行,官方要求连续空行不能超过2行,很多人写代码习惯写完一个函数就空三四行,这种都要删掉,不然不仅会导致每页的行数不够,也不符合格式要求。行尾的多余空格也可以清掉,整个文档看起来会更整齐。我之前每次手动删空行、调格式要折腾一两个小时,后来发现软著Pro这个工具挺好用的,把选好的代码粘进去自动就能帮你删掉多余空行、调整行间距,还能自动生成符合要求的页眉页码,导出之后直接就能提交,省了好多麻烦。
接下来是排版环节,字号选小五号或者10号字就可以,字体用宋体或者Courier New都没问题,行间距设置成固定值12磅,一页下来差不多能排55行左右,刚好符合每页不少于50行的要求,不用特意凑行数。页眉的设置要注意,左对齐必须写你申报的软件全称+版本号,要和申请表里填的完全一致,一个字都不能错,大小写也要对应,比如申请表里写的是“门店库存管理系统V1.0”,页眉就不能写成“库存系统v1.0”。右对齐标页码,从1开始连续排,要是你的总代码不足60页,就按实际页数排就行,不用硬凑到60页,官方只是要求总代码超过60页的话提交前30页+后30页,不足的话全部提交就可以。
我之前帮一个做独立开发的朋友整理软著材料,他那个小工具是用Python写的,全部代码加起来才28页,他怕页数不够过不了,特意去网上抄了2000多行Java代码凑到60页,结果提交之后第二天就被驳回,还被标记了材料异常,后来老老实实把自己的28页Python代码全部提交,不到3天就过审了。所以真的不用为了凑页数瞎凑,真实的自主代码哪怕只有十几页,也比凑的假代码容易过。
要是你的总代码超过60页,截取前30页和最后30页的时候要注意,最后一页尽量是完整的模块或者函数结束,不要半截代码卡在第60页,后面的内容直接被截断,审核员看不到完整的逻辑也容易给你打回。还有前后30页里尽量都覆盖到核心业务代码,不要前30页全是入口文件的配置,后30页全是工具类的代码,核心业务逻辑一点都没体现。
全部整理完之后一定要自己从头到尾翻一遍,检查有没有漏删的第三方版权声明、有没有和你申报的软件功能不相关的代码内容,比如你申报的是客户管理系统,结果代码里出现了“外卖订单结算”这类完全不相关的字段,肯定会被怀疑材料造假。要是你不确定自己整理的内容有没有问题,也可以找软著申报的专业人员帮你先预审一遍,能避免很多不必要的驳回。
其实软著的源代码整理真的没那么复杂,只要你用自己真实开发的代码,跟着官方要求调整格式,避开我上面说的这些坑,基本上都能一次过审,不用特意搞什么花里胡哨的操作。