浅谈前端集成解决方案(一)

浅谈前端(UI)自动化测试 作为一名测试开发从业者,自动化测试好像是绕不开的话题…。结合最近接触到的一些测开应聘同学聊到关于前端自动化测试及自己的理解,分享一下自己对UI自动化测试的认识,大概如下。 测试分层的自动化测试思想 自动化测试分层思想所倡导的是对系统进行分层,针对不同层次选择合适的自动化类型进行测试的一种测试策略,同时自动化测试分层思想也与测试阶段(单元测试、集成测试、系统测试)具备相关性。项目的自动化测试覆盖程度... 阅读详情

InfoQ编辑注:本文来自前端工程师张云龙的博客,由作者本人推荐至InfoQ进行分享。目前本系列已经发布了三个部分,本处分享的是第一部分,浅谈前端集成解决方案。建议在阅读本文前先阅读本文作者和其团队之前分享的《前端工程精粹》系列一、二、三。

\
\

每个前端团队都在打造自己的前端开发体系,这通常是一个东拼西凑,逐渐磨合的过程,在技术发展日新月异的今天,这样的过程真的是不可抽象和复制的么?本文希望能够通过系统的拆解前端开发体系为大家提供体系设计思路参考。

\
\

什么是前端集成解决方案

\
\

前端集成解决方案,英文翻译为 Front-end Integrated Solution,缩写fis,发音[fɪs]

\
\

前端集成解决方案并不是一个新词汇,将这个词拆开来看,我们能得到:

\
  • 前端:指前端领域,即web研发中常用的浏览器客户端相关技术,比如html、js、css等\
  • 集成:将一些孤立的事物或元素通过某种方式改变原有的分散状态集中在一起,产生联系,从而构成一个有机整体的过程。[1]\
  • 解决方案:针对某些已经体现出的,或者可以预期的问题,不足,缺陷,需求等等,所提出的一个解决问题的方案,同时能够确保加以有效的执行。[2]\

总结来说,前端集成解决方案就是:

\
\

将前端研发领域中各种分散的技术元素集中在一起,并对常见的前端开发问题、不足、缺陷和需求,所提出的一种解决问题的方案。

\
\

前端领域有哪些技术元素

\

前端行业经历了这么长时间的发展,技术元素非常丰富,这里列举出一般web团队需要用到的技术元素:

\

c0d4adbc9fa1cd60f3811c8009c4bfd7.png

\
  1. \

    开发规范:包括开发、部署的目录规范,编码规范等。不要小瞧规范的威力,可以极大的提升开发效率,真正优秀的规范不会让使用者感到约束,而是能帮助他们快速定位问题,提升效率。

    \ \
  2. \

    模块化开发:针对js、css,以功能或业务为单元组织代码。js方面解决独立作用域、依赖管理、api暴露、按需加载与执行、安全合并等问题,css方面解决依赖管理、组件内部样式管理等问题。是提升前端开发效率的重要基础。现在流行的模块化框架有requirejs、seajs等。

    \ \
  3. \

    组件化开发:在模块化基础上,以页面小部件(component)为单位将页面小部件的js、css、html代码片段放在一起进行开发、维护,组件单元是资源独立的,组件在系统内可复用。比如头部(header)、尾部(footer)、搜索框(searchbar)、导航(menu)、对话框(dialog)等,甚至一些复杂的组件比如编辑器(editor)等。通常业务会针对组件化的js部分进行必要的封装,解决一些常见的组件渲染、交互问题。

    \ \
  4. \

    组件仓库:有了组件化,我们希望将一些非常通用的组件放到一个公共的地方供团队共享,方便新项目复用,这个时候我们就需要引入一个组件仓库的东西,现在流行的组件库有bower、component等。团队发展到一定规模后,组件库的需求会变得非常强烈。

    \ \
  5. \

    性能优化:这里的性能优化是指能够通过工程手段保证的性能优化点。由于其内容比较丰富,就不在这里展开了,感兴趣的同学可以阅读我的这两篇文章 [1] [2]。性能优化是前端项目发展到一定阶段必须经历的过程。这部分我想强调的一点是 性能优化一定是一个工程问题和统计问题,不能用工程手段保证的性能优化是不靠谱的,优化时只考虑一个页面的首次加载,不考虑全局在宏观统计上的优化提升也是片面的。

    \ \
  6. \

    项目部署:部署按照现行业界的分工标准,虽然不是前端的工作范畴,但它对性能优化有直接的影响,包括静态资源缓存、cdn、非覆盖式发布等问题。合理的静态资源资源部署可以为前端性能带来较大的优化空间。

    \ \
  7. \

    开发流程:完整的开发流程包括本地开发调试、视觉效果走查确认、前后端联调、提测、上线等环节。对开发流程的改善可以大幅降低开发的时间成本,工作这些年见过很多独立的系统(cms系统、静态资源推送系统)将开发流程割裂开,对前端开发的效率有严重的阻碍。

    \ \
  8. \

    开发工具:这里说的工具不是指IDE,而是工程工具,包括构建与优化工具、开发-调试-部署等流程工具,以及组件库获取、提交等相关工具,甚至运营、文档、配置发布等平台工具。前端开发需要工具支持,这个问题的根本原因来自前端领域语言特性(未来我会单独写一篇文章介绍前端领域语言缺陷问题)。前端开发所使用的语言(js、css、html)以及前端工程资源的加载与定位策略决定了前端工程必须要工具支持。由于这些工具通常都是独立的系统,要想把它们串联起来,才有了yeoman这样的封装。前面提到的7项技术元素都直接或间接的对前端开发工具设计产生一定的影响,因此能否串联其他技术要素,使得前端开发形成一个连贯可持续优化的开发体系,工具的设计至关重要。

    \ \

