Cursor AI 编码规则启动器:模块化配置与工程化实践指南

news2026/5/11 4:45:46
1. 项目概述一个为 Cursor 编辑器量身定制的规则启动器如果你和我一样日常重度依赖 Cursor 这款 AI 驱动的代码编辑器那你一定对它的“规则”Rules功能又爱又恨。爱的是它能通过预设的指令集让 AI 助手无论是 Claude 还是 GPT在写代码、重构、调试时严格遵循你的团队规范或个人习惯极大提升代码质量和一致性。恨的是每次新开一个项目或者想尝试一套新规则都得从头开始配置创建.cursorrules文件一条条写规则调试生效范围过程繁琐且容易出错。jamesships/cursor-rules-starter-kit这个项目就是为了解决这个痛点而生的。它不是一个简单的规则集合而是一个高度结构化、可扩展的 Cursor 规则启动工具包。你可以把它理解为一个“规则框架”或“规则样板间”。作者jamesships将自己或团队在真实项目中沉淀下来的最佳实践封装成了一套模块化的规则模板并提供了清晰的目录结构、示例规则和自动化工具让你能像搭积木一样快速为你的项目组合出一套量身定制的 AI 编码规范。这个工具包的核心价值在于“开箱即用”和“按需定制”。无论你是独立开发者想建立个人编码标准还是团队技术负责人需要统一全组的 AI 辅助编码风格这个 Starter Kit 都能提供一个坚实的起点。它解决的不仅仅是“写什么规则”的问题更是“如何高效地组织、管理和应用这些规则”的工程问题。接下来我们就深入拆解这个工具包的设计思路、核心内容以及如何将它应用到你的工作流中。2. 核心设计思路与架构解析2.1 为什么需要结构化的规则管理在深入代码之前我们先理解一下 Cursor 原生规则管理的局限性。通常我们会在项目根目录创建一个.cursorrules文件里面可能混杂着通用代码风格规则如命名约定、注释格式。项目特定的架构约束如禁止直接导入某模块。针对特定文件类型的规则如.vue文件的组件结构。一些临时的、一次性的指令。随着项目演进和规则增多这个文件会变得臃肿不堪难以维护。更麻烦的是不同项目之间想复用部分规则只能靠复制粘贴容易产生版本错乱。cursor-rules-starter-kit的架构正是针对这些问题设计的。它的核心思路是“分而治之”和“约定优于配置”。将庞大的规则集按逻辑拆分成多个小文件存储在一个统一的目录如.cursorrules下。然后通过一个“入口”文件或工具在项目初始化时将这些分散的规则智能地合并或链接到项目所需的.cursorrules文件中。这种设计带来了几个显著优势模块化将规则按领域如 JavaScript、React、安全分开清晰明了。可复用性一套基础规则如通用代码风格可以在所有项目中共享。可维护性修改某个特定领域的规则不会影响其他部分。可组合性可以根据项目类型前端、后端、全栈快速组合不同的规则模块。2.2 工具包目录结构深度解读一个典型的cursor-rules-starter-kit目录结构可能如下所示基于常见实践推断cursor-rules-starter-kit/ ├── .cursorrules/ # 核心规则模块目录 │ ├── base/ # 基础通用规则 │ │ ├── naming.cursorrule │ │ ├── comments.cursorrule │ │ └── error-handling.cursorrule │ ├── languages/ # 编程语言特定规则 │ │ ├── javascript.cursorrule │ │ ├── typescript.cursorrule │ │ └── python.cursorrule │ ├── frameworks/ # 框架特定规则 │ │ ├── react.cursorrule │ │ ├── vue.cursorrule │ │ └── express.cursorrule │ └── project-specific/ # 项目级特殊规则示例 │ └── example.cursorrule ├── templates/ # 项目模板预置规则组合 │ ├── node-backend/ │ ├── react-frontend/ │ └── fullstack/ ├── scripts/ # 自动化工具脚本 │ ├── init.js # 初始化脚本将规则应用到当前项目 │ └── create-module.js # 创建新规则模块的脚手架 ├── README.md # 项目说明和快速开始指南 └── package.json # 项目配置如果使用 Node.js 脚本结构解析与设计意图.cursorrules/目录这是规则的“源代码”仓库。每个.cursorrule文件都专注于一个很小的、内聚的规则集合。文件名本身就具有描述性例如naming.cursorrule可能只包含关于变量、函数、类命名的所有规则。这种细粒度使得查找和修改特定规则变得非常容易。templates/目录这是“产品化”的关键。它定义了针对不同项目类型的规则套餐。例如react-frontend模板可能会自动组合base/、languages/javascript、languages/typescript、frameworks/react这几个模块的规则。用户无需了解底层有哪些模块只需选择模板即可获得一套立即可用的、经验证的规则组合。scripts/目录提供了自动化能力。init.js脚本是核心它可能负责读取用户选择的模板将对应的.cursorrule文件内容合并并生成或更新项目根目录下的.cursorrules文件。create-module.js则降低了贡献新规则的门槛确保格式统一。注意这种目录结构是一种高度工程化的最佳实践。它模仿了现代前端项目中components、utils等目录的组织方式将配置也视为代码进行管理。对于小型个人项目这可能显得“杀鸡用牛刀”但对于追求长期一致性和团队协作的中大型项目这种前期投入会带来巨大的维护收益。2.3 规则文件的语法与最佳实践示例Cursor 的规则语法相对直接本质上是给 AI 的指令。但在一个结构化的工具包中我们需要以更严谨的方式编写它们。jamesships的 Starter Kit 很可能在规则文件中引入了注释和结构约定。一个优秀的naming.cursorrule文件可能长这样# 命名约定规则集 # 目标确保整个项目中的命名清晰、一致且符合行业惯例。 # 适用范围所有编程语言文件。 ## 变量与函数命名 - 使用 camelCase 命名变量和函数。 - 布尔变量或函数应以 is、has、can、should 等前缀开头例如 isLoading, hasPermission。 - 函数名应为动词或动词短语明确描述其行为例如 fetchUserData, calculateTotal。 - **禁止**使用单个字母的变量名除了简单的循环计数器如 i, j, k。 ## 类与构造函数命名 - 使用 PascalCase 命名类、构造函数、类型和接口。 - 类名应为名词或名词短语例如 UserService, HttpClient。 ## 常量命名 - 使用 UPPER_SNAKE_CASE 命名常量。 - 常量应定义在文件顶部或专门的常量文件中。 ## 文件与目录命名 - 文件使用 kebab-case例如 user-profile.component.js。 - 目录使用 kebab-case。 # 异常处理如果发现违反上述规则的代码请明确指出并建议修改。实操心得规则要具体避免模糊不要说“命名要有意义”而要说“使用camelCase函数用动词”。AI 对具体指令的理解和执行效果远好于模糊原则。使用注释分区用##或#将规则分类提高人类可读性。虽然 Cursor AI 可能忽略这些注释但对维护者至关重要。说明意图和范围在文件开头用注释说明本规则集的目标和适用范围方便后续调整。提供正面和反面例子在规则中嵌入示例如上面的示例代码块能极大提升 AI 的理解准确性。jamesships的 Kit 中很可能包含了大量这样的示例。3. 核心模块与规则内容拆解基于常见的开发需求我们可以推断jamesships/cursor-rules-starter-kit至少包含了以下几类核心规则模块。这些模块共同构成了一套完整的 AI 辅助编码规范体系。3.1 基础通用规则模块这是所有项目的基石定义了与具体技术栈无关的编程最佳实践。代码风格与格式化虽然 Cursor 可以集成 Prettier但规则可以强制一些格式化无法覆盖的约定。例如“if/else语句必须使用花括号即使只有一行代码”、“运算符周围添加空格”、“尾随逗号”等。错误处理强制要求异步操作使用try...catch、禁止空的catch块、错误信息应包含上下文等。注释规范规定何时需要写注释复杂的业务逻辑、公开的 API、注释的格式JSDoc、JsDoc、TODO和FIXME标签的使用规范。导入/导出组织规定模块导入的顺序先内置模块再第三方模块最后本地模块、禁止循环依赖、使用绝对路径还是相对路径的约定。踩坑点基础规则最容易与具体语言的特性冲突。例如关于“分号”的规则在 JavaScript 和 Python 中完全不同。因此基础规则应只包含那些跨语言通用的原则语言特定的细节应放到languages/目录下。3.2 编程语言特定规则模块这部分规则针对特定语言的语法和生态进行深度定制。JavaScript/TypeScript类型安全对于 TypeScript规则可能强调“避免使用any类型”、“优先使用interface而非type定义对象结构”或反之取决于团队偏好。异步处理强制使用async/await而非直接使用Promise.then或者规定统一的错误处理模式。现代语法鼓励使用可选链?.、空值合并??、箭头函数等 ES6 特性。PythonPEP 8 合规强制遵循 PEP 8 风格指南缩进、命名、行宽等。类型提示鼓励使用 Type Hints并规定公共 API 必须包含类型提示。导入规范规定import语句的顺序和格式。实操要点语言规则模块应该引用或继承基础通用规则并覆盖或细化其中冲突的部分。在 Starter Kit 的初始化脚本中需要智能地处理这种优先级关系。3.3 框架与库特定规则模块这是提升开发效率和框架最佳实践契合度的关键。React组件设计函数组件优先于类组件、使用React.memo和useCallback的时机、Props 的定义和默认值。Hooks 规范自定义 Hook 的命名必须以use开头、Hook 的调用规则不能在循环、条件、嵌套函数中调用。状态管理规定何时使用本地状态useState、何时使用 Context、何时需要引入外部状态库如 Zustand, Redux。VueComposition API鼓励使用script setup语法和 Composition API并规定响应式数据 (ref,reactive) 的使用规范。组件结构单文件组件中template,script,style的顺序和格式。Node.js/Express中间件顺序规定常用中间件如日志、解析、鉴权的添加顺序。路由组织鼓励使用 Router 分离路由逻辑保持主文件简洁。错误处理中间件规定统一的错误响应格式和错误处理中间件的位置。经验分享框架规则是最容易过时的部分。jamesships的 Kit 如果要保持长期价值必须有一个清晰的机制来更新这些规则或者鼓励社区贡献。在README中注明每个规则模块所针对的框架版本是一个好习惯。3.4 项目与安全特定规则模块这部分体现了工具包的“可扩展性”允许用户为特定项目添加非常具体的约束。项目特定规则例如“在本电商项目中所有价格计算必须使用BigDecimal库而非浮点数”、“禁止直接调用payment-service的 A 接口请使用PaymentClient包装类”。这些规则将团队的业务知识固化到了 AI 助手的工作流中。安全规则这是一个极其重要的可选模块。可以包含“禁止在代码中硬编码密钥或密码”、“对所有用户输入进行验证和清理”、“使用参数化查询防止 SQL 注入”、“检查依赖库是否存在已知安全漏洞CVE的提醒”。AI 在生成代码时可能会忽略安全细节这类规则能起到关键的提醒和防护作用。注意事项项目特定规则应放在project-specific/目录下并且不应被包含在通用的templates/中。它们应该在项目初始化后由项目负责人手动添加或通过脚本根据项目配置文件生成。安全规则则可以作为基础模板的一部分提高所有项目的安全基线。4. 自动化工具脚本与工作流集成一个优秀的 Starter Kit 不能只提供静态文件还必须提供便捷的“安装”和“管理”工具。scripts/目录下的工具是用户体验的关键。4.1 初始化脚本详解init.js或init.py、init.sh是这个工具包的核心命令。它应该提供以下功能交互式模板选择运行node scripts/init.js后脚本应列出templates/目录下的所有可用模板如React Frontend,Node.js Backend,Python Data Science让用户选择。项目分析高级的脚本可以分析当前目录的package.json、requirements.txt等文件自动推荐最合适的模板。规则合并与生成根据选择的模板找到对应的规则模块列表然后读取这些.cursorrule文件将它们的内容按合理的顺序例如基础规则 - 语言规则 - 框架规则 - 安全规则合并。冲突处理如果不同模块的规则存在冲突例如基础规则说“用双引号”JavaScript 规则说“用单引号”脚本需要有一套优先级逻辑通常是更具体的规则覆盖更通用的规则来解决或者在生成的.cursorrules文件中以注释形式标出冲突让用户决定。生成最终文件将合并后的内容写入项目根目录的.cursorrules文件。如果文件已存在可以提供“覆盖”、“备份后合并”或“跳过”的选项。一个简化的脚本逻辑伪代码// scripts/init.js (概念示例) const fs require(fs); const path require(path); const inquirer require(inquirer); // 假设使用 inquirer 进行交互 const TEMPLATES { react-frontend: [base, languages/javascript, languages/typescript, frameworks/react, security], node-backend: [base, languages/javascript, frameworks/express, security], // ... 其他模板 }; async function init() { const { template } await inquirer.prompt([...]); // 选择模板 const modules TEMPLATES[template]; let finalRulesContent # Auto-generated by cursor-rules-starter-kit for ${template}\n\n; for (const module of modules) { const ruleFilePath path.join(__dirname, ../.cursorrules, ${module}.cursorrule); if (fs.existsSync(ruleFilePath)) { const content fs.readFileSync(ruleFilePath, utf-8); finalRulesContent # --- Module: ${module} ---\n; finalRulesContent content \n\n; } } const targetPath path.join(process.cwd(), .cursorrules); // 处理已存在文件的情况... fs.writeFileSync(targetPath, finalRulesContent); console.log(✅ .cursorrules file has been generated successfully!); } init();4.2 创建与管理自定义规则模块create-module.js脚本则降低了贡献门槛。它可以引导用户输入新模块的名称、描述、所属类别基础/语言/框架/安全然后自动生成一个符合项目约定的.cursorrule文件模板包含正确的文件头和注释结构。工作流集成建议与 Git 结合可以将.cursorrules目录纳入版本控制而每个项目生成的.cursorrules文件也纳入各自项目的版本控制。这样对核心规则的更新可以同步到所有项目通过重新运行init或合并变更。与 CI/CD 结合在 CI 流水线中可以加入一个检查步骤验证项目中的.cursorrules文件是否与指定的 Starter Kit 模板版本兼容或者是否被意外修改。与 Cursor 设置同步更高级的集成可以编写脚本将某些规则同步到 Cursor 的全局或工作区设置中实现更细粒度的控制。5. 实战应用从零开始为你的项目配置规则假设我们有一个新的 Next.js 全栈项目我们来看看如何使用jamesships/cursor-rules-starter-kit来配置规则。5.1 安装与初始化首先我们需要获取这个 Starter Kit。通常这类项目会发布在 GitHub 上。# 1. 将 Starter Kit 克隆到本地或作为子模块添加到你的工具仓库 git clone https://github.com/jamesships/cursor-rules-starter-kit.git # 或者如果你只想用它的功能可以全局安装其 CLI 工具如果作者提供了的话 # npm install -g cursor-rules-cli # 2. 进入你的 Next.js 项目目录 cd /path/to/your/nextjs-project # 3. 运行初始化脚本 # 假设我们从克隆的仓库中运行 node /path/to/cursor-rules-starter-kit/scripts/init.js运行脚本后你会看到一个交互界面? 请选择项目模板 (Use arrow keys) ❯ React Frontend (Next.js) Node.js Backend API Fullstack Monorepo Python Data Pipeline (Custom)选择 “React Frontend (Next.js)”。脚本会分析你的package.json确认有next和react依赖然后开始合并规则。5.2 生成的.cursorrules文件剖析脚本运行完毕后你的项目根目录下会生成一个.cursorrules文件。打开它你会看到类似以下结构的内容# Auto-generated by cursor-rules-starter-kit for React Frontend (Next.js) # Generated on: 2023-10-27 # Template version: v1.2.0 # --- Module: base/naming --- # 命名约定规则集 - 使用 camelCase 命名变量和函数... - ... (更多基础命名规则) # --- Module: base/comments --- # 注释规范 - 所有导出的函数、类和 React 组件必须使用 JSDoc 注释... - ... (更多注释规则) # --- Module: languages/typescript --- # TypeScript 特定规则 - 禁止使用 any 类型。如果暂时无法确定类型使用 unknown 并加以断言。 - 优先使用 interface 定义对象类型除非需要使用联合类型或元组。 - 使用 strict 编译选项。 - ... (更多TS规则) # --- Module: frameworks/nextjs --- # Next.js 框架规则 - 页面组件文件必须放在 pages/ 或 app/ 目录下根据 App Router 或 Pages Router。 - 使用 getStaticProps/getServerSideProps 进行数据获取不要在组件渲染函数中直接进行数据库查询。 - API Route 文件应放在 pages/api/ 或 app/api/ 目录下并导出默认的请求处理函数。 - 优先使用 next/link 和 next/image 组件。 - ... (更多Next.js规则) # --- Module: frameworks/react --- # React 特定规则 - 使用函数组件和 Hooks。 - 自定义 Hook 必须以 use 开头。 - 使用 React.memo 包裹性能敏感的组件。 - 在 useEffect 和 useCallback 中正确声明依赖数组。 - ... (更多React规则) # --- Module: security/web --- # Web 安全规则 - 对所有用户输入进行验证和转义防止 XSS。 - 避免在客户端组件中暴露敏感环境变量。 - 使用 Content Security Policy 头部的相关最佳实践。 - ... (更多安全规则)现在当你在这个项目中打开 CursorAI 助手无论是 Cursor 内置的还是你连接的 Claude/GPT在编写或修改代码时就会自动遵循这一整套规则。它会用 TypeScript 的严格模式提醒你会按照 Next.js 的约定组织文件会强制你写 JSDoc 注释并在可能的安全漏洞出现时发出警告。5.3 添加项目特定规则我们的 Next.js 项目可能有一个特殊要求所有对后端 API 的调用都必须通过一个自定义的fetchClient工具函数而不是原生的fetch以便统一处理错误和认证。我们可以在项目根目录手动创建一个新的规则文件或者使用 Starter Kit 的create-module脚本cd /path/to/cursor-rules-starter-kit node scripts/create-module.js按照提示输入模块名project-api-client描述“强制使用统一的 API 客户端”类别选择“project-specific”。然后编辑生成的.cursorrules/project-specific/api-client.cursorrule文件# 项目特定规则API 客户端 # 目标确保所有后端 API 调用都经过统一的客户端以处理认证、错误和日志。 # 适用范围本项目中的所有 JavaScript/TypeScript 文件。 - **禁止**在代码中直接使用原生的 fetch、axios 或其他 HTTP 客户端库来调用我们的后端 APIhttps://api.our-app.com/*。 - 必须从 /lib/api-client 导入 fetchClient 函数。 - 使用示例 typescript // 正确做法 import { fetchClient } from /lib/api-client; const data await fetchClient(/users/me); // 错误做法 const data await fetch(/api/users/me); // 错误使用了原生 fetch如果 AI 助手发现违反此规则的代码必须将其重构为使用fetchClient并解释原因。最后我们需要手动或修改模板配置将这个新模块加入到我们项目的 .cursorrules 文件中。你可以直接编辑 .cursorrules 文件在末尾添加 # --- Module: project-specific/api-client --- 并粘贴上述内容。更工程化的做法是在 Starter Kit 中为你这个项目类型创建一个自定义模板。 ## 6. 常见问题、调试技巧与进阶玩法 ### 6.1 规则不生效排查指南 即使配置了规则有时 AI 助手的行为也可能不符合预期。以下是排查步骤 1. **检查 .cursorrules 文件位置和名称**确保文件在项目根目录且名称是 **.cursorrules**有点开头复数。这是 Cursor 官方约定的位置。 2. **检查 Cursor 编辑器状态**在 Cursor 中打开命令面板Cmd/Ctrl Shift P输入“Cursor Rules: Show Active Rules”。这会显示当前生效的规则。确认你的规则文件已被加载。 3. **规则语法错误**Cursor 的规则语法虽然宽松但某些格式错误可能导致整条或部分规则被忽略。检查是否有未闭合的代码块、奇怪的缩进或特殊字符。最简单的测试方法是写一条非常具体且简单的规则如“所有变量名必须包含前缀 test_”看 AI 是否遵守。 4. **规则冲突或优先级**如果多个规则冲突AI 的行为可能不可预测。检查你的规则文件中是否有自相矛盾的地方。通常后定义的规则会覆盖先定义的。在 Starter Kit 生成的合并文件中要注意模块的加载顺序。 5. **AI 模型的理解差异**不同的 AI 模型如 Claude 3.5 Sonnet vs GPT-4对同一指令的理解和服从程度可能有细微差别。如果某条规则在 Claude 下工作良好但在 GPT-4 下不行可能需要将指令写得更明确、更不容置疑。 6. **重启 Cursor**有时编辑器状态缓存可能导致规则未更新。尝试重启 Cursor。 ### 6.2 提升规则效能的技巧 1. **使用明确的指令语气**使用“必须”、“禁止”、“应该”等词语比“建议”、“最好”更有效。 2. **提供正反例**这是最重要的技巧之一。对于复杂的规则提供一个“好”的例子和一个“坏”的例子AI 学习的效果会好得多。 3. **利用上下文限定符**你可以用 [FILE: *.ts] 或 [LANGUAGE: javascript] 这样的标记来限定规则的作用范围。例如[FILE: *.test.js] 测试文件名必须以 .test.js 结尾。 这能确保规则只在特定文件上生效避免干扰。 4. **规则分组与注释**良好的注释和结构不仅方便人阅读似乎也能帮助 AI 更好地理解规则的意图和边界。 5. **迭代优化**将规则集视为一个“可训练”的配置文件。如果发现 AI 在某个场景下总是犯错就针对那个场景添加或修改一条更具体的规则。这是一个持续的过程。 ### 6.3 进阶玩法动态规则与上下文感知 jamesships/cursor-rules-starter-kit 的架构为更高级的用法打开了大门 - **环境感知规则**通过脚本可以根据 NODE_ENV 或其他环境变量在生成 .cursorrules 时注入不同的规则。例如在开发环境中加入更详细的日志规则在生产环境规则中强调性能和安全。 - **基于 Git 分支的规则**在功能分支上可以启用一些“实验性”或“宽松”的规则如允许临时使用 any 类型而在主分支上则强制执行最严格的规则。 - **与项目配置同步**初始化脚本可以读取项目的 tsconfig.json、eslintrc 等配置文件并自动生成与之兼容的代码风格规则确保 AI 助手和静态检查工具不会给出冲突的建议。 ### 6.4 团队协作与规则治理 在团队中推广使用此 Starter Kit 时需要考虑 1. **中心化规则仓库**将 cursor-rules-starter-kit 仓库作为团队内部的“规则中心”所有人通过 git pull 来更新规则。 2. **规则评审流程**新增或修改核心规则模块base/, languages/, frameworks/应像代码一样发起 Pull Request经过团队评审后方可合并。 3. **项目级规则所有权**project-specific/ 目录下的规则应由各项目团队自行维护但鼓励他们从中心仓库汲取灵感。 4. **新人上手**新成员加入团队时只需在项目下运行 init 脚本就能立即获得与团队完全一致的 AI 辅助编码环境极大降低了上手成本。 jamesships/cursor-rules-starter-kit 的价值远不止于提供一堆现成的规则文本。它提供了一种管理“AI 编码规范”的工程化方法论和工具链。它把原本散乱、临时的 Cursor 规则变成了可版本控制、可模块化组合、可自动化部署的团队资产。对于追求代码质量和开发效率的团队来说投资这样一套基础设施其回报会在项目周期的每一天中体现出来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2602502.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…