百度SEO

百度SEO

Products

当前位置:首页 > 百度SEO >

行云前端重构,从单体到Monorepo,你走过这样的路吗?

96SEO 2026-04-25 06:50 0


话说天下大势,合久必分,分久必合。这句老话放在前端工程演进的漫长历史里竟然也是出奇的贴切。回望行云2.0那个时期,原本普普通通的一个业务项目,就像是一颗被施了魔法的种子,短短两三个月的功夫,就疯狂生长成了一个容纳了百十来个子应用的庞大“生态系统”。这些子应用来自五湖四海,各自施展浑身解数,为JDer们提供着琳琅满目的产品功Neng。

行云前端重构,从单体到Monorepo,你走过这样的路吗?

不过不管您用没用过这些出色的产品工具们,咱今天dou不打算讨论子应用们,而是转回头审视行云前端工程Zui初的架构模样,着实还是有些惨不忍睹的。对于一个服务着上万JDer研发的业务而言,产品迭代如同奔腾不息的河流,不Neng有片刻停滞。业务在飞跑,我们如何停下来好好思考呢?Ke以的,不要停,一边跑一边搞。

至暗时刻:单体架构的“七宗罪”

为什么说是血泪史呢?这绝非危言耸听。彼时的行云前端,背负着十多万行代码的沉重包袱,想要在短时间内完成治理几乎Ke以说是天方夜谭。哪怕是在我们确定了改造方向并且开始实施到中途时dou无数次的怀疑过自己,怀疑过是否决策正确,无数次的质疑过这样的努力是否真的是有价值的,痛苦的日子真的想过还是放弃算了。是的,真的hen难。

1. 代码结构混沌:剪不断理还乱

这个单体应用身兼数职,既承担平台基础功Neng搭建,又涉足协作域业务开发,甚至还包含一些并非严格意义上子应用,却拥有顶级路由的特殊页面如开放平台、开发者后台、应用商店等。不同业务逻辑在同一代码库中交织缠绕,业务之间耦合度极高。任何一处业务逻辑的修改,dou可Neng像推倒多米诺骨牌一样,引发一系列难以预估的问题,极大增加了代码维护与 的难度。

虽然我们也曾尝试用/modules目录来区分不同的业务领域,但现实hen骨感,文件夹之间的组件引用关系简直是一团乱麻。举个真实的例子,在A业务模块开发过程中,开发人员可Neng为了图省事,直接引用了B业务模块里的某个组件,完全没把业务分层当回事。结果呢?一旦B模块有了变动,A模块跟着遭殃,这种依赖关系就像一团乱麻,根本理不清。

2. 构建效率低下:漫长的等待

协作域作为业务迭代的“主战场”,geng新频率极高,两三周可Neng就要发好几次版。但当时我们用的全量构建方式,简直是灾难。每次发版,不仅协作域的代码要geng新,连带着平台业务也会被强行geng新。那时候Zui怕听到的就是一句:“行云,又双叒叕白屏了……”

整个工程所有业务均统一采用Vue CLI进行构建。Vue CLI虽具有上手容易、配置简单等优点,但随着业务规模的不断扩大和复杂度的提升,启动慢、构建慢的问题愈发明显。构建过程中也会有不必要地编译和打包一些无需geng新的代码,延长了构建时间,降低了开发效率。动辄八分钟的构建时间,足以让开发者的耐心磨灭殆尽。

3. 静态资源臃肿:无法承受之重

平台积累了大量臃肿的静态资源,尽管我们Zuo了代码分割,Neng够Zuo到非必要业务不加载,但作为支撑Vue子应用的平台,必要的公共依赖无法轻易翦除。而且平台自身的架构也对这些公共设施有依赖需求,导致静态资源占用空间始终居高不下严重影响应用的加载性Neng。

4. 商业化交付的噩梦

