我第一次报软著的时候,完全没把源代码当回事,想着随便从项目里粘个几十页就行,结果提交之后没到一周就被驳回了,理由是「有效源代码页数不足,每页行数不达标」,那时候离项目结项要求的软著下证时间只剩半个月,急得我熬了两个通宵改材料,才赶在截止前重新提交通过。
后来帮同事、朋友前后弄了十多个软著的材料,才发现大部分人卡壳都卡在源代码页数这关,要么是项目刚做没多久代码量不够凑不齐60页,要么是代码太多不知道怎么摘,还有人好不容易凑够页数又因为格式不对被打回来。
先搞懂官方对源代码页数的真实要求
很多人以为只要凑够60页就行,其实根本不是这么回事。官方的要求是提交源代码的前30页和后30页,每页不少于50行,其中不含注释和空行的有效代码行不能少于30行,要是整个项目的源代码不足60页才需要全部提交。这里要注意,第三方依赖库、自动生成的配置文件都不算有效源代码,粘进去凑页数只会被驳回。关于具体的格式要求你也可以去看软著申报官方源代码规范,里面列的非常细,比我讲的还全。
我之前有个做前端的朋友,嫌自己写的业务代码太少,直接把node_modules文件夹里的代码粘了二十多页进去,结果审核人员一眼就看出来了,直接驳回不说,还提醒他要是再提交非自主开发的代码,半年内都不能再申报,吓得他再也不敢乱凑内容了。
页数不够怎么合规凑
要是你自己写的源代码确实不够60页,也别慌,完全可以通过合规的方式凑够页数,不用瞎编乱造。首先你可以把所有核心功能模块的代码都找出来,按逻辑顺序排好,比如小程序就先粘入口文件的代码,再粘首页交互、用户登录、支付模块、内容管理这些核心模块的代码,把之前单独抽出来的工具类、公共组件的代码也都加进去,这些都是你自主开发的内容,完全符合要求。
接下来调整排版,我一般会用小五号的宋体,行间距设成固定值12磅,左右边距留2厘米就够,这样一页刚好能排55行左右,不会出现一页只有三四十行的情况。连续的空行最多留1行,注释可以正常保留,但不要整页都是注释,要是某一页注释占了一半以上,可以往后多翻几页选有效代码多的内容贴上。
要是你怕自己数行数数错,可以用软著源代码行数统计工具,上传之后一秒就能算出有效行数够不够,有没有不符合要求的地方。我上次赶申报截止日期,手里三个软著要弄,自己调代码调的头大,后来同事给我推了软著Pro,上传原始代码自动就生成好符合要求的60页文档,页眉页码都给你弄好了,直接打印就行,省了我快一天的功夫。
页数太多怎么摘才不会出问题
代码量够的人也容易踩坑,很多人随便摘前30页和后30页,结果前30页全是配置文件,后30页全是没写完的测试代码,照样被驳回。摘的时候前30页要从程序的入口文件开始摘,尽量选核心功能的代码,别全拿初始化的配置内容凑数,后30页要从核心功能模块的末尾往前倒推30页,最后一页最好是完整的函数结尾,不要出现半截代码的情况。
要是你的项目是多端的,比如同时有安卓端、iOS端和后台管理系统,可以每个端选一部分核心代码拼起来,只要逻辑连贯就行,不用死盯着某一端的代码摘。我之前帮一个做 SaaS 系统的朋友弄软著,他光后台代码就有几万行,我就摘了前30页的后台接口逻辑,后30页摘了前端交互的核心代码,提交之后一次就过了,完全没问题。
这些坑千万别踩
别为了凑页数重复粘贴同一段代码,审核人员都是懂技术的,连续几页代码一模一样一眼就能看出来,直接驳回不说,还会影响你后续的申报。也不要为了凑行数随便打乱码或者写无关的代码,哪怕你把变量名改得长一点都比瞎写强,至少逻辑是通的。
还有个很多人容易忽略的点,页码要连续,前30页是1-30,后30页是31-60,页眉要写上你的软件全称+版本号,每页的页眉都要统一,别前30页写的软件名和后30页不一样,这种低级错误也会导致被驳回。我之前就犯过这个错,软件版本号前30页写的V1.0,后30页不小心写成了V2.0,平白无故多等了一周的审核时间。
其实软著的源代码页数要求没那么严,只要你用的是自己实际开发的代码,按要求调整格式和内容,基本都能一次过,不用太担心。要是实在拿不准,就找之前报过的人帮你看一眼,或者用工具自动生成,省得自己瞎琢磨浪费时间。