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

简介: 《饭谈》测开领域的“二次开发”

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


【 二次开发到底难不难 】


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

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


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

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

   

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

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

   往回说,那就是我们对二次开发的对象,哪怕加了几句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货的同学一定深有感触,那么多看着很负责的测试平台,在各位博主笔下变得简单易造。这就是良心教程的魅力所在,何为最简单的二次开发,原作者一句一句的带着你重做一套平台,讲一遍,这就是最简单的快乐了。

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

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

image.png

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

相关文章
|
5天前
|
算法 Linux C语言
嵌入式软件开发学习路线精心总结
嵌入式软件开发学习路线精心总结
73 0
|
6月前
|
存储 安全 项目管理
团队协作软件哪个好?9款协同办公神器推荐!
9个现代职场办公必备的团队协作软件
|
10月前
|
数据可视化 JavaScript 前端开发
低代码平台名声臭,用起来却真香——60%开发者不敢承认
低代码平台名声臭,用起来却真香——60%开发者不敢承认
|
10月前
|
安全 测试技术 API
产品经理必学技术接口文档知识,提高工作效率
产品经理和开发人员之间的高效沟通和协作是项目成功的关键因素之一。在产品开发的不同阶段,产品经理需要了解开发工作的进度与掌握需求变化,以确保团队在同一方向上协作,以最大化项目的成功。
产品经理必学技术接口文档知识,提高工作效率
uTools V3.3.0 效率工具集
相信大家接触过许多效率工具了 比如Listary,Everything等文件快速搜索的工具等,但是我今天介绍的这款软件也是非常神奇的 多平台且拥有完美的插件市场 是一个非常不错的插件 效率工具软件 希望对你们有所帮助
uTools V3.3.0 效率工具集
|
运维 监控 jenkins
Eolink 让我“重新认识“了自动化测试...
在互联网公司中,测试人员绝对是不可缺少的角色,但是想要成为一名合格的测试人员,能力可不能只停留在一直点点点,必须要保持一个不断学习的状态,比如掌握 自动化测试的能力。
Eolink 让我“重新认识“了自动化测试...
|
数据安全/隐私保护
短视频app开发,做好功能选择让开发事半功倍
短视频app开发,做好功能选择让开发事半功倍
|
IDE Shell 开发工具
《测开方法论》之 二次开发
《测开方法论》之 二次开发
|
负载均衡 算法 关系型数据库
相亲app开发,完善相关知识储备提升开发效率
相亲app开发,完善相关知识储备提升开发效率
非常适合做私活或外包项目的开源后台管理系统
非常适合做私活或外包项目的开源后台管理系统
119 0
非常适合做私活或外包项目的开源后台管理系统