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

DevOps落地笔记-21|业务价值:软件发布的最终目的

上一课时介绍如何度量软件的内部质量和外部质量。在外部质量中,我们提到用户满意度是衡量软件外部质量的关键因素。“敏捷宣言”的第一条原则规定:“我们最重要的目标,是通过持续不断的及早交付有价值的软件使用户满意”。从这一点也可以看出,“用户满意度”也是衡量业务价值的重要指标。通过将有价值的软件、满意的用户与企业的最终业务目标相联系,就能实现企业的业务价值,即商业目标,比如用户量的增长,收入的增加,成本的降低等。这也是今天这一课时要介绍的内容。

什么是业务价值?

首先,我问你一个问题:“实施 DevOps 的目的是什么?”。你可能会说:“提高部署频率”“缩短故障恢复时间”“提高服务可用性”等。那么,我们再多问一句:“提高部署频率、缩短故障恢复时间、提高服务可用性,这些的目的是什么?”

DevOps 一般是在企业里实施的,我们需要从企业的本质去考虑。企业是的目标是追求利润最大化。所有企业的经营活动,战略的制定,组织结构的调整,甚至实施 DevOps,最终目标都是为了实现企业的这一目标。如下图所示:从 DevOps 目标到企业目标的递进过程。

& DevOps 目标:提高部署频率、缩短故障恢复时间、提高服务可用性等,这一切都是为了满足用户的目标。

& 用户目标:提高用户的满意度。让用户满意,用户才会将产品推荐给其他人以及继续使用产品和服务,从而实现企业的业务目标。

& 业务目标:市场占有率增长、用户数增长、用户使用时长增长,从而实现企业目标。

& 企业目标:收入增长,实现利润最大化。

可以看出,DevOps目标并不是实施DevOps的最终目标,业务目标以及企业目标才是实施DevOps的最终目标。
在这里插入图片描述
如何衡量业务价值

上面也提到,DevOps 的成功不仅意味着更快的发布软件,而且意味着要为企业带来业务价值,使得企业更有竞争力。因此,DevOps 的度量不仅要度量发布频率、代码缺陷数和需求数这些研发数据,还要度量用户、市场占有率、净推荐值的数据变化。

软件是通过每一次的发布来交付用户需求,也只有在软件发布之后,之前做的所有的努力才能体现出价值。每次发布都是价值增量的交付,那么,如何衡量发布的软件带来了价值增量呢?比如:会增加收入吗?会降低成本吗?会吸引更多用户吗?会阻止现有用户离开吗?等。

在发布阶段就要确定发布的功能范围,也要衡量发布完成后的价值,以便确定项目的收益与实际的收益是否匹配,是否真正实现了业务价值。业务价值度量的动态性,使得衡量业务价值并不容易,可以从以下几个指标来衡量软件的业务价值。

用户数据

可以从以下几个指标度量用户数据。

& 用户访问量。

用户访问量也就是平常所说的 PV,即 Page View,页面浏览量,同一个人浏览同一个页面算一次。网站的 PV 跟电视的收视率是一个概念,可以衡量产品内容或服务受欢迎的程度。

& 独立访客数。

独立访客数也就是平常所说的 UV,即 Unique Visitor,指访问某个网站的不同 IP 人数。该指标提供了在一段时间内用户数量的度量统计,可以衡量使用产品和服务的真实用户数。

& 新增用户数。

新增用户数是指在一段时间内新注册的用户数量。该指标可用于衡量产品或服务的推广效果和渠道转化用户的质量。在增长黑客的 AARRR 模型中,将用户生命周期分为获取用户、提升活跃、提高留存、获取收入、自传播5个阶段,新增用户只是获取用户阶段,后续还需要通过产品或服务的质量和价值去活跃用户、留存用户。

& 用户忠诚度。

用户忠诚度,也称为用户黏性,是用户对企业的产品和服务进行重复使用的一种度量。这是用户满意度、良好的用户体验以及用户从企业获取产品或服务的整体价值的结果。当用户忠诚于企业的产品或服务时,就不会在意产品或服务的价格。因此,用户忠诚度越高,就能带来更多的收益。衡量用户忠诚度的方法有以下几种。

