小妞会装机 -- 一个装机软件的开发笔记(七)

本文配套程序下载地址为: http://pan.baidu.com/share/link?shareid=358034&uk=3995556177

用libcurl解决了下载的问题,用duilib解决了界面的问题。真是感谢这些项目的贡献者,让软件开发变得美好起来。

接着上篇说,由于获取下载链接需要几个步骤,先要打开百度网盘网页,然后点击下载,最后才能返回一个下载地址。但是判定网页是不是已经打开存在一点不精确的因素,因为打开一个百度网盘网页会返回几个ondocumentcomplete事件,加上模拟点击获取真正的下载地址,这些都与网络相关,对应的状态机就复杂起来。怎么解决这个问题呢?

简单的方式就是用定时器了。比如打开百度网盘网页后,过10秒后根据网页内容检测是不是已经打开如果10秒内还是打不开网页获取下载地址,那就判定是网络有问题了。这种方式很笨,但是很可靠。优雅的方式就是用消息循环,有一个ondocumentcomplete就发个消息处理一次,一般获得一个下载链接会有几次ondocumentcomplete,这就要详细分析然后判断,处理起来比定时器显然要麻烦多了。

快速解决问题,然后看效果,如果需要再优化是我的开发理念。我选择了定时器。而且很快就实现了这个功能。现在这个软件获取下载链接时很可靠。其实在软件项目的开发过程中,很多时候都会遇到类似抉择,选择简单可靠方式还是优雅但需要精确处理的方式呢?后来发现一个现象,做前端的人倾向于后者,而做业务的倾向于前者。后来思考了一下,这都和平时接触的技术面相关。做前端的经常和微软界面消息处理机制打交道,而微软的消息机制的确很精巧,所以做前端的受这个影响较深,认为业务都应该有一个这样精准的模型;但做业务的就功能放在第一位,而业务可能经常变动,预先做一个精准的模型还覆盖未知的问题是一个伪命题。我个人觉得,如果做业务,一开始不要搞太复杂的模型,方便修改跟住业务更新需求。等业务稳定下来,再优化或重构这个业务。微软的界面消息机制也是花了很多人力才最终完成的。


关于这个选择的问题,欢迎大家讨论啊


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值