欢迎来到天天文库
浏览记录
ID:37904431
大小:608.50 KB
页数:10页
时间:2019-06-02
《RIDE源码阅读方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、如何阅读较大型项目源码【摘要】上一篇我们讲到《如何挖掘代码评审的最大价值》,如何阅读较大型项目源码的能力不可缺少。本文从一次简单的实际操作来演示如何有效的阅读较大型项目源码。【关键词】阅读源码一、问题的提出如何有效的阅读较大型项目源码?二、解决思路通过记录一次活动来具体阐述。本文的主题是分析“研发软件自动化测试平台”的GUI的一次点击tree事件,看看源码是怎么样风云变幻、暗潮涌动的。三、实践情况点击3次按钮我们点击了3次按钮事件,“研发软件自动化测试平台”的GUI发生了如下的变化:第一次:第10页共10页第二次:第10页共10页第三次:从
2、上面3次用户点击GUI,我们下一步来分析源码发生了什么及我们能从这里学习到什么东西。第10页共10页阅读源码流程1、尽量能运行代码这是比较简单的步骤,虽然配置工程会比较复杂,但是把工程跑起来了,你能学到很多。2、不要只看细节阅读代码第一步骤,首先浏览一下代码,熟悉不同代码段是做什么的,这会让我们了解代码的上层结构。找到切入点,查看代码在哪里分支了。不要在细节上花过多的时间,你后面随时可以回来查看。3、确信自己理解所有必需的结构如果碰到不熟悉的结构,你下一步就走不远,你应当深入查看,花一点时间来阅读代码。4、深入研究逐行查看函数或类。5、测试
3、代码验证你理解代码了。比较奇特的代码,提取为单独的程序消化、吸收。步骤1:运行代码由于我们是测试平台科,自动化软件开发工程师,我们的工程从svn上下载下来,库的依赖、path路径全部自动获取(自动部署),所以一键就可以运行代码。此过程简单。第10页共10页步骤2:找切入点单击tree的事件,猜一下,跟tree有关,于是我们模糊搜索到文件=D:____pythonRF2RobotPlatformsvn_managerobotideuitree.py,事件=OnSelChanged在这里说明一下,切入点需要猜测,你可以根据标识符
4、来定位,事件来定位,只要你能找到切入点,步骤2就算成功。步骤3:确信自己理解所有必需的结构如上,参考标记为2的地方,代码结构。步骤4:深入研究1第10页共10页有步骤3,我们得到切入点和代码结构/流程,在步骤4,我们关心点击3次,数据结构发生了哪些变化,及数据结构发生变化而附加了哪些操作。我们查看一下点击3次按钮的第一次的数据结构如下:如上,我们关注“is_variable”,表名这次点击了“${OPERATOR}”变量的操作。同理,3次点击的第二次点击数据结构如下:如上,红色部分,表名用户点击的是测试用例节点。同理,3次点击的第3次点击数
5、据结构如下:第10页共10页如上,红色圈标记的是用户点击了用户关键字的节点。步骤4:深入研究2深入研究步骤1是关键数据结构,下一步是关键函数。这里主要关心用户点击3种tree节点,GUI自动发生了一些变化,这些变化对应的源码在哪,以及触发原理是怎样的。我们知道单击tree节点,GUI自动发生了一些变化,对应代码的函数是publish。我们跟踪publish到这里,listener。跟进listener,我们找到GUI自动改变的第一个部分:_set_label如上,再次跟进listener函数,我们发现了GUI自动改变的其它部分:编辑框自动发
6、生切换。第10页共10页总结:代码结构流程:步骤5:测试代码这里,为什么publisher.py->listener函数会正好跳转到GUI自动变化的地方呢?我们逆向思维,从mainframe.py->_set_label函数反过来查看。如上,反过来查找,发现了一个设计模式,于是我们可以进一步学习、测试这个模式。理解了这个设计模式,我们阅读代码便轻松多了。如下,附上观察者模式的简介:第10页共10页四、效果评价本文通过记录一次最平常的发生在身边的事件,详细分析了源码的实现情况,比较好的结合了用户容易使用和有价值的源码分析。让大家喜欢阅读源码,
7、比较好的掌握源码阅读思路。五、推广建议为同事阅读较大型源码分享经验,提供一种比较好的思路。第10页共10页参考资料1、RIDE源码0.47版本以上第10页共10页
此文档下载收益归作者所有