1.重复购买次数:在一定时期内,用户对某一个品牌的产品或服务重复购买的次数越多,说明其对这一品牌的忠诚度越高,反之就越低。

2.决策时间得长短:根据消费心理学研究,用户在购买商品时,有要经过仔细挑选和比较的过程。如果用户在购买时决策时间较短,说明用户对该品牌的产品或服务形成偏爱,因此忠诚度也越高,反之越低。

3.对价格的敏感度:一般情况下,用户对产品或服务的价格都是很敏感的。但是,对于喜爱品牌的产品或服务,用户对其价格变动的承受能力会更强,因此忠诚度也就越高,反之越低。

4.对竞争者的态度:用户对某一品牌态度的变化,多数情况是通过与竞争对手产品相比较而产生的。可以根据用户对竞争者产品的态度来判断用户的忠诚度。如果用户对其他竞争产品没有兴趣,则说明对该品牌忠诚度高,反之就低。

5.对产品问题的态度:任何一个产品都可能因某种原因出现问题。如果用户对某一品牌的忠诚度高,就会对产品问题以宽容的态度对待。反之,则会非常敏感,甚至不再使用该产品或服务。

& 用户留存率。

用户忠诚度衡量的是重复购买的人数,而用户留存率也是以类似的方式衡量用户满意度。用户留存率衡量的是公司在一定时期内留存用户的百分比。对于销售IT服务的软件公司而言,用户留存率对于衡量用户满意度至关重要。因为,不满意的用户可能寻找能够为其提供更多价值的替代产品。当企业发现用户留存率降低时,就说明企业的产品或服务哪里有问题,或者竞争对手为用户提供了更多价值的 IT服务。

用户留存率的计算公式为:用户留存率=((EC-NC)/SC)*100%

其中 EC 表示一段时期末的用户数量,NC 表示此期间的新增用户数量,SC 是该时期开始时的用户数量。

举个例子:假设新发布了一个产品功能,当月开始时有1000位用户,在月末时有1200位用户,同时该月增加了 400 位新用户,通过公式计算:(1200-400)/1000=80 % 可以看出,该月的用户留存率为 80%,对于 IT 服务用户更加关注用户体验,可以通过 DevOps 实践不断提高产品或服务的用户体验来提升用户留存率。

市场占有率

市场占有率对于确定企业收入占行业总收入的百分比至关重要。当企业获得的市场占有率增多并且用户留存率提高时,即可表示发布的软件为用户交付正确的价值。反之,当市场占有率萎缩时,表明竞争对手提供了比你的 IT 服务更多或更好的价值。

在评估市场占有率之前,首先要界定市场,将目标顾客具体化,识别相关的竞争者。原则是,应该从符合顾客需求的角度出发,并且应该以覆盖全部能够满足用户需求的可替代产品和服务的总和的方式进行描述。比如,用户需要在互联网上搜索信息,可以是百度搜索,它的替代品有搜狗搜索、Google 搜索、好搜等,下图是 2020 全年国内搜索引擎占有率的趋势图。
在这里插入图片描述
从图中可以看出,在国内搜索引擎市场中百度搜索的市场占有率遥遥领先,第二位是搜狗搜索。市场占有率决定了企业在该领域的利润,也就是搜索服务的业务价值。结合 DevOps 实践来说,假如搜狗搜索利用 DevOps 实践提高了搜索服务版本更新的速度和搜索的准确性,为更多的用户提供了更好的搜索服务,就会有越来越多的用户选择搜狗搜索,此时就会影响到二者的市场占有率。

净推荐值 eNPS

