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

建网站书籍/排名优化网站seo排名

建网站书籍,排名优化网站seo排名,景区网站建设的意义,开发公司工程部工作总结api接口详解大全?优秀的设计是产品变得卓越的原因设计API意味着提供有效的接口,可以帮助API使用者更好地了解、使用和集成,同时帮助人们有效地维护它每个产品都需要使用手册,API也不例外在API领域,可以将设计视为服务器和客户端之…

api接口详解大全?优秀的设计是产品变得卓越的原因设计API意味着提供有效的接口,可以帮助API使用者更好地了解、使用和集成,同时帮助人们有效地维护它每个产品都需要使用手册,API也不例外在API领域,可以将设计视为服务器和客户端之间的协议进行建模API协议可以帮助内部和外部的利益相关者理解应该做什么,以及如何更好地协同工作来构建一个出色的API,今天小编就来聊一聊关于api接口详解大全?接下来我们就一起去研究一下吧!

api接口详解大全

优秀的设计是产品变得卓越的原因。设计API意味着提供有效的接口,可以帮助API使用者更好地了解、使用和集成,同时帮助人们有效地维护它。每个产品都需要使用手册,API也不例外。在API领域,可以将设计视为服务器和客户端之间的协议进行建模。API协议可以帮助内部和外部的利益相关者理解应该做什么,以及如何更好地协同工作来构建一个出色的API。

一、API接口1.什么是API接口

应用程序编程接口(Application Programming Interface,API接口),是应用程序重要的组成部分,就是应用程序对外提供了一个操作数据的入口,这个入口可以是一个函数或类方法,也可以是一个url地址或者一个网络地址。当客户端调用这个入口,应用程序则会执行对应代码操作,给客户端完成相对应的功能。

2.API接口类型

目前市面上大部分公司开发人员使用的接口实现规范主要有:restful、RPC。

RPC( Remote Procedure Call ): 翻译成中文:远程过程调用[远程服务调用]. 从字面上理解就是访问/调用远程服务端提供的api接口。这种接口一般以服务或者过程式代码提供。

  • 服务端提供一个唯一的访问入口地址:http://api.xxx.com/ 或 http://www.xx.com/api
  • 客户端请求服务端的时候,所有的操作都理解为动作,一般web开发时,对应的就是HTTP请求的post请求
  • 通过请求体参数,指定要调用的接口名称和接口所需的参数actinotallow=get_all_student&class=301&sex=1m=get_all_student&sex=1&age=22&command=100&sex=1&age=22接口多了,对应函数名和参数就多了,前端在请求api接口时难找.容易出现重复的接口RESTful: 翻译成中文: 资源状态转换.(表征性状态转移)把服务端提供的所有的数据/文件都看成资源, 那么通过api接口请求数据的操作,本质上来说就是对资源的操作了.因此,Restful中要求,我们把当前接口对外提供哪种资源进行操作,就把资源的名称写在url地址。web开发中操作资源,最常见的最通用的无非就是增删查改,所以restful要求在地址栏中声明要操作的资源是什么。然后通过http请求动词来说明对该资源进行哪一种操作。POST http://www.xxx.com/api/students/ 添加学生数据GET http://www.xxx.com/api/students/ 获取所有学生DELETE http://www.xxx.com/api/students/<pk>/ 删除id=pk的一个学生PUT http://www.xxx.com/api/students/<pk>/ 修改一个学生的全部信息 [id,name,sex,age,]PATCH http://www.xxx.com/api/students/<pk>/ 修改一个学生的部分信息[age]也就是说,我们仅需要通过url地址上的资源名称结合HTTP请求动作,就可以说明当前api接口的功能是什么了。Restful是以资源为主的api接口规范,体现在地址上就是资源就是以名词表达。RPC则以动作为主的api接口规范,体现在接口名称上往往附带操作数据的动作。3.为什么要编写接口文档为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们都需要找到一种大家都觉得很好的接口实现规范,而且这种规范能够让后端写的接口,用途一目了然,减少客户端和服务端双方之间的合作成本。由于接口所包含的内容比较细,在项目中常常需要使用接口文档。研发人员可以根据接口文档进行开发、协作,测试人员可以根据接口文档进行测试,系统也需要参照接口文档进行维护等。二、API接口规范1.协议API与客户端用户的通信协议,推荐使用http协议,同时兼容HTTP,以确保交互数据的传输安全。2.域名应该尽量将API部署在专用域名之下。http://api.xxx.com如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。http://www.xxx.com/api/3.版本(Versioning)推荐将API的版本号放入URL。
  • ​​https://o0b.cn/iinoah​​另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。版本号规范:1)采用多版本并存,增量发布的方式。2)版本号可以分为整型和浮点型整型:大功能版本,如v1、v2、v3 ...浮点型:补充功能版本,如v1.1、v1.2、v2.1、v2.2 ...关于版本兼容性,小版本变化向下兼容的,只要大版本不变化。3)对于一个API或服务,应在生产中最多保留3个最详细的版本4.路径(Endpoint)路径又称"终点"(endpoint),表示API的具体网址,每个网址代表一种资源(resource)接口命名应该是一个动宾结构,由动词 名词组成,采取驼峰式命名规范,例如:product/v1.0/getProducts 获取产品order/v1.1/saveOrder 保存订单接口命名常见通用动词可以参考如下:

