当前位置: 首页 > article >正文

10-项目规划测试代码审查实战

10-项目规划、测试、代码审查实战使用 Cursor 完成软件工程全流程项目规划、测试驱动开发、代码审查与质量保障。一、AI 驱动项目管理概述1.1 全流程覆盖项目启动 ↓ 需求分析 → AI 辅助需求拆解 ↓ 技术方案 → AI 生成架构设计 ↓ 任务分解 → AI 生成任务清单 ↓ 开发实现 → AI 辅助编码 ↓ 测试验证 → AI 生成测试、运行测试 ↓ 代码审查 → AI 自动审查 ↓ 文档生成 → AI 生成技术文档 ↓ 项目交付1.2 Cursor 在各阶段的作用阶段Cursor 功能使用场景项目规划Chat 讨论、Agent 生成文档架构设计、技术选型开发实现Agent 多文件编辑、Tab 补全多文件重构、代码生成测试Inline Edit 单文件测试单文件单元测试代码审查Review Selection、单文件审查深度代码审查二、项目规划阶段2.1 需求分析与拆解使用 Cursor Chat 进行需求分析打开 Chat 面板 (CtrlL) 输入 我有一个项目想法做一个在线笔记应用 请帮我分析需求并生成详细的功能清单。Claude 输出结构## 需求分析 ### 核心功能 1. 用户系统 - 注册/登录邮箱密码、OAuth - 个人资料管理 - 密码重置 2. 笔记管理 - 创建/编辑/删除笔记 - 富文本编辑Markdown 支持 - 笔记分类文件夹/标签 - 搜索功能 3. 协作功能 - 笔记分享链接/邀请 - 实时协作编辑 - 评论系统 4. 高级功能 - 版本历史 - 导出PDF、Markdown - 自动保存 - 离线支持 ### 技术选型建议 - 后端FastAPI PostgreSQL - 前端React TypeScript - 实时WebSocket / Socket.io - 部署Docker AWS/GCP2.2 技术方案设计使用 Agent 生成架构文档选中项目目录或新建文件 docs/architecture.md 按 CtrlI (Composer) 输入 基于在线笔记应用的需求生成技术架构文档 1. 系统架构图 2. 数据库设计 3. API 设计 4. 技术栈选型 5. 部署架构生成的架构文档结构# 在线笔记应用 - 技术架构 ## 1. 系统架构┌─────────────────────────────────────────────────┐│ 客户端层 ││ ┌──────────┐ ┌──────────┐ ┌──────────┐ ││ │ Web App │ │ Mobile │ │ Desktop │ ││ │ (React) │ │ (React │ │ (Electron)│ ││ └────┬─────┘ │ Native) │ └────┬─────┘ ││ └─────────┴──────────┴───────┘ │└─────────────────────────────────────────────────┘│ HTTPS↓┌─────────────────────────────────────────────────┐│ 网关层 ││ Nginx / AWS API Gateway │└─────────────────────────────────────────────────┘│↓┌─────────────────────────────────────────────────┐│ 应用层 ││ FastAPI (Python) ││ ┌──────────┐ ┌──────────┐ ┌──────────┐ ││ │ Auth │ │ Notes │ │ Share │ ││ │ Service │ │ Service │ │ Service │ ││ └──────────┘ └──────────┘ └──────────┘ │└─────────────────────────────────────────────────┘│↓┌─────────────────────────────────────────────────┐│ 数据层 ││ ┌──────────────┐ ┌──────────────┐ ││ │ PostgreSQL │ │ Redis │ ││ │ (主数据库) │ │ (缓存) │ ││ └──────────────┘ └──────────────┘ │└─────────────────────────────────────────────────┘## 2. 数据库设计 ### 2.1 用户表 (users) sql CREATE TABLE users ( id SERIAL PRIMARY KEY, email VARCHAR(255) UNIQUE NOT NULL, username VARCHAR(50) UNIQUE NOT NULL, hashed_password VARCHAR(255) NOT NULL, is_active BOOLEAN DEFAULT TRUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );2.2 笔记表 (notes)CREATETABLEnotes(idSERIALPRIMARYKEY,titleVARCHAR(200)NOTNULL,contentTEXT,user_idINTEGERREFERENCESusers(id),folder_idINTEGERREFERENCESfolders(id),is_publicBOOLEANDEFAULTFALSE,created_atTIMESTAMPDEFAULTCURRENT_TIMESTAMP,updated_atTIMESTAMPDEFAULTCURRENT_TIMESTAMP);3. API 设计3.1 认证相关POST /api/v1/auth/register- 用户注册POST /api/v1/auth/login- 用户登录POST /api/v1/auth/refresh- 刷新 Token3.2 笔记管理GET /api/v1/notes- 获取笔记列表POST /api/v1/notes- 创建笔记GET /api/v1/notes/{id}- 获取笔记详情PUT /api/v1/notes/{id}- 更新笔记DELETE /api/v1/notes/{id}- 删除笔记4. 技术栈层次技术后端框架FastAPI 0.100ORMSQLAlchemy 2.0数据库PostgreSQL 15缓存Redis 7认证JWT bcrypt部署Docker Docker Compose### 2.3 任务分解与排期 **生成开发任务清单**选中 docs/tasks.md按 CtrlI (打开 Agent 面板选择 Agent 模式)输入“基于技术架构生成详细的开发任务清单包括任务名称、优先级、预计工时、依赖关系。”生成的任务清单 markdown # 开发任务清单 ## Phase 1: 基础设施 (Week 1) | 任务 | 优先级 | 工时 | 负责人 | 依赖 | |------|--------|------|--------|------| | [ ] 项目初始化 | P0 | 4h | AI | - | | [ ] 数据库设计 | P0 | 4h | AI | - | | [ ] 配置管理 | P0 | 2h | AI | 项目初始化 | | [ ] 日志系统 | P1 | 2h | AI | 项目初始化 | | [ ] Docker 配置 | P1 | 4h | AI | - | ## Phase 2: 用户系统 (Week 1-2) | 任务 | 优先级 | 工时 | 依赖 | |------|--------|------|------| | [ ] User 模型 | P0 | 2h | 数据库设计 | | [ ] JWT 认证 | P0 | 4h | User 模型 | | [ ] 注册 API | P0 | 2h | JWT 认证 | | [ ] 登录 API | P0 | 2h | JWT 认证 | | [ ] 用户资料 API | P1 | 2h | 注册 API | | [ ] 密码重置 | P2 | 4h | 登录 API | ## Phase 3: 笔记功能 (Week 2-3) | 任务 | 优先级 | 工时 | 依赖 | |------|--------|------|------| | [ ] Note 模型 | P0 | 2h | User 模型 | | [ ] Folder 模型 | P0 | 2h | Note 模型 | | [ ] 笔记 CRUD API | P0 | 4h | Note 模型 | | [ ] 文件夹 API | P0 | 3h | Folder 模型 | | [ ] 搜索功能 | P1 | 4h | 笔记 CRUD | | [ ] 标签系统 | P1 | 3h | Note 模型 | ## Phase 4: 高级功能 (Week 4) | 任务 | 优先级 | 工时 | 依赖 | |------|--------|------|------| | [ ] 分享功能 | P1 | 4h | 笔记功能 | | [ ] 版本历史 | P2 | 6h | 笔记功能 | | [ ] 导出功能 | P2 | 4h | 笔记功能 | | [ ] WebSocket 实时协作 | P2 | 8h | 分享功能 | ## Phase 5: 测试与优化 (Week 4-5) | 任务 | 优先级 | 工时 | 依赖 | |------|--------|------|------| | [ ] 单元测试 | P0 | 8h | 所有功能 | | [ ] 集成测试 | P0 | 6h | 单元测试 | | [ ] 性能优化 | P1 | 4h | 测试完成 | | [ ] 部署配置 | P1 | 4h | 优化完成 |三、测试驱动开发3.1 测试策略规划使用 Chat 生成测试策略打开 Chat 面板 (CtrlL) 输入 为在线笔记应用生成测试策略文档包括 1. 测试金字塔单元、集成、E2E 2. 测试覆盖率目标 3. 关键测试场景 4. 测试数据策略 5. CI/CD 中的测试流程 保存为 docs/testing-strategy.md生成的测试策略# 测试策略文档 ## 1. 测试金字塔/\ / \ E2E 测试 (10%) - Playwright /____\ / \ 集成测试 (30%) - pytest TestClient /________\/ \ 单元测试 (60%) - pytest mock/____________\## 2. 覆盖率目标 | 模块 | 单元测试 | 集成测试 | 总覆盖率 | |------|----------|----------|----------| | models | 90% | - | 90% | | services | 85% | 70% | 95% | | routers | 80% | 80% | 95% | | utils | 90% | - | 90% | ## 3. 关键测试场景 ### 3.1 认证模块 - [ ] 用户注册成功 - [ ] 注册时邮箱已存在 - [ ] 登录成功 - [ ] 登录时密码错误 - [ ] Token 过期处理 ### 3.2 笔记模块 - [ ] 创建笔记成功 - [ ] 创建笔记时标题为空 - [ ] 更新自己的笔记 - [ ] 更新他人的笔记权限检查 - [ ] 删除笔记 - [ ] 搜索笔记 ### 3.3 并发场景 - [ ] 同时编辑同一笔记 - [ ] 高并发下的数据一致性3.2 生成测试框架代码使用 Agent 生成测试基础设施选中 tests/conftest.py 按 CtrlI (Composer) 输入 生成测试基础设施代码 1. pytest fixtures 2. 测试数据工厂 3. 测试工具函数 4. 异步数据库支持生成的conftest.py# tests/conftest.pyimportasyncioimportpytestimportpytest_asynciofromhttpximportAsyncClientfromsqlalchemy.ext.asyncioimportAsyncSession,create_async_enginefromsqlalchemy.ormimportsessionmakerfromapp.mainimportappfromapp.databaseimportBase,get_dbfromapp.models.userimportUserfromapp.utils.securityimportget_password_hash# 测试数据库TEST_DATABASE_URLpostgresqlasyncpg://test:testlocalhost/test_dbenginecreate_async_engine(TEST_DATABASE_URL)TestingSessionLocalsessionmaker(engine,class_AsyncSession,expire_on_commitFalse)pytest_asyncio.fixture(scopesession)defevent_loop():Create an instance of the default event loop for each test case.loopasyncio.get_event_loop_policy().new_event_loop()yieldloop loop.close()pytest_asyncio.fixture(scopesession,autouseTrue)asyncdefsetup_database():创建测试数据库表asyncwithengine.begin()asconn:awaitconn.run_sync(Base.metadata.create_all)yieldasyncwithengine.begin()asconn:awaitconn.run_sync(Base.metadata.drop_all)pytest_asyncio.fixtureasyncdefdb_session():获取测试数据库会话asyncwithTestingSessionLocal()assession:yieldsession# 清理数据awaitsession.rollback()pytest_asyncio.fixtureasyncdefasync_client(db_session):获取测试客户端asyncdefoverride_get_db():yielddb_session app.dependency_overrides[get_db]override_get_dbasyncwithAsyncClient(appapp,base_urlhttp://test)asclient:yieldclient app.dependency_overrides.clear()pytest_asyncio.fixtureasyncdeftest_user(db_session):创建测试用户userUser(emailtestexample.com,usernametestuser,hashed_passwordget_password_hash(testpassword),is_activeTrue)db_session.add(user)awaitdb_session.commit()awaitdb_session.refresh(user)returnuserpytest_asyncio.fixtureasyncdefauth_headers(async_client,test_user):获取认证 headersresponseawaitasync_client.post(/api/v1/auth/login,json{username:test_user.username,password:testpassword})tokenresponse.json()[access_token]return{Authorization:fBearer{token}}3.3 单文件单元测试使用 Inline Edit 生成单元测试打开 src/routers/auth.py 选中 auth 相关代码 按 CtrlK (Inline Edit) 输入 为这段代码生成 pytest 单元测试 测试注册成功、注册失败、登录成功、登录失败场景生成的测试示例# tests/test_auth.pyimportpytestfromhttpximportAsyncClientfromsqlalchemy.ext.asyncioimportAsyncSessionfromapp.models.userimportUserpytest.mark.asyncioclassTestAuth:认证模块测试asyncdeftest_register_success(self,async_client:AsyncClient,db_session:AsyncSession):测试用户注册成功# Arrangeuser_data{email:newuserexample.com,username:newuser,password:password123}# Actresponseawaitasync_client.post(/api/v1/auth/register,jsonuser_data)# Assertassertresponse.status_code201dataresponse.json()assertdata[email]user_data[email]assertdata[username]user_data[username]assertidindata# 验证数据库userawaitdb_session.get(User,data[id])assertuserisnotNoneassertuser.emailuser_data[email]asyncdeftest_register_duplicate_email(self,async_client:AsyncClient,test_user:User):测试注册时邮箱已存在# Arrangeuser_data{email:test_user.email,# 已存在的邮箱username:anotheruser,password:password123}# Actresponseawaitasync_client.post(/api/v1/auth/register,jsonuser_data)# Assertassertresponse.status_code400assertemail already existsinresponse.json()[detail].lower()3.4 运行测试与分析在 Cursor 终端中运行测试# 打开终端 (Ctrl)# 运行测试pytest tests/-v--covapp --cov-reportterm-missing --cov-reporthtml# 分析结果# ✓ 45 个测试通过# ✓ 覆盖率: 87%# ⚠ 3 个测试跳过需要 Redis使用 Chat 分析测试结果分析 pytest 测试结果 1. 哪些模块覆盖率不足 2. 提供改进建议 3. 生成缺失测试的代码模板四、代码审查与质量保障4.1 配置自动化代码审查创建检查清单选中 .cursor/code-review-checklist.md 按 CtrlI (Composer) 输入 创建代码审查检查清单包括 1. 功能性检查 2. 代码规范 3. 类型安全 4. 安全性 5. 性能 6. 测试生成的检查清单# 代码审查检查清单 ## 功能性检查 - [ ] 代码是否实现了预期功能 - [ ] 边界条件是否正确处理 - [ ] 错误处理是否完善 - [ ] 日志记录是否适当 ## 代码规范 - [ ] 遵循 PEP8 规范 - [ ] 命名清晰有意义 - [ ] 函数长度合理50 行 - [ ] 类职责单一 ## 类型安全 - [ ] 所有函数有类型注解 - [ ] 复杂类型使用 TypeVar/Generic - [ ] Optional/Union 使用正确 - [ ] mypy 检查通过 ## 安全性 - [ ] 无 SQL 注入风险 - [ ] 无 XSS 漏洞 - [ ] 敏感信息不硬编码 - [ ] 输入验证完善 ## 性能 - [ ] 无 N1 查询问题 - [ ] 大数据集使用分页 - [ ] 缓存使用合理 - [ ] 无内存泄漏风险 ## 测试 - [ ] 单元测试覆盖核心逻辑 - [ ] 边界情况有测试 - [ ] 错误路径有测试 - [ ] 测试可重复运行4.2 单文件深度审查使用 Review Selection打开 src/services/note_service.py 选中 process_notes 函数 右键 → Review Selection 或 Chat 中输入 审查 src/services/note_service.py 中的 process_notes 函数 重点关注性能和错误处理4.3 使用 Agent 批量审查选中 src/ 目录下的所有 Python 文件 按 CtrlI (Composer) 输入 批量审查这些 Python 文件 1. 检查代码规范PEP8 2. 检查类型注解完整性 3. 检查安全漏洞 4. 检查性能问题 5. 生成审查报告生成的审查报告# 代码审查报告 生成时间: 2024-XX-XX 审查范围: src/ 审查标准: PEP8, mypy, security, performance ## 总体评分 | 模块 | 规范 | 类型 | 安全 | 性能 | 综合 | |------|------|------|------|------|------| | models | 95 | 90 | 100 | 95 | 95 | | routers | 85 | 80 | 90 | 85 | 85 | | services | 90 | 85 | 95 | 80 | 87 | | utils | 92 | 88 | 100 | 90 | 92 | ## 发现的问题 ### 高优先级 (必须修复) 1. **src/routers/notes.py:45** - SQL 注入风险 python # 问题代码 query fSELECT * FROM notes WHERE title LIKE %{keyword}% # 建议修复 query SELECT * FROM notes WHERE title LIKE :keyword result await db.execute(query, {keyword: f%{keyword}%})src/services/auth.py:32- 密码明文存储# 问题代码user.passwordpassword# 明文存储# 建议修复user.hashed_passwordget_password_hash(password)中优先级 (建议修复)src/routers/users.py- 缺少错误处理建议添加 try-except 块统一错误响应格式src/services/note_service.py- N1 查询建议使用 joinedload 优化查询低优先级 (可选优化)部分函数缺少文档字符串部分变量命名可以更有意义修复建议运行black src/自动格式化运行mypy src/检查类型添加 bandit 安全检查到 CI为所有 API 路由添加限速### 4.4 自动化质量门禁 **使用 Agent 生成 CI 配置**选中 .github/workflows/quality.yml按 CtrlI (Composer)输入生成 CI/CD 配置包含代码格式检查black, isort代码规范检查flake8类型检查mypy安全检查bandit单元测试pytest覆盖率检查80%生成的 GitHub Actions 配置 yaml # .github/workflows/quality.yml name: Code Quality on: push: branches: [ main, develop ] pull_request: branches: [ main ] jobs: quality: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - name: Set up Python uses: actions/setup-pythonv4 with: python-version: 3.9 - name: Install dependencies run: | pip install -r requirements.txt pip install -r requirements-dev.txt - name: Check code formatting run: | black --check src/ tests/ isort --check-only src/ tests/ - name: Lint with flake8 run: | flake8 src/ tests/ --max-line-length100 - name: Type check with mypy run: | mypy src/ - name: Security check with bandit run: | bandit -r src/ -f json -o bandit-report.json || true - name: Test with pytest run: | pytest tests/ -v --covsrc --cov-reportxml - name: Upload coverage uses: codecov/codecov-actionv3 with: file: ./coverage.xml fail_ci_if_error: true五、完整项目流程示例5.1 项目启动到交付Week 1: 项目规划 ├── Chat 讨论需求 ├── Agent 生成架构文档 └── Agent 生成任务清单 Week 2-3: 开发阶段 ├── Agent 并行开发用户模块 ├── Agent 并行开发笔记模块 └── Inline Edit 生成单元测试 Week 4: 测试与审查 ├── 终端运行所有测试 ├── Agent 批量代码审查 └── Inline Edit 修复问题 Week 5: 文档与交付 ├── Agent 生成 API 文档 ├── Agent 生成部署文档 └── Agent 完善 README5.2 实际开发会话示例会话1项目初始化 打开 Chat (CtrlL) 初始化 FastAPI 项目 notes-app 包含完整目录结构、Docker 配置、CI/CD 会话2需求分析 分析需求在线笔记应用 生成功能清单、用户故事、技术方案 会话3数据库设计 Composer: 设计数据库模型 - User, Note, Folder, Tag, Share 生成 SQLAlchemy 模型和迁移脚本 会话4API 开发 Composer: 并行生成 API 路由 - Auth, Notes, Folders, Tags 包含完整的 CRUD 和权限控制 会话5测试生成 Inline Edit: 为当前文件生成完整的测试套件 会话6代码审查 Review Selection: 审查选中代码的质量 会话7文档生成 Composer: 生成技术文档和 API 文档六、最佳实践总结6.1 项目规划最佳实践分阶段交付每个阶段产出可验证的成果文档先行架构文档、API 文档先于代码任务明确每个任务有清晰的输入输出定义风险评估提前识别技术难点和风险点6.2 测试最佳实践测试先行核心功能先写测试再实现分层测试单元 → 集成 → E2E数据工厂使用工厂模式生成测试数据覆盖率目标核心代码 90%总代码 80%6.3 代码审查最佳实践自动化优先CI 中集成代码检查分层审查AI 初筛 → 人工深度审查问题分级高/中/低优先级修复跟踪确保所有高优先级问题修复七、Cursor vs Claude Code 对比阶段Cursor 优势Claude Code 优势项目规划Composer 可视化编辑CLI 快速生成文档开发实现多文件编辑、Tab 补全批量文件操作测试单文件 Inline Edit批量测试生成代码审查单文件深度 Review批量审查推荐组合复杂架构设计 → Claude Code 生成 → Cursor Composer 细化日常开发 → Cursor 为主批量审查 → Claude Code 为主

