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

小程序开发指南

小程序开发指南

目录

  • 1. 小程序开发概述
    • 1.1 什么是小程序
    • 1.2 小程序的优势
    • 1.3 小程序的发展历程
  • 2. 开发准备工作
    • 2.1 选择开发平台
    • 2.2 开发环境搭建
    • 2.3 开发模式选择
  • 3. 小程序开发流程
    • 3.1 项目规划
    • 3.2 界面设计
    • 3.3 代码开发
    • 3.4 基本开发示例
    • 3.5 数据存储
    • 3.6 网络请求
    • 3.7 组件化开发
  • 4. 小程序发布流程
    • 4.1 测试
    • 4.2 提交审核
    • 4.3 发布上线
    • 4.4 版本迭代
  • 5. 小程序开发技巧
    • 5.1 性能优化
    • 5.2 用户体验
    • 5.3 安全考虑
    • 5.4 调试技巧
  • 6. 小程序开发框架
    • 6.1 原生开发
    • 6.2 跨平台框架
    • 6.3 框架选择考虑因素
  • 7. 小程序变现方式
  • 8. 学习资源
    • 8.1 官方文档
    • 8.2 学习社区
    • 8.3 开发工具
    • 8.4 推荐书籍
  • 9. 高级开发主题
    • 9.1 小程序与原生App交互
    • 9.2 小程序与Web交互
    • 9.3 小程序与服务器交互
    • 9.4 小程序与硬件交互
    • 9.5 小程序与AI技术结合
  • 10. 小程序云开发
    • 10.1 什么是云开发
    • 10.2 云开发的优势
    • 10.3 云开发核心能力
    • 10.4 云开发示例
    • 10.5 云开发最佳实践
  • 11. 小程序组件库
    • 11.1 常用组件库
    • 11.2 组件库使用示例
    • 11.3 自定义组件开发
  • 12. 小程序性能优化
    • 12.1 加载性能优化
    • 12.2 渲染性能优化
    • 12.3 网络性能优化
    • 12.4 存储性能优化
    • 12.5 性能监控与分析
  • 13. 小程序开发实战案例
    • 13.1 电商小程序开发
    • 13.2 社交小程序开发
    • 13.3 工具类小程序开发
    • 13.4 企业级小程序开发
  • 14. 小程序开发常见问题与解决方案
    • 14.1 开发环境问题
    • 14.2 性能问题
    • 14.3 兼容性问题
    • 14.4 审核问题
    • 14.5 运营问题

1. 小程序开发概述

1.1 什么是小程序

小程序是一种不需要下载安装即可使用的应用,它实现了"用完即走"的理念,用户扫一扫或搜一下即可打开应用。目前主流的小程序平台包括:

  • 微信小程序
  • 支付宝小程序
  • 百度小程序
  • 字节跳动小程序

1.2 小程序的优势

  • 无需安装:用户无需下载安装,即可使用
  • 即用即走:使用方便,不占用手机存储空间
  • 开发成本低:相比原生App开发,成本更低
  • 更新便捷:无需用户手动更新,开发者可随时更新
  • 跨平台:一次开发,多平台运行
  • 流量红利:依托平台流量,获取用户成本低
  • 社交传播:易于分享,病毒式传播

1.3 小程序的发展历程

  • 2017年1月:微信小程序正式发布
  • 2018年9月:支付宝小程序正式发布
  • 2018年12月:百度智能小程序正式发布
  • 2019年5月:字节跳动小程序正式发布
  • 2020年:小程序生态爆发,各平台竞争加剧
  • 2021年:小程序成为企业数字化转型的重要工具
  • 2022年:小程序与元宇宙、Web3等新技术结合

2. 开发准备工作

2.1 选择开发平台

  • 微信小程序:用户基数最大,生态最完善
  • 支付宝小程序:适合电商、支付相关应用
  • 百度小程序:适合搜索相关应用
  • 字节跳动小程序:适合内容分发类应用

2.2 开发环境搭建

  1. 下载开发工具

    • 微信开发者工具
    • 支付宝小程序开发者工具
    • 百度开发者工具
    • 字节跳动开发者工具
  2. 注册开发者账号

    • 在对应平台注册开发者账号
    • 完成实名认证
    • 获取AppID
  3. 配置开发环境

    • 安装Node.js环境
    • 配置npm或yarn包管理器
    • 安装必要的开发依赖

2.3 开发模式选择

  • 原生开发:使用平台提供的原生API和组件
  • 框架开发:使用跨平台框架如Taro、uni-app等
  • 云开发:使用平台提供的云开发能力
  • 混合开发:结合原生和框架开发的优势

