<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>工程实践 - Category - 帅说帅话</title><link>https://xiaoshuai1024.github.io/categories/%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5/</link><description>工程实践 - Category - 帅说帅话</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Tue, 17 Mar 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://xiaoshuai1024.github.io/categories/%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5/" rel="self" type="application/rss+xml"/><item><title>复杂前端组件库项目架构</title><link>https://xiaoshuai1024.github.io/posts/component-library-architecture/</link><pubDate>Tue, 17 Mar 2026 10:00:00 +0800</pubDate><author>Author</author><guid>https://xiaoshuai1024.github.io/posts/component-library-architecture/</guid><description><![CDATA[本文以 luban-ui 为例，介绍一套适合复杂前端组件库的项目架构，重点包括代码组织、工程化与便捷脚本，并详细说明技术栈选型与使用方式。适用于需要多包协作、严格类型与测试、且要对外发布 npm 的 Vue 3 组件库场景。
1. 概述与目标 定位：底层组件库（基础组件 + 低代码组件 + 设计器 + 运行时渲染），不包含业务应用。 目标：多包 Monorepo、统一构建/测试/发布、类型声明完整、单元测试与 E2E 覆盖、文档与 Demo 分离。 约束：组件风格遵循 Material Design，响应式设计；新增/修改组件必须补齐单元测试与 E2E，并通过根目录脚本可执行。 2. 技术栈详解 2.1 核心运行时与框架 技术 版本（参考） 用途 Vue ^3.5.x 组件开发、Composition API、&lt;script setup&gt; TypeScript ~5.9.x 类型安全、.d.ts 声明、严格模式 Vite ^6.x 开发服务器、库模式构建、测试运行器底座 Vue 3：单文件组件（.vue）用 template 编写，不使用 h() 为主实现；模板中组件调用统一 kebab-case（如 &lt;luban-form&gt;）。 TypeScript：tsconfig.base.json 统一 strict: true、module: &quot;esnext&quot;、moduleResolution: &quot;bundler&quot;；各包通过 tsconfig.lib.json 做声明产出（emitDeclarationOnly）。 Vite：每个 package 独立 vite.config.mts，库模式 build.lib.entry 指向 src/index.ts，rollupOptions.external 排除 vue、luban-base 等，由使用方或 workspace 提供。 2.]]></description></item><item><title>从零搭建企业级低代码平台全栈开发指南</title><link>https://xiaoshuai1024.github.io/posts/enterprise-lowcode-fullstack-guide/</link><pubDate>Tue, 17 Mar 2026 09:00:00 +0800</pubDate><author>Author</author><guid>https://xiaoshuai1024.github.io/posts/enterprise-lowcode-fullstack-guide/</guid><description>本文以「鲁班低代码平台」为例，给出一套可落地的企业级低代码平台全栈架构与实现路线：从组件库、设计器与运行时渲染（Render），到接入层 BFF，再到主后端 luban-backend（Java：Spring Boot + MyBatis + Redis + MySQL），最后覆盖管理后台与对外站点的交付形态。
文章目标不是“把所有代码一次写完”，而是帮你用清晰的边界把系统搭起来，并能在后续迭代中持续演进。
1. 系统全貌：六库分工，边界固定 鲁班平台由多个独立仓库组成（强烈建议保持拆分），各自职责如下：
luban-ui：底层组件库（基础组件 + 低代码组件 + 设计器 + Render 运行时）。不包含管理后台应用。 luban-backend（主后端）：Java 实现（Spring Boot + MyBatis + Redis + MySQL）。提供站点、页面、用户、系统设置等原子化接口；平台 API 权威文档在本仓库维护（luban-backend/docs/API.md）。 luban-backend-go：与主后端同契约的 Go 实现，可作为参考或备用运行时。 luban-bff：Node 接入层（API Gateway）。对前端提供统一接口，对内通过 BACKEND_BASE_URL 调用 luban-backend；负责认证上下文注入（Header）与必要的协议/聚合适配。 luban：系统管理后台。负责站点接入、页面创建与管理、发布等运营能力。 luban-website：对外站点（Nuxt 3 SSR）。根据 URL 从 BFF 拉取已发布页面 schema，交给 Render 运行时渲染。 整体调用关系可以理解为：
这套拆分的核心收益是：后端契约稳定、接入层可控、前端（管理后台/对外站点）都只关心“拿到 schema 并渲染”。
2. 数据模型：站点 / 页面 / 用户 / 系统设置 后端以四类领域模型为主（详见 luban-backend/docs/API.md）：
Site（站点）：id / name / slug / baseUrl / status / createdAt / updatedAt Page（页面）：id / siteId / name / path / status(draft|published) / schema(JSON) / createdAt / updatedAt User（用户）：id / username / name / role(admin|user) / status(active|disabled) / password(bcrypt) / createdAt / updatedAt SystemSettings（系统设置）：单行 JSON，承载系统级配置（站点名称、Logo、安全策略等） 关键约束：</description></item></channel></rss>