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

【书籍】DeepSeek谈《持续交付2.0》

目录

  • 一、深入理解
    • 1. 核心理念升级:从"自动化"到"双环模型"
    • 2. 数字化转型的五大核心能力
    • 3. 关键实践与案例
    • 4. 组织与文化变革
    • 5. 与其它框架的关系
    • 6. 实际应用建议
  • 二、对于开发实习生的帮助
    • 1. 立刻提升你的代码交付质量(技术验证环实操)
    • 2. 让导师/同事觉得你“有灵性”(业务验证环意识)
    • 3. 实习生最容易踩的坑与解法
    • 4. 超车技巧:用持续交付思维写简历
    • 5. 低成本学习路径
  • 三、高频出现的核心原则
    • 1. "小步快跑"提交原则
    • 2. "生产环境等价"原则
    • 3. "测试是代码的刹车系统"原则
    • 4. "配置即代码"原则
    • 5. "快速失败"原则
    • 6. "监控是第二测试套件"原则
    • 如何落地这些原则?
      • 从**防御性编程**开始:每次写代码时自问:
      • 利用IDE插件强化习惯:
      • 观察团队痛点:如果发现:

《持续交付2.0》是乔梁在经典著作《持续交付》基础上的升级版本,它不仅延续了第一版的核心思想,还结合了数字化转型时代的新需求,提出了更系统化的方法论。

一、深入理解


1. 核心理念升级:从"自动化"到"双环模型"

第一版的基础:持续交付1.0强调自动化构建-测试-部署流水线,目标是"随时可发布"。

2.0的突破:提出**“双环模型”**(业务验证环+技术验证环):

业务验证环(外环):快速验证用户需求价值,通过MVP(最小可行产品)和数据分析迭代。

技术验证环(内环):保障代码质量与交付效率,延续CI/CD流水线但更强调反馈速度

关键点:两个环的协同实现了"业务-技术"的双向驱动,避免技术团队与业务目标脱节。

2. 数字化转型的五大核心能力

书中提出组织需要构建的五大能力,可类比为"持续交付的生态系统":

持续探索:通过用户画像、A/B测试等工具快速验证假设(对应业务验证环)。

持续集成:代码提交后立即构建、测试,反馈时间控制在分钟级(技术验证环基础)。

持续部署:自动化发布到生产环境,但强调渐进式发布(如金丝雀发布)。

持续运营:监控生产环境数据并反哺决策(连接双环的关键)。

持续优化:通过技术债管理、架构演进保持系统可持续性。

3. 关键实践与案例

分支策略的演变:从Git Flow到Trunk-Based Development(主干开发),减少合并冲突,加速反馈。

测试金字塔的强化:强调单元测试覆盖率(70%+)和契约测试(微服务场景),减少UI测试依赖。

环境治理:提出"环境即代码",用IaC(如Terraform)统一管理环境,解决"在我机器上能跑"问题

案例:书中提到某金融企业通过双环模型将需求周期从2周缩短到2天,缺陷率下降60%。

4. 组织与文化变革

DevOps文化的深化:打破"交付即结束"思维,强调开发对业务结果负责(You Build It, You Run It)。

度量体系:不仅关注部署频率,更关注需求前置时间(Lead Time)和故障恢复时间(MTTR)。

反模式警示:如"虚假的CI"(每日合并主干)、"隔离的Ops团队"等。

5. 与其它框架的关系

与敏捷的区别:持续交付2.0是敏捷的"实现引擎",解决"如何快速交付价值"而非"如何协作"。

与SRE的互补:SRE(站点可靠性工程)的Error Budget概念与持续部署的渐进发布结合,平衡速度与稳定性。

6. 实际应用建议

从小开始:先在一个团队试点双环模型,例如用1周时间完成一个用户故事的"探索-交付-验证"闭环

工具链示例:

业务环:Jira+数据分析工具(如Amplitude)

技术环:GitHub Actions+Jenkins+Prometheus

领导层参与:通过可视化价值流图(Value Stream Mapping)暴露瓶颈,获得资源支持。

二、对于开发实习生的帮助


