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

[代码规范]接口设计规范

一个优雅的接口要如何设计?有哪些设计规范可以遵循?

下面抛砖引玉,分享一些规范。

目录

1、RESTful API 设计最佳实践

2、Shneiderman 的 8 条黄金法则

3、Nielsen 的 10 条启发式规则

1、RESTful API 设计最佳实践

一共18条,参考了网上流传的18条规范并加以整理,基于 RESTful 规范源自微服务经验和企业实践。

包括了安全性、稳定性、可靠性、可拓展性、一致性、可维护型、高性能设计等方面。

适用于日常API开发,但要值得注意的是,通常接口开发的“快且正确的完成业务”优先级最高。

一个小的设计哲学口号:快速、可靠、优质

  1. 签名
    • 指通过签名(如 HMAC-SHA256)验证请求的完整性和来源,常见于安全设计。
    • 来源:API 安全最佳实践。
  2. 加密
    • 数据传输使用 HTTPS,或对敏感字段加密(如 AES)。
    • 来源:网络安全规范。
  3. IP 白名单
    • 限制接口访问仅允许特定 IP,提升安全性。
    • 来源:服务端安全策略。
  4. 限流
    • 通过令牌桶或漏桶算法限制请求频率,防止接口被滥用。
    • 来源:系统稳定性设计(如 Rate Limiting)。
  5. 参数校验
    • 对输入参数进行验证(如非空、格式),避免非法请求。
    • 来源:《阿里巴巴 Java 开发手册》或其他开发规范。
  6. 统一返回值
    • 返回格式一致(如 JSON,含 code、message、data),便于调用方解析。
    • 来源:RESTful API 设计准则。
  7. 统一封装异常
    • 通过全局异常处理器返回标准错误响应。
    • 来源:Java 开发最佳实践。
  8. 请求日志
    • 记录请求信息(如时间、参数、IP),便于追踪和调试。
    • 来源:运维和日志管理规范。
  9. 幂等设计
    • 确保重复请求不产生副作用(如使用唯一标识)。
    • 来源:RESTful API 设计原则。
  10. 限制记录条数
    • 分页接口限制返回条数(如默认 20 条),避免性能问题。
    • 来源:数据库查询优化。
  11. 压测
    • 接口上线前进行压力测试,确保性能和稳定性。
    • 来源:软件测试规范。
  12. 异步处理
    • 耗时操作使用异步(如消息队列),提升响应速度。
    • 来源:高并发系统设计。
  13. 数据脱敏
    • 对敏感数据(如手机号)脱敏显示,保护隐私。
    • 来源:数据安全和合规性要求(如 GDPR)。
  14. 完整的接口文档
    • 提供详细的 API 文档(如 Swagger),包括参数、示例等。
    • 来源:API 开发规范。
  15. 请求方式
    • 使用合适的 HTTP 方法(如 GET、POST、PUT、DELETE)。
    • 来源:RESTful API 规范。
  16. 请求头
    • 定义标准请求头(如 Content-Type、Authorization)。
    • 来源:HTTP 协议和 API 设计。
  17. 批量操作
    • 支持批量请求,减少网络开销。
    • 来源:性能优化实践。
  18. 职责单一
    • 接口功能单一,避免“大杂烩”设计。
    • 来源:SOLID 原则(单一职责原则)。

2、Shneiderman 的 8 条黄金法则

源自《Designing the User Interface》,这些法则最初针对图形用户界面(GUI)设计,但也广泛适用于 API 接口、Web 页面、移动应用等。

  1. 保持一致性(Strive for Consistency)
    • 界面风格、术语、布局、操作应在整个系统中保持一致。例如,按钮样式、颜色、命名等应统一,避免用户混淆。
    • 示例:所有“保存”按钮都使用绿色,且位于右下角。
  2. 支持快捷操作(Enable Frequent Users to Use Shortcuts)
    • 为熟练用户提供快捷方式(如键盘快捷键、命令行),提高效率。
    • 示例:Ctrl+S 保存,Ctrl+C 复制。
  3. 提供信息反馈(Offer Informative Feedback)
    • 对用户的每个操作提供及时、清晰的反馈,告知结果或状态。
    • 示例:点击“提交”后显示“提交成功”或“正在处理”提示。
  4. 设计对话框以体现完成感(Design Dialogs to Yield Closure)
    • 操作流程应有明确的开始、中间和结束,让用户感到任务已完成。
    • 示例:表单提交后显示“感谢您的提交”并关闭窗口。
  5. 预防和处理错误(Offer Error Prevention and Simple Error Handling)
    • 设计时尽量避免用户犯错;发生错误时,提供简单易懂的解决方法。
    • 示例:输入框限制只能输入数字,或错误时提示“请输入有效邮箱”。
  6. 支持撤销和重做(Permit Easy Reversal of Actions)
    • 用户应能轻松撤销误操作,降低操作压力。
    • 示例:删除文件后提供“撤销”选项。
  7. 增强用户控制感(Support Internal Locus of Control)
    • 让用户感觉自己在掌控系统,而不是被系统牵制。
    • 示例:允许用户随时取消长时间运行的任务。
  8. 减少短期记忆负担(Reduce Short-Term Memory Load)
    • 界面设计应避免用户记住过多信息,提供提示或默认值。
    • 示例:表单自动填充常用选项,而不是让用户每次手动输入。