相关文章:

10-项目规划测试代码审查实战

10-项目规划、测试、代码审查实战使用 Cursor 完成软件工程全流程:项目规划、测试驱动开发、代码审查与质量保障。一、AI 驱动项目管理概述 1.1 全流程覆盖 项目启动↓ 需求分析 → AI 辅助需求拆解↓ 技术方案 → AI 生成架构设计↓ 任务分解 → AI 生成任务清单↓…...

三相四桥臂APF的双闭环控制的simulink仿真图,用的是Matlab2018a,可以看出

三相四桥臂APF的双闭环控制的simulink仿真图,用的是Matlab2018a,可以看出,控制前电网电流THD值达24%,中线电流10A,经过PID控制以后降低到了5%以下,母线电压稳定在800v,中线电流降为2A 随仿真有参考文献最近…...

嵌入式USB MIDI主机栈的空指针防护与实时性增强

1. USBHOST 库概述:面向嵌入式实时系统的 MIDI 主机协议栈增强实现USBHOST 是一个专为 ARM Cortex-M 系统(特别是基于 mbed OS 的 STM32/NXP 平台)设计的轻量级 USB 主机协议栈扩展模块,其核心目标是可靠、低延迟地支持 USB MIDI …...

手把手教你用Proteus给Arduino项目做“硬件体检”:以舵机控制为例

