在相继实现了被动收入,解决了盗版隐患后,我开始扩充软件功能,但我逐渐又发现一个新的问题。 采集软件的原理是根据网页源代码来采集数据。假如目标网站改版,那么就可能导致软件无法正常采集。网站越多,改动的频率就越高。 · 最初用户少的时候都是给用户直接发安装包。 · 到后来用户慢慢多了,就放到官网上,有来问的就让用户自己下载安装包。 · 再到后来,连回复都觉得很麻烦了,就干脆做成了自动更新。 然而即便如此,几十个网站只要有一个网站改动,就要导致软件自动更新,这对用户来说是烦不胜烦,因为某一个网站的更新可能对其他用户一点用都没有。对我来说更是苦不堪言,频繁的更新很耗精力不说,承担的压力也很大,因为不允许你犯错,一旦错了就得再重新发布和更新。想象一下一个问题的修复要导致所有用户更新N次,用户是不是会怀疑你的能力。现在是几十个网站,我的目标是要做到支持上百个网站,随着网站规模的上升,未来这种问题会越来越明显。 如何减少维护工作量,可以说这也是软件发展到一定规模必须要解决的问题。 最初想的方案是找人合作,找人专门维护,这样我就可以轻松了。合作有两种方式,一种是全职、一种是兼职。全职的工作不饱满,况且我也没办法给他提供办公场所,并不适合;兼职的我尝试过,最终发现沟通时间有时比我自己改还要多,而且通常不稳定,经常有事做不了,但是你的客户等不了。你需要不停的物色人选,成本增加了但速度反而变慢了,几次下来搞得我很累。 于是我改变思路,尝试能否通过技术手段来解决。这时我爱玩游戏的这个兴趣也给我增添了助力,我从网游那里借鉴了两个思路: 一是游戏地图。玩网游的都知道,游戏完整安装包动辄几十G甚至上百G,大部分都是素材、地图等资源,有的地图可能玩家直到卸载游戏也根本没去过,所以现在的网游一开始只下载游戏引擎,等玩家跑到那个地图了再动态下载,这种模式对玩家节约时间,对运营商节省流量,简直就是双赢。 二是脚本化。游戏中的很多剧情、活动都是基于引擎做的脚本,脚本写好后引擎会自动解析,进而控制程序。运营商需要增加活动或修改情节,完全不需要修改游戏主体程序,直接新增或修改脚本就好。脚本,可以理解为一种计算机语言,更便于程序员阅读和维护。