动作

前缀

备注

获取

get

get{XXX}

获取

get

get{XXX}List

新增

add

add{XXX}

修改

update

update{XXX}

保存

save

save{XXX}

删除

delete

delete{XXX}

上传

upload

upload{XXX}

发送

send

send{XXX}

  • 5.基本规范5.1 请求参数

公共参数是每个接口都要携带的参数,描述每个接口的基本信息,用于统计或其他用途,放在Header或url参数中。

Queryurl?后面的参数,存放请求接口的参数数据。

Header请求头,存放以下公共参数、APP端公共参数等,也可以存放一些特殊加密字段。

BodyBody体,存放请求接口的参数数据。

  • 公共参数:

参数

说明

备注

app_id

唯一标识用户ID

app_id是全局唯一的,每个app_id将对应一个客户

app_key

加密key

app_key用于参数签名使用,可以理解为加密盐值,注意app_key保存到客户端,不需要作为参数传递,需要做一些安全处理,防止泄露。

timestamp

时间戳

时间戳,是客户端调用接口时对应的当前时间戳,时间戳用于防止DoS。当黑客劫持了请求的url去DoS,每次调用接口时接口都会判断服务器当前系统时间和接口中传的的timestamp的差值,如果这个差值超过某个设置的时间(假如5分钟),那么这个请求将被拦截掉,如果在设置的超时时间范围内,是不能阻止DoS的。timestamp机制只能减轻DoS的时间,缩短时间。如果黑客修改了时间戳的值可通过sign签名机制来处理。

request_id

请求ID

用户请求ID,是客户端随机生成的值,要保证全局唯一,可以参考snowflake算法,作为参数传递过来,增加request_id的目的是一方面增加sign签名的多变性,另一方面主要用于防重放,还可以作为全链路跟踪排查问题手段。

sign

签名

一般用于参数签名,防止参数被非法篡改,最常见的是修改金额等重要敏感参数, sign的值一般是将所有非空参数按照升续排序然后 token app_key timestamp request_id拼接在一起,然后使用某种加密算法进行加密,作为接口中的一个参数sign来传递,也可以将sign放到请求头中。接口在网络传输过程中如果被黑客挟持,并修改其中的参数值,然后再继续调用接口,虽然参数的值被修改了,但是因为黑客不知道sign是如何计算出来的,不知道sign都有哪些值构成,不知道以怎样的顺序拼接在一起的,最重要的是不知道签名字符串中的app_key是什么,所以黑客可以篡改参数的值,但没法修改sign的值,当服务器调用接口前会按照sign的规则重新计算出sign的值然后和接口传递的sign参数的值做比较,如果相等表示参数值没有被篡改,如果不等,表示参数被非法篡改了,就不执行接口了。

token

系统调用的唯一凭证

访问令牌access token, 用于接口中, 用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请一个接口调用的账号,服务器会给出一个app_id和一个app_key, app_key用于参数签名使用,注意app_key保存到客户端,需要做一些安全处理,防止泄露。

