开发者社区
影刀学院
帮助中心
如何写出易懂、易调试、易修改的应用----by华南组
回答
收藏
开发者社区
>
问答
>
详情
>
如何写出易懂、易调试、易修改的应用----by华南组
克林
2023-08-01 20:05
·
浏览量:3023
克林
发布于
2023-08-01 10:54
更新于 2023-08-01 20:05
3023浏览
作者:克林
背景
你是否感觉到自己在维护应用,修改应用时非常困难,面对自己那长长的应用不知道如何下手?这次教程致力于教您写出稳定、易调试、易维护的应用。
一、开发规范
总所周知,遵循开发规范,可以帮助我们写出易懂、易调试、易修改的应用程序,也就是我们常说的追求程序的“美”和“健壮性”。
要做到规范开发,我们要做到以下几点。
(1)命名要规范。
(2)功能要拆分。
1、先根据业务流程高度提炼出功能点,建若干个功能文件夹,比如:登录、信息录入、表格处理、文件处理等。
2、拆分子流程,放在对应的功能点文件夹下。
示例:假设现在有这么一个流程,我需要循环一个存着账号信息的excel,依次登录到支付宝账单下载页面,下载目标账单,账单下载后,我会对账单excel进行合并,然后上传到对应的ftp目录上,最后把在本地的合并表给删除。
我们对这个流程进行分析,此流程涉及登录、账单下载、excel处理、文件处理4个功能点,再往下细分,分成若干个子流程,如图。
(3)元素要系统化管理,分组保存。
1、先根据操作的平台进行分组,如果某个页面有很多元素,也可以根据页面名称进行分组。
2、捕获元素后,放进我们建好的元素分组。如图。
(4)要对程序做异常处理,提高程序稳定性。
针对某些容易出错的地方进行try 捕获,写出出错后的应对策略。原则:捕小不捕大,下面举例说明。
以
(2)
中的功能拆分介绍的流程为例。
如果你的程序是对程序整体进行异常捕获,那么在程序的任意一个环节出错,这流程就会被终止。
比较好的捕获方法是:
1、在循环登录并导出账单这个部分做一个捕获,如果出错了,记录,并且切换到下一个账号进行下载。
2、在合并excel这个部分做一个捕获,出错进行相应处理。
3、在合并表上传ftp这一部分做一个捕获,出错进行相应处理。
4、在删除合并表这一部分做一个捕获,出错进行相应处理。
(5)调试技巧。
大家一定要学会的一个就是‘模块化’调试。
应用按规范划分好、设计后,要怎样去调试和维护呢。
1.1 拿我设计的应用来说,比如我有一个获取微信好友名片信息的子流程,直接运行是肯定不能运行的,因为我们可能缺少了一些前置条件,如:到达一些特定的界面,或者获取一些对象,设置一些变量值等。
1.2 如果这个模块是比较核心的,具有测试价值的,我们可以在前面加上它运行所需要的前置条件(获取当前对象、设置变量等),不用的时候就把它们给注释掉。
1.3 有的时候,使用一个等待指令,然后人工操作到需要的界面也有奇效!一般用于什么场景呢,大家有没有试过,手动点击,让软件处于某个界面,但是一往外点,这个界面就会消失,那你运行程序的时候,就不能在该界面运行了,而你先运行,加个等待,然后手动去操作,这样就不会打断你要处于的界面了。
1.4 除了在指令的前面加上若干操作,我们还可以在全局变量设置默认值,这样在用到一些变量的时候,就不用去运行其他的指令去赋值了。
1.5 其他
有没有一种办法,既不需要在前面添加指令给变量赋值,也不需要设置默认值呢(因为添加的指令有些是一次性的,事后就删除了,而默认值可能会影响原先程序的运行)
答案是,在调试中的‘调试变量’中直接赋值。
大家都知道,影刀的调试功能是很好用的,点击调试按钮,我们就可以看到当前所用到的变量的值,点击下一步,它就会显示执行下一步后的所有变量的值,根据这些值,我们就可以判断程序的逻辑有没有问题,而这个大家肯定是都要学会的。比如你判断元素是否存在,发现你设的bool变量为false,但是页面又有这个元素。比如你设置了一个循环,往列表里面追加内容,但是你单击了好几次下一步,这个列表变量的值还是没发生变化...
回到刚刚的话题,比如我有个流程用到了这两个值,常规做法是,在上面增加两条设置变量指令,或者是直接编辑原来的指令。
我们也可以直接在调试框把变量改成我们想要的值,这个在某些特定情形也非常的好用,留给大家自行探索了
谢谢大家观看!
收藏
5
全部回答
(
1
)
最新
发布回答
回答