当行云迈向商业化进程,业务切割不清的问题愈发棘手。客户需求千差万别,比如有的客户只想买代码库,不要协作域,只要工作台,还得配开放平台和帮助中心。面对这种需求,因为代码结构缺乏清晰的业务边界,我们只Neng通过大量的手动删改代码来满足。这一过程不仅耗时费力,而且极易因人为失误引入新的问题,OMG…只Neng一把鼻涕一把泪地删删改改日日到天明。

破局契机:内外同源与绞杀者模式

我们幸运地迎来了一个完美的契机。当计划开展新业务时面临着诸多挑战。一方面要保证新业务与现有业务在UI风格、交互方式以及与后端API交流方式等方面保持一致;另一方面要确保新业务的加入不会增加现有业务的构建时间,且不会引入geng复杂的依赖关系。简单来说就是要实现工程的易 性,同时满足开闭原则,这对工程架构提出了极高的要求。

为什么叫绞杀计划呢?这个idea源于老司机一次聊天时提到的“绞杀者模式”。概括来说就是:绞杀者模式是一种软件设计模式,用于逐步替换现有的大型系统或应用,通过新系统逐渐接管旧系统的功Neng,Zui终完全取代旧系统,而无需一次性完成整个系统的重写。这种方式Ke以减少风险,确保平稳过渡。

这在当时一筹莫展、选择艰难的我kan来仿佛醍醐灌顶一般kan到了曙光。于是故事就从这里开始了。

重构之路:Monorepo架构的落地

改造后的工程采用 monorepo框架,借助 Nx 与 pnpm 管理,遵循模块化、微前端等原则,明确 apps/ 应用模块与 packages/ 共享模块职责。在开发体验优化上,部分项目迁移至 Vite,利用缓存提升效率;云端构建通过代码分割、缓存优化等提高构建速度与资源利用率,整体具备良好 性,为业务发展提供geng坚实的架构支撑。

1. 目录结构的重新定义

在新的工程结构中,主要包含以下部分,我们彻底告别了过去的混乱:

• apps/: 包含多个独立的应用

这里不再是所有代码的大杂烩,而是各个独立应用的家园:

platform: 独立的平台应用,用于加载其他子应用,提供统一平台入口。作为基于Vue搭建的平台,不仅Neng够跨技术栈加载非Vue技术栈的应用,对于vue技术栈的应用还无私地奉献出了全局共享的Vue实例、router、vuex等等,同时连带全局组件库以及axios实例的分发,为依赖Vue技术栈的子应用提供全方位的支持,尽心哺育着有全局依赖需要的子子孙孙们。

admin: 负责系统配置、用户管理等后台管理功Neng。

jacp: 核心业务应用,实现主要的协作域业务逻辑。

open: 负责行云开放平台及应用商店、开发者后台、文档管理等业务功Neng。

ai-assistant: 提供调用AI-Chat的用户交互界面在平台中使用iframe加载其页面。

• packages/: 包含可复用的模块和库

共享模块提供了Ke以在多个应用中复用的功Neng和组件:

common: 为共享vue实例的子应用导入并配置了必要的依赖,提供了一个共享的环境和资源。

common-service: 封装通用的后端服务调用和数据处理逻辑。

utils: 提供各种通用的工具函数。

components: 可复用的UI组件。

tailwind-config: 集中管理Tailwind CSS配置,确保样式的一致性。

xingyun-elements: 存放web-component组件。

2. 技术栈的升级与统一

在这次改造中,我们对技术栈也进行了大刀阔斧的调整:

◦ 构建方案和工具的选用:业务工程使用vue-cli/vite;基建pkg使用vite/tsup

部分项目迁移到Vite,利用其快速的开发服务器和构建Neng力。利用缓存提高启动速度,减少资源消耗,以提高开发效率。Webpack构建的应用则使用硬件缓存。

◦ 移除Windi CSS,全工程迁移到Tailwind CSS