用Proteus为Arduino舵机项目做虚拟压力测试的5个实战技巧 当你花了两天时间焊接好电路板,满怀期待地给舵机通电时,突然闻到一股焦糊味——这种硬件翻车现场每个创客都经历过。仿真工具的价值就在于,它能让你在烧毁第一个元器件之前&#xff0…...

AI 为什么不认识 Excel 文件?——用 SpreadJS 与 GCExcel 打通 AI 与数据的鸿沟

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

Go的strings.Builder:高性能字符串拼接的秘密

Go的strings.Builder:高性能字符串拼接的秘密 在编程中,字符串拼接是常见的操作,但不同的实现方式性能差异巨大。Go语言中的strings.Builder提供了一种高效、灵活的字符串拼接方案,尤其适合处理大量字符串拼接的场景。本文将深入…...

用Python可视化回溯算法:一步步动画演示八皇后问题的92种解法

用Python动画拆解八皇后问题:可视化回溯算法的92种解法 国际象棋盘上的八个皇后如何互不攻击?这个1848年提出的经典问题,曾让数学家高斯误算为76种解法。如今借助Python的可视化能力,我们可以将回溯算法的"试错-回退-重试&qu…...

模拟函数memmove

#include <stdio.h>//怎么实现是从前往后拷贝&#xff0c;还是从后往前拷贝 #include <assert.h>//拷贝函数&#xff0c;核心是可以处理内存重叠的情况 //定义 void *my_memmove(void *dest,const void *source,size_t n) {//准备工作 // assert(dest ! NULL); // …...