1. 立刻提升你的代码交付质量(技术验证环实操)

提交代码像发微信一样谨慎:
书中强调的**小批量提交(Small Batch Size)**能让你少挨骂。实习时养成习惯:

每次提交不超过3个文件变更(避免大规模冲突)

提交前本地跑单元测试(mvn test或npm test)

写清晰的提交信息(参考Conventional Commits)

git commit -m "feat(login): add SMS verification timeout" 

学会用CI工具自查:
主动了解团队的Jenkins/GitLab CI配置,在本地模拟CI流程(比如用docker build验证能否构建)。

2. 让导师/同事觉得你“有灵性”(业务验证环意识)

问对问题:
不要只问“这个功能怎么实现”,而是尝试问:
“这个需求解决用户的什么痛点?”(业务验证环思维)
上线后我们怎么知道它成功了?”(持续运营意识)

在PR里展示思考:
提交Pull Request时,除了代码差异,附上:

## 业务影响
- 会影响用户登录成功率(监控看板链接)
## 测试建议
- 特别注意国际手机号格式校验

3. 实习生最容易踩的坑与解法

“环境问题”背锅:
用书中提到的容器化开发环境自救:

FROM node:18
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]

用这个Dockerfile可100%复现生产环境。

“在我电脑上好使”:
学会用docker-compose或团队约定的Vagrant配置,避免环境差异。

4. 超车技巧:用持续交付思维写简历

普通实习生写法:
“参与了XX系统的开发”

你的写法:
“通过拆分数据库变更脚本+蓝绿部署方案,使功能上线回滚时间从1小时缩短至5分钟”
(体现了技术验证环的部署能力)
“配合产品用A/B测试验证登录页改版,转化率提升15%
(体现了业务验证环意识)

5. 低成本学习路径

每天15分钟实践:

时间 行动项
周一 在本地跑通项目的单元测试
周二 研究CI流水线的失败邮件
周三 用git bisect定位某次提交引入的bug
实习生专属工具包:

Katacoda:交互式学习Docker/K8s

Postman Automated Testing:快速验证API契约

关键认知:持续交付能力是开发者的“基础体能”
就像运动员必须练核心力量,这些技能会让你:

比只会CRUD的实习生更容易通过试用期

在敏捷团队中更快获得重要任务分配

未来无论是走技术专家还是管理路线都有底层优势

三、高频出现的核心原则


1. "小步快跑"提交原则

原则:每次提交的代码变更必须小到可以随时回滚(书中强调的"Small Batches")。

高频场景:

修复Bug时忍不住"顺手"重构其他代码

开发新功能时攒了一周才提交

正确操作:

# 错误:一次性提交整个模块
git add src/features/user/
git commit -m "complete user management"# 正确:按逻辑拆分提交
git add src/features/user/api.js
git commit -m "feat(user): add createUser API"
git add src/features/user/validation.js
git commit -m "fix(user): handle email format validation"

实习生加分项:用git rebase -i整理提交历史后再推送。

2. "生产环境等价"原则

原则:开发环境必须无限接近生产环境(书中第4章环境治理)。

高频翻车点:

“本地跑得好好的,上线就报错”

数据库版本差异导致SQL执行失败

解决方案:

docker-compose.yml

services:app:build: .environment:DB_URL: "postgres://prod_user:password@db:5432/prod_db" # 故意和生产一致db:image: postgres:14.5 # 指定和生产相同的版本

快速验证:在本地用docker-compose run app pytest运行测试。

3. "测试是代码的刹车系统"原则

原则:没有自动化测试的代码等于蒙眼狂奔(书中测试金字塔实践)。

典型违规:

手动测试UI却忽略单元测试

测试代码复制粘贴导致维护困难

正确示例(Python):

# 错误:测试依赖UI操作
def test_login():open_browser()type_text(username_field, "test") # 脆弱的UI测试click(login_button)assert page_contains("Welcome")# 正确:单元测试业务逻辑
def test_login_success():user = authenticate(username="test", password="123")assert user.role == "member" # 核心逻辑验证