以上8项,1-3是技术和业务相关的开发需求,4是技术沉淀与共享需求,5-8是工程优化需求。

\

经过这些年的工程领域实践,个人觉得以上8项技术元素应该成为绝大多数具有一定规模的前端开发团队的标配。各位读者可以对照自己团队现状来思考一下团队开发体系还有哪些环节需要完善。

\

攒一套前端集成解决方案

\
\

不难发现,其实其他领域工程也基本需要解决上述这些问题。前端由于其领域语言的独特性,使得前端工程在解决这些问题上跟其他工程有很大区别,因此至今也没有形成一套比较好的理论体系指导团队实践前端工程。

\
\

仔细观察过一些团队的技术体系形成过程,大家都在努力拼凑上述8项技术元素的具体解决方案。单独观察每一项技术点,你或许会觉得都能各自找到已有的实现,但我要说,把所有8项技术点无缝的串联起来,是一项非常有挑战的工作,你信么?相信真正经历过这样事情的同学能明白我说的串联成本问题。

\

假设我们希望实践一套完整的前端集成解决方案,好了,如果我们单独去看每一项技术点,都可能会找来一两个现成的东西,假设我们东拼西凑的找全了所有8项技术要素对应的具体实现。接下来要用了,它们能很完整流程的跑起来么?

\

正如前面的贴图展示的那样,所有的技术点都有一定的内在联系:

\
  • 模块化开发涉及到性能优化、对构建工具又有一定的配套实现要求,也会影响开发规范的定制\
  • 组件化开发应该基于模块化框架来加载其他依赖的组件,如果组件化框架自带模块管理功能,那么就可能导致工程性的性能优化实现困难\
  • 组件库应该与组件化开发配套,组件仓库中的组件都应该按照相同的标准来实现,否则下载的组件不具有可复用性、可移植性,就是去了仓库的意义\
  • 我们设计的开发规范工具是否能很容易的实现,如果部署上有特殊要求,工具是否能很容易的做出调整,而不是修改规范。\
  • 工具是否能提供接入公司已有流程中的接口,比如命令调用,如果工具需要一些系统环境支持,公司的ci流程中是否能支持等问题。\

前端领域语言的特点决定了攒一套集成解决方案有很高的实现成本。因为前端语言缺少包、导入、模块等开发概念,这使得各个技术点的解决方案在设计的时候都是考虑被独立使用的情况下如何工作,因此或多或少的会延伸自己的职责。比如模块化框架要附属构建工具,甚至要求后端服务(比如combo),组件化框架自带模块化框架,构建工具自带部署规范等,这就大大提高了将各个技术要素融合起来的成本。

\

总之,前述的8项技术要素之间有许多联系,这就为打造一套完整连贯的前端集成解决方案带来了较大的挑战。如何兼顾规范、性能、框架、流程、部署等问题,就不是东拼西凑那么简单的事了。后面我会单独撰文介绍如何实现一套集成解决方案。

别再搞混了!Vue3里xgplayer播放FLV视频与FLV直播流,配置到底差在哪? 本文详细解析了在Vue3项目中使用xgplayer播放FLV视频与FLV直播流的配置差异,帮助开发者避免常见错误。通过对比点播与直播的核心协议差异、插件选择及配置参数,提供实战代码示例和性能优化技巧,确保流畅播放体验。特别针对直播流场景,深入讲解专属配置和问题排查方法。 阅读详情

相关推荐

ESP32驱动TFT屏幕实战:LVGL与TFT_eSPI完美结合

本文详细介绍了如何在ESP32上结合TFT_eSPI驱动库与LVGL图形库,实现高效、流畅的嵌入式GUI开发。内容涵盖硬件连接、软件环境搭建、库配置、LVGL移植、界面创建及性能优化等全流程实战指南,帮助开发者快速构建低成本、高性能的交互式显示应用。

weixin_29206669的博客 200

前端集成解决方案(webpack、gulp)

前端集成解决方案 前端集成解决方案 一、什么是前端集成解决方案 FIS(Front-end Integrated Solution)是专为解决前端开发中自动化工具、性能优化、模块化框架、开发规范、代码部署、开发流程等问题的工具框架。   二、解决了前端哪些问题   三、常用的前端构建集成 1、Gulp gulp是工具链、构建工具,可以配合各种插件做js压缩,css压缩,less编

linyeban的博客 7765

图相似度模型(论文篇)

图相似度模型

weixin_43702653的博客 5749

微前端系列讲解--应用集成方案(qiankun+umi+vue)

1. 微前端架构介绍 微前端架构是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。考虑到qiankun作为蚂蚁的微前端架构,具备以下特点:①简单。微应用接入像使用接入一个 iframe 系统一样简单,但实际不是 iframe。②能力完备。几乎包含所有构建微前端系统时所需要的基本能力,如样式隔离、js 沙箱、预加载等。③健壮性值得信赖。在蚂蚁内外经受过足够大量的线上系统的考验及打磨。所以,选择qiankun去构建集成应用项目的微

无翼之雀的博客 8540

AD在建PCB封装时如何添加元器件的3D模型

3D模型

k1ang的博客 1万+

wsl2上运行带有Isaac Gym的程序报错: GPU Pipeline: disabled

显示GPU Pipeline:disabled,查找相关文档发现是WSL2目前不支持Isaac Gym,时,想要在wsl2上运行,最后报错如下。

2303_78660611的博客 958

iframe微前端方案:简单而有效的前端应用集成方式

微前端是一种类似于微服务的架构,它将前端应用分解成一系列松散耦合的小型应用。这些应用可以由不同的团队开发,使用不同的技术栈,并能够独立部署。微前端架构的核心目标是解决大型单体前端应用带来的开发、测试和部署挑战。在众多微前端实现方案中,基于iframe的方案是最简单且隔离性最好的一种。iframe(内联框架)是HTML中的一个元素,它允许在当前HTML文档中嵌入另一个HTML文档。iframe微前端方案凭借其简单性和强大的隔离特性,在微前端领域占有一席之地。

exlink2012的专栏 1695

Camera 基础知识

Raw Sensor输出的Data格式为Raw,图像的效果处理使用BB端的ISP,BB端接收Raw data后进行一系列的图像处理(OB,Shading,AWB,Gamma,EE,ANR等),效果方面由BB端控制,需要针对不同的模组进行效果调试,Raw sensor是目前的主流,数据量比YUV Sensor小(RAW10 格式的sensor 1个pixel 10个bit)使用平台ISP处理,能支持较大的size。不过,相位对焦并不是那么完美,它对光线的要求就比较高,在弱光拍摄环境下,相位对焦就无能威力了。

手机-手表蓝牙开发工程师的博客 3064

浅谈前端集成解决方案

浅谈前端集成解决方案 什么是前端集成解决方案 前端集成解决方案,英文翻译为 Front-end Integrated Solution,缩写fis,发音[fɪs] 前端集成解决方案并不是一个新词汇,将这个词拆开来看,我们能得到: 前端:指前端领域,即web研发中常用的浏览器客户端相关技术,比如html、js、css等集成:将一些孤立的事物或元素通过某种方式改变原有的

Bin_Going的博客 1462

ADS学习笔记 2. 低噪声放大器设计

ADS学习笔记 2. 低噪声放大器设计。设计了一个中心频率433MHz,增益18.206dB,NF=0.134dB,S11带宽较好的低噪声放大器

u014087103的博客 9509

搞定ESD(五):静电放电问题分析与调试

前面深入分析了静电放电的干扰机理、耦合路径,从现在开始将进入下一个大家非常关注的环节:静电放电问题分析与调试,掌握静电放电问题的分析方法,快速锁定敏感设备或者耦合路径,可以达到事半功倍的效果。

记得诚 2795

前端集成方案——理论(一)

集成方案在项目中的地位? 书面解释 前端集成方案指的是将前端开发领域中所有的技术元素集中到一起,对常见问题提供一套解决方案。 为什么要有集成方案? 前端达到一定规模后,一些孤立的技术元素(模块化、打包、部署、压缩合并、组件管理...)就成为束缚了研发人员的瓶颈。 好,接下来我们以研发流程为主线, 来探讨集成方案究竟应该包含哪些,需要哪些。 首...

weixin_33762321的博客 789

部署与可视化系统:移动端跟踪系统:YOLOv8 + ByteTrack 结合 Android CameraX 实现实时行人计数 App

