研发效能实践:BDD(行为驱动开发)深度解毒手册:从「撕逼大会」到「人见人爱」的协作秘笈
引言:每个研发团队都该养一亩「黄瓜田」——论BDD如何终结「三体人」式需求沟通 🌌
「产品说登录要人脸识别,开发做成了指纹验证,测试按文档测出18个bug,最后发现原型图藏在三年前的邮件附件里…」家人们,这场景熟不熟悉?据《2023全球DevOps现状报告》,因需求理解偏差导致的返工占研发总工时的37.8%!今天咱们就用「黄瓜味」的姿势,把BDD这剂解药灌进你的研发流程!
(偷偷告诉你:某大厂用这套方法,需求评审撕逼率下降85%,缺陷逃逸率降低72%)
第一章:BDD初体验——当「用户故事」穿上「黄瓜语法」的外衣 🥒👗
1.1 从「三体文明」到「人类语言」的需求翻译史
- 原始社会:产品经理的PPT vs 开发的UML图 vs 测试的Excel表 → 完美演绎「鸡同鸭讲」🦆🐔
- 工业革命:Word文档+原型图 → 版本管理堪比《罗生门》📜
- 文明曙光:Gherkin语法横空出世 → 用「Given-When-Then」构建巴别塔🌉
# 这才是人类该写的需求文档!
Feature: 用户登录 场景: 刷脸登录成功 当我在登录页面 并且摄像头检测到人脸 并且系统匹配成功 当我点击"确认登录"按钮 那么应跳转至个人主页 并且显示欢迎语"你好,张小龙"
1.2 BDD三大定律:比牛顿定律更懂程序员的心 🧲
**第一定律(协作守恒): **
需求价值 = 业务目标 × 技术实现 × 验收标准
**第二定律(场景不灭): **
每个功能必须用「活着的场景」描述,禁止出现「假设用户会…」的僵尸需求🧟
**第三定律(黄瓜永动): **
自动化测试覆盖率每提升10%,团队吵架次数下降25%(数据来自GitLab 2023报告)
1.3 银行「智能风控」实战:如何用BDD让监管需求不再「妈见打」 🏦
- 痛点:银保监会的需求文档读起来像《九阴真经》——每个字都认识,连起来看不懂📜
- 解法:
- Step 1:业务专家+开发+测试组成「吃瓜小分队」🍉
- Step 2:用Gherkin重写监管要求(附真实案例片段):
场景大纲: 大额交易风控拦截 当用户单笔转账金额超过<阈值> 并且收款账户不在白名单 并且用户未进行生物认证 当提交转账申请 那么系统应弹窗提示<提示语> 并且冻结该笔交易24小时 例子: | 阈值 | 提示语 | | 50万 | "请前往网点核验身份" | | 100万 | "已触发反洗钱预警" |
- 成果:监管审计一次性通过率从55%→92%,开发小哥再也不用凌晨3点改代码🌙
第二章:BDD落地六式——从「花拳绣腿」到「九阳神功」的进化论 🥋
2.1 第一式:需求捕获「吸星大法」——用实例化需求榨干业务方的知识 🧠💦
- 反例:产品经理说「用户想要更快的马」 → 开发造出「汗血宝马3.0」 → 其实用户要的是汽车🚗
- 正解:
- 3A原则(Arrange-Act-Assert)重构用户故事
- 剪枝技巧:用「规则-场景-实例」三层结构过滤伪需求
# 错误示范:抽象到让人想哭
Feature: 提升用户体验
# 正确姿势:具体到毛孔都能看见
Feature: 搜索结果排序优化 规则: 会员等级影响排序权重 场景: 黄金会员搜索商品 假如当前用户是黄金会员 并且搜索关键词"手机" 当执行搜索操作 那么前3条结果应包含会员专享商品
2.2 第二式:自动化测试「乾坤大挪移」——让Cucumber吃掉你的测试用例 🥒🤖
- 传统模式:测试妹子手工执行200条用例 → 累到怀疑人生 → 提离职💼
- BDD模式:
# 安装cucumber自动化测试框架
npm install @cucumber/cucumber chai --save-dev
# 运行自动化测试
npx cucumber-js features/**/*.feature --format html > report.html
成果对比:
指标 | 手工测试 | BDD自动化 |
---|---|---|
用例执行耗时 | 8小时/轮 | 15分钟/轮 |
缺陷发现率 | 68% | 92% |
测试妹子的笑容 | 😭 | 😎 |
2.3 第三式:持续集成「易筋经」——让Jenkins成为BDD的护法金刚 🤖🔨
- 流水线配置(Jenkinsfile节选):
pipeline { agent any stages { stage('BDD验证') { steps { sh 'npm run cucumber' cucumber buildStatus: 'UNSTABLE', fileIncludePattern: '**/*.json', trendsLimit: 10 } } } post { always { cucumberReport() } }
}
效果:每次代码提交自动触发场景验证,缺陷在30分钟内被捕获,再也不用等到提测日集体火葬场🔥
第三章:避坑指南——BDD实施路上的「九阴白骨爪」 💀
3.1 天坑一:把Feature文件写成产品经理的抒情散文 📚
- 症状:
# 错误示范:适合拿诺贝尔文学奖
Feature: 在星辰大海的征途上 为了让用户感受宇宙的浪漫 作为一名银河系管理员 我希望实现跨星系消息传递
- 解药:使用「角色-目标-价值」模板重构:
Feature: 跨系统消息同步 作为数据中台管理员 我希望同步ERP和CRM系统的订单数据 以便财务部门能实时核对交易记录
3.2 天坑二:Step定义变成「八国联军」——中英混搭的代码灾难 💣
- 反面教材:
When('用户点击{string} button', async (buttonName) => { // 这里混用了中文参数和英文代码... await page.click(`//button[contains(text(), '${buttonName}')]`);
});
- 正确姿势:统一语言战场
When('the user clicks the {string} button', async (buttonText) => { await page.click(`//button[text()='${buttonText}']`);
});
3.3 天坑三:把BDD当作测试工具——忽视「三位一体」协作本质 ☯️
- 血泪案例:某团队测试独揽BDD实施 → 产研拒绝看报告 → 最终沦为面子工程📉
- 破解心法:
- 需求评审会:三方共同编写Feature文件
- 开发阶段:先写失败场景,再实现代码(红→绿→重构循环)
- 验收阶段:业务方亲自点击Cucumber报告
第四章:银行「智能投顾」实战——看BDD如何降服金融需求这头猛兽 🦁
4.1 需求背景:证监会要求「风险测评必须动态适配投资组合」 → 开发团队听到「动态」二字集体崩溃💥
4.2 BDD破局四部曲:
- 业务翻译官:合规专家用Gherkin重写监管条例
场景: R3稳健型用户购买高风险产品 假如用户风险等级是R3 并且查看的基金风险等级为R5 当用户点击"立即购买"按钮 那么弹出风险警示弹窗 并且需要二次人脸识别
- 开发写测试:用失败场景驱动接口设计
// 先让测试失败!
Given('用户风险等级是{string}', async (riskLevel) => { throw new Error('未实现风险等级校验接口');
});
- 测试左移:Pipeline中嵌入风险阈值验证
# GitLab CI配置片段
bdd-risk-check: image: node:18 script: - npm install - npx cucumber-js features/risk_control.feature --tags @critical
- 三方验收:业务方在Cucumber HTML报告中签字确认 ✅
4.3 成果数据:
- 需求理解偏差减少64%
- 监管审计缺陷从21个降至3个
- 开发小哥的发际线得到有效保护(误)👨🦲
第五章:BDD工具链全家桶——老司机の秋名山漂移套装 🚗💨
5.1 核心装备
- Cucumber:BDD届的AK47,支持10+语言
- SpecFlow:.NET党的福音,Visual Studio插件一键生成代码
- Behave:Pythonic风格,适合AI项目
5.2 辅助神器
- Living Documentation:把Feature文件变成动态文档网站(附GitBook集成教程)
- Cucumber Reports:生成让老板惊艳的HTML报告(支持自定义Logo和CSS)
- BDD Mock Server:用Feature文件自动生成API Mock数据(附OpenAPI规范转换脚本)
5.3 工行同款配置
# BDD规范
1. ‌**Feature文件管理**‌ - 按业务域分目录(支付/风控/营销) - 命名规则:业务域_功能点_v版本号.feature
2. ‌**步骤复用规范**‌ - 公共步骤放入shared_steps目录 - 禁止出现超过3个参数的步骤
3. ‌**CI/CD集成**‌ - 关键路径场景每日定时执行 - 高风险场景阻塞代码合并
终章:当BDD遇见AI——未来已来的「人机协作」模式 🤖👫
- AI生成Feature文件:ChatGpt秒变业务分析师
- 智能场景推荐:根据代码变更自动建议测试用例
- 自愈型测试:失败用例自动分析根因并提交PR修复
图片来源网络
相关文章:
研发效能实践:BDD(行为驱动开发)深度解毒手册:从「撕逼大会」到「人见人爱」的协作秘笈
引言:每个研发团队都该养一亩「黄瓜田」——论BDD如何终结「三体人」式需求沟通 🌌 「产品说登录要人脸识别,开发做成了指纹验证,测试按文档测出18个bug,最后发现原型图藏在三年前的邮件附件里…」家人们…...
【第40节】windows编程:仿造MFC版本QQ安全卫士
目录 前言 一、实现功能 二、附加功能 三、开发环境 四、数据库简单字段设计 五、代码架构 六、软件界面 七、功能架构 八、部分功能截图 九、相关实现细节概要 9.1 获取文件信息 9.2 清理电脑垃圾信息 9.2.1 回收站 9.2.2 清理指定数据下的文件 9.3 数据库与网…...
BOE(京东方)旗下控股子公司“京东方能源”成功挂牌新三板 以科技赋能零碳未来
2025年4月8日,BOE(京东方)旗下控股子公司京东方能源科技股份有限公司(以下简称“京东方能源”)正式通过全国中小企业股份转让系统审核,成功在新三板挂牌(证券简称:能源科技,证券代码:874526),成为BOE(京东方)自物联网转型以来首个独立孵化并成功挂牌的子公司。此次挂牌是BOE(京…...
【汽车产品开发项目管理——端到端的汽车产品诞生流程】
MPU:集成运算器、寄存器和控制器的中央处理器芯片 MCU:微控制单元,将中央处理器CPU、存储器ROM/RAM、计数器、IO接口及多种外设模块集成在单一芯片上的微型计算机系统。 汽车产品开发项目属性:临时性、独特性、渐进明细性、以目标…...
Visual Studio 2019 配置VTK9.3.1
文章目录 参考博客1、 VTK下载和编译2、vs2019配置vtk9.3.1参考博客 Visual Studio 2022 配置VTK9.3.0 1、 VTK下载和编译 见博客 CMake编译VTK 2、vs2019配置vtk9.3.1 新建一个项目 写入以下代码 #include <vtkActor.h> #include <vtkAssembly.h> #include…...
【含文档+PPT+源码】基于小程序的智能停车管理系统设计与开发
项目视频介绍: 毕业作品基于小程序的智能停车管理系统设计与开发 课程简介: 本课程演示的是一款基于小程序的智能停车管理系统设计与开发,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:…...
科技自立+产业周期:透视人工智能的配置机遇
最近,全球市场因关税政策调整引发震荡,科技板块波动尤为明显。在此背景下,中国人工智能产业经历了一轮回调。 不过,《一点财经》注意到,4月9日上证科创板人工智能指数一度上涨3.7%。拉长周期看,Wind数据显…...
linux网络配置
今天我们来了解一下linux的网络配置,这个是我们进行网络传输的基础,保证网络资源的使用的手段.那么来看. 网络配置原理图: 查看网络ip和网关 windows:ipconfig linux:ifconfig ping测试主机之间网络联通性 ⭐️ip地址要在同一个网段下才…...
机器学习 | 强化学习方法分类汇总 | 概念向
文章目录 📚Model-Free RL vs Model-Based RL🐇核心定义🐇核心区别 📚Policy-Based RL vs Value-Based RL🐇核心定义🐇 核心区别 📚Monte-Carlo update vs Temporal-Difference update…...
git仓库迁移包括提交记录日志
网上找了很多资料都不好用,直到看到一个亲测有效后,整理如下: 1、进入仓库目录下,并且切换到要迁移的分支上 前提是你本地已有旧仓库的代码;如果没有的话,先拉取。 2、更改仓库地址 git remote set-url …...
Docker部署.NetCore8项目
在VS.net新建.netCore8项目,生成项目的发布文件,之后添加Dockerfile,内容如下: FROM mcr.microsoft.com/dotnet/aspnet:8.0 # 设置工作目录 WORKDIR /app # 挂载临时卷(类似于 VOLUME /tmp) VOLUME /tmp …...
xv6部分源码阅读-1
xv6部分源码阅读 前言 在lab2中,我们会为了完成attack这个实验,而花费大量的时间去阅读相关的系统调用源码,以此来分析出我们最终secret所在的页表的位置,而我写lab2中,重点并没有关注其中的逻辑关系,有很…...
CentOS中离线安装DockerCompos并用其部署Rabbitmq(使用离线导入导出docker镜像方式)
场景 DockerDockerCompose实现部署jenkins,并实现jenkinsfile打包SpringBootVue流水线项目过程详解、踩坑记录(附镜像资源、离线包资源下载): DockerDockerCompose实现部署jenkins,并实现jenkinsfile打包SpringBootVue流水线项目过程详解、踩坑记录(附镜像资源、离…...
基于 OpenHarmony 5.0 的星闪轻量型设备应用开发——Ch2 OpenHarmony LiteOS-M 内核应用开发
写在前面: 此篇是系列文章《基于 OpenHarmony5.0 的星闪轻量型设备应用开发》的第 2 章。本篇介绍了如何在 OpenHarmony 5.0 框架下,针对 WS63 进行 LiteOS-M 内核应用工程的开发。 为了方便读者学习,需要OpenHarmony 5.0 WS63 SDK 的小伙伴可…...
2025年4月9日-华为暑期实习-第二题-200分
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 02. 智能导航系统 问题描述 K小姐生活在一个被称为"未来之城"的智能城市,这个城市拥有高效的无人驾驶运输网络。城市内的智能车辆可以在不同的交通枢纽之间穿行,每个枢…...
抖音视频下载工具
抖音视频下载工具 功能介绍 这是一个基于Python开发的抖音视频下载工具,可以方便地下载抖音平台上的视频内容。 主要特点 支持无水印视频下载自动提取视频标题作为文件名显示下载进度条支持自动重试机制支持调试模式 使用要求 Python 3.10Chrome浏览器必要的P…...
基于大模型预测儿童急性淋巴细胞白血病诱导达完全缓解患者综合治疗方案研究报告
目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 国内外研究现状 二、儿童急性淋巴细胞白血病及大模型相关理论基础 2.1 儿童急性淋巴细胞白血病概述 2.2 大模型技术原理及特点 三、大模型在术前评估中的应用 3.1 患者基本信息与病情数据收集 3.2 大模型对病情严…...
项目合同从专家到小白
文章目录 按项目范围划分项目总承包合同项目单项承包合同项目分包合同 按项目付款方式划分总价合同固定总价合同总价加激励费用合同(FPIF)总价加经济价格调整合同订购单 \ 单边合同 成本补偿合同工料合同(混合型) 基础概念目标成本…...
【windows10】基于SSH反向隧道公网ip端口实现远程桌面
【windows10】基于SSH反向隧道公网ip端口实现远程桌面 1.背景2.SSH反向隧道3.远程连接电脑 1.背景 Windows 10远程桌面协议的简称是RDP(Remote Desktop Protocol)。 RDP是一种网络协议,允许用户远程访问和操作另一台计算机。 远程桌面功…...
学习海康VisionMaster之四边形查找
一:进一步学习了 今天学习下VisionMaster中的四边形查找,这个还是拟合直线的衍生应用,可以同时测量四条直线并且输出交点或者判定是否有交点 二:开始学习 1:什么是四边形查找? 按照传统的算法,…...
菊风RTC 2.0 开发者文档正式发布,解锁音视频新体验!
重磅发布! 开发者们,菊风实时音视频2.0文档已正式发布上线,为您提供更清晰、更高效的开发支持!让菊风实时音视频2.0为您的音视频应用加速~ 菊风实时音视频2.0聚焦性能升级、体验升级、录制服务升级,助力视频通话、语…...
用Python和OpenCV开启图像处理魔法之旅
你是否曾好奇计算机是如何“看懂”这个世界的?从人脸识别到自动驾驶,计算机视觉技术正日益渗透到我们的生活中。而 OpenCV (Open Source Computer Vision Library),作为一个强大的开源计算机视觉库,正是我们探索这个奇妙世界的强大…...
初识MySQL · 复合查询(内外连接)
目录 前言: 基本查询回顾 笛卡尔积和子查询 笛卡尔积 内外连接 子查询 单行子查询 多行子查询 多列子查询 from中使用子查询 合并查询 前言: 在前文我们学习了MySQL的基本查询,就是简单的套用了select语句,最多不过是…...
Devops系列之对接Gerrit的设计与实现(三)-- Java编程实现
一、背景 上文讲述了如何使用shell命令实现创建gerrit项目,本文介绍如何使用java语言编程实现。 二、java语言实现 1、引入jar包 <dependency><groupId>com.urswolfer.gerrit.client.rest</groupId><artifactId>gerrit-rest-java-client…...
深入理解全排列算法:DFS与回溯的完美结合
全排列问题是算法中的经典问题,其目标是将一组数字的所有可能排列组合列举出来。本文将详细解析如何通过深度优先搜索(DFS)和回溯法高效生成全排列,并通过模拟递归过程帮助读者彻底掌握其核心思想。 问题描述 给定一个正整数 n&a…...
服务器(一种管理计算资源的计算机)
服务器是在网络环境中提供计算能力并运行软件应用程序的特定IT设备,它在网络中为其他客户机(如个人计算机、智能手机、ATM机等终端设备)提供计算或者应用服务, 一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。服务器相比普…...
时态--02--一般过去时
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一般过去时1.肯定句am/is — wasare — were 2.否定句3.⼀般疑问句4.特殊疑问句5.there be 过去式 practice过去分词 一般过去时 1.肯定句 am/is — was are — wer…...
WSA(Windows Subsystem for Android)安装LSPosed和应用教程
windows安卓子系统WSA的Lsposed和shamiko的安装教程 WSA(Windows Subsystem for Android)安装LSPosed和应用教程 一、环境准备 在开始之前,请确保: 已经安装好WSA(Windows Subsystem for Android)已经安装好ADB工具下载好LSPosed和Shamiko框架安装包 二、连接WSA 首先需要…...
Opencv计算机视觉编程攻略-第十三节 跟踪视频中的物品
这是opencv系列的最后一节,主要学习视频序列,上一节介绍了读取、处理和存储视频的工具,本文将介绍几种跟踪图像序列中运动物体的算法。可见运动或表观运动,是物体以不同的速度在不同的方向上移动,或者是因为相机在移动…...
10 个最新 CSS 功能已在所有主流浏览器中得到支持
前言 CSS 不断发展,新功能使我们的工作更快、更简洁、更强大。得益于最新的浏览器改进(Baseline 2024),许多新功能现在可在所有主要引擎上使用。以下是您可以立即开始使用的10 CSS新功能。 1. Scrollbar-Gutter 和 Scrollbar-Co…...
[特殊字符] 企业级Docker私有仓库实战:3步搭建Harbor安全仓库,镜像管理从此高效无忧
本文提供 一站式Docker私有仓库部署指南,聚焦企业级镜像管理需求,深入解析Harbor私有仓库的搭建、运维与安全加固全流程。内容涵盖 轻量级Registry快速部署与 Harbor企业级方案对比,手把手演示SSL证书配置、多租户权限控制、镜像漏洞扫描等核…...
一个基于Django的进销存管理系统Demo实现
第一步:创建 Django 项目 bash 复制 django-admin startproject inventory_system cd inventory_system python manage.py startapp erp 第二步:定义数据模型(models.py) python 复制 from django.db import models from d…...
wsl2+ubuntu22.04安装blender教程(详细教程)
本章教程介绍,如何在Windows操作系统上通过wsl2+ubuntu安装blender并运行教程。Blender 是一款免费、开源的 3D 创作套件,广泛应用于建模、动画、渲染、视频编辑、特效制作等领域。它由全球开发者社区共同维护,支持跨平台(Windows、macOS、Linux),功能强大且完全…...
netty中的ChannelPipeline详解
Netty中的ChannelPipeline是事件处理链的核心组件,负责将多个ChannelHandler组织成有序的责任链,实现网络事件(如数据读写、连接状态变化)的动态编排和传播。以下从核心机制、执行逻辑到应用场景进行详细解析: 1. 核心结构与组成 双向链表结构 组成单元:ChannelPipeline…...
使用多进程和 Socket 接收解析数据并推送到 Kafka 的高性能架构
使用多进程和 Socket 接收解析数据并推送到 Kafka 的高性能架构 在现代应用程序中,实时数据处理和高并发性能是至关重要的。本文将介绍如何使用 Python 的多进程和 Socket 技术来接收和解析数据,并将处理后的数据推送到 Kafka,从而实现高效的…...
WinForm真入门(14)——ListView控件详解
一、ListView 控件核心概念与功能 ListView 是 WinForm 中用于展示结构化数据的多功能列表控件,支持多列、多视图模式及复杂交互,常用于文件资源管理器、数据报表等场景。 核心特点: 支持 5种视图模式:Details&…...
FastAPI用户认证系统开发指南:从零构建安全API
前言 在现代Web应用开发中,用户认证系统是必不可少的功能。本文将带你使用FastAPI框架构建一个完整的用户认证系统,包含注册、登录、信息更新和删除等功能。我们将采用JWT(JSON Web Token)进行身份验证,并使用SQLite作…...
【BUG】阿里云服务器数据库远程连接报错
当你遇到 ERROR 2003 (HY000): Cant connect to MySQL server on 47.100.xxx.xx (10061) 错误,这个错误代码 10061 通常意味着客户端无法连接到指定的 MySQL 服务器,原因可能有多种,下面为你分析可能的原因及对应的解决办法。 1. 网络连接问…...
【前端】【React】性能优化三件套useCallback,useMemo,React.memo
一、总览:性能优化三件套 useCallback(fn, deps):缓存函数,避免每次渲染都新建函数。useMemo(fn, deps):缓存值(计算结果),避免重复执行计算。React.memo(Component):缓存组件的渲染…...
Vue3性能优化终极指南:编译策略、运行时调优与全链路监控
一、Vue3性能优化体系框架 1.1 性能优化全景图谱 1.2 关键性能指标定义表 指标测量方式优化目标核心影响因子FCPLighthouse<1.5s资源加载速度LCPPerformance API<2.5s关键资源大小TTIWebPageTest<3.5s主线程阻塞时间Memory UsageChrome DevTools<50MB对象引用策略…...
FISCO BCOS技术架构解析:从多群组设计到性能优化实践
目录 FISCO BCOS整体架构设计 多群组架构与数据隔离机制 交易流程与执行机制 安全架构与隐私保护 性能优化与压测实践 应用案例与生态工具 FISCO BCOS作为中国领先的金融级开源联盟链平台,自2017年由金链盟开源工作组推出以来,已在政务、金融、医疗、版权等众多领域实现…...
Ceph异地数据同步之- S3对象异地同步复制
#作者:闫乾苓 文章目录 关键组件说明数据流说明部署步骤配置主区域配置次要区域S3对象文件同步测试 关键组件说明 在Ceph RGW的多站点复制架构中,Realm、Zonegroup 和 Zone 是关键的组织结构,用于管理多站点的配置和数据同步 Realm(领域)&a…...
iOS按键精灵辅助工具在游戏开发中的创新应用
一、iOS自动化测试辅助工具 在移动游戏开发领域,iOS按键精灵类辅助工具不同于传统的安卓自动化方案,iOS环境下的自动化测试面临更严峻的技术挑战,但通过创新方法仍可实现精准控制。 # 基于图像识别的智能定位算法示例 def find_button(butt…...
3D案例丨多个3D工业相机拼接检测 开启360°新视界
在高速生产线上,经常需要在极短的时间内对工件进行全方位的外观检测,如:线缆直径和直线度检测、锂电池外观缺陷检测、铁轨截面尺寸检测等。 这需要传感器完整还原被测物的截面面轮廓形状,并获取精准的截面轮廓数据。但单一相机的…...
打分函数分类
在分子对接中,打分函数用于评估配体与受体结合的亲和力。不同类型的打分函数有各自的优势和应用场景。常见的打分函数主要分为以下几类: 1. 基于物理(力场)的打分函数 (Force/physics-field-based scoring functions) 这种打分…...
实践 DevOps 项目:使用 Terraform、Helm、SonarQube 和 GitLab CI/CD 在 AWS EKS 上实践全栈部署
在当今快节奏的软件开发领域,自动化至关重要。在本文中,我将向您展示如何构建一个全面的 DevOps 流水线,该流水线能够: 使用 Terraform 预置完整的 AWS 基础设施。部署一个包含私有子网和公共子网、RDS PostgreSQL 以及完整配置的…...
EFT干扰和共模干扰
EFT干扰本质上属于共模干扰的一种具体表现形式,但严格来说不能简单等同于共模干扰。以下从原理、特征及区别角度展开分析: 1. EFT干扰的原理 定义:EFT(Electrical Fast Transient,电快速瞬变脉冲群)干扰是…...
android 下提示 SQLITECIPHER driver not loaded
问题描述: 在android下出现 SQLITECIPHER driver not loaded 错误 解决办法: 在QT的Android目录下面放入 libplugins_sqldrivers_sqlitecipher_arm64-v8a.so...
[D1,2]回溯刷题
文章目录 组合 组合 回溯的基础结构 #组合总和 注意startIndex的更新是用i来更新的,不然会产生重复的组合...
使用 VBA 宏创建一个选择全部word图片快捷指令,进行图片格式编辑
使用 VBA 宏批量选择图片 ✅ 第一步:创建 .dotm 加载项文件 1、使用环境 office word 365,文件格式为.docx 图片格式为.PNG 2、创建 .dotm 加载项文件 打开 Word,新建一个空白文档。 按下 Alt F11 打开 VBA 编辑器。 点击菜单栏ÿ…...