实习生技巧:用pytest --cov-report term-missing查看未覆盖的代码行。

4. "配置即代码"原则

原则:所有环境配置必须版本化(书中第6章基础设施即代码)。

常见错误:

直接修改服务器上的nginx.conf

部署文档写"找运维要数据库连接串"

正确做法:

# 生产环境数据库配置(terraform示例)
resource "aws_db_instance" "prod" {allocated_storage = 100 # 配置可追溯engine_version    = "13.4"instance_class   = "db.m5.large"
}

紧急情况:即使要临时修改,也要先git checkout -b hotfix-config再操作。

5. "快速失败"原则

原则:在流水线的最早阶段暴露问题(书中CI/CD流水线设计)。

反面教材:

代码合并后才跑耗时1小时的测试

部署到生产环境才发现依赖缺失

推荐流水线阶段:

# GitLab CI示例
stages:- lint         # 立即发现代码风格问题(秒级)- unit-test    # 核心单元测试(<5分钟)- integration  # 集成测试(可并行)- deploy       # 最后才部署

实习生避坑:在本地先运行npm run lint再推送代码。

6. "监控是第二测试套件"原则

原则:生产环境监控是最后的防御线(书中持续运营章节)。

新手常忽略:

只关注功能实现,不考虑日志输出

异常捕获后直接吞掉错误

如何落地这些原则?

防御性编程开始:每次写代码时自问:

这个变更如何回滚?

怎么用自动化验证它?

出问题时日志能否定位?

利用IDE插件强化习惯:

SonarLint(实时代码质量检测)

GitLens(可视化代码变更历史)

Docker插件(右键直接运行容器)

观察团队痛点:如果发现:

经常为解决环境问题开会 → 推广Docker开发环境

发布后频繁回滚 → 建议增加集成测试阶段

相关文章:

【书籍】DeepSeek谈《持续交付2.0》

目录 一、深入理解1. 核心理念升级&#xff1a;从"自动化"到"双环模型"2. 数字化转型的五大核心能力3. 关键实践与案例4. 组织与文化变革5. 与其它框架的关系6. 实际应用建议 二、对于开发实习生的帮助1. 立刻提升你的代码交付质量&#xff08;技术验证环实…...

Spring AOP 扫盲

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

银河麒麟v10(arm架构)部署Embedding模型bge-m3【简单版本】

硬件 服务器配置&#xff1a;鲲鹏2 * 920&#xff08;32c&#xff09; 4 * Atlas300I duo卡 参考文章 https://www.hiascend.com/developer/ascendhub/detail/07a016975cc341f3a5ae131f2b52399d 鲲鹏昇腾Atlas300Iduo部署Embedding模型和Rerank模型并连接Dify&#xff08;自…...

如何通过流程管理优化企业运营?

流程管理的本质是“用确定性的规则应对不确定性的业务”。 那么&#xff0c;具体该如何通过流程管理来优化企业的运作呢&#xff1f;以下是一些关键步骤和思路&#xff0c;或许能给到一些启发。 1. 从流程梳理开始&#xff1a;摸清现状&#xff0c;找准问题 想要管理好企业的…...

ZYNQ笔记(四):AXI GPIO

版本&#xff1a;Vivado2020.2&#xff08;Vitis&#xff09; 任务&#xff1a;使用 AXI GPIO IP 核实现按键 KEY 控制 LED 亮灭&#xff08;两个都在PL端&#xff09; 一、介绍 AXI GPIO (Advanced eXtensible Interface General Purpose Input/Output) 是 Xilinx 提供的一个可…...

Java学习手册:JVM、JRE和JDK的关系

在Java生态系统中&#xff0c;JVM&#xff08;Java虚拟机&#xff09;、JRE&#xff08;Java运行时环境&#xff09;和JDK&#xff08;Java开发工具包&#xff09;是三个核心概念。它们共同构成了Java语言运行和开发的基础。理解它们之间的关系对于Java开发者来说至关重要。本文…...

Java 并发-newFixedThreadPool

