IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 《饭谈》测开领域的“二次开发” -> 正文阅读

[开发测试]《饭谈》测开领域的“二次开发”

说到二次开发,很多同学谈虎变色。

【?二次开发到底难不难?】

有的说二次开发很简单,有的却说很难。

其实难与不难,不但因人而异,同样也分二次开发的对象是什么。当然,我们不能为了二次开发而二次开发,一定要有一些需求,实在没有办法了,才会去想到改源码,因为改其他人的源码,难度很高。

为什么难度很高?除了自己和原作者的技术栈不同,注释不同,思维逻辑不同,代码风格不同之外,对我们来说,最大难度在于,基础水平不足。

因为二次开发的对象,往往是业界比较出名的开源工具,之所以能让我们看到,那说明这个工具很成功,作者写的也足够好。所以几乎绝大多数情况下,作者技术水平和实力 是远高于我们的。

这就相当于一个小学生,想去改装一辆汽车一样。

当然,我们不能说这就一定是非常难,因为改装一下汽车的贴纸,坐垫也叫二次开发。

往回说,那就是我们对二次开发的对象,哪怕加了几句print,这也可以说进行过二次开发。

【 二次开发对象 】

1. 二次开发某单个脚本文件 (难度:????)

比如htmltestrunner.py,是作为unittest的web报告生成脚本存在,很多同学都进行过各种魔改,包括博主在内,颜色,交互,显示数据等等,甚至python3兼容版本,汉化版本 等等都改造过,这个脚本的功能其实就是拼装成完整的html的源码的巨大字符串,然后保存成.html格式而已。

2.前端各种css、jq样式组件 (难度:??????)

博主经常去网上借鉴漂亮的页面的元素组件,作者的风格,方法,html的结构,技术栈往往不同,加上css本身的庞大复杂,导致这种改动变得极为困难,作者曾经一个公司的前端开发经常说的一句话就是:这个组件是第三方的我可不会改,bug就只能等原作者更新修复了。

3.github等社区的各种开源平台或框架项目 (难度:????????)

可能很多小伙伴都喜欢去网上直接下载开源的平台,然后总说改吧改吧就变成自己用的测试平台等等,殊不知,其实大部分同学都无法进行深度的二次开发,根本无法修改整体架构,结构,算法,增加新的设计等等,大部分都只能停留在照葫芦画瓢,改改一些页面的输入,显示,后台的增删改查代码等等,虽然能暂时完成需求,但是在个性化,本地化,升级空间上都自绝了后路,而且平台上还会冗余大量的无用代码,而同学又不敢轻易删除,自己需求的功能能否运行成功全看运气。

4.代码级的第三方开源库 (??????????)

如python的各种pip可以下载的第三方库,这些所谓的神库,往往具有强大的能力和要求极高的写作风格和技艺,作者自然不是泛泛之辈。大部分库都是由多个文件或函数组成,作者多是外国佬,我们在看源码的时候,经常看着满屏的绿色英文注释难受。国外的程序员的很多时候的脑回路和我们也天然的不同,不过若能改掉这种开源神库,也算是大神了。比如wqrfnium,一开始几乎没人能看到里面那么多的变量和函数还有各种复杂的调用关系,很多同学都着急想用而不得要领,当经过我把原理拆解讲解之后,大家才豁然开朗,明白什么叫:难者不会,会者不难了。

5.编程语言的本身?(难度:????????????)

编程语言,这是一切的根本,也是互联网的基石。作者和核心作者团的人已经不能用大神大佬这种词语描绘了,都是铁打的精神领袖,程序员届真正的泰山北斗,想改掉这些编程语言本身,难度不亚于再造。比如python的各种内置库或者函数,for循环,rang(), print(), unittest框架等。而且改动这些基本库,语言的基本组成部分,肯定都伴随着巨大的风险,你不清楚他们内部的调用关系,可能你改了一点,就会导致其他很多系统级bug,所以要二次开发这种级别的源码,必须要学会向前兼容,就是说哪怕自己改的不好,也不会影响其他函数调用此部分。

还有就是你改了之后,相当于改了物理电脑的环境,你的平台或者脚本工具换一个电脑,你就需要重新再在新电脑改一遍,这可移植性太差了。当然博主曾经有过几十次的二次开发的经验,所以也渐渐摸出了自己的一套【方法论】,百试百灵。等以后出书欢迎大家踊跃抢购哦~

6.测试开发干货系列的测试平台?(难度:??)

看过本号和其他测试开发x货的同学一定深有感触,那么多看着很负责的测试平台,在各位博主笔下变得简单易造。这就是良心教程的魅力所在,何为最简单的二次开发,原作者一句一句的带着你重做一套平台,讲一遍,这就是最简单的快乐了。

这种教程平台二次开发改造是最简单的了,因为每一句代码你都记得,它为什么出现,它什么时候出现的,你对平台的掌控会达到前所未有的高度,它就像你看着长大的孩子一样,改造它,对你来说就是随便为所欲为。

在博主的培训学生里,对教程平台的改造五花八门,甚至很多优秀的设计超越了博主当前在用平台的程度。

图片

二次开发的讨论暂时到这里,我之后会写一篇 如何具体二次开发的百试百灵的 方法论,也即是俗称的固定套路? + 不固定的心法,欢迎关注!!!

进群的加v :qingwanjianhua

图片

测试开发干货

测试开发干货

测试开发不能每天只看鸡汤文,一定要多练习基础,保持每天都学或者巩固一个算法和技巧。欢迎关注本公众号,只发布干货文章。多多转载哦~

426篇原创内容

公众号

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:32:45  更:2021-07-27 16:33:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 6:49:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码