企业级AI应用集成实战:基于Dify API与JWT实现员工工号一键登录

企业级AI应用集成实战&#xff1a;基于Dify API与JWT实现员工工号一键登录 当企业内部的AI应用需要与现有身份系统无缝对接时&#xff0c;如何在不影响用户体验的前提下实现安全高效的统一登录&#xff1f;本文将分享一套经过生产验证的后端集成方案&#xff0c;通过Dify的SSO …...

你的CSP策略真的安全吗?手把手教你用Google的Nonce方案改造网站(附Tranco万站爬虫分析)

你的CSP策略真的安全吗&#xff1f;Google Nonce方案实战指南与行业适配性解析 当安全团队在年度审计报告中标注"内容安全策略配置不当"时&#xff0c;许多开发者才惊觉自己的防护体系存在致命漏洞。传统CSP&#xff08;内容安全策略&#xff09;部署的复杂性就像试图…...

Cline与大模型的交互协议(内涵Agent实现原理)

MCP协议 MCP只规定了MCP Host与MCP Server之间的沟通协议&#xff0c;并没有对大模型的输入和输出格式提出要求&#xff1b;因此不同的MCP Host就可能会用不同的格式来与大模型进行沟通&#xff1b;比如Cline就是用的xml。 MCP与大模型的沟通方式&#xff1f;配置中转服务器中转…...