前言 为什么选择使用多线程&#xff1f;一种场景是在数据和业务处理能力出现瓶颈时&#xff0c;而服务器性能又有空闲&#xff0c;通常是cpu空闲&#xff0c;这时使用多线程就能很好的解决问题&#xff0c;而又无需加硬件&#xff0c;实际使用中&#xff0c;线程池又是最为常用…...

C# task任务异步编程提高UI的响应性

方式1&#xff1a;async/await模式 private async void button1_Click(object sender, EventArgs e){try{var result await Task.Run(() > CalculateResult());label1.Text result.ToString();}catch (Exception ex){label1.Text $"Error: {ex.Message}";}}pri…...

Spring Bean生命周期执行流程详解

文章目录 一、什么是Spring Bean生命周期&#xff1f;工作流程图&#xff1a;二、Bean生命周期执行流程验证1.编写测试代码验证结果2.源码追溯Bean初始化回调过程 一、什么是Spring Bean生命周期&#xff1f; Spring Bean生命周期是指从Bean的创建到销毁的整个过程&#xff0c…...

windows 安装 pygame( pycharm)

一、安装流程 1.查看python版本 2.检查是否安装pip 3.下载pygame安装文件 下载地址&#xff1a;https://pypi.org/project/pygame/#files 选择合适的版本&#xff08;我选择的是 python3.7 windows 64bit&#xff09;&#xff1a; 4.使用pip安装pygame 将下载好的whl文件移动到…...

Envoy网关实例异常重启排查总结

一、事件背景 于10月24日凌晨业务租户有业务应用发版上线&#xff0c;中午收到pod连续5分钟重启严重告警&#xff0c;登录管理节点查看异常重启的应用网关pod日志&#xff0c;存在内核段错误报错信息导致进程终止并触发监控检查异常并重启; 该报错主要是访问的内存超出了系统…...

WinForm真入门(13)——ListBox控件详解

WinForm ListBox 详解与案例 一、核心概念 ‌ListBox‌ 是 Windows 窗体中用于展示可滚动列表项的控件&#xff0c;支持单选或多选操作&#xff0c;适用于需要用户从固定数据集中选择一项或多项的场景‌。 二、核心属性 属性说明‌Items‌管理列表项的集合&#xff0c;支持动…...

【Linux网络编程】UDP Echo Server的实现

本文专栏&#xff1a;Linux网络编程 目录 一&#xff0c;Socket编程基础 1&#xff0c;IP地址和端口号 端口号划分范围 理解端口号和进程ID 源端口号和目的端口号 理解Socket 2&#xff0c;传输层的典型代表 3&#xff0c;网络字节序 4&#xff0c;Socket编程接口 s…...

8.3.5 ToolStripContainer(工具栏容器)控件

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的 ToolStripContainer控件是一个容器&#xff0c;可以包含菜单和工具条、状态栏。 在设计窗体中放入一个ToolStripContainer&#xff1…...

代码随想录-06-二叉树-05.05 N叉树的层序遍历

N叉树的层序遍历 #模板题 题目描述 给定一个 N 叉树&#xff0c;返回其节点值的_层序遍历_。&#xff08;即从左到右&#xff0c;逐层遍历&#xff09;。 树的序列化输入是用层序遍历&#xff0c;每组子节点都由 null 值分隔&#xff08;参见示例&#xff09;。 具体思路 …...

【NEPVR】《A Lightweight Palm Vein Recognition Algorithm NEPVR》

[1]马莉,刘子良,谭振林,等.一种轻量级掌静脉识别算法NEPVR[J].计算机技术与发展,2024,34(12):213-220.DOI:10.20165/j.cnki.ISSN1673-629X.2024.0248. 文章目录 1、背景2、相关工作3、创新点4、NEPVR 手掌静脉识别算法5、实验结果及分析6、总结 / 未来工作 1、背景 手掌静脉独…...

牟乃夏《ArcGIS Engine地理信息系统开发教程》学习笔记1

&#xff08;适合GIS开发入门者&#xff0c;通俗解析核心知识点&#xff09; 目录 一、ArcGIS Engine是什么&#xff1f; 二、ArcGIS Engine能做什么&#xff1f; 三、ArcGIS Engine与ArcObjects的区别 四、开发资源与学习路径 五、对象模型图&#xff08;OMD&#xff09;…...