Token的值一般是UUID,服务端生成Token后需要将token做为key,将一些和token关联的信息作为value保存到缓存服务器中(redis),当一个请求过来后,服务器就去缓存服务器中查询这个Token是否存在,存在则调用接口,不存在返回接口错误,一般通过拦截器或者过滤器来实现。

  • 一般token、timestamp、request_id和sign 四个参数会在接口中会同时作为参数传递,每个参数都有各自的用途,其中首次获取token需要app_id、timestamp、request_id、sign,客户端获取token后不再需要传递app_id。APP 端请求公共参数

APP端请求参数除了上述公共参数外,还需要以下额外公共参数:

参数

说明

备注

network

网络

WIFI、4G

operator

运营商

中国联通/移动

platform

平台

iOS、Android

system

系统

ios 13.3、android 9

device

设备型号

iPhone XR、小米9

udid

设备唯一标示

  • 过滤参数:

若记录数量很多,服务器不可能返回全部记录给用户。API应该提供分页参数及其它筛选参数,过滤返回结果。

参数示例如下limit=10:指定返回记录的数量offset=10:指定返回记录的开始位置。page=2&per_page=100:指定第几页,以及每页的记录数。sort_by=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。

  • 注意:

1)上传/下载上传/下载,参数增加文件md5,用于完整性校验(传输过程可能丢失数据)。2)避免精度丢失缩小单位保存数据,如:钱以分为单位、距离以米为单位。

  • 5.2 响应数据

为了方便给客户端响应,响应数据会包含三个属性,状态码(code),信息描述(message),响应数据(data)。客户端根据状态码及信息描述可快速知道接口,如果状态码返回成功,再开始处理数据。array类型数据。通过list字段,保证data的Object结构。

返回示例:

​{ code: “SUCCESS”, // 返回码, 详情后面的【接口返回码】部分会说 data: {} , // 数据 message: “成功” // 存放响应信息提示,显示给客户端用户【须语义化中文提示】 }​

分页类型数据。返回总条数,用于判断是否可以加载更多。返回示例:

​{ code: “SUCCESS”, data: { "list":[] "total":10 }, // 数据, message: “成功” }​

响应状态码code统一使用英文组合字符串,多层分级使用“.”分隔,例如:PARAMETER.ILLEGALL

PARAMETER.ILLEGALL代表参数错误,不推荐使用数字,数字错误码可读性太差。

注意:1)返回属性名命名时,建议使用驼峰命名,首字母小写。2)返回属性值为空时,严格按类型返回默认值。3)返回金额类型/时间日期类型的属性值,如果仅用来显示,建议后端返回可以显示的字符串。4)返回业务逻辑的状态码和对应的文案,建议后端两者都返回,中间添加“|”分隔,例如“SUCCESS|成功”,SUCCESS表示接口状态成功,显示给客户表示“成功”。5)调用方不需要的属性,不要返回。

  • 5.3使用GET/POST作为接口请求方式

一般调用接口最常用的两种方式就是GET和POST。两者的区别也很明显,GET请求会将参数暴露在浏览器URL中,而且对长度也有限制。为了更高的安全性,所有接口都采用POST方式请求。另外不推荐使用rest的PUT和DELETE,因为很多浏览器不支持,很多框架也不支持。

我们这里用的的GET和POST同RESTFul中的GET、POST是不一样的。通常使用GET、POST的选择点在于,简单的用GET、复杂对象用POST,并没有动作的含义,例如我也可以使用get来执行添加的动作,如果参数很多,我也可以使用POST来执行查询操作;但在REST里,GET对应的是查询一个资源,而POST对应的是新增一个资源,意义是决然不同的。理解这一点非常重要。

  • 5.4返回格式

返回响应数据采用JSON,不推荐使用XML,XML是W3C为了替换HTML研发出来的,但是现在很明显失败了。默认情况下要支持gzip

  • 三、接口安全规范3.1安全设计规范