论文精读:突破大模型推理瓶颈:为什么“限制自信”反而能让 AI 更聪明?

论文下载地址&#xff1a;https://arxiv.org/pdf/2502.07154 随着 OpenAI o1 等推理模型的爆火&#xff0c;AI 行业正在经历一场深刻的范式转移&#xff1a;从单纯依赖“扩大训练规模&#xff08;Training-Time Scaling&#xff09;”&#xff0c;正式步入“扩大测试期计算&am…...

GraphRAG硬核实战:打造企业“数字老师傅”

技术隐喻警示&#xff1a;如果你还在用传统的向量数据库试图解决企业级知识传承问题&#xff0c;这就像试图用“关键词搜索”去训练一个博士生——不仅力不从心&#xff0c;更是对算力的极度浪费。 在企业数字化转型的深水区&#xff0c;我们面临着一个极其残酷的**“默会知识”…...

RAGFlow Agent 搞定火电复杂图表

在当前的 LLM 应用层&#xff0c;有一个共识正在逐渐变得 painful&#xff1a;通用大模型在处理垂直领域的“存量知识”时&#xff0c;几乎是无能的。 这种无能尤其体现在工业领域。当我们把目光从“写周报、画海报”的互联网场景移开&#xff0c;投向真正硬核的“火电行业”时…...