架构师论文《论模型驱动软件开发方法在智能制造转型实践中的应用》

摘要&#xff1a; 本人现任某大型装备制造企业智能制造研究院首席架构师&#xff0c;主导集团级数字化工厂平台建设。面对多品种小批量生产模式下普遍存在的交付周期超预期&#xff08;平均延期21天&#xff09;、设备综合效率OEE不足65%的痛点&#xff0c;我司于2021年启动基…...

探索MCP.so:AI生态的创新枢纽

今天在研究MCP时发现了一个还不错的网站,分享给大家。后续会基于这些mcp servers做一些有趣的应用。 在人工智能飞速发展的当下,AI与各类工具、数据源的协同合作变得愈发关键。MCP.so这个平台,正悄然成为AI领域的重要枢纽,为众多开发者和AI爱好者打开了新的大门。 MCP,即…...

JVM底层详解

JVM底层详解 目录 JVM概述JVM内存模型垃圾回收机制类加载过程JIT编译JVM调优JVM监控与故障排查JVM与多线程JVM与性能优化JVM发展历程与未来JVM实战案例分析JVM高级特性JVM安全机制JVM与容器化 一、JVM概述 1.1 什么是JVM Java虚拟机&#xff08;Java Virtual Machine&…...

多点:分布式升级助力新零售转型,成本节省超80% | OceanBase 案例

本文作者&#xff1a;多点数据库DBA团队 编者按&#xff1a;多点是零售行业数字&#xff08;智&#xff09;化的先行者&#xff0c;为全球企业提供创新的数字化解决方案。然而&#xff0c;在数字化转型的过程中&#xff0c;多点原有的数据库架构逐渐暴露出架构复杂、成本上升等…...

Java权限修饰符深度解析

Java权限修饰符深度解析与最佳实践 一、权限修饰符总览 Java提供四种访问控制修饰符&#xff0c;按访问范围从宽到窄排序如下&#xff1a; 修饰符类内部同包类不同包子类全局范围public✔️✔️✔️✔️protected✔️✔️✔️❌默认&#xff08;无&#xff09;✔️✔️❌❌pr…...

RocketMQ和kafka 的区别

一、数据可靠性与容错机制 数据可靠性 RocketMQ支持同步刷盘和同步复制&#xff0c;确保消息写入磁盘后才返回确认&#xff0c;单机可靠性高达10个9&#xff0c;即使操作系统崩溃也不会丢失数据159。而Kafka默认采用异步刷盘和异步复制&#xff0c;虽然吞吐量高&#xff0c;但极…...

分布式限流器框架 eval-rate-limiter

分布式限流器框架 eval-rate-limiter 文章目录 分布式限流器框架 eval-rate-limiter前言设计流程图 核心方法tryAcquire 获取通信证增加访问次数 incrementRequestCount生成分布式 key generateRateLimiterKey 测试测试代码结果Redis 客户端 前言 基于 redis 实现的分布式限流…...

使用Docker部署Java项目的完整指南

前言 Docker是一个轻量级的容器化平台&#xff0c;可将应用及其依赖打包成标准化单元&#xff0c;实现快速部署和环境隔离。本文以Spring Boot项目为例&#xff0c;演示如何通过Dockerfile部署Java应用。 准备工作 本地环境 安装Docker Desktop&#xff08;官网下载&#xff0…...

机器学习数据需求与应用分析

监督学习、无监督学习和强化学习作为机器学习的核心范式&#xff0c;对数据条件的需求存在显著差异。以下是具体分析&#xff1a; 一、监督学习的数据条件 数据要求 监督学习需要带标签&#xff08;labeled&#xff09;的数据集&#xff0c;即每个输入样本都有对应的目标输出&a…...

【机器学习算法】基于python商品销量数据分析大屏可视化预测系统(完整系统源码+数据库+开发笔记+详细启动教程)✅

