2 cline 提示词工程指南-记忆库
cline 提示词工程指南-记忆库
前言
编程,就是搭建一个系统,该系统在编程过程中逐步长成,最后该系统可以完成某个具体任务。
显然,编程是一个需要仔细规划、逐步推进的系统性、流程性、逻辑性工作。
我们的 ai 能胜任么?我们考察以下。
首先,基于语言大模型的底层内容生成机制就是按照对话历史,一个 token 一个 token 地猜测下一个token,直到回答足够长。可以理解为按照历史内容,一个字一个字往下“猜”内容。而由于大模型的大,因此可以“猜”得足够精确。
因为每猜一个字,都要考虑对话的历史,而足够长的历史,可以超出计算机的计算能力,所以,这个历史窗口,也就是上下文窗口,是有限的,不是无限的。
也就是说,大模型只能记住有限的对话历史,而不是无限的对话历史。当抵达对话上下文窗口的极限,ai 只能重启对话,以前的对话历史就清空了,或者你没法再往下对话了。
对于程序开发,我们会将开发分解为若干任务(Task),然后每个任务开启一个对话,让 ai 去完成,只要任务足够小,那么该任务就可以在一个对话中完成,这是理想情况。
问题在于,对于项目的整体架构、设计取向、项目进度等,在每一个任务中都需要知道,也就是说,有一些信息,是任何任务都需要知道的,这是一种跨对话的“记忆”。
而基于对话机制的 llm,当对话结束,其上下文也就不可用了,这意味着,如果没有其他机制,通过分解 task 进行对话完成编程任务的方法,任务和任务之间,没有共享的记忆,即,没有跨对话的记忆。这样就很不方便。
为了克服这一点,cline 引入了 记忆银行的概念。它的想法很简单,将共同记忆写到文件里,让 ai 自己更新这些文件。在与ai对话完成任务时,cline 将这些记忆注入对话上下文。这样,每个任务就拥有一个共同的项目记忆了。
什么是 Cline Memory Bank
The Memory Bank is a structured documentation system that allows Cline to maintain context across sessions. It transforms Cline from a stateless assistant into a persistent development partner that can effectively “remember” your project details over time.
记忆库是一个结构化的文档系统,它使你能够维护一个跨对话的上下文。它将 Cline 从一个无状态的开发助手,变成一个在整个开发过程中,能够有效记住你的项目细节的开发伙伴。
- 跨对话的上下文
- 持续开发:交互变得更加可预测
- 自动生成项目文档:作为一个副作用
- 适合各种规模的项目
- 技术栈无关:适合任何技术栈和开发语言
记忆库机制
记忆库是 cline 的特色功能。通过结构化文档管理 ai 的上下文。当你给出指令:“请遵循自定义指令”,cline 就会读取记忆库文档,重建对你的项目的理解。
对话的结构
记忆库文档的结构
记忆库文档就是若干个 md 文档。这些文档就是普通文档,它们保存在你的项目仓库(repository)中,你和 cline 都可以读取。
文件被组织为一个层次结构,以映射你的项目结构。
各个文档的主要内容如下:
- 项目概要上下文 projectbrief.md:概要、目标、范围、成功指标
- 产品上下文 productContext.md:问题定义、目标用户、用户需求、解决方案、关键功能、用户体验目标、成功指标
- 活动上下文 activeContext.md:当前关注、近期改变、关键决策、开放问题、待解决问题、下一步
- 系统模式上下文 systemPatterns.md:架构总览、核心组件、数据流、关键设计决策、集成策略、安全策略、性能考量因素
- 技术上下文 techContex.md:关键技术、开发环境、关键依赖、构建工具、测试框架、部署目标、自动化集成(CI/CD)
- 进度上下文 progress.md:完成的功能、可用的组件、开发中的内容、待开发内容、已知的问题、已测试范围、部署情况
由上面的主要内容可见,项目概要主要描述项目目标,产品上下文主要说明产品的功能用途、系统模式上下文主要是系统的设计,技术上下文主要是开发和部署的环境及工具、活动上下文记录当前的开发内容、进度上下文记录项目的整体进度。
让我们看个例子,这个例子将充分简化每个文档为一句话,以明确它们的侧重:
- 项目概要上下文 projectbrief.md:做一个扫描二维码的物料管理 React web 应用
- 产品上下文 productContext.md:物料系统能够支持多个仓库并能实时更新
- 活动上下文 activeContext.md:当前正在实现二维码扫描组件;上一个会话完成了 api 集成
- 系统模式上下文 systemPatterns.md:使用 Redux 通过规范化存贮做状态管理
- 技术上下文 techContex.md:React 18, TypeScript, Firebase, Jest 用于测试
- 进度上下文 progress.md:用户验证完毕;物料管理完成80%;报表还没开始
除了这些文档外,你可以添加更多的文档到记忆库,已覆盖项目的更多侧面。
使用记忆库
- 添加记忆库指令到自定义指令(指令见下面的代码)
- 添加到自定义指令可以在cline设置中加,也可以使用clinerules,详参架构篇
- cline 设置中添加对所有项目起作用
- clinerules 中添加仅对该项目起作用
- 添加到自定义指令可以在cline设置中加,也可以使用clinerules,详参架构篇
- 在项目根目录建立 memory-bank/ 文件夹
- 在该目录下,写好 projectbrief.md 文档(技术性或非技术性都行)
- 在 cline 中输入提示词:初始化记忆库
- 审核 cline 生成的记忆库各个文档
- 开始开发工作
memory bank 指令
# Cline's Memory BankI am Cline, an expert software engineer with a unique characteristic: my memory resets completely between sessions. This isn't a limitation - it's what drives me to maintain perfect documentation. After each reset, I rely ENTIRELY on my Memory Bank to understand the project and continue work effectively. I MUST read ALL memory bank files at the start of EVERY task - this is not optional.## Memory Bank StructureThe Memory Bank consists of core files and optional context files, all in Markdown format. Files build upon each other in a clear hierarchy:flowchart TDPB[projectbrief.md] --> PC[productContext.md]PB --> SP[systemPatterns.md]PB --> TC[techContext.md]PC --> AC[activeContext.md]SP --> ACTC --> ACAC --> P[progress.md]### Core Files (Required)
1. `projectbrief.md`- Foundation document that shapes all other files- Created at project start if it doesn't exist- Defines core requirements and goals- Source of truth for project scope2. `productContext.md`- Why this project exists- Problems it solves- How it should work- User experience goals3. `activeContext.md`- Current work focus- Recent changes- Next steps- Active decisions and considerations- Important patterns and preferences- Learnings and project insights4. `systemPatterns.md`- System architecture- Key technical decisions- Design patterns in use- Component relationships- Critical implementation paths5. `techContext.md`- Technologies used- Development setup- Technical constraints- Dependencies- Tool usage patterns6. `progress.md`- What works- What's left to build- Current status- Known issues- Evolution of project decisions### Additional Context
Create additional files/folders within memory-bank/ when they help organize:
- Complex feature documentation
- Integration specifications
- API documentation
- Testing strategies
- Deployment procedures## Core Workflows### Plan Mode
flowchart TDStart[Start] --> ReadFiles[Read Memory Bank]ReadFiles --> CheckFiles{Files Complete?}CheckFiles -->|No| Plan[Create Plan]Plan --> Document[Document in Chat]CheckFiles -->|Yes| Verify[Verify Context]Verify --> Strategy[Develop Strategy]Strategy --> Present[Present Approach]### Act Mode
flowchart TDStart[Start] --> Context[Check Memory Bank]Context --> Update[Update Documentation]Update --> Execute[Execute Task]Execute --> Document[Document Changes]## Documentation UpdatesMemory Bank updates occur when:
1. Discovering new project patterns
2. After implementing significant changes
3. When user requests with **update memory bank** (MUST review ALL files)
4. When context needs clarificationflowchart TDStart[Update Process]subgraph ProcessP1[Review ALL Files]P2[Document Current State]P3[Clarify Next Steps]P4[Document Insights & Patterns]P1 --> P2 --> P3 --> P4endStart --> ProcessNote: When triggered by **update memory bank**, I MUST review every memory bank file, even if some don't require updates. Focus particularly on activeContext.md and progress.md as they track current state.REMEMBER: After every memory reset, I begin completely fresh. The Memory Bank is my only link to previous work. It must be maintained with precision and clarity, as my effectiveness depends entirely on its accuracy.
💡 TIP
撰写 projectbrief时,一开始尽量简单(但是一开始就尽量详细也不是不可以),关注你最紧要的事情,cline 会通过提问补充细节,你可以在项目演进过程中更新记忆库。
记忆库的更新
记忆库会自动更新,触发点是:
- 在你的项目中发现新的模式
- 实现新的重大功能
- 你显式要求:“更新记忆库” 时
- 当你觉得上下文需要澄清时 (?)
和 cline 共同工作
在 cline 中,一般的工作流是什么呢?
设想你是老板,怎么向员工布置工作:
你首先会提出一个目标,但是具体怎么做你并不能确定所有细节,你会先和员工商量,确定工作计划。然后,达成一致后,你会让员工开始具体实施。
所以,任务的布置,分为两个阶段:计划阶段和执行阶段,这就恰恰对应 cline 的 Plan Mode 和 Act Mode。
核心工作流
- 从 Plan Mode,也就是计划模式开始,讨论,并且高层次计划,确定执行计划
- 进入 Act Mode,也就是执行模式,执行特定任务
关键指令
- “遵循自定义指令”:这会让 cline 读取记忆库并且从你上次的工作断点继续,你可以在工作开始时使用这条指令
- “初始化记忆库”:开始一个新项目是执行
- “更新记忆库”:强制更新记忆库
- 根据你当前的需求,在 Plan 和 Act 模式间切换
管理上下文窗口
如上图所示,随着任务对话的进行,上下文窗口会逐步被填满,当你发现系统反应变慢,或者引用之前说过的内容不再那么有效时,你就应该:
- 发出 “更新记忆库” 指令,更新记忆库
- 开始一个新的对话/任务
- 开始新对话/任务后,发出“遵循自定义指令”指令
这个工作流确保重要的上下文被存到记忆库中,并且允许你在新的对话/任务中无缝地继承之前的上下文。
最佳实践
项目开始
- 从一个 projectbrief 文档开始
- 让 cline 帮您初始化记忆库结构
- 修改记忆库文件使之适合你的工作流
项目进行中
- 让模式在工作中自然呈现
- 不要强制文档更新,文档更新应顺其自然
- 相信过程,价值随着时间推移不断积累
- 对话开始时,确认记忆库是否读取
文档流
- projectbrief.md 是基础
- activeContext.md 变更最频繁
- progress.md 是你的工作里程碑
- 所有记忆库文件维持项目智能
The Memory Bank is Cline’s only link to previous work. Its effectiveness depends entirely on maintaining clear, accurate documentation and confirming context preservation in every interaction.
参考文献
Cline Memory Bank
相关文章:
2 cline 提示词工程指南-记忆库
cline 提示词工程指南-记忆库 前言 编程,就是搭建一个系统,该系统在编程过程中逐步长成,最后该系统可以完成某个具体任务。 显然,编程是一个需要仔细规划、逐步推进的系统性、流程性、逻辑性工作。 我们的 ai 能胜任么&#x…...
VueDOMPurifyHTML 防止 XSS(跨站脚本攻击) 风险
VueDOMPurifyHTML 是一个 Vue.js 插件,用于在 v-html 指令中安全地渲染 HTML 内容,防止 XSS(跨站脚本攻击) 风险。 作用 解决 v-html 的安全问题 Vue 的 v-html 会直接渲染原始 HTML࿰…...
关于SQLite轻量数据库的研究
安装本地SQLite 下载地址: https://www.sqlite.org/download.html 下载这两个包 解压到本地,得到这几个文件: 将解压后的目录添加到Path环境变量中: 在cmd中输入 “sqlite3” 和 “.open D:\work\sqliteInstall\mytestdb.…...
使用Python爬取豆瓣电影Top250并保存到Excel完整教程
在当今数据驱动的时代,获取和分析网络数据已成为许多领域的重要技能。本文将详细介绍如何使用Python爬取豆瓣电影Top250榜单数据,并将结果保存到Excel文件中。这个项目不仅适合Python初学者学习网络爬虫基础,也能帮助数据分析师获取有价值的电…...
Redis + Caffeine打造超速两级缓存架构
背景 接口的逻辑非常简单:根据传入的城市、仓库和发货时间,查询快递的预计送达时间。 然而,由于会频繁调用这个接口,尤其是在大促期间,接口的性能要求极高。 数据量虽然不大,但为了确保接口的高性能和高…...
讲讲String类的常用函数
String类在开发过程中经常用到,这里来总结一下。 1.声明与初始化 std::string str;//声明 std::string str "Hello, World!";//初始化 2.连接 std::string str1 "Hello, "; std::string str2 "World!"; std::string result …...
Sentinel实战教程:流量控制与Spring Boot集成
Sentinel实战教程:流量控制与Spring Boot集成 1. Sentinel简介与核心概念 1.1 什么是Sentinel? Sentinel是阿里巴巴开源的流量控制组件,主要用于微服务架构中的流量防护。它通过限流、熔断、热点防护等机制,帮助系统在高并发场景下保持稳定运行。 1.2 核心功能与术语 流…...
【计算机系统结构】MIPSsim
目录 双击MIPSsim.exe 问题1:Microsoft Defender SmartScreen阻止了无法是被的应用启动,运行此应用可能会导致你的电脑存在风险 解决 出现下面的问题的话,建议直接在官网下载 问题2:.NET Framework 3.5安装错误代码0x80240438 …...
Charles 安装与使用详解:实现 App 与小程序 HTTPS 抓包
在日常的移动端开发、接口调试或逆向分析中,我们经常需要抓取移动 App 或微信小程序的 HTTP/HTTPS 请求。Charles 是一款经典强大的代理抓包工具,凭借简单的界面和强大的功能,成为了 macOS 抓包的首选工具之一。 本文将详细介绍 Charles 的安…...
0415美团面试题目详解
基础知识型,基础知识!!! margin-top:100%(基于父元素宽度) “margin-top: 100% 表示元素的上外边距为父元素宽度的 100%。例如,若父元素宽 300px,则上边距为300px。需注意,CSS 中垂直方向的百分比边距(如 margin-top/margin-bottom)均基于父元素宽度计算,而非高度。这…...
【微信小程序】报错: http://127.0.0.1:7001 不在以下 request 合法域名列表中
问题 微信小程序报错: http://127.0.0.1:7001 不在以下 request 合法域名列表中,请参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html(env: Windows,mp,1.05.2204250; lib: 3.0.2) 解决方法: 详…...
go的json unmarshal和 k8s的deepcopy对比
Go 的 encoding/json.Unmarshal 和 Kubernetes 的 DeepCopy 虽然都依赖反射,但性能差异显著。以下是两者的对比分析及性能优化原理: 一、反射实现差异 1. json.Unmarshal 的反射特点 动态类型解析:需在运行时解析 JSON 结构,通过…...
1. k8s的简介
Kubernetes(k8s)简介 1. 产生背景 随着云计算和微服务架构的兴起,传统的单体应用逐渐被拆分为多个小型、松耦合的服务(微服务)。这种架构虽然提升了开发灵活性和可维护性,但也带来了新的挑战:…...
华为云CloudMatrix 384 超节点将有数万规模上线,赋能AI产业发展
近日,华为公司副总裁张修征表示,华为云 CloudMatrix 384 超节点今年上半年将有数万规模的上线,这或将彻底终结算力焦虑。未来,CloudMatrix 超节点可以构建超过万片的大集群来提供算力。 CloudMatrix 384超节点 华为云 CloudMatri…...
Java基础 4.15
1.重载方法练习 /* 类Methods中定义三个重载方法并调用 方法名为m 分别接受一个int参数 两个int参数 一个字符串参数 分别执行平方运算并输出 相乘并输出结果 输出字符串信息 在main()方法中分别用参数区别调用三个方法 */ public class OverLoadExercise01 {public static v…...
现代c++获取linux系统架构
现代c获取linux系统架构 前言一、使用命令获取系统架构二、使用c代码获取系统架构三、验证四、总结 前言 本文介绍一种使用c获取linux系统架构的方法。 一、使用命令获取系统架构 linux系统中可以使用arch或者uname -m命令来获取当前系统架构,如下图所示 archuna…...
shell编程之函数与数组
目录 shell函数 函数的用法 俩个数求和 系统资源监控并报警函数 函数变量的作用范围 函数的参数 递归函数 shell数组 获取数组的长度 读取某下的标赋值 数组遍历 数组切片 数组替换 数组删除 shell脚步调试 shell函数 函数的用法 Shell函数可用于存放一系列的…...
IntelliJ IDEA 中最常用的快捷键分类整理
以下是 IntelliJ IDEA 中最常用的快捷键分类整理,适用于 Windows/Linux(Mac 用户将 Ctrl 替换为 ⌘,Alt 替换为 Option): 一、编辑相关 快捷键功能说明Ctrl Space基础代码补全Ctrl Shift Space智能类型补全Ctrl P…...
大数据面试问答-Kafka/Flink
1. Kafka 1.1 定位 分布式流数据平台,核心解决三大问题: 高吞吐的实时数据管道:支持每秒百万级消息处理。 持久化的消息队列:消息持久化到磁盘,支持多订阅者。 流式数据处理:与 Flink/Spark Streaming 集…...
工厂园区光储充能量管理系统解决方案——助力高效用能与低碳运营
园区痛点:电费高、能效低、碳排压力大 安科瑞 郭海棚 198 21380729 电费成本高:峰谷电价差显著,尖峰时段用电成本激增。设备能效低:老旧设备能耗高,缺乏实时监控与优化手段。供电稳定性差:生产设备突发停电…...
Windows10下Jekyll博客部署全指南|解决GitHub模板运行失败问题
场景:在GitHub拉取的一个Jekyll博客网站运行不起来 这是想要实现的效果 这是项目代码 概要 前置要求 git版本控制工具已安装windows10环境GitHub可以正常上网 相关问题 Jekyll博客部署常见错误GitHub模板运行失败解决方法Windows10环境变量配置Ruby版本兼容性问…...
数字IC设计-VCS和Verdi的使用
#学习记录# 前言:本文以一个简单的计数器来说明vcs和verdi的使用 1 代码文件 1.1 计数器代码 //Engineer:Mr-pn-junction module counter(input clk,input rst,output reg [5:0] count); always(posedge clk or negedge rst)beginif(!rst)coun…...
FastAPI基础知识点精要
一、核心性能优势 1. 异步编程支持 原生async/await语法:支持非阻塞IO操作,轻松处理高并发场景ASGI协议实现:基于Starlette框架构建,支持WebSocket等实时协议性能基准:测试显示响应速度比Flask快3-5倍&…...
<uniapp><websocket><http>基于uniapp,手机客户端通过websocket进行数据通讯(二维码扫码数据)
前言 本专栏是基于uniapp实现手机端各种小功能的程序,并且基于各种通讯协议如http、websocekt等,实现手机端作为客户端(或者是手持机、PDA等),与服务端进行数据通讯的实例开发。 发文平台 CSDN 环境配置 系统:windows 平台:visual studio code、HBuilderX(uniapp开…...
GitLab-获取token(访问令牌)
一、操作步骤 GitLab-获取token(访问令牌)主要步骤:以及相关截图 登录 GitLab 打开 GitLab 网站并登录你的账号。 进入用户设置 点击右上角头像 → Edit profile → 左侧菜单选择 Access Tokens。 创建 Token Token name: 输入名称&#…...
python 安装win32com.client库
win32com.client是Python中用于操作Windows COM对象的强大模块,特别适合与Microsoft Office应用程序(如Word、Excel、Outlook等)进行交互。 1. 安装win32com.client 需要安装pywin32库: pip install pywin32如果安装失败或速度慢,可以使用国…...
流量统计--Maven依赖
新建项目Flow 创建依赖,在pm.xml里添加如下内容: <!-- 添加hadoop-client 3.1.3的依赖--> <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>…...
L1-6 大勾股定理(PTA)
大勾股定理是勾股定理的推广:对任何正整数 n 存在 2n1 个连续正整数,满足前 n1 个数的平方和等于后 n 个数的平方和。例如对于 n1 有 324252;n2 有 102112122132142 等。给定 n,本题就请你找出对应的解。 输入格式: …...
HarmonyOS-ArkUI V2装饰器: @Computed装饰器:计算属性
引 @Computed是用来装饰一个自己写的getter方法的装饰器,它可以让您像用平常的状态变量那样去用这个getter方法。那么getter方法里怎么获取的值,必然涉及到您写的逻辑。这个逻辑可以是很复杂的一种计算方式,经过一系列复杂方式计算完您吐出相应的结果即可。 为了便于理解,…...
豆瓣图书数据采集与可视化分析
文章目录 一、适用题目二、豆瓣图书数据采集1. 图书分类采集2. 爬取不同分类的图书数据3. 各个分类数据整合 三、豆瓣图书数据清洗四、数据分析五、数据可视化1. 数据可视化大屏展示 源码获取看下方名片 一、适用题目 基于Python的豆瓣图书数据采集与分析基于Python的豆瓣图书…...
网络安全·工具篇1·Nmap的运用
今天我们要介绍网络安全中常用的一种扫描工具Nmap,它被设计用来快速扫描大型网络,主要功能包括主机探测、端口扫描以及版本检测,小编将在下文详细介绍Nmap相应的命令。 Nmap的下载安装地址为:Nmap: the Network Mapper - Free Se…...
MVCC详细介绍及面试题
目录 1.什么是mvcc? 2.问题引入 3. MVCC实现原理? 3.1 隐藏字段 3.2 undo log 日志 3.2.1 undo log版本链 3.3 readview 3.3.1 当前读 编辑 3.3.2 快照读 3.3.3 ReadView中4个核心字段 3.3.4 版本数据链访问的规则(了解&#x…...
designware IP如何被FPGA综合
DW的IP要被vivado等综合还是很麻烦的,而是用synplify等综合工具,然后再嫁接到vivado中也非常麻烦。本文提供一种解决办法。 1. 对DW的IP进行gtech综合。即使用DC工具对DW IP进行综合。而使用的综合库是gtech。脚本如下: set target_library…...
图像预处理-色彩空间补充,灰度化与二值化
一.图像色彩空间转换 1.1 HSV颜色空间 HSV颜色空间使用色调(Hue)、饱和度(Saturation)和亮度(Value)三个参数来表示颜色 一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本…...
C语言socket绑定本地端口和查询
查询 // 查询本地地址和端口(在没有绑定的情况下,系统会自动分配一个端口)struct sockaddr_in local_addr;socklen_t addr_len sizeof(local_addr);if (getsockname(sockfd, (struct sockaddr*)&local_addr, &addr_len) 0) {std::c…...
Centos7编译安装sudosh2
Centos7编译安装sudosh2 sudosh2简介安装sudoshCentos7编译安装sudosh2步骤 1:Debian安装 sudosh步骤 2:配置 sudosh步骤 3:查看会话记录重播会话注意事项 sudosh2简介 sudosh2项目地址: https://github.com/squash/sudosh2 虽然项目已经停…...
C#使用httpClient.PostAsync()界面卡死
背景:部分代码移植后运行到httpClient.PostAsync()时界面就卡死。 代码片段: 解决办法: 把HttpResponseMessage response await httpClient.PostAsync(requestUrl, content); 改为HttpResponseMessage response httpClient.PostAsync(req…...
基于深度学习的狗鼻纹身份识别
基于深度学习的狗鼻纹身份识别 1. 技术背景 根据GMI报告,2020年全球宠物护理市场规模超过2320亿美元。随着宠物经济的快速发展,宠物福利问题日益突出。在宠物管理、交易、保险、医疗等许多场景中,宠物识别是一个具有挑战性的问题࿰…...
面试题:Eureka和Nocas的区别
Eureka 与 Nacos 核心区别对比 一、功能定位与核心能力 维度EurekaNacos核心功能专注服务注册与发现,无配置管理功能:ml-citation{ref“1,3” data“citationList”}集成服务注册、发现、配置管理、动态DNS等:ml-citation{ref“1,3” data“c…...
MongoDB入门与安装指南
目录 一、MongoDB简介 二、MongoDB安装 (一)MongoDB Server安装 (二)MongoDB Compass安装 三、MongoDB与Spring Data MongoDB框架的连接 四、总结 一、MongoDB简介 MongoDB是一种高性能、开源的NoSQL(非关系型&…...
排序算法复杂度及稳定性全解析(八种排序)
在计算机科学领域,排序算法是基础且重要的内容。不同的排序算法在时间复杂度、空间复杂度以及稳定性上存在差异,合理选择排序算法能极大提升程序性能。本文将对常见排序算法进行全面剖析,并引入计数排序这一特殊的排序算法。 一、常见排序算…...
PTA:古风排版
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。 输入格式: 输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串&a…...
华熙生物亮相消博会,这次又带来了什么样的变化?
首先,从展示层面来看,华熙生物在消博会上构建科技桥梁,展台主视觉展示糖生物学发展历程与自身发展交织历程,这象征着中国生物科技企业从产业突围到定义全球标准的蜕变。这一展示不仅提升了华熙生物的品牌形象,更向外界…...
【设计模式】适配器模式:让不兼容的接口和谐共处
引言 在软件开发中,我们经常会遇到这样的情况:两个已经存在的接口无法直接协同工作,但我们又希望它们能够无缝对接。这时,适配器模式就派上用场了。适配器模式(Adapter Pattern)是一种结构型设计模式&…...
QuickAPI 核心能力解析:构建数据服务化的三位一体生态
在企业数据资产化运营的进程中,如何打破数据开发与共享的效率瓶颈,实现从 “数据可用” 到 “数据好用” 的跨越?麦聪软件的 QuickAPI 给出了系统性答案。作为 SQL2API 理念的标杆产品,QuickAPI 通过SQL 编辑器、数据 API、数据市…...
vue3 elementPlus中el-tree-select封装和自定义模糊搜索
:filter-node-method"filterNodeMethod"此方法对应的是模糊搜索,// 获取树形数据 const loadTreeData async () > {try {const res await deviceTree()if (res.data) {treeData.value res.data// 构建 ID 到标签的映射idMap.value new Map()const …...
【哈夫曼树和哈夫曼编码是什么?】
哈夫曼树和哈夫曼编码是数据压缩领域中的核心概念,它们基于字符出现的频率来实现高效编码。下面是详细介绍,通俗易懂。 一、什么是哈夫曼树(Huffman Tree)? 哈夫曼树是一种最优二叉树,用于构造最短的前缀编…...
量子纠缠物理本质、技术实现、应用场景及前沿研究
以下是关于 量子纠缠(Quantum Entanglement) 的深度解析,涵盖物理本质、技术实现、应用场景及前沿研究,以技术视角展开: 一、量子纠缠的物理本质 1. 核心定义 量子纠缠是多个量子系统(如粒子)间的一种关联状态,表现为: 非局域性:纠缠态粒子无论相距多远,测量其中一…...
时间的重构:科技如何重塑人类的时间感知与存在方式
时间是人类认知的基石,也是科技发展的终极命题。从石英钟到量子计时器,从日晷到区块链时间戳,技术不断重构着我们对时间的理解与利用。然而,当人工智能、量子计算和脑机接口等前沿技术开始挑战时间的线性本质时,我们不…...
现代测试自动化框架教程:Behave接口测试与Airtest移动端UI自动化
前言 我发现每天还是陆陆续续有人在看我之前写的自动化框架搭建的文档;即使很早就有新的框架,更好的选择出来了;所以特别写了这一篇目前大厂也在使用的;日活400w有实际落地的自动化测试架构方案; 随着测试技术…...