3、Nielsen 的 10 条启发式规则

源自 Nielsen Norman Group官网,这些规则广泛应用于 UI/UX 设计,包括网站、移动应用、软件界面等。虽然主要针对用户界面,但部分原则(如一致性、错误处理)也可启发 API 设计。

  1. 系统状态可见性(Visibility of System Status)
    • 用户应随时知道系统当前状态,提供及时反馈。
    • 示例:上传文件时显示进度条。
  2. 系统与现实匹配(Match Between System and the Real World)
    • 使用用户熟悉的语言和概念,避免技术术语。
    • 示例:购物车图标表示“添加购物车”。
  3. 用户控制与自由(User Control and Freedom)
    • 提供撤销和重做功能,让用户能纠正错误。
    • 示例:浏览器中的“后退”按钮。
  4. 一致性与标准(Consistency and Standards)
    • 界面元素、术语和行为应保持一致,遵循行业标准。
    • 示例:所有页面顶部都有导航栏。
  5. 错误预防(Error Prevention)
    • 设计时避免用户犯错,提供约束或确认机制。
    • 示例:提交表单前要求确认。
  6. 识别优于回忆(Recognition Rather than Recall)
    • 减少用户记忆负担,提供可见的选项或提示。
    • 示例:下拉菜单代替手动输入日期。
  7. 灵活性与效率(Flexibility and Efficiency of Use)
    • 满足新手和专家需求,支持快捷方式。
    • 示例:支持鼠标点击和键盘快捷键。
  8. 简洁美观的设计(Aesthetic and Minimalist Design)
    • 只显示相关信息,避免无关内容干扰。
    • 示例:登录页面只包含用户名和密码字段。
  9. 帮助用户识别、诊断和恢复错误(Help Users Recognize, Diagnose, and Recover from Errors)
    • 错误信息应清晰易懂,并提供解决方案。
    • 示例:“密码错误,请重试或点击‘忘记密码’”。
  10. 帮助与文档(Help and Documentation)
    • 提供易于搜索和理解的帮助文档。

    相关文章:

    [代码规范]接口设计规范

    一个优雅的接口要如何设计?有哪些设计规范可以遵循? 下面抛砖引玉,分享一些规范。 目录 1、RESTful API 设计最佳实践 2、Shneiderman 的 8 条黄金法则 3、Nielsen 的 10 条启发式规则 1、RESTful API 设计最佳实践 一共18条,参考…...

    4-3自定义加载器,并添加功能

    一、自定义类加载器的实现步骤 ​继承ClassLoader类​ 自定义类加载器需继承java.lang.ClassLoader,并选择性地重写以下方法: ​findClass(String name):核心方法,用于根据类名查找并加载类的字节码。需从自定义路径&#xff08…...

    北京大学DeepSeek提示词工程与落地场景(PDF无套路免费下载)

    近年来,大模型技术飞速发展,但许多用户发现:即使使用同一款 AI 工具,效果也可能天差地别——有人能用 AI 快速生成精准方案,有人却只能得到笼统回答。这背后的关键差异,在于提示词工程的应用能力。 北京大…...

    SSH密码更改

    Windows User目录下的.ssh/config,全部删除 linux 在主用户文件夹,ctrlh显示隐藏文件。删除.shh文件夹内所有文件。...

    蓝桥备赛(四)- 数组(下)

    一 、 字符数组 1.1 介绍 数组的元素如果是字符类型 , 这种数组就是字符数组 , 字符数组可以是一维数组 , 可以是二维数组 (多维数组)。 接下来主要讨论一维的字符数组 : char arr1[5] //一维数组 char arr2[3][5] // 二维数组 C语言 中…...

    基金 word-->pdf图片模糊的解决方法

    1. 首先需要Adobe或福昕等pdf阅读器。 2. word中 [文件]--[打印],其中打印机选择pdf阅读器,例如此处我选择福昕阅读器。 3. 选择 [打印机属性]--[编辑]--[图像],将所有的采样、压缩均设置为 关闭。点击[另存为],保存为 基金报告…...

    身为小兵,如何提升不可替代性?

    之前聊过,研发、PIE、PE、可靠性等岗位,主要是对物的工作, 这类岗位,如何提升不可替代性? 我的经验是,学会识别创造性工作or重复性工作。 尽可能地做创造性工作,推重复性工作。 销售、采购、HR等岗位,主要是对人的工作, 这类岗位,如何提升不可替代性? 我的思考…...

    easyExcel使用案例有代码

    easyExcel 入门,完成web的excel文件创建和导出 easyExcel官网 EasyExcel 的主要特点如下: 1、高性能:EasyExcel 采用了异步导入导出的方式,并且底层使用 NIO 技术实现,使得其在导入导出大数据量时的性能非常高效。 2、易于使…...

    linux服务器更新jar包脚本

    【需求】Java每次发布新的版本都需要先kill掉原来的服务,然后再启动新的包 有了这个脚本只需要把包替换掉,服务会自动kill 以8184 为例 完整的脚本如下 #!/bin/bash# 检查端口 8184 是否被占用 PORT8184 PID$(lsof -t -i:$PORT)if [ -n "$PID…...

    Tomcat 乱码问题彻底解决

    1. 终端乱码问题 找到 tomcat 安装目录下的 conf —> logging.properties .修改ConsoleHandler.endcoding GBK (如果在idea中设置了UTF-8字符集,这里就不需要修改) 2. CMD命令窗口设置编码 参考:WIN10的cmd查看编码方式&…...

    dify绑定飞书多维表格

    dify 绑定飞书和绑定 notion 有差不多的过程,都需要套一层应用的壳子,而没有直接可以访问飞书文档的 API。本文记录如何在dify工具中使用新增多条记录工具。 创建飞书应用 在飞书开放平台创建一个应用,个人用户创建企业自建应用。 自定义应…...

    深入浅出:插入排序算法完全解析

    1. 什么是插入排序? 插入排序(Insertion Sort)是一种简单的排序算法,其基本思想与我们整理扑克牌的方式非常相似。我们将扑克牌从第二张开始依次与前面已排序的牌进行比较,将其插入到合适的位置,直到所有牌…...

    MySQL--DQL、DML、DDL、DCL概念与区别

    在SQL中,根据功能和操作对象的不同,通常将语文分为四大类:DQL(数据查询语言)、DML(数据操作语言)、DDL(数据定义语言)、DCL(数据控制语言) 一、D…...

    【设计原则】里氏替换原则(LSP):构建稳健继承体系的黄金法则

    深入理解里氏替换原则(LSP)及其在C#中的实践 一、什么是里氏替换原则?二、为什么需要LSP?三、经典违反案例:矩形与正方形问题四、正确的设计实践方案1:通过接口分离方案2:使用抽象类 五、LSP的关…...

    SQL的select语句完整的执行顺序

    SQL的SELECT语句的执行顺序可以用"做菜流程"来类比理解。虽然我们写SQL时按SELECT…FROM…WHERE…顺序写,但数据库执行顺序完全不同。以下是通俗易懂的讲解(附流程图和示例): 🔧 执行顺序流程图&#xff1a…...

    【Vue3】浅谈setup语法糖

    Vue3 的 setup 语法糖是通过 <script setup> 标签启用的特性&#xff0c;它是对 Composition API 的进一步封装&#xff0c;旨在简化组件的声明式写法&#xff0c;同时保留 Composition API 的逻辑组织能力。以下是其核心概念和原理分析&#xff1a; 一、<script setu…...

    算法-二叉树篇27-把二叉搜索树转换为累加树

    把二叉搜索树转换为累加树 力扣题目链接 题目描述 给出二叉 搜索 树的根节点&#xff0c;该树的节点值各不相同&#xff0c;请你将其转换为累加树&#xff08;Greater Sum Tree&#xff09;&#xff0c;使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提…...

    FPGA开发,使用Deepseek V3还是R1(3):系统级与RTL级

    以下都是Deepseek生成的答案 FPGA开发&#xff0c;使用Deepseek V3还是R1&#xff08;1&#xff09;&#xff1a;应用场景 FPGA开发&#xff0c;使用Deepseek V3还是R1&#xff08;2&#xff09;&#xff1a;V3和R1的区别 FPGA开发&#xff0c;使用Deepseek V3还是R1&#x…...

    《国密算法开发实战:从合规落地到性能优化》

    前言 随着信息技术的飞速发展,信息安全已成为全球关注的焦点。在数字化时代,数据的保密性、完整性和可用性直接关系到国家、企业和个人的利益。为了保障信息安全,密码技术作为核心支撑,发挥着至关重要的作用。国密算法,即国家密码算法,是我国自主设计和推广的一系列密码…...

    DeepSeek开源周Day5压轴登场:3FS与Smallpond,能否终结AI数据瓶颈之争?

    2025年2月28日&#xff0c;DeepSeek开源周迎来了第五天&#xff0c;也是本次活动的收官之日。自2月24日启动以来&#xff0c;DeepSeek团队以每天一个开源项目的节奏&#xff0c;陆续向全球开发者展示了他们在人工智能基础设施领域的最新成果。今天&#xff0c;他们发布了Fire-F…...

    Linux:进程替换

    目录 进程程序替换 替换原理 进程替换相关函数 环境变量与进程替换函数 命令行解释器(my_xshell) 进程程序替换 上一篇进程控制讲到&#xff0c;父进程创建子进程就是为了让子进程去做一些另外的事情&#xff0c;但是不管怎么说&#xff0c;子进程的部分代码也还是父进程…...

    CSS 日常开发常用属性总结

    文章目录 CSS 日常开发常用属性总结一、 常用 CSS 属性1、布局相关&#xff08;1&#xff09;display&#xff1a;&#xff08;2&#xff09;position&#xff1a;&#xff08;3&#xff09;float&#xff1a;&#xff08;4&#xff09;clear&#xff1a; 2、尺寸与溢出&#x…...

    Python 绘制迷宫游戏,自带最优解路线

    1、需要安装pygame 2、上下左右移动&#xff0c;空格实现物体所在位置到终点的路线&#xff0c;会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, botto…...

    了解Java集合的概念和体系:Collection<T>、Collections与Stream的使用

    学习目标 本文知识是对集合层级的介绍&#xff0c;应用开发中实际使用的是他们的子级&#xff0c;感兴趣的小伙伴或者想深入了解有关Java集合知识的朋友可以选择阅读&#xff01; Stream的方法使用使用部分代码块内大多有两种实现方式&#xff0c;是为了更好的理解方法底层的代…...

    扫描局域网可用端口

    site: https://mengplus.top #SiliconFlow : 在Linux系统&#xff0c;你可以使用一个简单的Bash脚本来扫描局域网中可用的端口。这个脚本可以使用nmap工具来实现。nmap是一个强大的网络扫描工具&#xff0c;可以用来探测网络中的主机和端口。 以下是一个简单的Bash脚本&#…...

    算法分析 —— 《栈》

    文章目录 删除字符串中的所有相邻重复项题目描述&#xff1a;代码实现&#xff1a;代码解析&#xff1a; 比较含退格的字符串题目描述&#xff1a;代码实现&#xff1a;代码解析&#xff1a; [基本计算器 II](https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-…...

    693. 交替位二进制数

    交替位二进制数 题目描述尝试做法推荐做法 题目描述 给定一个正整数&#xff0c;检查它的二进制表示是否总是 0、1 交替出现&#xff1a;换句话说&#xff0c;就是二进制表示中相邻两位的数字永不相同。 示例 1&#xff1a; 输入&#xff1a;n 5 输出&#xff1a;true 解释…...

    uniapp中使用leaferui使用Canvas绘制复杂异形表格的实现方法

    需求&#xff1a; 如下图&#xff0c;要实现左图的样式&#xff0c;先实现框架&#xff0c;文字到时候 往里填就行了&#xff0c;原来的解决方案是想用css,html来实现&#xff0c;发现实现起来蛮麻烦的。我也没找到合适的实现方法&#xff0c;最后换使用canvas来实现&#xff…...

    Java 反射(Reflection)的原理和应用

    反射&#xff08;Reflection&#xff09;是 Java 语言的一项强大功能&#xff0c;它允许程序在运行时动态地获取类的信息&#xff0c;并且可以操作这些信息&#xff0c;如创建对象、调用方法、访问字段等。反射机制的核心在于 Java 的 类加载机制 和 动态类型检查&#xff0c;使…...

    Linux top 常用参数记录

    top命令经常用来监控linux的系统状况&#xff0c;能实时显示系统中各个进程、线程的资源占用情况&#xff0c;是常用的性能分析工具。 一些常用参数记录 top的使用方式 top [-d number] | top [-bnp] # 5s 更新一次 top -d 5# 进行2次top命令的输出结果 top -n 2# 查看进程的…...

    hive之LEAD 函数详解

    1. 函数概述 LEAD 是 Hive 中的窗口函数&#xff0c;用于获取当前行之后指定偏移量处的行的值。常用于分析时间序列数据、计算相邻记录的差异或预测趋势。 2. 语法 LEAD(column, offset, default) OVER ([PARTITION BY partition_column] [ORDER BY order_column [ASC|DESC]…...

    Element Plus中el-tree点击的节点字体变色加粗

    el-tree标签设置 <el-tree class"tree":data"treeData":default-expand-all"true":highlight-current"true"node-click"onTreeNodeClick"><!-- 自定义节点内容&#xff0c;点击的节点字体变色加粗 --><!-- 动…...

    .gitignore 设置后不见效的解决方法中,方案一就可以了

    遇到的问题&#xff1a;你的 .gitignore 文件中包含了 unpackage/ 目录&#xff0c;但它不起作用的原因可能有以下几个&#xff1a; 1. 文件或目录已经被 Git 跟踪 .gitignore 只能忽略 未被 Git 追踪 的文件或目录。如果 unpackage/ 目录已经被提交到 Git 版本库中&#xff…...

    git提交管理

    git提交管理 scoop install nodejs # windows npm install --save-dev commitlint/config-conventional commitlint/cli # non-windows npm install --save-dev commitlint/{cli,config-conventional} # windows将commitlint.config.js修改为utf8编码, 默认utf16编码 echo &qu…...

    DeepSeek八大组合软件,效率加倍

    DeepSeek王炸组合&#xff1a;开启2025年高效工作与创意新时代 在科技飞速发展的2025年&#xff0c;人工智能和各类工具的融合正不断重塑我们的工作与生活方式。DeepSeek作为一款强大的工具&#xff0c;与众多应用组成的王炸组合&#xff0c;展现出了令人瞩目的能力。今天&…...

    TCP和UDP比较

    以下是 TCP&#xff08;传输控制协议&#xff09; 和 UDP&#xff08;用户数据报协议&#xff09; 的详细对比&#xff0c;涵盖核心特性、应用场景及技术差异&#xff1a; 1. 核心特性对比 特性TCPUDP连接方式面向连接&#xff08;需三次握手建立连接&#xff09;无连接&#…...

    【实战篇】【深度解析DeepSeek:从机器学习到深度学习的全场景落地指南】

    一、机器学习模型:DeepSeek的降维打击 1.1 监督学习与无监督学习的"左右互搏" 监督学习就像学霸刷题——给标注数据(参考答案)训练模型。DeepSeek在信贷风控场景中,用逻辑回归模型分析百万级用户数据,通过特征工程挖掘出"凌晨3点频繁申请贷款"这类魔…...

    Postgresql高可用之Pacemaker+Corosync

    简介 Pacemaker 是 ClusterLabs 开源高可用性集群堆栈的资源管理器。它协调配置、启动、监控和跨所有集群节点恢复相互关联的服务。在这套高可用架构用会用到Pacemaker、Corosync以下是对其功能作用的说明。 Corosync &#xff1a;主要负责 集群通信和成员管理&#xff0c;它用…...

    智能成绩表

    智能成绩表 真题目录: 点击去查看 E 卷 100分题型 题目描述 小明来到学校当老师,需要将学生按考试总分或单科分数进行排名,你能帮帮他吗? 输入描述 第 1 行输入两个整数,学生人数 n 和科目数量 m。 0 < n < 1000 < m < 10第 2 行输入 m 个科目名称,彼此之…...

    制作安装win10系统U盘详细步骤

    https://www.microsoft.com/zh-cn/software-download/windows10 ①微软官方链接&#xff0c;下载工具 ②下载之后&#xff0c;点击鼠标右键用管理员身份运行 ③等待几分钟 ④出现许可条款点击接受 ⑤点击为另一台电脑安装介质&#xff0c;然后下一步 ⑥根据需要选择版本。 体系…...

    【RAG】Embeding 和 Rerank学习笔记

    Q: 现在主流Embeding模型架构 在RAG&#xff08;Retrieval-Augmented Generation&#xff09;系统中&#xff0c;嵌入模型&#xff08;Embedding Model&#xff09; 是检索阶段的核心组件&#xff0c;负责将查询&#xff08;Query&#xff09;和文档&#xff08;Document&#…...

    华为 Open Gauss 数据库在 Spring Boot 中使用 Flyway

    db-migration&#xff1a;Flyway、Liquibase 扩展支持达梦&#xff08;DM&#xff09;、南大通用&#xff08;GBase 8s&#xff09;、OpenGauss 等国产数据库。部分数据库直接支持 Flowable 工作流。 开源代码仓库 Github&#xff1a;https://github.com/mengweijin/db-migrat…...

    B/B+树与mysql索引

    数据结构操作网站&#xff1a;https://www.cs.usfca.edu/~galles/visualization/Algorithms.html B树 算法平均最差空间O(n)O(n)搜索O(log n)O(log n)插入O(log n)O(log n)删除O(log n)O(log n) B树 算法平均最差空间O(n)O(n)搜索O(log n)O(log n)插入O(log n)O(log n)删除O(…...

    心智模式与企业瓶颈突破

    “是环境限制了你&#xff0c;还是你的心智模式&#xff1f;” 当企业发展遇到瓶颈&#xff0c;我们习惯于找外部原因&#xff1a;经济不好、竞争加剧、资源不够、市场环境变化快 可现实是&#xff0c;在同样的市场环境下&#xff0c;总有企业逆势增长&#xff0c;而有些企业只…...

    介绍微信小程序中页面的生命周期函数和组件的生命周期函数

    1.1 页面生命周期函数 这些函数主要用于管理页面的显示和隐藏。 onLoad(options): 页面加载时触发&#xff0c;options 是页面路由参数&#xff0c;可以在这里初始化数据。每当用户进入该页面时都会调用这个函数。 onShow(): 页面显示时触发。每当页面从后台切换到前台时都会…...

    网络运维学习笔记(DeepSeek优化版)009网工初级(HCIA-Datacom与CCNA-EI)路由理论基础与静态路由

    文章目录 路由理论基础核心概念路由表六要素路由选路原则加表规则选路优先级 协议与参数常见协议号路由协议优先级对比 网络架构基础AS&#xff08;autonomous system&#xff0c;自治系统&#xff09;路由分类 静态路由(static routing)实验拓扑思科配置示例华为配置示例 典型…...

    基于微信小程序的疫情互助平台(源码+lw+部署文档+讲解),源码可白嫖!

    摘要 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;从2019年底新型冠状肺炎疫情的爆发以来&#xff0c;使很多工作的管理工作难度再上一层楼。为了在疫情期间能更好的维护信息管理&#xff0…...

    【SRC实战】小游戏漏洞强制挑战

    小游戏业务分析: 1、挑战成功加分&#xff0c;失败减分&#xff0c;存在段位机制&#xff0c;段位影响榜单排名 2、随机推荐挑战对象&#xff0c;随着等级升高不再推荐低等级玩家 3、玩家等级需要培养&#xff0c;培养需要道具&#xff0c;道具需要看广告/完成任务/付费 4、…...

    阿里云轻量级服务器通过宝塔安装PgVector要点

    设置环境变量&#xff1a; export PG_HOME/www/server/pgsql export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/www/server/pgsql/lib export PG_CONFIG/www/server/pgsql/bin/pg_config export PGDATA/www/server/pgsql/data PATH$PATH:$HOME/.local/bin:$HOME/bin:$PG_HOME/bin ali…...

    安装 Windows Docker Desktop - WSL问题

    一、关联文章: 1、Docker Desktop 安装使用教程 2、家庭版 Windows 安装 Docker 没有 Hyper-V 问题 3、打开 Windows Docker Desktop 出现 Docker Engine Stopped 问题 二、问题解析 打开 Docker Desktop 出现问题,如下: Docker Desktop - WSL update failed An error o…...