目录 一、项目背景 二、技术思路 三、算法介绍 四、项目创新点 五、开发技术介绍 六、项目展示 一、项目背景 本项目基于Python技术栈构建了"商品销量数据分析与预测系统"&#xff0c;通过自动化爬取淘宝商品多维数据&#xff08;价格、销量、评价、品类等&a…...

springboot集成springcloud vault读值示例

接上三篇 Vault---机密信息管理工具安装及常用示例 Vault机密管理工具集群配置示例 vault签发根证书、中间证书、ca证书流程记录 项目里打算把所有密码都放到vault里管理&#xff0c;vault提供了springcloud vault用来在springboot里连接vault&#xff0c;启动加载vault里的值放…...

BERT 模型是什么

BERT 模型是什么&#xff1f; BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是一种基于Transformer架构的深度学习模型&#xff0c;由Google于2018年提出。它在自然语言处理领域取得了显著成就&#xff0c;成为众多NLP任务的基础。 …...

三元电池正极材料除杂工艺介绍

三元电池正极材料的除杂工艺对于提高电池性能、安全性和稳定性至关重要。以下是对三元电池正极材料除杂工艺的详细介绍&#xff1a; 物理除杂工艺 磁选 原理&#xff1a;利用磁场对磁性杂质的吸引作用实现分离。在三元电池正极材料生产中&#xff0c;常混入铁、钴、镍等磁性金…...

wx212基于ssm+vue+uniapp的科创微应用平台小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…...

Multi Agents Collaboration OS:数据与知识协同构建数据工作流自动化

1-背景 传统数据系统与业务数字化的开发与维护面临诸多挑战&#xff1a;行业知识获取壁垒高、需求变化快导致开发周期长、系统复杂度高以及人力与资源投入成本巨大。同时&#xff0c;用户在使用过程中也常遇到痛点&#xff1a;手动录入数据繁琐低效、数据分散于各模块难以整合…...

elemenPlus中,如何去掉el-input中 文本域 textarea自带的边框和角标