Flutter鸿蒙应用集成图片加载与缓存功能

&#x1f525;Flutter鸿蒙应用集成图片加载与缓存功能&#xff08;macOSDevEco Studio&#xff09; 欢迎加入开源鸿蒙跨平台社区&#xff1a;https://openharmonycrossplatform.csdn.net&#x1f4c4; 文章摘要 本文为Flutter for OpenHarmony 跨平台应用开发系列实战文章&…...

利用json-to-ts工具进行转换,放置在typeScript.ts文件中

后端&#xff0c;返回了 100 个字段&#xff0c;现在拿到的那 100 个字段里&#xff0c;里面还有那种深层嵌套的“对象套对象”&#xff0c;利用json-to-ts工具进行转换&#xff0c;然后前端定义后端的response这个返回对象&#xff0c;要怎么定义&#xff0c;是不是要把没有用…...

配置嵌入式Linux系统从NFS启动

配置嵌入式Linux系统从NFS启动 嵌入式Linux开发时&#xff0c;需要频繁将开发的程序下载到嵌入式电路板上运行&#xff0c;尽管采用各种文件传输工具能比较方便的再宿主机和开发电路板之间进行文件传输&#xff0c;但每次操作需要操作略显繁琐。此处记录在开发中经常使用到的嵌…...