3. 小程序开发流程

3.1 项目规划

  • 确定小程序的功能和定位
  • 设计用户界面和交互流程
  • 规划技术架构和数据存储方案
  • 制定开发计划和里程碑
  • 评估技术难点和解决方案

3.2 界面设计

  • 遵循平台设计规范
  • 设计页面布局和组件
  • 准备UI资源(图标、图片等)
  • 设计交互流程和动画效果
  • 考虑不同设备的适配方案

3.3 代码开发

以微信小程序为例,基本项目结构如下:

├── pages                 # 页面文件夹
│   ├── index             # 首页
│   │   ├── index.js      # 页面逻辑
│   │   ├── index.wxml    # 页面结构
│   │   ├── index.wxss    # 页面样式
│   │   └── index.json    # 页面配置
│   └── ...               # 其他页面
├── components            # 自定义组件
├── utils                 # 工具函数
├── images                # 图片资源
├── app.js                # 小程序逻辑
├── app.json              # 小程序公共配置
├── app.wxss              # 小程序公共样式
└── project.config.json   # 项目配置文件

3.4 基本开发示例

页面结构 (WXML)
<!-- index.wxml -->
<view class="container"><view class="title">{{title}}</view><button bindtap="handleClick">点击按钮</button>
</view>
页面逻辑 (JS)
// index.js
Page({data: {title: '欢迎使用小程序'},onLoad: function() {// 页面加载时执行},handleClick: function() {// 按钮点击事件处理wx.showToast({title: '点击成功',icon: 'success'});}
});
页面样式 (WXSS)
/* index.wxss */
.container {padding: 20px;display: flex;flex-direction: column;align-items: center;
}.title {font-size: 20px;margin-bottom: 20px;
}

3.5 数据存储

  • 本地存储:使用wx.setStorage/wx.getStorage
  • 云存储:使用云开发或自建服务器
  • 数据库:使用云数据库或自建数据库
  • 文件存储:使用云存储或自建文件服务器

3.6 网络请求

// 发起网络请求
wx.request({url: 'https://api.example.com/data',method: 'GET',data: {id: 1},success: function(res) {console.log(res.data);},fail: function(err) {console.error(err);}
});

3.7 组件化开发

// 自定义组件示例
Component({properties: {title: {type: String,value: '默认标题'}},data: {internalData: '组件内部数据'},methods: {handleTap() {this.triggerEvent('customEvent', { data: '传递给父组件的数据' });}}
});

4. 小程序发布流程

4.1 测试

  • 在开发者工具中进行功能测试
  • 真机调试
  • 兼容性测试
  • 性能测试
  • 安全测试
  • 用户体验测试

4.2 提交审核

  • 完善小程序信息
  • 提交审核材料
  • 等待平台审核
  • 处理审核反馈
  • 优化小程序内容

4.3 发布上线

  • 审核通过后发布
  • 设置版本更新策略
  • 监控运行状态
  • 收集用户反馈
  • 制定运营策略

4.4 版本迭代

  • 分析用户反馈
  • 规划新功能
  • 修复已知问题
  • 优化性能体验
  • 定期更新迭代

5. 小程序开发技巧

5.1 性能优化

  • 合理使用分包加载
  • 减少不必要的渲染
  • 优化图片资源
  • 使用缓存减少请求
  • 延迟加载非关键资源
  • 优化JavaScript执行效率
  • 减少页面重绘和回流

5.2 用户体验

  • 添加加载状态提示
  • 优化页面切换动画
  • 提供错误反馈
  • 适配不同屏幕尺寸
  • 优化表单交互体验
  • 提供离线功能支持
  • 优化页面加载速度

5.3 安全考虑

  • 数据加密传输
  • 防止敏感信息泄露
  • 使用HTTPS协议
  • 实现用户身份验证
  • 防止SQL注入和XSS攻击
  • 实现数据备份和恢复机制
  • 遵守相关法律法规

5.4 调试技巧

  • 使用console调试
  • 使用断点调试
  • 使用性能分析工具
  • 使用网络分析工具
  • 使用内存分析工具
  • 使用真机调试功能
  • 使用远程调试功能

6. 小程序开发框架

6.1 原生开发

  • 微信小程序原生开发
  • 支付宝小程序原生开发
  • 百度小程序原生开发
  • 字节跳动小程序原生开发

6.2 跨平台框架

  • Taro:支持React语法,可编译到微信、支付宝、百度、字节跳动等多个平台
  • uni-app:使用Vue.js开发,支持多端发布
  • mpvue:基于Vue.js的小程序开发框架
  • wepy:类Vue语法的小程序开发框架
  • Remax:使用React开发小程序
  • kbone:腾讯开源的小程序同构解决方案
  • chameleon:滴滴开源的多端统一开发框架

6.3 框架选择考虑因素

  • 项目规模和复杂度
  • 团队技术栈和熟悉度
  • 跨平台需求程度
  • 性能和包体积要求
  • 社区活跃度和维护情况
  • 学习曲线和开发效率
  • 长期维护和升级成本

7. 小程序变现方式

  • 广告收入
  • 电商销售
  • 会员订阅
  • 增值服务
  • 导流到App
  • 数据变现
  • 品牌合作
  • 内容付费
  • 游戏内购
  • 服务收费

8. 学习资源

8.1 官方文档

  • 微信小程序官方文档
  • 支付宝小程序官方文档
  • 百度小程序官方文档
  • 字节跳动小程序官方文档

8.2 学习社区

  • 微信开放社区
  • 支付宝开放社区
  • 百度智能小程序社区
  • 字节跳动小程序社区
  • GitHub相关项目
  • 掘金、CSDN等技术社区
  • 小程序开发者论坛

8.3 开发工具

  • 微信开发者工具
  • 支付宝小程序开发者工具
  • 百度开发者工具
  • 字节跳动开发者工具
  • VSCode + 小程序插件
  • 小程序开发脚手架
  • 小程序调试工具

8.4 推荐书籍

  • 《小程序开发实战》
  • 《微信小程序开发指南》
  • 《小程序开发从入门到精通》
  • 《跨平台小程序开发实战》
  • 《小程序设计与运营》
  • 《小程序性能优化实践》
  • 《小程序安全开发指南》

9. 高级开发主题

9.1 小程序与原生App交互

  • 通过URL Scheme实现跳转
  • 通过Universal Links实现跳转
  • 通过App Clip实现轻量级交互
  • 通过小程序码实现跳转
  • 通过分享功能实现跳转

9.2 小程序与Web交互

  • 通过WebView实现交互
  • 通过URL参数传递数据
  • 通过postMessage实现通信
  • 通过Cookie和LocalStorage共享数据
  • 通过OAuth实现身份认证

9.3 小程序与服务器交互

  • RESTful API设计
  • GraphQL API设计
  • WebSocket实时通信
  • 服务器推送技术
  • 微服务架构集成

9.4 小程序与硬件交互

  • 蓝牙设备连接
  • NFC功能使用
  • 摄像头和传感器使用
  • 地理位置服务
  • 设备信息获取

9.5 小程序与AI技术结合

  • 图像识别
  • 语音识别
  • 自然语言处理
  • 机器学习模型集成
  • 智能推荐系统

10. 小程序云开发

10.1 什么是云开发

云开发是一种Serverless架构,开发者无需搭建服务器,即可使用云端能力,包括云函数、云数据库、云存储等。

10.2 云开发的优势

  • 无需搭建服务器
  • 按量计费,成本可控
  • 自动扩缩容,性能稳定
  • 开发效率高,维护成本低
  • 安全性高,由平台保障

10.3 云开发核心能力

  • 云函数:在云端运行的代码
  • 云数据库:一个JSON数据库
  • 云存储:一个文件存储服务
  • 云调用:调用微信开放接口的能力

10.4 云开发示例

// 云函数示例
exports.main = async (event, context) => {const { OPENID } = cloud.getWXContext();const db = cloud.database();// 查询用户数据const userResult = await db.collection('users').where({_openid: OPENID}).get();return {success: true,data: userResult.data};
};

10.5 云开发最佳实践

  • 合理设计数据库结构
  • 优化云函数性能
  • 使用云函数触发器
  • 实现数据缓存策略
  • 控制云资源使用量

11. 小程序组件库

11.1 常用组件库

  • Vant Weapp:有赞前端团队开源的移动端组件库
  • WeUI:微信官方设计团队为微信小程序量身设计
  • ColorUI:专注视觉的小程序组件库
  • Lin UI:简洁美观的小程序组件库
  • Taro UI:基于Taro的多端UI组件库
  • uni-ui:基于uni-app的跨平台UI组件库
  • Ant Design Mini:蚂蚁金服设计团队出品的小程序组件库

11.2 组件库使用示例

// 使用Vant Weapp组件示例
{"usingComponents": {"van-button": "@vant/weapp/button/index","van-field": "@vant/weapp/field/index","van-cell": "@vant/weapp/cell/index","van-cell-group": "@vant/weapp/cell-group/index"}
}

11.3 自定义组件开发

  • 组件生命周期
  • 组件通信方式
  • 组件样式隔离
  • 组件插槽使用
  • 组件事件处理
  • 组件数据监听
  • 组件外部样式类

12. 小程序性能优化

12.1 加载性能优化

  • 合理使用分包加载
  • 预加载关键资源
  • 延迟加载非关键资源
  • 优化图片和资源大小
  • 使用CDN加速资源加载
  • 实现骨架屏加载
  • 优化首屏加载时间

12.2 渲染性能优化

  • 减少不必要的渲染
  • 使用虚拟列表
  • 优化长列表性能
  • 减少页面重绘和回流
  • 使用CSS动画代替JS动画
  • 优化Canvas渲染
  • 使用WebGL加速渲染

12.3 网络性能优化

  • 合理使用缓存
  • 合并请求减少网络请求
  • 使用数据预加载
  • 实现断点续传
  • 优化请求超时处理
  • 实现请求重试机制
  • 使用HTTP/2协议

12.4 存储性能优化

  • 合理使用本地存储
  • 实现数据分片存储
  • 定期清理无用数据
  • 优化数据库查询
  • 实现数据压缩
  • 使用索引优化查询
  • 实现数据同步策略

12.5 性能监控与分析

  • 使用性能监控工具
  • 分析页面加载时间
  • 分析JavaScript执行时间
  • 分析网络请求时间
  • 分析渲染性能
  • 分析内存使用情况
  • 实现性能数据上报

13. 小程序开发实战案例

13.1 电商小程序开发

  • 商品展示与搜索
  • 购物车与订单管理
  • 支付与物流集成
  • 用户中心与会员体系
  • 营销活动与优惠券
  • 数据分析与运营

13.2 社交小程序开发

  • 用户注册与登录
  • 内容发布与展示
  • 评论与互动功能
  • 私信与通知系统
  • 用户关系与关注
  • 内容推荐与算法

13.3 工具类小程序开发

  • 文件处理与转换
  • 计算器与单位换算
  • 日历与提醒功能
  • 地图与导航服务
  • 翻译与语言工具
  • 健康与生活助手

13.4 企业级小程序开发

  • 企业内部管理系统
  • 客户关系管理(CRM)
  • 供应链管理系统
  • 人力资源管理系统
  • 财务管理系统
  • 数据分析与报表

14. 小程序开发常见问题与解决方案

14.1 开发环境问题

  • 开发工具安装与配置
  • 依赖包安装与版本冲突
  • 编译与构建错误
  • 真机调试问题
  • 开发环境与生产环境差异

14.2 性能问题

  • 页面加载缓慢
  • 列表滚动卡顿
  • 内存占用过高
  • 网络请求超时
  • 图片加载优化
  • 动画性能问题

14.3 兼容性问题

  • 不同机型适配
  • 不同系统版本兼容
  • 不同小程序平台差异
  • 不同网络环境适配
  • 不同分辨率适配

14.4 审核问题

  • 内容合规性审核
  • 功能完整性审核
  • 用户体验审核
  • 隐私政策审核
  • 版权与知识产权审核

14.5 运营问题

  • 用户增长与留存
  • 活跃度提升
  • 转化率优化
  • 用户反馈处理
  • 数据分析与决策
  • 版本迭代策略

相关文章:

小程序开发指南

小程序开发指南 目录 1. 小程序开发概述 1.1 什么是小程序1.2 小程序的优势1.3 小程序的发展历程 2. 开发准备工作 2.1 选择开发平台2.2 开发环境搭建2.3 开发模式选择 3. 小程序开发流程 3.1 项目规划3.2 界面设计3.3 代码开发3.4 基本开发示例3.5 数据存储3.6 网络请求3.7 …...

RCE漏洞学习

1&#xff0c;What is RCE&#xff1f; 在CTF&#xff08;Capture The Flag&#xff09;竞赛中&#xff0c;RCE漏洞指的是远程代码执行漏洞&#xff08;Remote Code Execution&#xff09;。这类漏洞允许攻击者通过某种方式在目标系统上执行任意代码&#xff0c;从而完全控制目…...

青少年编程考试 CCF GESP图形化编程 三级认证真题 2025年3月

图形化编程 三级 2025 年 03 月 一、单选题&#xff08;共 15 题&#xff0c;每题 2 分&#xff0c;共 30 分&#xff09; 1、2025 年春节有两件轰动全球的事件&#xff0c;一个是 DeepSeek 横空出世&#xff0c;另一个是贺岁 片《哪吒 2》票房惊人&#xff0c;入了全球票房榜…...

一、绪论(Introduction of Artificial Intelligence)

写在前面&#xff1a; 老师比较看重的点&#xff1a;对问题的概念本质的理解&#xff0c;不会考试一堆运算的东西&#xff0c;只需要将概念理解清楚就可以&#xff0c;最后一个题会出一个综合题&#xff0c;看潜力&#xff0c;前面的部分考的不是很深&#xff0c;不是很难&…...

多模态大语言模型arxiv论文略读(十五)

## Jailbreaking GPT-4V via Self-Adversarial Attacks with System Prompts ➡️ 论文标题&#xff1a;Jailbreaking GPT-4V via Self-Adversarial Attacks with System Prompts ➡️ 论文作者&#xff1a;Yuanwei Wu, Xiang Li, Yixin Liu, Pan Zhou, Lichao Sun ➡️ 研究机…...

漏洞报告:多短视频平台时间差举报滥用漏洞

漏洞标题&#xff1a;跨平台内容发布时序漏洞导致的恶意举报攻击向量 漏洞类型&#xff1a;逻辑缺陷/滥用机制 漏洞等级&#xff1a;中高风险 漏洞描述&#xff1a; 攻击者可利用多平台内容发布时间差&#xff0c;伪造原创证明对合法内容发起恶意举报。该漏洞源于平台间缺乏发…...

【LINUX】学习宝典

一.Linux系统常用单词翻译 1.new folder 新建文件夹 2.paste 粘贴 3.select all 全选 4.open in terminal 打开终端/命令行 5.keep aligned 保持对齐 6.organize deaktop by name按名称组织桌面 7.change background更改背景 8.cancel 取消 9.create创造 创建 10.wal…...

青少年编程考试 CCF GESP图形化编程 四级认证真题 2025年3月

图形化编程 四级 2025 年 03 月 一、单选题&#xff08;共 10 题&#xff0c;每题 2 分&#xff0c;共 30 分&#xff09; 1、2025 年春节有两件轰动全球的事件&#xff0c;一个是 DeepSeek 横空出世&#xff0c;另一个是贺岁片《哪吒 2》票房惊人&#xff0c;入了全球票房榜…...

学习海康VisionMaster之平行线查找

一&#xff1a;进一步学习了 今天学习下VisionMaster中的平行线查找&#xff0c;这个还是拟合直线的衍生应用&#xff0c;可以同时测量两条线段&#xff0c;输出中线 二&#xff1a;开始学习 1&#xff1a;什么是平行线查找&#xff1f; 按照传统的算法&#xff0c;必须是开两…...

小甲鱼第004讲:变量和字符串(下)| 课后测试题及答案

问答题: 0. 请问下面代码有没有毛病&#xff0c;为什么? 请问下面代码为什么会出错&#xff0c;应该如何解决&#xff1f; 答:这是由于在字符串中&#xff0c;反斜杠()会与其随后的字符共同构成转义字符。 为了避免这种不测情况的发生&#xff0c;我们可以在字符串的引号前面…...

2025 蓝桥杯省赛c++B组个人题解

声明 本题解为退役蒻苟所写&#xff0c;不保证正确性&#xff0c;仅供参考。 花了大概2个半小时写完&#xff0c;感觉比去年省赛简单&#xff0c;难度大概等价于 codeforces dv4.5 吧 菜鸡不熟悉树上背包&#xff0c;调了一个多小时 题目旁边的是 cf 预测分 所有代码均以通…...

2025蓝桥杯算法竞赛深度突破:创新题型与高阶策略全解析

一、新型算法范式实战 1.1 元启发式算法应用&#xff08;预测难度&#xff1a;★★★★&#xff09; 题目场景&#xff1a;星际货物装载 需在飞船载重限制下选择最优货物组合&#xff0c;引入遗传算法解决NP-Hard问题&#xff1a; 染色体编码&#xff1a;二进制串表示货物选择…...

网络流量管理-流(Flow)

1. 传统网络的问题&#xff1a;快递员送信模式 想象你每天要寄100封信给同一个朋友&#xff0c;传统网络的处理方式就像一个固执的快递员&#xff1a; 每封信都单独处理&#xff1a;检查地址、规划路线、盖章、装车…即使所有信的目的地、收件人都相同&#xff0c;也要重复100…...

Spring Boot对接马来西亚股票数据源API

随着对东南亚市场的兴趣日益增长&#xff0c;获取马来西亚股票市场的实时和历史数据变得尤为重要。本文将指导您如何使用Spring Boot框架对接一个假定的马来西亚股票数据源API&#xff08;例如&#xff0c;StockTV API&#xff09;&#xff0c;以便开发者能够轻松访问和处理这些…...

MySQL 面经

1、什么是 MySQL&#xff1f; MySQL 是一个开源的关系型数据库&#xff0c;现在隶属于 Oracle 公司。是我们国内使用频率最高的一种数据库&#xff0c;我本地安装的是比较新的 8.0 版本。 1.1 怎么删除/创建一张表&#xff1f; 可以使用 DROP TABLE 来删除表&#xff0c;使用…...

【Flink运行时架构】作业提交流程

本文介绍在单作业模式下Flink提交作业的具体流程&#xff0c;如下图所示。 客户端将作业提交给YARN的RM&#xff1b;YARN的RM启动Flink JobManager&#xff0c;并将作业提交给JobMaster&#xff1b;JobMaster向Flink内置的RM请求slots&#xff1b;Flink内置的RM向YARN RM请求…...

【AutoTest】自动化测试工具大全(Java)

&#x1f60a; 如果您觉得这篇文章有用 ✔️ 的话&#xff0c;请给博主一个一键三连 &#x1f680;&#x1f680;&#x1f680; 吧 &#xff08;点赞 &#x1f9e1;、关注 &#x1f49b;、收藏 &#x1f49a;&#xff09;&#xff01;&#xff01;&#xff01;您的支持 &#x…...

当DRAM邂逅SSD:新型“DRAM+”存储技术来了!

在当今快速发展的科技领域&#xff0c;数据存储的需求日益增长&#xff0c;对存储设备的性能和可靠性提出了更高的要求。传统DRAM以其高速度著称&#xff0c;但其易失性限制了应用范围&#xff1b;而固态硬盘SSD虽然提供非易失性存储&#xff0c;但在速度上远不及DRAM。 为了解…...

【算法】快速排序

算法系列六&#xff1a;快速排序 一、快速排序的递归探寻 1.思路 2.书写 3.搭建 3.1设计过掉不符情况&#xff08;在最底层时&#xff09; 3.2查验能实现基础结果&#xff08;在最底层往上点时&#xff09; 3.3跳转结果继续往上回搭 4.实质 二、快速排序里的基准排序 …...

Python快速入门指南:从零开始掌握Python编程

文章目录 前言一、Python环境搭建&#x1f94f;1.1 安装Python1.2 验证安装1.3 选择开发工具 二、Python基础语法&#x1f4d6;2.1 第一个Python程序2.2 变量与数据类型2.3 基本运算 三、Python流程控制&#x1f308;3.1 条件语句3.2 循环结构 四、Python数据结构&#x1f38b;…...

机器学习中的数学(PartⅡ)——线性代数:2.1线性方程组

概述&#xff1a; 现实中很多问题都可被建模为线性方程组问题&#xff0c;而线性代数为我们提供了解决这类问题的工具。先看两个例子&#xff1a; 例子1&#xff1a; 一家公司有n个产品&#xff0c;分别是&#xff0c;生产上述产品需要m种原料&#xff0c;每个产品需要其中一…...

大模型上下文协议MCP详解(2)—核心功能

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 标准化上下文交互技术 1.1 实时数据接入能力 MCP(Model Context Protocol)通过标准化的接口,为 AI 模型提供了强大的实时数据接入能力,使其能够快速获取和处理来自不同数据源的实时信息。…...

检测到目标URL存在http host头攻击漏洞

漏洞描述 修复措施 方法一: nginx 的 default_server 指令可以定义默认的 server 去处理一些没有匹配到 server_name 的请求,如果没有显式定义,则会选取第一个定义的 server 作为 default_server。 server {listen 80 default_server; …...

【 Beautiful Soup (bs4) 详解】

引言 Beautiful Soup 是 Python 最流行的 HTML/XML 解析库&#xff0c;能够从复杂的网页文档中高效提取数据。以下是其核心知识点及示例代码。 一、库简介 1. 核心模块 BeautifulSoup&#xff1a;主类&#xff0c;用于构建文档树结构Tag&#xff1a;表示 HTML/XML 标签的对象…...

Cuto壁纸 2.6.9 | 解锁所有高清精选壁纸,无广告干扰

Cuto壁纸 App 提供丰富多样的壁纸选择&#xff0c;涵盖动物、风景、创意及游戏动漫等类型。支持分类查找与下载&#xff0c;用户可轻松将心仪壁纸设为手机背景&#xff0c;并享受软件内置的编辑功能调整尺寸。每天更新&#xff0c;确保用户总能找到新鲜、满意的壁纸。 大小&am…...

人工智能之数学基础:复矩阵

本文重点 复矩阵是线性代数中以复数为元素的矩阵,是实矩阵在复数域上的自然推广。与实矩阵相比,复矩阵在数学性质、运算规则和应用场景上具有独特性,尤其在量子力学、信号处理、控制理论等领域发挥关键作用。 复矩阵的定义与表示 定义:复矩阵指的是元素含有复数的矩阵。…...

numpy初步掌握

文章目录 一、前言二、概述2.1 安装2.2 基础 三、数组3.1 数组创建3.1.1 从已有数据创建3.1.2 创建特殊值数组3.1.3 创建数值范围数组3.1.4 随机数组生成3.1.5 其他 3.2 数组属性 四、数组操作4.1 索引/切片4.2 数组遍历4.3 修改形状4.4 更多 五、数组运算5.1 常规运算5.2 广播…...

unity曲线射击

b站教程 using UnityEngine; using System.Collections;public class BallLauncher : MonoBehaviour {public float m_R;public NewBullet m_BulletPre;public Transform m_Target;private void Start(){StartCoroutine(Attack());}private void OnDestroy(){StopAllCoroutine…...

[特殊字符] 各领域 Dummy 开关实现方式大集合

涵盖硬件、软件、工业控制、游戏开发及网络虚拟化场景&#xff1a; &#x1f50c; 1. 电子 / 硬件工程 &#x1f6e0;️ (1) 物理替代方案 &#x1f9f2; 跳线帽&#xff08;Jumper&#xff09;或短路块 &#x1f449; 模拟开关“开/关”状态 ✅ 示例&#xff1a;开发板上的 B…...

深度解析基于 Web Search MCP的Deep Research 实现逻辑

写在前面 大型语言模型(LLM)已成为我们获取信息、生成内容的重要工具。但它们的知识大多截止于训练数据的时间点,对于需要实时信息、跨领域知识整合、多角度观点比较的深度研究 (Deep Research) 任务,它们往往力有不逮。如何让 LLM 突破自身知识的局限,像人类研究员一样,…...

set 的 contains

语法&#xff1a; set<int> num_set; st.contains(num); 在 C 中&#xff0c;!num_set.contains(num - 1) 这行代码通常用于检查一个集合&#xff08;num_set&#xff09;中是否不存在某个值&#xff08;num - 1&#xff09;。以下是对这行代码的详细解释&#xff1a;…...

深度学习总结(7)

用计算图进行自动微分 思考反向传播的一种有用方法是利用计算图(compu- tation graph)​。计算图是TensorFlow和深度学习革命的核心数据结构。它是一种由运算(比如我们用到的张量运算)构成的有向无环图。下图给出了一个模型的计算图表示。 计算图是计算机科学中一个非常…...

linux网络环境配置

今天我们来了解一下ip获取的两种方式,知道两者的特点,并且学会配置静态ip,那么话不多说,来看. linux网络环境配置. .第一种方式(自动获取): 说明:登录后,通过界面的来设置自动获取ip,特点;Linux启动后会自动获取ip,缺点是每次自动获取的ip地址可能不一样. 第二种方式(指定I…...

SSRF漏洞公开报告分析

文章目录 1. SSRF | 获取元数据 | 账户接管2. AppStore | 版本上传表单 | Blind SSRF3. HOST SSRF一、为什么HOST修改不会影响正常访问二、案例 4. Turbonomic 的 终端节点 | SSRF 获取元密钥一、介绍二、漏洞分析 5. POST | Blind SSRF6. CVE-2024-40898利用 | SSRF 泄露 NTL…...

Java接口深度解析

一、为什么需要接口 接口是Java实现多态的重要机制&#xff0c;核心价值体现在&#xff1a; ​​实现多继承能力​​&#xff1a;突破单继承限制&#xff0c;允许类实现多个接口​​规范系统解耦​​&#xff1a;制定通用标准&#xff0c;隔离实现与调用方​​增强扩展性​​…...

VitePress 项目部署 cloudflare page 提示 npm run build 错误

构建的错误信息如下&#xff1a; 09:52:57.975 ➤ YN0000: Done with warnings in 3s 120ms 09:52:58.072 Executing user command: npm run build 09:52:58.817 npm ERR! Missing script: "build" 09:52:58.818 npm ERR! 09:52:58.818 npm ERR! To see a list of …...

#Hash 模式 vs History 模式

&#x1f4cc; 一、概念对比&#xff1a;Hash 模式 vs History 模式 特性Hash 模式History 模式URL 样式http://example.com/#/homehttp://example.com/home是否刷新页面❌ 不会刷新&#xff08;仅 hash 变化&#xff09;✅ 通过 HTML5 API 控制&#xff0c;不刷新原理window.…...

图像融合(Image Fusion)是什么

图像融合&#xff08;Image Fusion&#xff09;将来自相同类型传感器或成像方式的多幅图像&#xff08;通常内容是一样的&#xff09;进行融合&#xff0c;提高图像清晰度、对比度、空间或时间分辨率。得到比原始图像更清晰或信息更丰富的图像 常见类型&#xff1a; 多时相图…...

基于YOLOV8的中草药识别检测系统(包含数据集+PyQt5界面+系统代码)

一、简介 本项目构建了基于 YOLOV8 深度学习网络模型的中草药识别检测系统。凭借 YOLOV8 卓越的性能&#xff0c;该系统能够高效、精准地识别检测大枣、 百合、黄连 、乌梅、厚朴 、牡蛎 、海马 、罗汉果 、甘草、三七、 通草、 薏苡仁、 枸杞子 、八角茴香等 50种常见植物中草…...

【愚公系列】《高效使用DeepSeek》066-纠纷解决话术

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...

7. 解立方根

题目描述 给定一个正整数 N&#xff0c;请你求 N 的立方根是多少。 输入描述 第 1 行为一个整数 T&#xff0c;表示测试数据数量。 接下来的 T 行每行包含一个正整数 N。 1≤T≤105&#xff0c;0≤N≤105。 输出描述 输出共 T 行&#xff0c;分别表示每个测试数据的答案…...

【愚公系列】《Python网络爬虫从入门到精通》047-验证码识别(第三方验证码识别)

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...

C++指针(二)

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 本篇是介绍数组指针与指针数组的概念&#xff0c;用处&#xff0c;操作以及练习的。点赞破五十&#xff0c;更新下一期。 文章目录 1.数组指针 1.1数组指针的概念 1.2数组指针的用处 1.3数组指针的操…...

C++有关内存的那些事

个人主页&#xff1a;PingdiGuo_guo 收录转栏&#xff1a;C干货专栏 前言 本篇博客是讲解关于C内存的一些知识点的。 文章目录 前言 1.内存函数 1.1memcpy函数 1.2memmove函数 1.3 memset函数 2.各数据类型占用 2.1bool类型 2.2char类型 2.3short、int、long类型及整数…...

4.11时钟延迟

时钟偏差&#xff1a;同一个时钟域内的时钟信号到达数字电路的各个部分&#xff08;寄存器&#xff09;所用的时间差异 信号达到目标寄存器与接收寄存器的时间差【一般默认信号经过电路时间不计&#xff0c;】 图源&#xff1a;优化时钟网络之时钟偏移-CSDN博客 时钟周期是计…...

下列软件包有未满足的依赖关系: python3-catkin-pkg : 冲突: catkin 但是 0.8.10-

下列软件包有未满足的依赖关系: python3-catkin-pkg : 冲突: catkin 但是 0.8.10- 解决&#xff1a; 1. 确认当前的包状态 首先&#xff0c;运行以下命令来查看当前安装的catkin和python3-catkin-pkg版本&#xff0c;以及它们之间的依赖关系&#xff1a; dpkg -l | grep ca…...

ANSI C 和 C89/C90

在嵌入式开发中提到的 ANSI 通常是指 ANSI C 标准&#xff0c;而 C89 是该标准的另一个名称。以下是详细的解释和两者的关系&#xff1a; 1. ANSI C 是什么&#xff1f; ANSI&#xff08;American National Standards Institute&#xff0c;美国国家标准协会&#xff09;在 19…...

git仓库中.git文件夹过大的问题

由于git仓库中存放了较大的文件&#xff0c;之后即使在gitignore中添加&#xff0c;也不会导致.git文件夹变小。 参考1 2 通过 du -d 1 -h查看文件大小 使用 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail…...

【android bluetooth 框架分析 01】【关键线程 6】【主线程与核心子线程协作机制】

主线程与核心子线程的协作机制 一、蓝牙进程中的线程架构全景图 在Android蓝牙协议栈中&#xff0c;线程分工非常明确&#xff0c;形成了一个高效的协作体系。我们可以将其想象成一个医院的组织架构&#xff1a; 主线程&#xff1a;相当于医院的"前台接待处"&#…...

蓝桥杯比赛 python程序设计——神奇闹钟

问题描述 小蓝发现了一个神奇的闹钟&#xff0c;从纪元时间&#xff08;19701970 年 11 月 11 日 00&#xff1a;00&#xff1a;0000&#xff1a;00&#xff1a;00&#xff09;开始&#xff0c;每经过 xx 分钟&#xff0c;这个闹钟便会触发一次闹铃 (纪元时间也会响铃)。这引起…...