净推荐值是一个针对企业良性收益与用户增长所提出的用户对企业产品或服务信任的概念。一般需要用户回答“您在多大程度上与愿意向您的朋友推荐该公司的产品或服务?”,答案范围为 0~10,10 分表示非常愿意,0 分表示非常不愿意。根据用户的推荐意愿,将用户分为三类:推荐者、被动者和贬损者。推荐者和贬损者是对企业的产品或服务口碑有影响的用户,这两部分用户在用户总数中所占百分比之差,即为净推荐值(Net Promoter Score,NPS)。如下图所示。
在这里插入图片描述
净推荐值是一个容易操作、容易理解的数值,但该值本身并不会为业务带来改变。重要的是通过该值来分析用户对产品和服务的满意程度,可以辅助我们对影响用户满意的潜在问题进行根因分析,帮助制订产品规划和改进计划,这才是真正实现商业价值。

DevOps 实践能够为企业带来更好的业务价值,这个结论在 2013 年到 2016 年的 Puppet Labs 的年度 DevOps 现状报告中,已经给出了结论。DevOps 能够从根本上打破开发、运维长期以来存在的冲突,使得高绩效者更加敏捷和可靠。同时,也为企业带来了利润率、市场份额和生产效率大幅提升的丰厚回报。

总结

本课时主要介绍了实施 DevOps 的最终目标——实现业务价值。在企业里,DevOps 是为业务服务的,是为了实现企业的业务目标,最终实现企业目标。如果业务不成功,DevOps 有多么的成功都是徒劳的。对于业务价值的度量需要从最终用户的角度出发,衡量用户对产品或服务的认可程度,以及企业在市场上的份额,因为只有这些数据,才能了解企业业务发展的趋势和问题。

到目前为止,DevOps 度量指标这部分就讲完了。这部分的重点是,指标是用于发现问题、指导改进的,要建设全局的、面向结果的指标,而不是局部的、面向过程的指标。DevOps是否能够帮助企业成功,是通过业务指标来体现的。

相关文章:

DevOps落地笔记-21|业务价值:软件发布的最终目的

上一课时介绍如何度量软件的内部质量和外部质量。在外部质量中,我们提到用户满意度是衡量软件外部质量的关键因素。“敏捷宣言”的第一条原则规定:“我们最重要的目标,是通过持续不断的及早交付有价值的软件使用户满意”。从这一点也可以看出…...

【动态规划】【前缀和】【数学】2338. 统计理想数组的数目

作者推荐 【动态规划】【前缀和】【C算法】LCP 57. 打地鼠 本文涉及知识点 动态规划汇总 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LeetCode:2338. 统计理想数组的数目 给你两个整数 n 和 maxValue ,用于描述一个 理想…...

【已解决】onnx转换为rknn置信度大于1,图像出现乱框问题解决

前言 环境介绍: 1.编译环境 Ubuntu 18.04.5 LTS 2.RKNN版本 py3.8-rknn2-1.4.0 3.单板 迅为itop-3568开发板 一、现象 采用yolov5训练并将pt转换为onnx,再将onnx采用py3.8-rknn2-1.4.0推理转换为rknn出现置信度大于1,并且图像乱框问题…...

多路服务器技术如何处理大量并发请求?

在当今的互联网时代,随着用户数量的爆炸性增长和业务规模的扩大,多路服务器技术已成为处理大量并发请求的关键手段。多路服务器技术是一种并行处理技术,它可以通过多个服务器同时处理来自不同用户的请求,从而显著提高系统的整体性…...

SpringBoot - 不加 @EnableCaching 标签也一样可以在 Redis 中存储缓存?

网上文章都是说需要在 Application 上加 EnableCaching 注解才能让缓存使用 Redis,但是测试发现不用 EnableCaching 也可以使用 Redis,是网上文章有问题吗? 现在 Application 上用了 EnableAsync,SpringBootApplication&#xff0…...

Linux------命令行参数

目录 前言 一、main函数的参数 二、命令行控制实现计算器 三、实现touch指令 前言 当我们在命令行输入 ls -al ,可以查看当前文件夹下所有文件的信息,还有其他的如rm,touch等指令,都可以帮我们完成相应的操作。 其实运行这些…...