永磁同步电机PMSM无感FOC控制:扩展卡尔曼滤波器EKF观测器,代码运行无错,支持无感启动...

永磁同步电机pmsm无感foc控制&#xff0c;观测器采用扩展卡尔曼滤波器ekf&#xff0c;代码运行无错误&#xff0c;支持无感启动&#xff0c;代码移植性强&#xff0c;可以移植到国产mcu上.—— 从“功能”视角看透 ARM 官方 5 套 demo 一、写作目的 很多开发者拿到 CMSIS-DSP 例…...

COMSOL仿真石墨烯吸收器,带视频演示,一步一步教学,原文章来自于一篇二区文章。 图片展示为...

COMSOL仿真石墨烯吸收器&#xff0c;带视频演示&#xff0c;一步一步教学&#xff0c;原文章来自于一篇二区文章。 图片展示为原文献结果&#xff0c;均可复现&#xff0c;视频里面包括设计步骤&#xff0c;可以用来学习操作仿真操作最近在研究石墨烯吸收器的仿真&#xff0c;发…...

永磁同步电机PMSM无感FOC驱动代码功能说明

永磁同步电机pmsm无感foc驱动代码&#xff0c;启动为高频注入&#xff0c;平滑切入观测器高速控制&#xff0c;代码全部手写开源&#xff0c;可以移植到各类mcu上。 附赠高频注入仿真模型一、代码整体架构与应用场景 本文档所分析的代码是一套针对永磁同步电机&#xff08;PMSM…...

