`
Foxswily
  • 浏览: 77549 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

开心网外挂编写总结

阅读更多

总结写开心外挂的心得

对开心网的外挂编写做个总结,避免弯路。

  • 设计篇

          针对需求的设计——需求向实现的转化

                从调查切入点开始考虑如何着手,确定了基本的方式到写代码,并没有花太多精力,http访问、html解析都不复杂,但后续需求考虑不足造成最初的设计不能满足后续需要。比如后续加入的新模块轮询检索,定时执行都推翻了最初的设计。在设计阶段多大程度上为后续预留扩展余地有待思考。
          避免过度设计
                小程序貌似没有这个问题,基本上能减的都减了^_^ 个人编程更多的是偷懒避免了过多代码。
          别为选择耽误时间
                左右为难的选择未必是阻碍进程的瓶颈。为几个技术选择或者解决方案思考了很久,其实这些点都不是阻碍开发的地方,一旦确定一条路,剩下的就是解决这条路上的问题了。

  •  技术细节篇

           事前分析URL VS. 解析页面

                 简单一个例子,要取得B页面的信息需要经过A页面(如登录),开发中的想法有:
                       1.预先分析B页面的URL特点,从A页面拼接取得(URL中有随机的Key,需要在A页面取得)。
                       2.解析A页面中通往B页面的链接。
           方法1更直接,Key的解析针对字符做regex查找即可,但缺点是一旦URL改动或者Key的方式改动要重新分析。
           方法2站在网站外的视角,直接根据链接名称查找链接地址,缺点同样明显,页面名称不能变化,比如:“组件”这个链接名不能变,否则就找不到了。
           最终选择了方法2,使用了比较旧的htmlparser,但扩展简单。

           定时任务的控制
                 预订时间执行预订动作,使用了JDK自带的Timer,绝对的lightweight,API中提到的执行不准的情况忽略不计。整体控制方式:主进程控制子线程,子线程控制TimerTask线程。必要的线程间数据共享使用了ConcurrentSkipListSet,主要是考虑线程安全、可排序和无冗余。

           双缓存
                 从Swing的双缓存思想得来,实际就是转移长时间操作的瓶颈,解决预订任务队列的更新问题,效果确实不错。

           错误恢复
                 对长期自动执行来说,如果发生异常应该有一定的自我恢复能力,比如网络不通造成的异常等等。解决方式用子线程调用TimerTask的方式避免异常造成彻底中断,同时不会因为异常反复发请求。瞬时错误恢复没有解决,比如执行停车失败,会跳过这个车位,查找下一个,此时的错误状态等等没有细考虑。

分享到:
评论

相关推荐

    (CH_T_1001-2005)测绘技术总结编写规定.zip

    《(CH_T_1001-2005)测绘技术总结编写规定》是一部针对测绘行业的技术标准,旨在规范测绘项目的实施过程中技术总结的编写工作。这份文档详细阐述了如何系统、完整、准确地记录测绘项目的全过程,以便于项目评估、成果...

    CH/T 1001—2005 测绘技术总结编写规定.pdf

    标题中提到的“CH/T 1001—2005 测绘技术总结编写规定”揭示了这是一份关于测绘技术总结编写的官方标准文档。这一规定属于中华人民共和国测绘行业标准,标准编号为CH/T 1001,于2005年制定。这份标准替代了原先的CH ...

    CH1001—2005测绘技术总结编写规定(最新版)

    测绘技术总结编写规定(最新版)本标准代替CH 1001—91《测绘技术总结编写规定》

    军用产品研制技术文件编写范例 范例3 研制总结 26P 10.3M

    从标题和描述中,我们可以了解到该文档是一份关于军用产品研制技术文件编写范例中的一个部分——研制总结。该范例文档的内容包含26页,大小为10.3MB。虽然给出的“部分内容”中充斥着大量重复的“竹叶门冬青”字样,...

    BREW应用层代码编写总结

    【BREW应用层代码编写总结】 BREW (Binary Runtime Environment for Wireless) 是一种专为移动设备设计的应用程序开发平台,尤其适用于早期的CDMA网络。本文将深入探讨BREW平台上AP(Application Process)应用层...

    本次XXX项目性能测试总结编写目的,在于对性能测试实施的过程及结果进行分析,以总结性能测试方面的经验与不足

    本次XXX项目性能测试总结编写目的,在于对性能测试实施的过程及结果进行分析,以总结性能测试方面的经验与不足,为其它项目规范实施性能测试提供参考标准。预期参考人员包括测试人员、测试部门经理、项目管理人员、...

    MT4-学习自己编写EA总结篇_ea_EA快速入手_MT4-学习自己编写EA总结篇_

    "MT4-学习自己编写EA总结篇"这个资料显然是为了帮助初学者掌握在MT4上编写EA的基本步骤和技巧。下面,我们将深入探讨这一主题。 首先,了解EA是什么至关重要。EA是一种自动交易程序,它可以按照预设的交易策略和...

    远程控制编写[实用教程]

    远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制编写远程控制...

    RF-YX-ZY-06 销售总结编写作业指引.zip

    《RF-YX-ZY-06 销售总结编写作业指引》是一份旨在指导销售团队进行有效销售总结编写的详细文档。在这个压缩包中,主要包含了一份名为“RF-YX-ZY-06 销售总结编写作业指引.doc”的文件,这显然是一份Word文档,用于...

    编写有效用例.pdf

    在软件工程中,编写有效用例是确保项目成功的重要环节。用例是一种文档,用于描述系统如何响应外部请求,它以用户或其他系统与系统交互的方式定义了系统的功能。编写有效用例需要了解用例的结构、范围、项目相关人员...

    C#编写外挂式CDR插件例子工程(附带对应的Corel.Interop.VGCore.dll)

    通常所说的CDR插件,指的是GMS、CPG、Addon这类需要将插件程序放在CDR软件对应的Draw\GMS、Draw\...凡是能编写EXE程序的开发工具,理论上都可以编写外挂式CDR插件。此资源就是一个完整的C#编写外挂式CDR插件例子工程。

    基于MATLAB GUI编写的用来背单词的软件源码+项目说明(并附带自己总结的意大利语单词列表).zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的...基于MATLAB GUI编写的用来背单词的软件源码+项目说明(并附带自己总结的意大利语单词列表).zip

    《项目工作总结报告》编写提纲.docx

    《项目工作总结报告》编写提纲.docx

    通达信指标公式编写教程[完整版].pdf

    根据提供的文件信息,以下是关于“通达信指标公式编写教程[完整版]”的知识点概要。 首先,通达信软件是一款在中国大陆广泛使用的股票分析软件,它提供了丰富的技术分析指标和公式语言,允许用户根据自己的交易策略...

    使用PB编写DLL文件

    使用PB编写DLL文件 使用PB编写DLL文件 使用PB编写DLL文件 使用PB编写DLL文件

    测试用例编写规范(非常详细)

    #### 四、总结 测试用例编写是确保软件产品质量的关键步骤之一。通过遵循上述的测试用例编写规范,可以有效地覆盖各种功能场景,发现潜在的问题,并确保软件满足用户的期望。此外,设计功能和界面测试用例同样重要...

    标准编写模板(TDS3.0)

    国家标准、行业标准、地方标准、企业标准编写模板,word里面直接编辑,省去格式调整! 偶需要编写一个行业标准,找了一堆格式规范,要按这些规范自己编标准的话没几个星期搞不定。有了这个模板软件,可很容易的形成...

    软件文档编写向导包括:《软件项目计划》、《项目进度报告》、《项目开发总结报告》

    包括:《软件项目计划》、《项目进度报告》、《项目开发总结报告》 软件开发文档。包括:《需求规格说明》、《概要设计说明》、《详细设计说明》。 软件测试文档。包括:《测试计划》、《软件测试分析报告》。 产品...

    用户手册 1.1 编写目的

    用户手册编写目的 用户手册是帮助用户更好地了解和使用该企业管理系统的重要工具。该手册讲述怎样安装、配置和使用该软件,以及该软件使用过程中应注意的一些问题。通过使用该手册,用户可以快速了解软件的功能和...

Global site tag (gtag.js) - Google Analytics