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

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

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


【 二次开发到底难不难 】


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

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


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

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

   

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

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

   往回说,那就是我们对二次开发的对象,哪怕加了几句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

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

相关文章
|
2月前
|
前端开发 搜索推荐 安全
陪玩系统架构设计陪玩系统前后端开发,陪玩前端设计是如何让人眼前一亮的?
陪玩系统的架构设计、前后端开发及前端设计是构建吸引用户、功能完善的平台关键。架构需考虑用户需求、技术选型、安全性等,确保稳定性和扩展性。前端可选用React、Vue或Uniapp,后端用Spring Boot或Django,数据库结合MySQL和MongoDB。功能涵盖用户管理、陪玩者管理、订单处理、智能匹配与通讯。安全性方面采用SSL加密和定期漏洞扫描。前端设计注重美观、易用及个性化推荐,提升用户体验和平台粘性。
90 0
|
5月前
|
Linux API C语言
软件工程师,不了解64位程序开发你就out了
软件工程师,不了解64位程序开发你就out了
69 7
|
8月前
|
分布式计算 算法 Java
imageJ二次开发之旅 – imageJ开源项目介绍
imageJ二次开发之旅 – imageJ开源项目介绍
225 2
|
测试技术
【APP开发的副业】
【APP开发的副业】
|
Java BI API
Java开发的开源SaaS进销存,便于二次开发
越来越多的企业选择使用Java开发的SaaS进销存软件来管理业务流程。Java作为一种面向对象的编程语言,拥有广泛的应用领域。其跨平台性、高可靠性、面向对象、丰富的API以及易于调试等特点,使得Java成为许多SaaS进销存软件的首选。
254 0
Java开发的开源SaaS进销存,便于二次开发
|
Web App开发 存储 缓存
5款精挑细选的软件,助你事半功倍
在工作的时候,大家都喜欢通过一些好用有效率的工具,来让工作更加快速地完成,今天给大家带来的这5款软件,更是一款比一款还要惊喜!
104 0
|
Kubernetes 前端开发 JavaScript
一篇文章带你入门K8S二次开发
我们经常会在网上看到K8S和周边工具的教程,例如HELM的使用,droneCI的使用,但是很少有文章写,如何基于K8S进行二次开发,本篇文章将使用python和vue进行K8S的二次开发,实现一个简单的查询k8s的pod和node信息的页面
7940 0
一篇文章带你入门K8S二次开发
|
测试技术 Android开发
热饭的测开成果盘点第二十七期:安卓自动化平台
热饭的测开成果盘点第二十七期:安卓自动化平台
热饭的测开成果盘点第二十七期:安卓自动化平台
|
监控 安全 测试技术
热饭的测开成果盘点第二十期:安卓&appium自动化测试平台
本期介绍的是移动端app自动化测试平台,用的appium,可以支持多手机并发执行用例,切换环境等操作,用例自动分配等功能。
热饭的测开成果盘点第二十期:安卓&appium自动化测试平台
|
IDE Shell 开发工具
《测开方法论》之 二次开发
《测开方法论》之 二次开发