获取token一般会涉及到几个参数app_id,app_key,timestamp,request_id,sign。我们通过以上几个参数来获取调用系统的凭证。

  • app_id和app_key可以直接通过平台线上申请,也可以线下直接颁发。app_id是全局唯一的,每个app_id将对应一个客户,app_key需要客户端高度保密。
  • timestamp是时间戳,使用系统当前的unix时间戳。时间戳的目的就是为了减轻DDOS的。防止请求被拦截后一直尝试请求接口。服务器端设置时间戳阀值,如果请求时间戳和服务器时间超过阀值,则响应失败。
  • request_id是随机值。随机值主要是为了增加sign的多变性,也可以保护接口的幂等性,相邻的两次请求reqeust_id不允许重复,如果重复则认为是重复提交,响应失败。
  • sign是参数签名,将所有非空参数按照升续排序、app_key、timestamp、reqeust_id拼接起来进行md5加密(当然使用其他方式进行不可逆加密也没问题)。
    token作为系统调用的唯一凭证,token可以设置一次有效,也可以设置时效性,这里推荐设置时效性。如果一次有效的话这个接口的请求频率可能会很高。token推荐加到请求头上,这样可以跟业务参数完全区分开来。
    这里面主要涉及到sign签名设计规范和token生成规范,需要遵守如上规范,能够保证API接口的安全性和幂等性。3.2客户端IP白名单ip白名单是指将接口的访问权限对部分ip进行开放。这样就能避免其他ip进行访问,设置ip白名单比较麻烦的一点就是当你的客户端进行迁移后,就需要重新联系服务提供者添加新的ip白名单。设置ip白名单的方式很多,除了传统的防火墙之外,spring cloud alibaba提供的组件sentinel也支持白名单设置。为了降低api的复杂度,推荐使用防火墙规则进行白名单设置或者在API网关层面设置IP白名单,比如shenyu网关支持IP白名单设置。3.3单个接口针对ip限流限流是为了更好的维护系统稳定性。使用redis进行接口调用次数统计,ip 接口地址作为key,访问次数作为value,每次请求value 1,设置过期时长来限制接口的调用频率。不过这里还是推荐在网关层面进行设置,比如shenyu网关支持IP限流。3.4敏感数据加密与脱敏参数安全:登录密码、支付密码,需加密后传输,建议使用非对称加密
    响应结果:用户手机号、用户邮箱、身份证号、支付账号、邮寄地址等要进行脱敏,部分数据加 * 号处理。
    在接口调用过程中数据通常需要脱敏安全处理,最常用的方式就是加密。加密方式使用安全性比较高的RSA非对称加密。非对称加密算法有两个密钥,这两个密钥完全不同但又完全匹配。只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。四、API接口幂等性幂等性是指任意多次请求的执行结果和一次请求的执行结果所产生的影响相同。说的直白一点就是查询操作无论查询多少次都不会影响数据本身,因此查询操作本身就是幂等的。但是新增操作,每执行一次数据库就会发生变化,所以它是非幂等的。
    我们无法保证接口的每一次调用都是有返回结果的,要考虑到出现网络异常的情况。举个例子,订单创建时,我们需要去减库存,这时接口发生了超时,调用方进行了重试,这时是否会多扣一次库存?
    对于一些重要的操作需要防止客户端重复提交的(如非幂等性重要操作),具体办法是当请求第一次提交时将request_id作为key保存到redis,相应的返回结果集作为value存储到redis,并设置超时时间。当同一个请求第二次访问时会先检测redis是否存在该request_id,如果存在则证明重复提交了,接口直接返回不再继续调用了。五、API调用流程1.接口调用方(客户端)向接口提供方(服务器)申请接口调用账号,申请成功后,接口提供方会给接口调用方一个app_id和app_key
    2.客户端携带参数app_id、timestamp、request_id、sign去调用服务器端的API token,其中sign=加密(app_id timestamp request_id app_key)
    3.使用参数app_id,timestamp,request_id,sign来获取token,token作为系统调用的唯一凭证
    4.客户端拿着token 去访问相应的接口
    5.如果token过期需要获取刷新token
    sign的作用是防止参数被篡改,客户端调用服务端时需要传递sign参数,服务器响应客户端时也可以返回一个sign用于客户端校验返回的值是否被非法篡改了。六、接口文档1、尽量采用自动化接口文档,可以做到在线测试,同步更新,推荐使用swagger、yapi。2、应包含:接口BASE地址、接口版本、接口模块分类等。3、每个接口应包含:接口地址:不包含接口BASE地址。请求方式: GET、POST。请求参数:数据格式【默认JSON、可选form data】、数据类型、是否必填、中文描述。响应参数:类型、中文描述。七、总结关于限流设计、熔断设计、降级设计,目前主流网关都有相关功能(比如shenyu网关),可以不在API实现中开发这些功能。
    另外推荐把API相关日志存储到日志平台,日志平台有利于故障定位和日志统计分析以及接口监控。日志平台的搭建可以使用的是ELK组件,使用Logstash进行收集日志文件,使用Elasticsearch引擎进行搜索分析,最终在Kibana平台展示出来。

 