LLM少样本示例的上下文学习在Text-to-SQL任务中的探索

导语 本文探索了如何通过各种提示设计策略,来增强大型语言模型(LLMs)在Few-shot In-context Learning中的文本到SQL转换能力。通过使用示例SQL查询的句法结构来检索演示示例,并选择同时追求多样性和相似性的示例可以提高性能&…...

双非本科准备秋招(19.2)—— 设计模式之保护式暂停

一、wait & notify wait能让线程进入waiting状态,这时候就需要比较一下和sleep的区别了。 sleep vs wait 1) sleep 是 Thread 方法,而 wait 是 Object 的方法 2) sleep 不需要强制和 synchronized 配合使用,但 wait 强制和 s…...

使用SpringMVC实现功能

目录 一、计算器 1、前端页面 2、服务器处理请求 3、效果 二、用户登陆系统 1、前端页面 (1)登陆页面 (2)欢迎页面 2、前端页面发送请求--服务器处理请求 3、效果 三、留言板 1、前端页面 2、前端页面发送请求 &…...

spring aop实现接口超时处理组件

文章目录 实现思路实现代码starter组件 实现思路 这里使用FutureTask,它通过get方法以阻塞的方式获取执行结果,并设定超时时间: public V get() throws InterruptedException, ExecutionException ;public V get(long timeout, TimeUnit un…...

c++设计模式之装饰器模式

作用 为现有类增加功能 案例说明 class Car { public:virtual void show()0; };class Bmw:public Car { public:void show(){cout<<"宝马汽车>>"<<endl;} };class Audi:public Car { public:void show(){cout<<"奥迪汽车>>&q…...

WordPress如何实现随机显示一句话经典语录?怎么添加到评论框中?

我们在一些WordPress网站的顶部或侧边栏或评论框中&#xff0c;经常看到会随机显示一句经典语录&#xff0c;他们是怎么实现的呢&#xff1f; 其实&#xff0c;boke112百科前面跟大家分享的『WordPress集成一言&#xff08;Hitokoto&#xff09;API经典语句功能』一文中就提供…...

【退役之重学前端】vite, vue3, vue-router, vuex, ES6学习日记

学习使用vitevue3的所遇问题总结&#xff08;2024年2月1日&#xff09; 组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来&#xff0c;导致使用不了&#xff0c;出现以下报错 这是因为&#xff0c;如果不用setup&#xff0c;就得使用 export default…...

[linux]-总线,设备,驱动,dts

1. 总线BUS 在物理层面上&#xff0c;代表不同的工作时序和电平特性&#xff1a; 总线代表着同类设备需要共同遵守的工作时序&#xff0c;不同的总线对于物理电平的要求是不一样的&#xff0c;对于每个比特的电平维持宽度也是不一样&#xff0c;而总线上传递的命令也会有自己…...

python3实现gitlab备份文件上传腾讯云COS

gitlab备份文件上传腾讯云COS 脚本说明脚本名称&#xff1a;upload.py 假设gitlab备份文件目录&#xff1a;/opt/gitlab/backups gitlab备份文件格式&#xff1a;1706922037_2024_02_06_14.2.1_gitlab_backup.tar1.脚本需和gitlab备份文件同级目录 2.根据备份文件中的日期判断…...

292.Nim游戏

桌子上有一堆石头。 轮流进行自己的回合&#xff0c; 你作为先手 。 每一回合&#xff0c;轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写一个函数&#xff0c;来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可…...

Spring和Spring Boot的区别

Spring 是一个轻量级的 Java 开发框架&#xff0c;它提供了一系列的模块和功能&#xff0c;例如 IoC&#xff08;控制反转&#xff09;、AOP&#xff08;面向方面编程&#xff09;、数据库访问、Web 开发等。Spring 的目标是使 Java 开发更加简单、高效和可维护。 Spring Boot …...

备战蓝桥杯---动态规划(理论基础)

目录 动态规划的概念&#xff1a; 解决多阶段决策过程最优化的一种方法 阶段&#xff1a; 状态&#xff1a; 决策&#xff1a; 策略&#xff1a; 状态转移方程&#xff1a; 适用的基本条件 1.具有相同的子问题 2.满足最优子结构 3.满足无后效性 动态规划的实现方式…...

FPGA_ip_pll

常使用插件管理器进行ip核的配置&#xff0c;ip核分为计算&#xff0c;存储&#xff0c;输入输出&#xff0c;视频图像处理&#xff0c;接口&#xff0c;调试等。 一 pll ip核简介 pll 即锁相环&#xff0c;可以对输入到fpga的时钟信号&#xff0c;进行分频&#xff0c;倍频&…...

【实验3】统计某电商网站买家收藏商品数量

文章目录 一、实验目的和要求∶二、实验任务∶三、实验准备方案,包括以下内容:实验内容一、实验环境二、实验内容与步骤(过程及数据记录):三、实验结果分析、思考题解答∶四、感想、体会、建议∶一、实验目的和要求∶ 现有某电商网站用户对商品的收藏数据,记录了用户收藏…...

【Qt】Android上运行keeps stopping, Desktop上正常

文章目录 问题 & 背景背景问题 解决方案One More ThingTake Away 问题 & 背景 背景 在文章【Qt】最详细教程&#xff0c;如何从零配置Qt Android安卓环境中&#xff0c;我们在Qt中配置了安卓开发环境&#xff0c;并且能够正常运行。 但笔者在成功配置并完成上述文章…...

算法学习打卡day47|单调栈系列题目

单调栈题目思路 通常是一维数组&#xff0c;要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置&#xff0c;此时我们就要想到可以用单调栈了。时间复杂度为O(n)。单调栈的本质是空间换时间&#xff0c;因为在遍历的过程中需要用一个栈来记录右边第一个比当前元…...

Maven构建OSGI+HttpServer应用

Maven构建OSGIHttpServer应用 官网&#xff08;https://eclipse.dev/equinox/server/http_in_equinox.php&#xff09;介绍有两种方式&#xff1a; 一种是基于”org.eclipse.equinox.http”包的轻量级实现&#xff0c;另一种是基于”org.eclipse.equinox.http.jetty”包&#…...

chrome扩展插件常用文件及作用

Chrome扩展通常包含以下常用文件及其作用&#xff1a; manifest.json&#xff1a; 描述了扩展的基本信息&#xff0c;如名称、版本、权限、图标等。定义了扩展的各种组件和功能&#xff0c;包括后台脚本、内容脚本、页面、浏览器动作按钮等。 background.js&#xff1a; 后台脚…...

PdfFactory Pro软件下载以及序列号注册码生成器

PdfFactory Pro注册机是一款针对同名虚拟打印机软件所推出的用户名和序列号生成器。PdfFactory Pro是一款非常专业的PDF虚拟打印软件&#xff0c;通过使用这款注册机&#xff0c;就能帮助用户免费获取注册码&#xff0c;一键激活&#xff0c;永久免费使用。 pdffactory7注册码如…...

jsp康养小镇管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP康养小镇管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&a…...

Android 无操作之后定时退出

android定时器监用户听对页面无操作5分钟退出登录实现 - 简书 private long advertisingTime 600000;///定时结束退出登录10分(分钟)600000毫秒public CountDownTimer countDownTimer;Overrideprotected void onResume() {super.onResume();//启动定时if (isTimedExitApp()) …...

CMS 检测神器:CMSeek 保姆级教程(附链接)

一、介绍 CMSeek&#xff08;Content Management System Exploitation and Enumeration Toolkit&#xff09;是一款用于检测和利用网站上可能存在的内容管理系统&#xff08;CMS&#xff09;漏洞的开源工具。它旨在帮助安全研究人员和渗透测试人员识别目标网站所使用的CMS&…...

oracle 启动命令以及ORA-01033问题处理、删除归档日志

1 启动数据库:startup 2 关闭数据库&#xff1a;Shutdown immediate 3 查看监听状态&#xff1a;lsnrctl status 4 启动监听&#xff1a;lsnrctl start 5 停止监听&#xff1a;lsnrctl stop 常见问题 1、在服务器重启后会出现&#xff0c;Oracle ORA-01033: ORAC…...

【大模型上下文长度扩展】MedGPT:解决遗忘 + 永久记忆 + 无限上下文

MedGPT&#xff1a;解决遗忘 永久记忆 无限上下文 问题&#xff1a;如何提升语言模型在长对话中的记忆和处理能力&#xff1f;子问题1&#xff1a;有限上下文窗口的限制子问题2&#xff1a;复杂文档处理的挑战子问题3&#xff1a;长期记忆的维护子问题4&#xff1a;即时信息检…...

谷歌seo搜索引擎优化有什么思路?

正常做seo哪有那么多思路&#xff0c;其实就那么几种方法&#xff0c;无非就关键词&#xff0c;站内优化&#xff0c;外链&#xff0c;可以说万变不离其宗&#xff0c;但如果交给我们&#xff0c;你就可以实现其他的思路&#xff0c;或者说玩法 收录可以说是一个网站的基础&…...

腾讯云与IBM共同打造“高性能计算服务解决方案“

腾讯云与IBM共同打造"高性能计算服务解决方案" 腾讯云与IBM达成战略合作&#xff0c;对优势产品及服务进行深度集成&#xff0c;基于腾讯云产品及服务&#xff0c;共同打造"腾讯-IBM混合云与人工智能解决方案"。双方通过更为紧密的嵌入式解决方案的深度合…...

【SparkML实践7】特征选择器FeatureSelector

本节介绍了用于处理特征的算法&#xff0c;大致可以分为以下几组&#xff1a; 提取&#xff08;Extraction&#xff09;&#xff1a;从“原始”数据中提取特征。转换&#xff08;Transformation&#xff09;&#xff1a;缩放、转换或修改特征。选择&#xff08;Selection&…...

LeetCode983. Minimum Cost For Tickets——动态规划

文章目录 一、题目二、题解 一、题目 You have planned some train traveling one year in advance. The days of the year in which you will travel are given as an integer array days. Each day is an integer from 1 to 365. Train tickets are sold in three differen…...

百卓Smart管理平台 uploadfile.php 文件上传漏洞【CVE-2024-0939】

百卓Smart管理平台 uploadfile.php 文件上传漏洞【CVE-2024-0939】 一、 产品简介二、 漏洞概述三、 影响范围四、 复现环境五、 漏洞复现手动复现小龙验证Goby验证 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工…...

项目中常用的一些数据库及缓存

1、常见的开发工具介绍 MySQL: MySQL是一种流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由瑞典MySQL AB公司开发&#xff0c;并在后来被Sun Microsystems收购&#xff0c;最终成为Oracle公司的一部分。MySQL广泛用于各种Web应用程序和大型企业应…...

MoE-LLaVA:具有高效缩放和多模态专业知识的大型视觉语言模型

视觉和语言模型的交叉导致了人工智能的变革性进步&#xff0c;使应用程序能够以类似于人类感知的方式理解和解释世界。大型视觉语言模型(LVLMs)在图像识别、视觉问题回答和多模态交互方面提供了无与伦比的能力。 MoE-LLaVA利用了“专家混合”策略融合视觉和语言数据&#xff0…...

【Java】ArrayList和LinkedList的区别是什么

目录 1. 数据结构 2. 性能特点 3. 源码分析 4. 代码演示 5. 细节和使用场景 ArrayList 和 LinkedList 分别代表了两类不同的数据结构&#xff1a;动态数组和链表。它们都实现了 Java 的 List 接口&#xff0c;但是有着各自独特的特点和性能表现。 1. 数据结构 ArrayList…...

RabbitMQ-4.MQ的可靠性

MQ的可靠性 4.MQ的可靠性4.1.数据持久化4.1.1.交换机持久化4.1.2.队列持久化4.1.3.消息持久化 4.2.LazyQueue4.2.1.控制台配置Lazy模式4.2.2.代码配置Lazy模式4.2.3.更新已有队列为lazy模式 4.MQ的可靠性 消息到达MQ以后&#xff0c;如果MQ不能及时保存&#xff0c;也会导致消…...

编程相关的经典的网站和书籍

经典网站&#xff1a; Stack Overflow&#xff1a;作为全球最大的程序员问答社区&#xff0c;Stack Overflow 汇聚了大量的编程问题和解答&#xff0c;为程序员提供了极大的帮助。GitHub&#xff1a;全球最大的开源代码托管平台&#xff0c;程序员可以在上面共享自己的项目代码…...

Java代码实现基数排序算法(附带源码)

基数排序是一种非比较型整数排序算法&#xff0c;其原理是将整数按位数切割成不同的数字&#xff0c;然后按每个位数分别比较。由于整数也可以表达字符串&#xff08;比如名字或日期&#xff09;和特定格式的浮点数&#xff0c;所以基数排序也不是只能使用于整数。 1. 基数排序…...

基于python+django,我开发了一款药店信息管理系统

功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。 功能包括&#xff1a;药品管理、分类管理、顾客管理、用户管理、日志管理、系统信息模块。 代码结构 server目录是后端代码web目录是前端代码 部署运行…...

VSCODE使用ssh远程连接时启动服务器失败问题

错误情况 ping服务器的ip可通并且使用terminal可以ssh连接到远程服务器。但使用vscode的remote-ssh时&#xff0c;在「输出」栏出现了一直报 Waiting for server log… 的情况&#xff01; 解决方法一 重置服务器设置&#xff0c;包括以下手段&#xff1a; 1.清理服务器端的…...

easyexcle 导出csv

导入jar <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.3</version></dependency>代码 private static List<List<String>> head() {List<List<String>&g…...

Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(一)

一、序言 gnome-builder构建器是gnome程序开发的集成环境&#xff0c;支持主力语言C, C, Vala, jscript, python等&#xff0c;界面以最新的 gtk 4.12 为主力&#xff0c;将其下版本的gtk直接压入了depreciated&#xff0c;但gtk4.12与普遍使用的gtk3有很大区别&#xff0c;原…...

ESP32QRCodeReader库使用,ESP32-CAM识别二维码并向自写接口发出请求确认身份。

#include <Arduino.h> #include <WiFi.h> #include <HTTPClient.h> #include <ESP32QRCodeReader.h>#define WIFI_SSID "username" #define WIFI_PASSWORD "password" // 连接电脑主机的IP地址的8088端口 #define WEBHOOK_URL &qu…...

什么是网络渗透,应当如何防护?

什么是网络渗透 网络渗透是攻击者常用的一种攻击手段&#xff0c;也是一种综合的高级攻击技术&#xff0c;同时网络渗透也是安全工作者所研究的一个课题&#xff0c;在他们口中通常被称为"渗透测试(Penetration Test)"。无论是网络渗透(Network Penetration)还是渗透…...

掌握C++中的动态数据:深入解析list的力量与灵活性

1. 引言 简介std::list和其在C中的角色 std::list是C标准模板库&#xff08;STL&#xff09;中提供的一个容器类&#xff0c;实现了双向链表的数据结构。与数组或向量等基于连续内存的容器不同&#xff0c;std::list允许非连续的内存分配&#xff0c;使得元素的插入和删除操作…...

天地伟业接入视频汇聚/云存储平台EasyCVR详细步骤

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...

Vue源码系列讲解——虚拟DOM篇【二】(Vue中的DOM-Diff)

目录 1. 前言 2. patch 3. 创建节点 4. 删除节点 5. 更新节点 6. 总结 1. 前言 在上一篇文章介绍VNode的时候我们说了&#xff0c;VNode最大的用途就是在数据变化前后生成真实DOM对应的虚拟DOM节点&#xff0c;然后就可以对比新旧两份VNode&#xff0c;找出差异所在&…...