1、去掉角标 :deep(.el-textarea__inner) {resize: none !important; // 去除右下角图标 }2、去除边框&#xff0c;并自定义背景色 <el-inputref"textareaRef"v-model"tempContent":style"{--el-border-color: rgba(255,255,255,0.0),--el-input-…...

Excel 动态比较两列数据:实现灵活的数据验证

目录 动态比较两列数据的需求动态公式的实现使用INDIRECT和ROW函数公式解释应用 动态公式的优点 快速添加一列公式的技巧使用快捷键Ctrl D使用VBA宏自动化使用“表格”功能自动填充 实际应用场景数据验证动态报告数据清洗 注意事项总结 在数据处理和分析中&#xff0c;Excel 是…...

谷歌推出可免费使用的Firebase Studio:Gemini全栈AI开发利器

谷歌刚刚发布了Firebase Studio,这是其打造的一款沉浸式代码开发平台,旨在与Cursor、Lovable、Bolt和V0等工具竞争。如果你是一名网页开发者,可能只知道Firebase是谷歌的数据库工具。 但现在,它已远不止于此。 Firebase已发展成一个完整的生态系统,如今能帮助你从头到尾…...

spark(二)

本节课接上节课继续对于RDD进行学习&#xff0c;首先是对于创建RDD的不同方式&#xff0c;接着学习了RDD的三种转换算子&#xff1a;Value类型、双Value类型、Key-Value类型&#xff0c;以及各个转换算子的不同使用方式。 学习到如下的区别&#xff1a; map 与 mapPartitions…...

Fay 数字人部署环境需求

D:\ai\Fay>python main.py pygame 2.6.1 (SDL 2.28.4, Python 3.11.9) Hello from the pygame community. https://www.pygame.org/contribute.html [2025-04-11 00:10:16.7][系统] 注册命令... [2025-04-11 00:10:16.8][系统] restart 重启服务 [2025-04-11 00:10:16.8][…...

【Harmony】端云一体化(云函数)

一、云函数的概述 1、什么是云函数 官方解释 云函数是一项Serverless计算服务&#xff0c;提供FaaS&#xff08;Function as a Service&#xff09;能力&#xff0c;一方面云函数将开发测试的对象聚焦到函数级别&#xff0c;可以帮助您大幅简化应用开发与运维相关的事务&…...

利用大模型和聚类算法找出 Excel 文件中重复或相似度高的数据,并使用 FastAPI 进行封装的详细方案

以下是一个利用大模型和聚类算法找出 Excel 文件中重复或相似度高的数据,并使用 FastAPI 进行封装的详细方案: 方案流程 数据读取:从 Excel 文件中读取数据。文本向量化:使用大模型将文本数据转换为向量表示。聚类分析:运用聚类算法对向量进行分组,将相似度高的数据归为…...

通过远程桌面连接wsl2中安装的ubuntu24.04

要介绍的这种方式其实跟直接用wsl来执行命令差不多&#xff0c;是在终端去操作ubuntu。WSL2 默认只提供命令行界面&#xff0c;本文安装xrdp后通过windows远程桌面连接过去。 1、更新软件包列表 sudo apt update 确保你的软件包列表是最新的&#xff0c;否则可能找不到某些包…...

对接和使用国内稳定无水印的 Suno API

随着 AI 的应用日益广泛&#xff0c;各种 AI 程序已经融入我们的日常生活。从最早的写作&#xff0c;到医疗、教育&#xff0c;如今甚至扩展到了音乐领域。 Suno 是一个专注于高质量 AI 歌曲和音乐创作的平台。用户只需输入简单的文本提示词&#xff0c;便可以按照流派风格和歌…...

LeetCode算法题(Go语言实现)_38

我将按照您提供的文档结构为您整理二叉树最近公共祖先&#xff08;LCA&#xff09;问题的解决方案&#xff1a; 一、代码实现 type TreeNode struct {Val intLeft *TreeNodeRight *TreeNode }func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {if root nil ||…...

Linux学习笔记 1

1.发展史 略...... 2.xshell的使用方法 2.1登录 ssh root公网地址 输入密码&#xff0c;用 uname -r 指令来鉴定是否登录成功。之后就可以进行命令行操作了。 alt enter 全屏、退出 设置多用户指令&#xff0c;新建用户 adduser 名字 passwd 密码 销毁用户&#xf…...

微信小程序跳4

formatMillisecondsTime: function(milliseconds, formatStr) { // 创建一个新的Date对象&#xff0c;传入毫秒值 const date new Date(milliseconds); // 获取年月日时分秒&#xff0c;并确保它们都是两位数 const year date.getFullYear(); const month (date.getMonth() …...

STM32单片机入门学习——第31节: [10-1] I2C通信协议

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.10 STM32开发板学习——第31节: [10-1] I2C通信协议 前言开发板说明引用解答和科普一…...

OpenCV 图形API(24)图像滤波-----双边滤波函数bilateralFilter()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 应用双边滤波到图像。 该函数对输入图像应用双边滤波&#xff0c;如 http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Fil…...

【图像处理基石】什么是影调?并用python实现一个哈苏色彩影调

影调是摄影语言的核心&#xff0c;通过控制明暗、虚实与色彩&#xff0c;可精准传达创作意图。实际选择需结合主题情感、光线条件及画面结构&#xff0c;灵活运用高调、低调或冷暖色调&#xff0c;以强化视觉表现力。 一、影调的定义 影调指画面中明暗、虚实、色彩的层次与对比…...

融智学三大定律:打开人机协同智慧大门的钥匙

...

MySQL行列转换

创建一个sc表并插入数据 方法一: select distinct uid, (select score from sc where s.uiduid and course语文)语文, (select score from sc where s.uiduid and course数学)数学, (select score from sc where s.uiduid and course英语)英语 from sc s; 方法二: select * fro…...

cookie和session哪个生成的时间早

Cookie 和 Session 的出现时间都可以追溯到 Web 开发的早期阶段&#xff0c;但它们的生成顺序在实际应用中通常是先生成 Session&#xff0c;然后通过 Cookie 来存储 Session ID。 详细解释&#xff1a; Session 的生成过程 • 用户请求服务器&#xff1a; • 用户首次访问网…...