ZStack文档DevOps平台建设实践
(一)前言
对于软件产品而言,文档是不可或缺的一环。文档能帮助用户快速了解并使用软件,包括不限于特性概览、用户手册、API手册、安装部署以及场景实践教程等。由于软件与文档紧密耦合,面对业务的瞬息万变以及软件的飞速迭代,如何敏捷高效开发文档,是摆在每个软件公司面前必须攻克的难题。
本文从ZStack文档实践出发,围绕结构化文档开发、结合实际业务的文档版本管理策略、文档DevOps平台设计思路、实际建设难题与攻克等要点,向大家全面深入介绍ZStack文档DevOps平台建设的成功实践。
(二)结构化文档开发是前提
在软件开发领域,“Docs as Code”的文档开发理念已深入人心。该理念的核心思想是将文档作为代码的一种形式,将其纳入到软件开发生命周期中。传统的非结构化写作缺乏模块化和标准化机制,很难满足“Docs as Code”高效编写发布文档的要求。在此背景下,结构化写作应运而生,成为解决以上问题的有效方案。
结构化写作十分重视信息架构设计。DITA作为结构化写作的国际标准之一,已在业内广泛使用。DITA(Darwin Information Typing Architecture)最初由IBM公司开发,并在2005年被开放标准组织OASIS收录为开放标准。作为基于XML的体系结构,DITA通过内容与形式分离、内容重用、过滤与定制等机制,充分实现文档开发的灵活性和标准性。
图1. DITA的特点
1.内容与形式分离
DITA按模块组织文本内容,支持DITAMAP、TOPIC、LABEL等不同层级的模块化。
- DITAMAP:DITAMAP是一本文档的框架,定义文档中包含哪些TOPIC以及TOPIC的组织形式。
- TOPIC:TOPIC是一个完整的主题或章节。DITA提供了适用于不同场景的多种TOPIC类型,例如:Concept、Task、Troubleshooting、Reference,并通过DTD规定这些TOPIC的基本架构(即规定TOPIC必须或只能包含哪些LABEL),从而保证同类型主题/章节的规范性和风格一致性。
- LABEL:LABEL是TOPIC中的标记对,通常是组成一个TOPIC的各种元素,包括段落、句子、短语、表格、列表、图片等。
在文档开发阶段,开发者按照规范,逐级组织DITAMAP和TOPIC架构,并在LABEL层级进行内容编写。这样,既保证了开发者始终在框架规范内进行创作,也使得最终输出的文档层次分明。
图2. TOPIC DTD
2.内容重用
DITA支持以模块为单位进行不同粒度的内容重用。DITAMAP、TOPIC、LABEL均适用重用机制。
- DITAMAP重用:将一个DITAMAP A嵌套到另一个DITAMAP B。这样,DITAMAP B可以重用DITAMAP A的全部内容。
- TOPIC重用:一个TOPIC可以拖动到多个DITAMAP中。这样,多本文档可以重用相同的章节内容。
- LABEL:一个LABLE可以引用到多个TOPIC中。这样,多个章节可以重用相同的句子、表格或图片。
在文档迭代过程中,重用机制既减少了重复劳动也保证了文档内容一致性。一旦重用来源被修改,所有引用均会被更新。在ZStack技术文档中,产品名称、产品版本、术语等均以重用的形式出现在各个文档、各个章节。一旦发生变动,这些被广泛使用的内容可“牵一发而动全身”。
图3. TOPIC重用
3.过滤与定制
在文档发布阶段,配置文件DITAVAL和DITA-OT决定了输出文档的内容和样式。通过调整DITAVAL和DITA-OT,基于同一本DITAMAP可以发布不同内容、不同格式、不同风格的文档,面对多样化的业务需求和发布渠道可实现灵活定制。
- DITAVAL:DITAVAL用于对文档内容进行条件过滤。开发者可以在DITAVAL中定义某个标签在输出文档中被剔除/包含,并给需要过滤的TOPIC、LABEL标记对应的标签。在文档输出过程中,DITAVAL自动识别标签,使对应的内容最终被呈现/隐藏,实现不同业务场景下的文档内容定制。
- DITA-OT:DITA-OT用于定义文档发布样式,包括文档格式、封面、字体、字号、颜色、页眉、页脚等。灵活配置DITA-OT,可使文档输出为多种格式(PDF、HTML等)以配合不同的发布渠道,或改变文档样式风格,实现多样化定制需求。
ZStack基于DITA构建了庞大的结构化文档库,总文字规模超过千万级。由于高度模块化和标准化,为实现文档DevOps奠定了坚实基础。
图4. 结构化文档库
(三)结合实际业务的文档版本管理策略
ZStack文档库采用GIT仓库托管,通过GIT机制实现文档版本控制。
在软件开发领域,GIT是一种被广泛使用的分布式版本控制系统。开发者在本地完成工作,通过Commit、Push操作提交至远端,并通过Pull操作获取远端更新。GIT提供强大的分支管理功能,开发者可依据业务需要,灵活创建独立分支,每个分支专注于特定任务,互不冲突。必要时,可通过分支合并实现内容汇总。
以ZStack Cloud技术文档开发为例,在新版本开发之初,开发者基于稳定的主分支(Master Branch)开出多个特性分支(Feature Branch),并在特性分支进行独立开发,各特性分支稳定后全部并入主分支。期间,可按需开出Bugfix分支修复问题,还可灵活响应定制项目插队,随时开出定制分支(Customized Branch)进行定制开发。最终,基于主分支评估开出合适的发布分支(Release Branch),用于最终发布。
图5. ZStack Cloud文档分支管理
由上可见,ZStack文档库具备与代码库紧耦合的开发管理能力,同时也为实现文档DevOps奠定了又一个坚实基础。
(四)ZStack文档DevOps平台整体设计思路
由于ZStack文档库已实现结构化和版本控制,因此实现文档CI/CD,建设一体化文档DevOps管理平台顺理成章照进现实。
在软件开发领域,CI/CD是一种通过自动化流程实现代码持续集成、测试和部署的软件开发实践,旨在快速、可靠地交付高质量应用。文档CI/CD则是通过自动化流程对结构化文档库进行批量构建、存储、回传,从而实现文档的快速、可靠、高质量、一体化交付。
ZStack文档DevOps平台基于微服务架构设计,依托ZStack Cloud云平台与Kubernetes(K8s)实现服务的容器化部署与动态编排,并通过微服务间的协同调度,完成从任务发起到构建、存储、回传的全流程自动化闭环。
图6. 整体设计框架
1.安全机制
- 内外网反向代理
将内网Flask代理服务器端口映射到外部端口上,以供轻流访问。实现网络隔离,确保内部服务仅通过API暴露,外部请求需经反向代理验证。
2.API层
- Flask代理服务器
负责初步处理请求、对请求的参数做初步解析、触发CI/CD构建任务、获取构建记录。
- 可视化编译管理界面
文档发布者可在该界面维护文档映射,按需触发CI/CD构建任务。
3.基础设施层
- DevOps集群
内部生产环境管理平台,用于集成CI/CD流水线。
- Jenkins K8s集群
负责以任务为单位,执行文档构建。
- 数据库
保存任务的执行参数,执行记录以及相关Metadata。
4.任务执行层
- 请求参数处理
请求参数标准化:将轻流传入参数做统一处理和检查,对不合规参数进行修改或过滤,对合规参数做预处理,以供后 续操作使用。
- 工作区分配
文档代码隔离:通过工作区(Workspace),管控代码分支,同时实现代码隔离。
- 文档参数处理
DITA参数修改:针对不用的文档构建需求,动态修改相关DITAVAL/DITA-OT文件参数。
- 文档构建
日志整理及输出:根据DITA-OT构建文档时输出的日志,判断构建是否成功。同时结合构建参数和相关DITAVAL/DITA-OT文件,标准化、结构化输出日志。最后对任务的所有日志进行汇总、可视化输出。
文档交付件构建:通过DITA-OT构建文档,将最终交付件输出到MINIO对象存储上。
(五)ZStack文档DevOps平台实际建设难题与攻克
1.批量构建的配置冲突
为确保文档构建效率及规范化,对文档构建申请以任务为单位。一个构建任务支持批量构建多本文档,这也就不可避免会出现多本文档使用同一个DITAVAL/DITA-OT文件,且对文件内参数需求不同。
引入工作区(Workspace)的概念,从文档交付件维度,将不存在配置冲突的文档构建请求放在同一工作区内,同一工作区内使用同一套DITAVAL/DITA-OT文件。在构建文档时,按序构建每一个工作区的文档。
2.配置文件的动态维护
DITAVAL/DITA-OT文件内相关参数由实际业务决定(如产品线名称、文档厂牌等),随着业务变化,参数内容必须是动态变化、易于维护的。平台采用一个独立配置文件集中维护相关参数,这样一来,当业务变化触发参数变化时,能尽可能减少对CI/CD代码的修改。
此外,平台将DITA-OT文件放在一个特殊分支上维护,当构建文档需调用时,只需对工作区内的DITA-OT文件进行替换。同样地,当业务变化触发参数变化时,能尽可能减少对现行分支代码的影响。
3.文档构建的日志分析
一次文档构建任务可能生成大量不同文档,若整体任务失败,或任务中某些文档出现问题,文档工程师面对庞大的文档日志,分析定位问题十分不便。
平台对日志文件进行总结、可视化输出。当文档构建任务完成后,自动将所有日志进行总结,统计所有日志的编译输出,将使用同一套DITAVAL/DITA-OT文件的文档构建进行整合记录,最后输出汇总、可视化的日志报告。
(六)ZStack文档DevOps平台价值
1.统一管理、直观便捷
ZStack文档DevOps平台为文档编译发布提供统一的可视化管理界面,文档发布者可一站式维护文档映射、创建编译任务,跟进编译进程及结果。对于构建失败的任务,可直接查看可视化日志,快速定位问题。
图7. 集中管理文档映射
图8. 集中管理编译任务
图9. 可视化日志
2.性能强劲、提效显著
平台运行在DevOps集群环境上,提供强大的计算支持和灵活的资源调配,大幅缩短文档编译时间,面对大规模批量编译任务,优势尤为明显。以ZStack Cloud全量文档发布为例,相较于本地编译,平台编译耗时缩短50%以上。
此外,针对定制化文档场景,平台直接对接轻流业务接口,业务人员提交定制需求后,系统全程自动完成定制开发、编译和交付,人工仅需关注构建失败的任务,分析失败原因并解决。
(七)结束语
工作流程优化是提升企业效率的重要一环。ZStack文档一直致力于敏捷高效的文档开发管理探索与实践。在科技迅猛发展的今天,如何拥抱新技术,创新构建最适合自身业务的工具链,并策略性运用到工作实践中,提升生产力和效率,是现代企业工作者的重要挑战。我们一起共勉。(联合作者:潘玲、程楚乔、王帧颐)
相关文章:
ZStack文档DevOps平台建设实践
(一)前言 对于软件产品而言,文档是不可或缺的一环。文档能帮助用户快速了解并使用软件,包括不限于特性概览、用户手册、API手册、安装部署以及场景实践教程等。由于软件与文档紧密耦合,面对业务的瞬息万变以及软件的飞…...
网络规划设计之广域网结构设计,6种架构模式对比
在数字化转型的浪潮中,网络基础设施的设计理念正在发生深刻变革。传统的基于点线拓扑的研究方法已无法满足现代复杂网络的需求,取而代之的是更具系统性的网络结构设计理念。本文将深入解析网络结构的定义特征,并重点剖析六种主流广域网架构的…...
FortiAI 重塑Fortinet Security Fabric全面智能化进阶
专注推动网络与安全融合的全球性综合网络安全解决方案供应商 Fortinet(NASDAQ:FTNT),近日宣布,旗下 Fortinet Security Fabric 安全平台成功嵌入了 FortiAI 关键创新功能。这一举措将有效增强用户对各类新兴威胁的防护…...
uniapp h5接入地图选点组件
uniapp h5接入地图选点组件 1、申请腾讯地图key2、代码接入2.1入口页面 (pages/map/map)templatescript 2.2选点页面(pages/map/mapselect/mapselect)templatescript 该内容只针对uniapp 打包h5接入地图选点组件做详细说明&#x…...
Openfein实现远程调用的方法(实操)
文章目录 环境准备一、URL中接收参数二、接收一个参数三、接收多个参数四、传递对象五、传递JSON格式数据 环境准备 下面的配置,服务调用方加入即可。 依赖导入: <!-- openfeign依赖--><dependency><groupId>org.springframe…...
Matter如何终结智能家居生态割据,重构你的居住体验?
现阶段,Zigbee、Z-Wave、Thread、Wi-Fi与蓝牙等多种通信协议在智能家居行业中已得到广泛应用,但协议间互不兼容的通信问题仍在凸显。由于各协议自成体系、彼此割据,智能家居市场被迫催生出大量桥接器、集线器及兼容性软件以在不同生态的设备间…...
Thin-Agent服务(TAS)概述
### **Thin-Agent服务(TAS)概述** **Thin-Agent服务(TAS)** 是一种轻量级监控服务,通过 **BMC/IPMI**(基板管理控制器/智能平台管理接口)收集**硬件和操作系统特定数据**,为系统管…...
2025.4.17学习日记 初识JavaScript 以及Java和JavaScript有什么区别
Java 和 JavaScript 虽然名字相似,但实际上是两种不同的编程语言。 1. 语言背景和设计目的 Java:由 Sun Microsystems(现被 Oracle 收购)在 1995 年推出。设计初衷是为了实现 “一次编写,到处运行(Write O…...
python学习—合并多个word文档
系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停,游戏抽签抽奖 python学习—循环语句-控制流 python学习—合并多个Excel工作簿表格文件 pytho…...
01、单片机简介
单片机简介 1、什么是单片机2、STM32F103ZET6介绍2.1、参数的含义2.2、存储器映射 3、外设寄存器介绍 1、什么是单片机 单片机(Single-Chip Microcomputer)是一种微型计算机,是一种集成电路芯片。把具有数据处理能力的中央处理器CPU、随机存储器RAM、闪存flash、多…...
常用UI设计工具及平台概览
在当今快速发展的数字世界中,UI设计平台成为设计师和开发者创建用户界面不可或缺的利器。这些平台不仅支持从简单原型到复杂交互设计的各种需求,而且许多还提供将设计直接转换为代码的功能,极大地提高了开发效率。下面将为您介绍几个主流的UI设计工具及其特点,帮助您根据项…...
考研单词笔记 2025.04.17
associate v联系,联想n同事,伙伴,朋友a副的,准的,非正式的 association n联系,联想,协会,社团,关系,交往 associative a联想的 bond n纽带,联系…...
MySQL常用SQL语句的示例
概述 MySQL 常用 SQL 语句的示例,涵盖数据定义、操作、查询等常见场景 一、数据库操作 创建数据库 CREATE DATABASE mydb;选择数据库 USE mydb;删除数据库 DROP DATABASE mydb;二、表操作 创建表 CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VAR…...
java 多线程之Worker Thread模式(Thread Pool模式)
Worker Thread模式 Worker的意思是工作的人,在Worker Thread模式中,工人线程Worker thread会逐个取回工作并进行处理,当所有工作全部完成后,工人线程会等待新的工作到来。 Worker Thread模式也被成为Background Threadÿ…...
4月17日星期四今日早报简报微语报早读
4月17日星期四,农历三月二十,早报#微语早读。 1、国家统计局:一季度国内生产总值同比增长5.4%; 2、我国博士后已超40万人,2024年招收人数再创新高; 3、神舟二十号计划近日择机实施发射,船箭组…...
【最新版】芸众商城独立版源码 425+插件 全新后台框架
一.系统介绍 芸众商城系统最新版 已经更新425全插件版,一套系统支持各种新零售、商城、模式,天天美丽链动商城。不要相信那些外面的旧版本。旧版本等于是废品,无法小程序运营的,框架还是旧的! 芸众系统最新版 服务器可…...
android liveData observeForever 与 observe对比
LiveData 是一个非常有用的组件,用于在数据变化时通知观察者。LiveData 提供了两种主要的观察方法:observe 和 observeForever。这两种方法在使用场景、生命周期感知以及内存管理等方面有所不同。 一、observe 方法 1. 基本介绍 生命周期感知:observe…...
定制化 Docsify 文档框架实战分享
🌟 定制化 Docsify 文档框架实战分享 在构建前端文档平台时,我们希望拥有更友好的用户界面、便捷的搜索、清晰的目录导航以及实用的代码复制功能。借助 Docsify,我实现了以下几个方面的定制优化,分享给大家 🙌。 &…...
蓝桥杯题目:二维前缀和
首先分析一下二维数组的差分。s[x2][y2]-s[x1][y1]s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]s[x1-1][y1-1] 因为对于二维数组x2y2-x1y1范围内的值需要通过x2y2减去从x1,y2-1的这段存储的前缀和以及减去x2-1,y1这两部分的前缀和,但是还有一个x1-1&a…...
数字孪生城市技术应用典型实践案例汇编(22个典型案例)(附下载)
近年来,数字孪生技术在我国从战略框架逐步向系统性落地推进,成为推动数字中国建设的重要技术引擎。随着《数字中国建设整体布局规划》《"十四五"数字经济发展规划》《深化智慧城市发展推进城市全域数字化转型的指导意见》等政策的实施…...
Linux——信号(1)信号的产生
我们在讲进程的多种状态时提到过,一个进程的退出有三种情况:正常退出,结果出错退出(代码也执行完了),异常终止退出(代码未执行完),其中最后一种退出相当于进程在运行时&a…...
【模型常见评价指标(分类)】
目录 常见指标 其他的评估指标 3.1 BLEU 3.2 ROUGE 3.3 困惑度PPL(perplexity) 常见指标 其他的评估指标 3.1 BLEU BLEU(Bilingual Evaluation Understudy,双语评估替补)分数是评估一种语言翻译成另一种语言的文本质量的指标。它将“质…...
个人博客系统后端 - 用户信息管理功能实现指南(上)
本文记录了如何实现用获取户信息,用户信息更新,用户头像上传三大基础功能 先上接口实现截图: 一、项目结构概览 先介绍一下 个人博客系统采用了标准的 Spring Boot 项目结构,用户功能相关的文件主要分布在以下几个目录:…...
CyberAgentAILab 开源数字人项目TANGO,heygen的开源版来了~
简介 TANGO 是 CyberAgentAILab 开源的一项前沿研究成果,其初衷在于探索高效生成模型在实际应用场景中的表现。项目诞生于 CyberAgent 在整合创意与人工智能的实践中,旨在为数字内容生成、交互和实时渲染等领域提供一个高性能、模块化、可扩展的解决方案…...
高等数学同步测试卷 同济7版 试卷部分 上 做题记录 上册期中同步测试卷 A 卷
上册期中同步测试卷A卷 一、单项选择题(本大题共5小题,每小题3分,总计15 分) 1. 2. 3. 4. 5. 二、填空题(本大题共5小题,每小题3分,总计15分) 6. 7. 8. 9. 10. 三、求解下列各题(本大题共5小题,每小题6分,总计30分) 11. …...
4.16 AT好题选做
文章目录 前言[ARC103D] Distance Sums(确定树的形态,trick)[AGC062B] Split and Insert(区间 d p dp dp)[AGC012E] Camel and Oases(状压,可行性dp转最优性dp)[ARC094D] Normalization(trick,转化)[ARC125F] Tree Degree Subset Sum(结论,a…...
数据库-day06
一、实验名称和性质 分类查询 验证 综合 设计 二、实验目的 1.掌握数据查询的Group by ; 2. 掌握聚集函数的使用方法。 三、实验的软硬件环境要求 硬件环境要求: PC机(单机) 使用的软件名称、版本号以及模块: …...
基于Flask的漏洞挖掘知识库系统设计与实现
基于Flask的漏洞挖掘知识库系统设计与实现 一、系统架构设计 1.1 整体架构 本系统采用经典的三层Web架构,通过Mermaid图展示的组件交互流程清晰呈现了以下核心模块: 前端展示层:基于Bootstrap5构建响应式界面业务逻辑层:Flask…...
小白从0学习网站搭建的关键事项和避坑指南
以下是针对小白从零学习网站搭建时需要注意的关键事项和避坑指南,帮助你高效学习、少走弯路: 一、学习路径注意事项 不要跳过基础 误区:直接学习框架(如 React、Laravel)而忽视 HTML/CSS/JS 基础。 正确做法ÿ…...
OpenAI 推出一对 AI 推理模型 o3 和 o4-mini
OpenAI 于 2025 年 4 月 16 日(美国东部时间)宣布推出两款全新的 AI 推理模型——o3 与 o4-mini,它们能够在给出最终回答前进行思考与推理。 本文中所有的 ChatGPT 服务,由 ChatShare 镜像站 提供,无需担心网络和地区限…...
知识了解03——怎么解决使用npm包下载慢的问题?
1、为什么使用npm下载包会下载的慢 因为使用npm下载包时,默认使用国外服务器进行下载,此时的网络传输需要经过漫长的海底电缆,因此下载速度会变慢 2、怎么解决?(切换镜像源) (1)方…...
【网络】IP层的重要知识
目录 1.IP层的作用 2.主机和节点 3.网络层和数据链路层的关系 4.路由控制 4.1.路由控制的过程 4.2. IP地址与路由控制 4.3.路由控制表的聚合 4.4.静态路由和动态路由 4.5.动态路由的基础 5.数据链路的抽象化 5.1.数据链路不同,MTU则相异 5.2.路径MTU发…...
【随身WIFI】随身WiFi Debian系统优化教程
0.操作前必看 本教程基于Debian系统进行优化,有些操作对随身WiFi来说可能会带来负优化,根据需要选择。 所有操作需要在root用户环境下运行,否则都要加sudo 随身wifi Debian系统,可以去某安的随声WiFi模块自行搜索刷机 点赞&am…...
IPCC指南主要变化(各版本)
1996年IPCC国家温室气体清单指南 背景:是IPCC较早发布的指南之一,为国家温室气体清单编制提供了基础方法。 内容:包括了对温室气体排放源和汇的估算方法,涵盖了能源、工业、农业等多个部门。 2006年IPCC国家温室气体清单指南 背…...
关于Diamond机械手的运动学与动力学的推导
1.关于Diamond机械手 (1)位置模型推导 逆解:机械末端平台的位置与驱动关节之间的关系。 设p点在xy平面的坐标是(x,y)T,此时根据向量求解 OP等于向量r等于e向xy轴的向量主动臂长度向xy轴的向量…...
@JsonSerialize注解自定义序列化方式
JsonSerialize注解自定义序列化方式 文章目录 JsonSerialize注解自定义序列化方式**前言****创建自定义序列化器****应用自定义序列化器****测试序列化结果****高级用法:全局注册序列化器****关键点解析****常见问题解决****问题1:序列化结果不符合预期*…...
第二篇:linux之Xshell使用及相关linux操作
第二篇:linux之Xshell使用及相关linux操作 文章目录 第二篇:linux之Xshell使用及相关linux操作一、Xshell使用1、Xshell安装2、Xshell使用 二、Bash Shell介绍与使用1、什么是Bash Shell(壳)?2、Bash Shell能干什么?3、平时如何使…...
qt中关于思源雅黑字体的使用
首先,需要下载一份思源雅黑字体,我放在了下面位置,https://download.csdn.net/download/Littlehero_121/90631851 2、关于qt中的使用操作,如下: //QString path "绝对路径";QString path QCoreApplicatio…...
用 MongoIndexStore 实现对话存档和恢复 实现“多用户、多对话线程”场景(像一个 ChatGPT 对话列表那样)
用LlamaIndex写两个完整实用的案例! 实现如何用 MongoIndexStore 实现对话存档和恢复实现“多用户、多对话线程”场景(像一个 ChatGPT 对话列表那样) ✅ 案例一:使用 MongoIndexStore 实现对话存档 恢复 单用户 单对话线程&am…...
接口测试:实用指南4.0
✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…...
2000-2017年各省国有经济煤气生产和供应业固定资产投资数据
2000-2017年各省国有经济煤气生产和供应业固定资产投资数据 1、时间:2000-2017年 2、来源:国家统计局、能源年鉴 3、指标:行政区划代码、城市、年份、国有经济煤气生产和供应业固定资产投资 4、范围:31省 5、指标说明&#x…...
AOP的基本应用案例---统计每个函数的执行时间
1.导入依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 2.准备好要计算的SpringBoot的项目(本案例以service的实现类为例) 3.编写AOP的代码: package c…...
前端复习遗忘的知识点
这个是我个人平常学习一些博主的东西,如果侵权请联系我或者让我标上博主平台等信息,谢谢! 1:如图涉及知识点jq: 1.获取元素 document.getElementById(""); document.getElementsByClassName(); document.g…...
Unity3d 6(6000.*.*)版本国区下载安装参考
前言 Unity3d 6.是最新的版本,是与来自世界各地的开发者合作构建、测试和优化的成果,现在可以完全投入生产,是我们迄今为止性能最出色、最稳定的 Unity 版本。Unity 6 有许多令人兴奋的新工具和功能:端到端多人游戏工作流程将加速…...
【JavaEE】Maven配置
一、Maven简介 什么是Maven? Maven是一个基于项目对象模型(POM)构建的自动化工具,主要用于Java项目构建、依赖管理和项目信息管理 我理解的Maven:自动下载和管理“代码零件”(比如别人写好的工具包&#x…...
Java排序算法百科全书:原理、实现与实战指南
一、排序算法全景视图 1. 算法分类体系 graph TDA[排序算法] --> B[比较排序]A --> C[非比较排序]B --> B1[基本排序]B1 --> B11[冒泡排序]B1 --> B12[选择排序]B1 --> B13[插入排序]B --> B2[高效排序]B2 --> B21[快速排序]B2 --> B22[归并排序]…...
大模型在教育领域的五大应用
大模型在教育领域的五大应用 随着人工智能技术的迅猛发展,特别是大模型(如GPT-3、BERT等)的出现,教育领域正迎来一场前所未有的变革。大模型不仅能够处理复杂的自然语言任务,还能够通过深度学习算法理解和生成高质量的…...
Lesson 12 Goodbye and good luck
Lesson 12 Goodbye and good luck 词汇 luck n. 运气,幸运 相关:lucky a. 幸运的 luckily ad. 幸运地 unlucky a. 不幸的 搭配:lucky number 幸运数字 lucky color 幸运色 lucky day 幸运日 lucky dog 幸运儿…...
数据结构-前缀树
一、引言 前缀树又叫字典树,可以快速查找字符串或字符串前缀出现的次数,方便进行前缀匹配、词频统计 二、字典树模型 现有一个字典树,里面有money、mother、salary、salary、say五个单词 其中根节点位置还没有字符,相当于空串&am…...
搭建 vue 项目环境详细步骤
在平常的开发工作中,我们经常需要对项目进行打包,后端项目打包及部署在前面总结过。那么,现在前端基本都是 vue 项目,那么应该如何搭建一个 vue 环境呢?下载一个前端项目应该如何启动呢?今天,我…...