行云前端hen早就实践了原子样式,在摸索阶段,由于缺乏统一的使用规范,不同同学采用不同的使用姿势。例如对于同样的样式效果,有人用w-24px,有人用w-24。同时有些开发者在组件中既采用BEM命名风格设置样式,又在各个class里使用@apply引入原子样式,这种Zuo法既无法享受原子样式无需费劲命名class的优势,又不Neng有效重用class以减少构建体积,还浪费了构建时的资源。直到有一天我们发现,windicss停止维护了。。。这是上天给我们悔过的机会啊,是时候把乱象丛生的杂草整顿干净了。我们集中管理Tailwind CSS配置,确保样式的一致性。

◦ 工具引入:pnpm workspace, nx

Monorepo管理工具:pnpm workspace + Nx 。通过Nx的依赖图分析,我们实现了增量构建,只构建产生变化的部分,大大提高了开发效率。

关键策略:模块切割与构建瘦身

基于以上目标,我们制定了以下具体的改造路线:

1. 模块切割:分家过日子

把平台和业务代码分家,公共依赖和业务应用实现分离。业务模块分离:划分几个相对独立的,有自己的路由、状态管理的子应用,均可独立开发运行和发布,放在apps/下。每个应用模块dou是相对独立的,有自己的路由、状态管理和UI组件,均可独立开发运行和发布。它们Ke以共享packages中的代码。

2. 构建瘦身:拒绝全量构建

避免全量构建了发布哪个应用就只构建这个应用相关的依赖,平台别再背锅白屏了。Monorepo的结构:应用独立化后可按需构建,提高单个应用构建速度和资源利用率。构建配置添加并行处理以提高构建速度。减少低频变化包的构建。

3. 代码断舍离:清理历史包袱

在数年的开发过程中,虽然沉淀了不少全局复用的组件,但随着业务迭代,部分组件Yi被废弃,或者虽在UI层面不再使用,但仍在一些边角业务中少量存在。这些废弃组件依旧躺在代码库的components目录里白白占据代码体积,增加了代码维护的复杂性。我们痛下决心,废弃组件、冗余代码,统统清理掉。

成果与反思

这次改造,我们实现了模块化、微前端、组件驱动开发和主题定制等架构设计原则,使得行云前端小工程geng加轻量化、可 性和易于维护。

性与可维护性升级:采用分层架构,保持良好的独立性和可 性。模块化开发原则:构建高内聚低耦合的独立模块,确保单一职责、清晰接口和可复用性,以提升代码的可维护性、可测试性和可 性。组件驱动开发: 关注于创建和完善单个组件,然后将这些组件组合成geng复杂的结构,Zui终形成完整的用户界面。主题定制:使用Tailwind CSS实现灵活的样式定制。

新旧平台Lighthouse同一应用跑分对比,性Neng提升显著。通过利用Webpack的文件级缓存和Nx的缓存和增量构建功Neng提高构建速度。在行云部署缓存实现:行云部署的缓存基于构建镜像存储,通过将源码拷贝到缓存目录下Ke以显著提高缓存读取效率。

但是现在回想起来只要我们在Zuo正确的事情,那就是值得的。写这篇文章是为了分享我们的经验和教训,希望Neng帮助其他人在面对类似问题时有所启发。同时这也是一次自我反思和的过程,帮助我们geng好地理解和改进我们的工作流程和技术选择。

延伸阅读

Ru果你想了解geng多细节,Ke以移步以下文章:

详情请移步:行云前端重构之路-Monorepo实践篇

详情请移步:Tailwind CSS 在 Monorepo 中的实践

使用JModule快速实现宿主平台:解锁微前端平台开发

Shadcn UI + React Hook Form + Zod 在行云工程中的实践:Headless UI真香~

Monorepo 在商业化产品交付中的痛点与改进方向思考:平衡的艺术之美

既要让行云前端轻装上阵,又要让它跑得geng快、geng稳、geng优雅!这条路虽然充满荆棘,但风景独好。你走过这样的路吗?


标签: 血泪史

SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback