一种前端无源码定制化开发能力专利解读

news2024/9/20 6:02:04

背景

目前市面上一些web前端工程在打包发布之前都会进行代码混淆加密。代码混淆(Obfuscated code)是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义。通过进行代码混淆可以有效提升应用被逆向破解的难度,并使其对可能别有用心的黑客无用,还可以减少文件大小、提升性能。

如果项目或客户对现有的前端工程有定制化开发的需求,拿到混淆后的前端代码也无从下手,这个时候只能申请相关前端工程源码去做定制化开发,然而这样源码就会对外暴露并存在泄露的风险,还有可能会暴露出一些独有技术或者商业信息。基于以上类似的场景,元年提供了一个前端无源码定制化开发的能力。本文将从无源码定制化开发的概念、意义,实践和优势来进行讲解说明。

什么是无源码定制化开发

想要了解什么是无源码定制化开发,首先要明白什么是源码定制化开发。

源码定制化开发

所谓源码就是指编写的最原始的程序代码。任何一个网站页面,换成源码就是一堆按一定格式书写的文字和符号。程序员编写程序的过程中需要他们的“语言”,而他们的工作语言就是“源码”了。用户平时使用软件时就是程序把“源码”翻译成用户可以直观看到的模样。

定制化开发,以现有软件产品为基础,以客户的个性化需求为目标。通常,它由软件产品开发人员执行,或者由供应商提供的第三方执行定制化开发接口和源代码。不同于完全定制的开发,定制化开发不是从零开始开发,而是基于现有的软件。通俗地说就是在现有的软件上进行定制修改、扩展功能,然后达到自己想要的功能,一般来说都不会改变原有系统的内核。去做定制化开发你需要掌握以下能力:

第一,你要有这个开源产品的所用语言的语言基础,能看懂代码是最基本的;

第二,你要对这个开源产品的功能能力和使用比较熟悉;

第三,你要熟悉这个开源产品的代码结构,系统的框架结构,核心思想的代码逻辑,以及文件目录;

第四,你要根据项目的需求,利用开源产品的内核,进行系统的扩展和修改,从而达到用户需求。

无源码定制化开发

无源码定制化开发指的是在源码编译混淆的基础上进行定制化功能开发,在不需要了解代码结构及不改变整体逻辑结构的情况下从而快速达到用户需求的开发方式,它具备成本低效率高,自定义能力强,安全敏捷等优点。元年无源码定制化开发是通过开发一款yn-webpack-plugin插件,它能在使用webpack打包编译的情况下将指定的定制化开发目标源文件放到对应的定制化开发目录下,编译发版后在不提供给用户源码的情况下项目也能基于发版出去的工程去做定制化开发从而快速满足用户的定制化开发业务需求。

无源码定制化开发的意义

元年的平台产品是一个庞大且复杂的系统,对内涉及的产品线数量多且功能复杂,对外涉及的项目也比较多,每个业务线和项目的需求又大有不同,而且变动频繁,常常需要设计者与开发者能快速做出响应。基于无源码定制化开发能力可以快速响应每个业务线及企业的不同需求,满足不同企业不同定制化的要求。并且每个项目在基于无源码定制化开发能力开发的时候还能使用平台提供的一些基础能力,避免重复造轮子。在一些通用能力上只需要元年工程开发一套就能满足所有企业都能使用,它能在以下几点更好的满足企业发展。

节约时间成本

使用无源码进行定制化开发的开发方式,可以节约很大一部分时间成本。因为程序的整体源码逻辑已经确定下来,开发基于无源码定制化开发的能力不需要像很多源码定制化开发一样还要去了解项目结构,代码逻辑编程思想等。开发要做的主要工作就是基于无源码定制化开发能力,在定制化开发文件上,对原来代码的基础进行功能的改进,基于此项目在开发周期上可以大大节省开发时间,并且能使上线时间提前。

节约人力成本

无源码定制化开发可以节约人力成本。项目初期如果每个项目都存在一些定制化需求,那么每个项目都至少需要一个开发工程师,并且还对项目开发有一定的能力要求。无源码定制化开发能力提供的能力可以减少项目自己去做一些重复造轮子的事情,可以基于提供的一些定制化开发能力直接使用,减少开发周期,减少人员,最后可能一个开发工程师就能支持多个项目。我们都知道,软件开发公司最大的成本就是人力的成本,如果能够从人力上节约成本,就能给软件开发公司带来更多的收益。所以无源码定制化开发,不管是对公司还是对客户,都有很大的帮助和好处。

提升安全性

无源码定制化开发可以提升安全性。无源码定制化开发不需要我们提供源码给项目上,项目只需要拿到发版物对预留的定制化开发文件做处理即可,这样就减少了源码暴露的风险,在保证安全性的同时降低安全投入成本。

无源码定制化开发能力的应用

元年的无源码定制化开发原理是通过插件机制来实现的,通过开发一款yn-webpack-plugin插件,它能在编译发版后在不提供给项目源代码的情况下将预留的定制化开发文件保留,项目通过去对定制化开发文件去做定制化开发从而快速满足项目的定制化开发业务需求。项目还能避免去走申请流程申请源码定制化开发等一系列耗时流程,直接拿到元年的发版物之后就能处理快速满足客户的一些需求。并且在我们发版后的定制化开发文件中也会将元年的一些基础能力对外暴露,这样项目上能直接使用基础的能力,不需要再次赋能,减少项目对前端开发能力的一些要求。

无源码定制化开发优势

无源码定制化开发是通过一系列技术手段实现的一种开发方式,使用无源码进行定制化开发的开发方式,它的优势有以下几点:

  • 解决各个项目个性化需求难实现问题;

  • 增强业务扩展性、业务适配性;

  • 降低项目上对人员的开发能力要求,更快上手;

  • 降低源码及商业信息暴露的风险;

  • 降低代码冲突及代码升级合版的风险;

  • 可以更好资源整合、合理分配、降低成本等。

综上,无源码定制化开发的能力不仅能满足企业内部业务线、外部企业更好地敏捷开发,从时间、成本、人员、安全性等各个方面应对市场的变化,还能够快速驾驭需求的变化满足企业的要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode刷题Day38-------------------动态规划

Leetcode刷题Day38-------------------动态规划 1. 理论基础 文章链接:https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html视频链接:https://www.bilibili.com/video/BV13Q4y197Wg题目链接&a…

GBASE荣获“2022证券基金行业信息技术应用创新联盟年度优秀成员奖

日前,证券基金行业信息技术应用创新联盟2022年度峰会于上海成功举办,在会上,GBASE南大通用作为联盟成员单位,积极相应联盟号召,有力支撑证券信创建设,荣获“2022证券基金行业信息技术应用创新联盟年度优秀成…

第一章 Arm 架构概述(2023新)

第一章 启发式 Arm 架构解读 第二章 CPU微架构 第三章 系统微架构 第四章 总线微架构 第五章 监控微架构 第六章 安全微架构 第七章 虚拟化微架构 第八章 Armv9-A 架构 第九章 Armv8-M 架构 第十章 Armv8-R 架构 第十一章 Cortex-A715 解读 第十二章 Cortex-X3 解读…

图片怎么转成PDF格式?介绍三种转换思路

PDF文件作为一类办公常见格式,很多场合都会使用到。有时我们需要将图片转成PDF格式以方便归纳整理。图片资料怎么转成PDF呢?给大家介绍几个手机和电脑都可以用的方式。希望对你有帮助。方法一、用文件自带的转换功能将图片转成PDF随意打开一个PDF文件后&…

Github每日精选(第94期):免费网页在线情况监控

Upptime Upptime 是开源的正常运行时间监控和状态页面,完全由 GitHub Actions、Issues 和 Pages 提供支持。 Upptime 是 [GitHub Actions] 的一个非常巧妙的用法。您基本上可以根据需要获得免费的可配置正常运行时间监视器。 github 地址在这里。 特点 利用 G…

CTPN的Python实现笔记一

文章目录一、疑难代码讲解1. 文本框左上角标注置信度(1) s str(round(i[-1] * 100, 2)) %(2) cv2.putText() 函数(3) cv2.line()函数2. 文本框进行扩展操作3. 文本框进行NMS操作(1) 非极大值抑制函数def nms(dets, thresh):a. order scores.argsort()[::-1]b. xx1 np.maxim…

[oeasy]python0068_控制序列_清屏_控制输出位置_2J