本文详细介绍了在Android移动端实现实时行人检测、跟踪与计数系统的完整方案。系统采用YOLOv8+ByteTrack技术栈,基于NCNN推理引擎,无需云端算力即可在手机端侧完成全流程处理。文章从技术选型、系统架构、CameraX集成等多个维度进行深入解析,重点阐述了移动端部署面临的工程挑战和优化策略。通过四层管道模型设计,实现了从图像采集到目标跟踪的高效处理流程,并采用C++ NDK开发确保性能。该系统在中端手机上可达到10FPS,旗舰机型可达30FPS,为移动端实时目标跟踪提供了可落地的解决方案。

ZXSXJ的博客 92

浅谈H5前端页面的适配原理以及解决方案

H5前端页面适配主要基于响应式设计、视口设置、弹性布局与网格布局、字体大小和间距适配、图片和多媒体适配、交互与性能优化等关键点。通过相对单位、媒体查询、Flexbox和Grid布局等技术,确保网页能在不同尺寸和分辨率的移动设备上良好显示。

qingfengguixiaox的博客 1789

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

浅谈微前端

什么是微前端 简单来说就是系统要模块化,通过不同的模块组合构建我们的应用,不同的模块迁移成子应用,最终构建成整个大的应用项目。微前端适合一些巨石应用的项目。 官方一些来说就是 微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。一个完整应用划分成一个主应用和一个或多个微应用,应用间相互独立,可相互通信 微前端的核心目标是将巨石应用拆解成若干可以自治的松耦合微应用。 微前端是一种架构模式,用于构建可扩展的 Web 应用程序,该应用程序随着您的开发团队的发展而增长,

weixin_37989623的博客 620

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

浅谈一下微前端

总结来看,针对微前端,Single-SPA 和 Qiankun 是比较主流的解决方案并由阿里云的 Micro-App 给出了更方便的开发和组织方式。Ark(Alibaba Rax Kernel) Ark 是阿里巴巴前端团队推出的轻量级微前端框架,因其轻量级的特点,适合针对中小型前端应用进行微前端重构。相比 Single-SPA/Qiankun 这些硬性的框架,Piral 重点关注的是基础设施的通用层面,提供了大量的插件来扩展各种应用场景,并且支持多种前端框架。优点在于可以定制化扩展不同应用的共性实现。

吾生有涯0的博客 725

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

各个微前端框架的优劣浅谈

需要注意的是,每个项目的技术栈、需求以及团队能力都有所不同,因此选择微前端框架时需要根据实际情况进行权衡和选择。同时,随着前端技术的不断发展,新的微前端框架和解决方案也会不断涌现,开发者需要保持关注和学习。

IT深耕十余载,大道之简 2440

浅谈api工厂:前端Paas中台

这里,你一定要记住一个概念“专属域名”,在后面的章节中,有很多地方会使用到这个“专属域名“。因为api接口地址就与这个专属域名有关,默认生成的是32个字符,你可以修改为自己的较短,易记的个性化专属域名。以上是官方的原话,用我的理解来说,就是中台帮你写好了接口,包括客户端各种模块情况下需要对接的接口以及做后台管理需要对接的接口,都给你封装好并提供了完整的接口文档。注册后,你就可以用你注册的手机号登录后台了,以后你将可以通过该后台管理你的数据,当然你。一个只懂对接口的前端也能开发属于自己的项。...

qq_34761385的博客 6488

浅谈微前端之qiankun、icestark

什么是微前端?qiankun与icestark的区别

ivy_mm的博客 956

浅谈ChatGPT取代前端开发工程师

随着ChatGPT的版本迭代,编程能力日渐增强的它,取代广大"码农"并非不可能

coder__wang的博客 6311

浅谈前端跨平台框架

前端跨端实践是指在开发过程中,使用统一的代码库或框架来实现在不同平台上运行的应用程序。这种实践旨在减少重复开发和维护成本,并提高开发效率和用户体验。以下是一些前端跨端实践的方法和技术:响应式设计(Responsive Design):通过使用CSS媒体查询和弹性布局等技术,可以根据设备的屏幕大小和分辨率来自适应地调整页面布局和样式,从而在不同的终端上提供良好的用户体验。

BradenHan的专栏 1000

浅谈前端架构的工程化、模块化、组件化、规范化

转自: http://outofmemory.cn/html/front-end-project-component 架构的目的是什么?答案是提升质量和效率 一个项目组成分为 前端,服务端。传统的前端项目用三剑客 javascript html css 就传统的项目结构已经不能满足日益壮大的大型应用的需求了。现在前端的生态圈很繁荣,各种框架,组件的出现。让前端发展迅速,快速开发已经成为了...

ion_L的博客 918
上一篇: Espresso Logic发布“Live Browser”,提供即时HTML 5用户界面
下一篇: Visual Studio 2013 Update 2发布:支持Apache Cordova
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值