相关文章:

api接口详解大全

api接口详解大全?优秀的设计是产品变得卓越的原因设计API意味着提供有效的接口&#xff0c;可以帮助API使用者更好地了解、使用和集成&#xff0c;同时帮助人们有效地维护它每个产品都需要使用手册&#xff0c;API也不例外在API领域&#xff0c;可以将设计视为服务器和客户端之…...

为什么要用VR全景?5个答案告诉你

看中了刚上市的一款新车&#xff0c;再也不用等车展、去4s店才能仔细观赏&#xff0c;点开手机就能“置身”车内近距离观看每一处细节&#xff0c;点击关灯开灯、关门关门&#xff0c;除了摸不到&#xff0c;和在现场几乎没有区别&#xff1b; 准备买房的时候&#xff0c;没人愿…...

常用的深度学习优化方式

全连接层 PyTorch中的全连接层&#xff08;Fully Connected Layer&#xff09;也被称为线性层&#xff08;Linear Layer&#xff09;&#xff0c;是神经网络中最常用的一种层。全连接层将输入数据的每个元素与该层中的每个神经元相连接&#xff0c;输出结果是输入数据与该层的…...

全面吃透Java Stream流操作,让代码更加的优雅

文章目录1 认识Stream流1.1 什么是流1.2 流与集合1.2.1 流只能遍历一次1.2.2 外部迭代和内部迭代1.3 流操作1.3.1 中间操作1.3.2 终端操作1.3.3 使用流2 学会使用Stream流2.1 筛选和切片2.1.1 用谓词筛选2.1.2 筛选各异的元素2.1.3 截短流2.1.4 跳过元素2.2 映射2.2.1 map方法2…...

机器学习学习记录1:假设空间

我们可以把学习过程看作一个在所有假设组成的空间中进行搜索的过程&#xff0c;搜索目标是找到与训练集"匹配" 的假设&#xff0c;即能够将训练集中的瓜判断正确的假设.假设的表示一旦确定&#xff0c;假设空间及其规模大小就确定了.对于西瓜问题&#xff0c;这里我们…...

开源工具系列5:DependencyCheck

Dependency-Check 是 OWASP&#xff08;Open Web Application Security Project&#xff09;的一个实用开源程序&#xff0c;用于识别项目依赖项并检查是否存在任何已知的&#xff0c;公开披露的漏洞。 DependencyCheck 是什么 Dependency-Check 是 OWASP&#xff08;Open Web …...

JDBC知识点全面总结2:JDBC实战编写CRUD

二.JDBC知识点全面总结1&#xff1a;JDBC实战编写CRUD 1.JDBC重要接口&#xff1f; 2.Driver和DriverMangement的关系&#xff1f; 3.JAVA与数据库连接 4.JAVA中使用statement来执行sql语句时&#xff0c;拼接字符串的sql注入问题&#xff1f; 5.使用preparedstatement进行…...

java - 数据结构,算法,排序

一、概念 1.1、排序 排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 平时的上下文中&#xff0c;如果提到排序&#xff0c;通常指的是排升序&#xff08;非降序&#xff09;。 通常意义上的排序&#…...

二叉树经典14题——初学二叉树必会的简单题

此篇皆为leetcode、牛客中的简单题型和二叉树基础操作&#xff0c;无需做过多讲解&#xff0c;仅付最优解。有需要的小伙伴直接私信我~ 目录 1.二叉树的节点个数 2.二叉树叶子节点个数 3.二叉树第K层节点个数 4.查找值为X的节点 5.leetcode——二叉树的最大深度 6.leetc…...

基于NMOSFET的电平转换电路设计