光标位置 回忆上次内容 上次了解了键盘演化的过程 ESC 从 组合键到 独立按键 ESC 的目的 是进入控制序列配置控制信息 控制信息 \033[y;xH 设置光标位置\033[2J 清屏 这到底怎么控制来着???🤔现在 系统里 这些行为 是谁来实现的…

【机器学习 - 6】:梯度下降法(第一篇)

文章目录梯度下降法的理解图解极值点和最值点梯度下降法的求导运算公式推导梯度下降法的实现梯度下降法的理解 梯度下降法不是一个机器学习算法,既不是在做监督学习,也不是在做非监督学习,是一种基于搜索的最优化方法。 作用:最小…

【2319. 判断矩阵是否是一个 X 矩阵】

来源:力扣(LeetCode) 描述: 如果一个正方形矩阵满足下述 全部 条件,则称之为一个 X 矩阵 : 矩阵对角线上的所有元素都 不是 0 矩阵中所有其他元素都是 0 给你一个大小为 n x n 的二维整数数组 grid &a…

JVM虚拟机知识总结

什么是虚拟机?从字面意思上来看,顾名思义即使一台虚拟的计算机,用来执行虚拟的计算机指令,从大体上来看,虚拟机一般分为两种。一种是系统虚拟机,另外一种是程序虚拟机。系统虚拟机:代表为VMware…

微信小程序 java中医知识库百科科普

中管理员的主要功能有: 1.管理员输入账户登陆后台 2.个人中心:管理员修改密码和账户信息 3.用户管理:对注册的用户信息进行删除,查询,添加,修改 4.中医知识管理:对中医的知识信息进行添加&#…

什么是地址解析协议 (ARP)?

最近不想更文章了,药吃完了, 本文目录地址解析协议 (ARP) 含义ARP 是做什么的,它是如何工作的?地址解析协议与 DHCP 和 DNS 的关系是什么?它们有何不同?ARP 有哪些类型?1…

应急救护培训报名-因疫情原因,暂停开班?

应急救护培训报名背景和急救证书区别2023年一定要被培训项目报名渠道状态上海市红十字应急救护培训上海市医疗急救中心公众课程专业课程背景和急救证书区别 关于背景和急救证书区别,请参考,程序员的生命与急救 文章 2023年一定要被培训项目 由于疫情原…

Springboot+vue冷冻仓储进销存管理系统 java

端技术:nodejsvueelementui 前端:HTML5,CSS3、JavaScript、VUE 系统分为不同的层次:视图层(vue页面),表现层(控制器类),业务层(接口类)和持久层&a…

php宝塔搭建部署实战易优游戏竞技公司网站源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套php开发的易优游戏竞技公司网站源码,感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码&#xff…

SpringBoot或SpringCloud集成Nacos

一、创建一个项目首先创建一个空项目&#xff0c;然后引入Nacos的依赖&#xff0c;并选择正确的SpringBoot和Nacos版本&#xff0c;如果版本选择不对的话可能会启动失败&#xff0c;带来很大的问题<!--SpringBoot的版本--><parent><groupId>org.springframew…

详解axios(快速入门)

axios这一篇就够啦~axios1、axios的理解和使用1.1 axios概述1.2 axios特点1.3 axios常用语法1.4 难点语法的理解和使用2、axios源码分析2.1 源码目录结构2.2 源码分析axios 1、axios的理解和使用 1.1 axios概述 前端最流行的ajax请求库 react/vue官方都推荐使用axios 发ajax…

推荐系统与深度学习关联

6.1 推荐系统与深度学习关联 学习目标 目标 无应用 无 6.1.1 深度学习到推荐系统 深度学习发展成功与局限 最近几年深度学习的流行&#xff0c;大家一般认为是从2012年 AlexNet 在图像识别领域的成功作为一个里程碑。AlexNet 提升了整个业界对机器学习的接受程度&#xff1…

如果把小程序业务和研发管理都放到一个平台

伴随着互联网在中国进程的发展&#xff0c;线上研发效能及业务应用软件也不落后于时代进步的脚步&#xff0c;中国软件行业从未停止过持续的创新。 2022年&#xff0c;业务应用开发正在简化&#xff0c;研发效能也在提升&#xff0c;其中不得不提软件在协同促进、研发一体化管…

MyBatis 一级二级缓存【学习记录】

一级缓存 1&#xff09;首先做个测试&#xff0c;创建一个mapper配置文件和mapper接口&#xff0c;我这里用了最简单的查询来演示。 <mapper namespace"cn.elinzhou.mybatisTest.mapper.UserMapper"><select id"findUsers" resultType"cn.…