转眼间自学软件已经半年有余,所做软件不能说是很好,但是我认为只要有用户的软件就是好软件。今天把自己的开发软件过程中的心得与体会总结起来、记录下来,希望新人少走弯路。
软件开发之前,需要先构思软件大致功能、程序是否可行、程序具体实现办法、程序代码结构、程序容错性、用户体验设计、程序的执行效率、软件界面等。有必要的话建议新建个txt,保存程序具体开发流程,然后按照步骤一步步来。
明确软件大致功能
首先我们要明确要做的这个软件功能是什么、主要目的是干嘛的。我之前就在论坛上看到过一个网友发的记事本软件,居然还带音乐播放、3G挂Q等功能,实在是画蛇添足了。比如为什么腾讯要开发那么多软件,QQ音乐、QQ游戏、QQ影音等等等等..而不把他们综合成为一个软件?这是因为各软件功能的针对性比较强,因为一个使用QQ音乐听歌的用户,不可能会同时使用QQ影音看电影。当然,如果副功能针对性不强,和主功能有较强联系的,可以合并开发。
程序是否可行
明确了软件大致需要实现的功能之后,我们再考虑这些功能是否可以实现,如果某些功能根本没有办法实现,后面的就不用看了。这里建议不能实现的问题多多上网查查,论坛求助,一般情况下你遇到的问题都是前辈们问了好多次的问题。
程序具体实现办法
多个不同程序同样的一个执行结果,需要反复测试那种效率高、正确率高、用户可能更喜欢哪一种、再选用哪一种。如做个程序判断某QQ是否在线,你可以采用两种方法:1:让用户在你的程序中登录QQ,程序自动寻找用户指定的那个QQ好友,判断他是否在线。2:直接读取对应QQ的QQ在线状态图标,进行判断。前者获取的信息更详尽,后者无需用户登录QQ即可查询,两者各有优点,采取哪一种取决于你程序的主功能。
程序代码结构
代码结构是十分需要重视的一个软件开发阶段,它差不多直接决定了你软件的未来..一个代码结构混乱的程序,过段需要更新的时候,连你自己也看不出个所以然。在修改某些核心代码的时候,甚至会出现牵一发而动全身的情况。我在学习初期,就曾做过一个结构混乱的程序,后来由于修改一个地方,报出10个错误,最终无奈只好放弃了那个程序。建议大家在程序开发初期一定要注意这个问题,尽量写出无依赖性,可供其他程序任意调用的子程序,并做好备注。(推荐一篇关于程序代码结构的文章:防止代码变质的思考与方法)
程序容错性
程序容错性也是非常重要的一个地方,你的一个错误弹窗,就可能让一个用户右上角,甚至直接删掉你的软件。比如“百度网盘搜索工具”的先前版本,软件启动后,迅雷下载、快车下载、旋风下载,这几个按钮,在用户还未搜索文件时就是可点击状态,一旦点击就会数组成员超标报错。这里建议开发者要全面考虑程序执行中各种可能发生的情况,使不能让用户操作的组件都保持着“禁用”状态。
用户体验设计
用户体验(简称UE)FaceUI称是一种纯主观的在用户使用一个产品(服务)的过程中建立起来的心理感受。因为它是纯主观的,就带有一定的不确定因素。个体差异也决定了每个用户的真实体验是无法通过其他途径来完全模拟或再现的。但是对于一个界定明确的用户群体来讲,其用户体验的共性是能够经由良好设计的实验来认识到。建议开发者合理运用各种组件,塑造良好的用户体验。
程序的执行效率
功能大致开发好了,接下来就要看看能不能提高功能实现的效率,原来需要等5秒钟的功能,看能不能3秒钟搞定。建议开发者在软件启动阶段。功能执行阶段使用多线程调用事件,以加快软件启动速度、功能执行效率。
软件界面
不注重界面的我把这条放在了软件开发的末尾。其实这点也完全可以放在后面,因为一个不错的界面往往只需调用一个模块、一句代码就可以做到。除非是一些正规的软件、需要用自绘搞好久。
发布前测试
切记,你所开发的软件不是你一个人用的,不是只要你能运行的软件,别人就一定也可以运行。软件发布前要经过虚拟机测试、QQ好友帮忙测试、确实没问题了再发布。
软件发布
可以在你平时常逛的论坛、贴吧,也可以发表在软件下载站等处。
收集用户意见
软件已经开发完成并且发布了,接下来就是收集用户的意见和建议,在软件中适当的位置嵌入QQ在线状态按钮、意见反馈按钮都是不错的办法。建议收集意见之后,除非重大BUG、漏洞,每1-2周更新一次足矣。(易语言程序推荐使用“凯旋留言反馈系统”,高效展示所有用户的意见,甚至可以当做专属聊天室。)
开发中遇到问题
最好自行解决,网上搜索,论坛发帖求助,等都是不错的办法。建议平时学习过程中遇到牛人果断加QQ,不懂的时候问一下,不要太烦人,高手生气直接拉黑了。
面对用户的软件才是软件的最终形态,软件的存在价值在于:为用户提供方便。