一、概述&#xff1a; 在单片机系统中&#xff0c;5V、3.3V是芯片常用的电平。而在传输协议中(如IIC、SPI等协议)&#xff0c;存在芯片与芯片的高电平和低电平定义的范围不一样&#xff0c;所以需要存在一个电平转换电路&#xff0c;来使芯片与芯片之间顺利的传输。 二、前置…...

mongoDB搭建集群

(学习自黑马)下载对应linux版本MongoDB源码下载地址&#xff1a;https://www.mongodb.com/download-center#community目前在一台服务器开三个端口模拟三个mongodb, 配置一个主节点27017,一个从节点27018,一个仲裁者27019配置主节点,副节点,仲裁节点(下面的创建文件一共有三份,通…...

[深入理解SSD系列 闪存2.1.5] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现

前言 上面是我使用的NAND FLASH的硬件原理图,面对这些引脚,很难明白他们是什么含义, 下面先来个热身: 问1. 原理图上NAND FLASH只有数据线,怎么传输地址? 答1.在DATA0~DATA7上既传输数据,又传输地址 当ALE为高电平时传输的是地址, 问2. 从NAND FLASH芯片手册可知,要…...

最新 JVM 面试经典问题

文章目录 说说JVM的内存布局?知道new一个对象的过程吗?知道双亲委派模型吗?说说有哪些垃圾回收算法?标记-清除复制算法标记-整理那么什么是GC ROOT?有哪些GC ROOT?垃圾回收器了解吗?年轻代和老年代都有哪些垃圾回收器?G1的原理了解吗?什么时候会触发YGC和FGC?对象什么…...

HTML5 和 CSS3 的新特性

目标能够说出 3~5 个 HTML5 新增布局和表单标签能够说出 CSS3 的新增特性有哪些HTML5新特性概述HTML5 的新增特性主要是针对于以前的不足&#xff0c;增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题&#xff0c;基本是 IE9 以上版本的浏览器才支持&…...

Vulnhub系列:FristLeaks

一、配置靶机环境以往的靶机&#xff0c;本人是在virtual box中&#xff0c;去配置&#xff0c;和vm上的kali进行联动&#xff0c;但是这个靶机需要DHCP&#xff0c;以往的方式可能不太行了&#xff0c;或者可以在virtual box中桥接成统一网卡。下面介绍下本人最有用的方法&…...

XWiki Annotation Displayer 存在任意代码执行漏洞(CVE-2023-26475)

漏洞描述 XWiki 是一个开源的企业级 Wiki 平台&#xff0c;Annotation Displayer 是 XWiki 中的一个插件&#xff0c;用于在 XWiki 页面上显示注释和其他相关内容。 该项目受影响版本存在任意代码执行漏洞&#xff0c;由于Annotation Displayer 对 Groovy 宏的使用没有限制&a…...

数字孪生GIS智慧风场Web3D可视化运维系统

随着国家双碳目标的实施&#xff0c;新能源发电方式逐渐代替了污染大气层的火力发电&#xff0c;其中风力发电相比于光伏发电具有能量密度高、发电小时数长、生命周期达20-25年之久等独特的优势。风能取之不尽、用之不竭&#xff0c;在新型能源互联网下&#xff0c;风力发电有可…...

Retrofit核心源码分析(二)- 网络请求和响应处理

在上一篇文章中&#xff0c;我们详细分析了 Retrofit 中的注解解析和动态代理实现&#xff0c;本篇文章将继续深入研究 Retrofit 的核心源码&#xff0c;重点分析 Retrofit 如何进行网络请求和响应处理。 网络请求 在使用 Retrofit 发起网络请求时&#xff0c;我们可以通过定…...

STM32启动模式讲解与ICP下载电路

一、官方提供的启动模式说明硬件BOOT引脚接法表格从表格可以看出有三种启动模式&#xff0c;然后对应这不同的存储器启动&#xff0c;那我们现在疑问为啥有三种不能只有一种就好&#xff0c;还有存储器启动区域怎么区分&#xff0c;有些乱&#xff0c;带着这些疑问&#xff0c;…...

5款小巧好用的电脑软件,让你的工作生活更加高效!

不得不说良心好软件让大家好评连连&#xff0c;爱不释手&#xff0c;不像某些软件自带广告弹窗。这期就由我给大家安利几款电脑中的得力助手&#xff0c;看看你都用过几个&#xff1f; 1.桌面管理神器——Coodesker Coodesker是一款免费小巧、无广告&#xff0c;功能简单的桌…...