[英雄联盟辅助工具] League-Toolkit:提升游戏体验与决策效率的全方位解决方案

[英雄联盟辅助工具] League-Toolkit&#xff1a;提升游戏体验与决策效率的全方位解决方案 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 一、…...

Servo_TCA:基于AVR TCA硬件PWM的零抖动伺服控制库

1. Servo_TCA 库概述&#xff1a;面向现代 AVR 架构的硬件 PWM 伺服控制方案Servo_TCA 是一个专为新一代 8 位 AVR 微控制器设计的高性能伺服驱动库&#xff0c;其核心目标是彻底消除传统软件定时伺服库中普遍存在的脉冲抖动&#xff08;jitter&#xff09;问题。该库并非对 Ar…...

高压电源软启动:从浪涌抑制到系统可靠性的工程实践

1. 高压电源软启动的必要性 第一次见到整流二极管炸裂的场景&#xff0c;至今记忆犹新。那是在一个工业电源调试现场&#xff0c;工程师刚合上电闸就听到"啪"的一声脆响&#xff0c;随后便闻到焦糊味——价值数百元的整流模块瞬间报废。罪魁祸首就是电容滤波电路带来…...

手把手教你用objdump和readelf破解ELF文件:从代码节修改到目标输出

深入解析ELF文件&#xff1a;从代码节定位到二进制修改实战 在Linux系统开发与逆向工程领域&#xff0c;理解ELF(Executable and Linkable Format)文件结构是每位开发者必备的核心技能。ELF作为Unix-like系统标准的可执行文件格式&#xff0c;承载着程序运行的完整信息架构。本…...

ArdTap:Arduino零代码现场调试框架

1. ArdTap&#xff1a;面向嵌入式现场调试的零代码移动配置框架1.1 工程定位与设计哲学ArdTap 是一个专为 Arduino 生态设计的轻量级远程管理库&#xff0c;其核心目标并非替代传统固件开发流程&#xff0c;而是解决嵌入式系统在部署后阶段的现场参数调优、运行状态监控与快速功…...

分层dfs,一种介于dfs与bfs之间的算法

在算法设计的深邃丛林中&#xff0c;深度优先搜索与广度优先搜索如同两条风格迥异的小径。前者沿着一条道路走到黑&#xff0c;不撞南墙不回头&#xff0c;却往往在最优解的门口徘徊——它难以回答"最少需要几步"这样的问题&#xff0c;因为一旦深入某个分支&#xf…...

清北博雅考研|个性化备考服务指南,适配多元考生上岸需求

作为深耕考研辅导领域的老牌机构&#xff0c;清北博雅考研始终以“学员需求为核心”&#xff0c;打破传统辅导模式的局限&#xff0c;立足不同考生的备考痛点&#xff0c;打造“个性化定制实战化提分全维度保障”的专属服务&#xff0c;不搞同质化套路&#xff0c;不做虚假承诺…...

Entries()方法

entries() 方法返回一个迭代器对象&#xff0c;包含数据结构中每个元素的键值对。不同数据结构的用法略有不同。1. 数组的 entries()返回索引和值的键值对const arr [a, b, c]; const iterator arr.entries();console.log(iterator.next().value); // [0, a] console.log(ite…...

SecGPT-14B模型版本管理:无缝升级OpenClaw依赖的安全分析能力

SecGPT-14B模型版本管理&#xff1a;无缝升级OpenClaw依赖的安全分析能力 1. 为什么需要关注模型版本管理 上周我在用OpenClaw自动化处理安全日志时&#xff0c;突然发现几个原本能识别的攻击模式开始出现误判。排查后发现是底层SecGPT-14B模型更新后行为发生了变化——这个经…...

基于三菱PLC和组态王的恒温控制系统:加热炉温度控制设计-含梯形图程序、接线图原理图及IO分配...

基于三菱PLC和组态王恒温控制系统的设计加热炉温度控制 带解释的梯形图程序&#xff0c;接线图原理图图纸&#xff0c;io分配&#xff0c;组态画面三伏天里给车间加热炉做恒温控制&#xff0c;那酸爽就跟抱着暖气片吃火锅似的。今天咱们来聊聊基于三菱FX3U PLC和组态王的温度控…...