python线程池

假设我们必须多线程任务创建大量线程。 由于线程太多&#xff0c;因此可能会有很多性能问题&#xff0c;这在计算上会是最昂贵的。 一个主要问题可能是吞吐量受限。 我们可以通过创建一个线程池来解决这个问题。 一个线程池可以被定义为一组预先实例化和空闲的线程&#xff0c;…...

深入浅出PaddlePaddle函数——paddle.ones_like

分类目录&#xff1a;《深入浅出PaddlePaddle函数》总目录 相关文章&#xff1a; 深入浅出PaddlePaddle函数——paddle.Tensor 深入浅出PaddlePaddle函数——paddle.ones 深入浅出PaddlePaddle函数——paddle.zeros 深入浅出PaddlePaddle函数——paddle.full 深入浅出Padd…...

计算机组成原理(海明码效验)(3)-软件设计(二十四)

计算机组成原理&#xff08;2&#xff09;-软件设计&#xff08;二十三&#xff09;https://blog.csdn.net/ke1ying/article/details/129394115 一、总线 分为 内部总线、系统总线、外部总线。 内部总线&#xff1a;指芯片级别的总线&#xff0c;连接各个芯片。 系统总线&a…...

Linux2.2网络驱动程序编写

一.Linux系统设备驱动程序概述1.1 Linux设备驱动程序分类1.2 编写驱动程序的一些基本概念二.Linux系统网络设备驱动程序2.1 网络驱动程序的结构2.2 网络驱动程序的基本方法2.3 网络驱动程序中用到的数据结构2.4 常用的系统支持三.编写Linux网络驱动程序中可能遇到的问题3.1 中断…...

像素密度提升33%,Quest Pro动态注视点渲染原理详解

在Connect 2022上&#xff0c;Meta发布了Quest Pro&#xff0c;并首次在VR中引入动态注视点渲染&#xff08;ETFR&#xff09;功能&#xff0c;这是一种新型图形优化技术&#xff0c;特点是以用户注视点为中心&#xff0c;动态调节VR屏幕的清晰度&#xff08;注视点中心最清晰、…...

【Linux实战篇】二、在Linux上部署各类软件

一、实战章节&#xff1a;在Linux上部署各类软件 二、MySQL数据库管理系统安装部署【简单】 简介 MySQL数据库管理系统&#xff08;后续简称MySQL&#xff09;&#xff0c;是一款知名的数据库系统&#xff0c;其特点是&#xff1a;轻量、简单、功能丰富。 MySQL数据库可谓是…...

基于SpringBoot的学生会管理系统 源码

StudentUnionManagementSystem 基于SpringBoot的学生会管理系统 源码 链接 目录StudentUnionManagementSystem介绍软件架构使用说明1.页面登录2.首页3.成员信息管理4.角色信息管理5.权限管理6.活动管理7.文件管理8.活动展示介绍 学生会管理系统 SpringBoot Mybatis-plus shir…...

[league/glide]两行代码实现一套强大的图片处理HTTP服务

只要两行代码&#xff0c;就能实现类似对象存储云提供的基于参数的图片处理&#xff0c;比如裁剪、放大、水印、旋转等等。 我们经常使用第三方的对象存储服务&#xff0c;比如七牛云或阿里云&#xff0c;他们都提供了“智能媒体服务”&#xff0c;其实就是在链接上加上各种参…...

Kafka 消费者组

Kafka 消费者组Consumer数位移重平衡消费者组 (Consumer Group) : 可扩展且容错性的消费者机制 一个组内可能有多个消费者 (Consumer Instance) : 共享一个公共 ID (Group ID)组内的所有消费者协调消费订阅主题 (Subscribed Topics) 的所有分区 (Partition)每个分区只能由同个…...

高效学 C++|组合类的构造函数

设计好MyString类后&#xff0c;就可以像使用普通类型一样使用它了。例如&#xff0c;类的对象可以像普通的变量一样作为另一个类的数据成员。【例1】 MyString类的对象作为CStudent类的数据成员。1. //MyString类的定义省略 2. //注意&#xff1a;保留其构造函数、析构函数、…...