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

基于RABC的权限控制设计

知道权限设计容易但是要有较好的扩展性需要费一番功夫的。提出现实问题一个部门有100人需要给100人以相同的角色经理单独给某个员工增加一个权限但整个部门权限其他人不变两个按钮可能调用相同的URL怎么进行控制资源对象需要根据开发和线上环境进行分组研发可以操作研发组的机器运维可以操作线上组机器给某个研发临时加一个机器权限用于核查问题其他人权限不变最终模型为特殊点1. 用户和角色直接关联用户的角色来自于用户组直接的角色赋予2. 角色管理的机器同样来自资源组直接管理的机器3. 按钮和URL没有对应关系可以相互交换设计sql脚本mysql版本-- 创建用户表 CREATE TABLE IF NOT EXISTS sys_user ( id bigint(20) NOT NULL COMMENT 主键ID, user_login_name VARCHAR(50) COMMENT 用户登录姓名不可以重复, user_real_name VARCHAR(50) COMMENT 用户正式姓名, password VARCHAR(100), phone VARCHAR(20) COMMENT 手机号码, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建用户组 CREATE TABLE IF NOT EXISTS sys_group ( id bigint(20) NOT NULL COMMENT 主键ID, group_name VARCHAR(50) COMMENT 群组名称, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户,0为内置数据, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建角色表 CREATE TABLE IF NOT EXISTS sys_role ( id bigint(20) NOT NULL COMMENT 主键ID, role_name VARCHAR(50) NOT NULL COMMENT 角色名称, role_type VARCHAR(20) NOT NULL DEFAULT 1 COMMENT 角色类型系统内置角色不展示0为系统内置角色1为自定义角色, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建权限表 CREATE TABLE IF NOT EXISTS sys_permission ( id bigint(20) NOT NULL COMMENT 主键ID, permission_key VARCHAR(50) NOT NULL COMMENT 角色KEY, permission_type VARCHAR(20) NOT NULL COMMENT 权限类型取值enum菜单 button按钮 url就是URL, tenant_id bigint(20) NOT NULL DEFAULT 0 COMMENT 租户ID,1000为演示租户,0为内置数据, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建用户和用户组关系表 CREATE TABLE IF NOT EXISTS sys_user_group ( id bigint(20) NOT NULL COMMENT 主键ID, user_id bigint(20) NOT NULL COMMENT 用户ID, user_real_name VARCHAR(50) COMMENT 用户正式姓名, group_id bigint(20) NOT NULL COMMENT 用户组ID, group_name VARCHAR(50) COMMENT 群组名称, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户,0为内置数据, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建用户和角色的关系 CREATE TABLE IF NOT EXISTS sys_user_role ( id bigint(20) NOT NULL COMMENT 主键ID, user_id bigint(20) NOT NULL COMMENT 用户ID, user_real_name VARCHAR(50) COMMENT 用户正式姓名, role_id bigint(20) NOT NULL COMMENT 角色ID, role_name VARCHAR(50) COMMENT 角色名称, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户,0为内置数据, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建用户组和角色的关系 CREATE TABLE IF NOT EXISTS sys_group_role ( id bigint(20) NOT NULL COMMENT 主键ID, group_id bigint(20) NOT NULL COMMENT 用户组ID, group_name VARCHAR(50) COMMENT 群组名称, role_id bigint(20) NOT NULL COMMENT 角色ID, role_name VARCHAR(50) COMMENT 角色名称, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户,0为内置数据, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建用户组和角色的关系 CREATE TABLE IF NOT EXISTS sys_role_permission ( id bigint(20) NOT NULL COMMENT 主键ID, role_id bigint(20) NOT NULL COMMENT 角色ID, role_name VARCHAR(50) COMMENT 角色名称, permission_key bigint(20) NOT NULL COMMENT 权限ID, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户,0为内置数据, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建Linux资源表 CREATE TABLE IF NOT EXISTS linux_resource ( id bigint(20) NOT NULL COMMENT 主键ID, resource_name VARCHAR(255) COMMENT 资源名称, ip_address VARCHAR(50), username VARCHAR(255), password VARCHAR(255), description TEXT COMMENT 描述信息, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建资源组表 CREATE TABLE IF NOT EXISTS resource_group ( id bigint(20) NOT NULL COMMENT 主键ID, resource_group_name VARCHAR(255) NOT NULL COMMENT 资源组名称, description TEXT COMMENT 描述信息, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建角色和资源的关系 CREATE TABLE IF NOT EXISTS sys_role_resource ( id bigint(20) NOT NULL COMMENT 主键ID, role_id bigint(20) NOT NULL COMMENT 角色ID, role_name VARCHAR(50) COMMENT 角色名称, resource_id bigint(20) NOT NULL COMMENT 资源ID, resource_name VARCHAR(255) COMMENT 资源名称, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户,0为内置数据, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE ); -- 创建角色和资源的关系 CREATE TABLE IF NOT EXISTS sys_role_resource_group ( id bigint(20) NOT NULL COMMENT 主键ID, role_id bigint(20) NOT NULL COMMENT 角色ID, role_name VARCHAR(50) COMMENT 角色名称, resource_group_id bigint(20) NOT NULL COMMENT 资源ID, resource_group_name VARCHAR(255) COMMENT 资源名称, tenant_id bigint(20) NOT NULL DEFAULT 10000 COMMENT 租户ID,1000为演示租户,0为内置数据, create_by varchar(255) DEFAULT NULL COMMENT 创建人, create_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 创建时间, update_by varchar(255) DEFAULT NULL COMMENT 更新人, update_time timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 更新时间, remark varchar(255) DEFAULT NULL COMMENT 备注, is_deleted tinyint(1) DEFAULT 0 COMMENT 是否删除0为否1为是, PRIMARY KEY (id) USING BTREE );Sql设计点✅保留关联表中增加角色名称用户名称等所有冗余名称运维查表一目了然✅ 表ID无自增主键全部雪花 ID迁移数据超级方便也可以进行hash分表✅无唯一索引无 DB 强校验业务层控制为多租户做准备不影响insert性能✅支持 用户 - 用户组 - 角色 - 权限 - 资源完整模型✅支持单独给某一个人加特殊权限现实中的痛点✅ 支持逻辑删除而非硬删除吐槽AI CodingTraeCN这些设计点AI就搞不出来还需要自己调整。但用这个sql生成Mapper和Service是相当容易的。这就让VibeCoding 做企业级的软件不合适辅助开发还是可以提升效率的。

相关文章:

基于RABC的权限控制设计

知道权限设计容易,但是要有较好的扩展性需要费一番功夫的。提出现实问题:一个部门有100人,需要给100人以相同的角色经理单独给某个员工增加一个权限,但整个部门权限其他人不变两个按钮可能调用相同的URL,怎么进行控制资…...

半导体晶圆测量新手必看:3种主流设备实测对比与选型指南

半导体晶圆测量新手必看:3种主流设备实测对比与选型指南 在半导体制造领域,晶圆测量设备的选型直接关系到工艺控制的精度与效率。对于刚接触这个领域的技术人员来说,面对市场上琳琅满目的测量设备,如何根据实际需求做出明智选择往…...

嵌入式事件驱动+状态机轻量级框架设计

1. 嵌入式系统软件架构演进:从轮询到事件驱动状态机在资源受限的嵌入式系统中,软件架构的选择直接决定了系统的实时性、可维护性与可扩展性。早期单片机程序多采用简单的主循环轮询(Polling)模式:while(1)中依次检查各…...

用3D Gaussian Splatting自制3D模型:从视频到点云的完整流程(Colmap+FFmpeg)

用3D Gaussian Splatting打造个性化3D模型:从视频采集到交互式渲染的全链路实践 当你想为游戏场景添加一个自定义角色,或是为电商平台创建商品三维展示时,专业3D扫描设备的高昂成本往往令人却步。现在,借助3D Gaussian Splatting&…...

SER5 5500U黑苹果安装避坑指南:从EFI配置到驱动优化全流程

SER5 5500U黑苹果深度调优手册:从硬件适配到系统完美运行 最近两年,AMD平台安装黑苹果的热度持续攀升,而SER5 5500U凭借出色的性价比成为不少极客玩家的首选。不同于Intel平台的"即插即用",AMD平台需要更精细的配置才能…...

VS Code 将机器控制权全盘交给 AI 后,竟警告用户不要信任它

十年按月更新,只用一周,就把整个开发关系改写了。2026 年 3 月 9 日,微软发布了 VS Code 1.111,这是它第一次以“每周稳定版”的节奏对外推送更新。微软杰出工程师 Kai Maetzel 当时提到,原本集中进行的 endgame 测试&…...

基于Python的工资信息管理系统毕设

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在开发一套基于Python的工资信息管理系统,以实现对企业员工工资信息的有效管理。具体研究目的如下: 首先,通过构建该…...

在 Debian 12 上安装多个版本的 php(7.3、7.4、8.1、8.2)

通常会有安装所需版本的 php 的任务,但默认情况下会安装较新或较旧的版本。 可能还需要在同一服务器上安装并同时使用两个版本的 php。 默认情况下,我们以 root 用户身份安装,如果您有普通用户,请使用 sudo。 1. 让我们安装必要的…...

OFA-VE模型微调实战:适配特定领域任务

OFA-VE模型微调实战:适配特定领域任务 1. 引言 你是否遇到过这样的情况:一个在通用场景下表现不错的AI模型,到了你的专业领域就变得不太灵光了?比如在医疗影像分析中,模型可能无法准确理解医学术语和影像的对应关系&…...

单片机调试30个高频问题的工程化解决路径

1. 初学单片机必须直面的30个问题解决思路单片机开发不是理论推演,而是工程实践。从点亮第一个LED到交付稳定运行的嵌入式系统,开发者必然经历大量“现象不可解释、行为无法复现、定位无从下手”的困境。本文不提供速成捷径,而是基于真实项目…...

Bambu Studio 3D打印切片软件:从入门到精通的完整指南

Bambu Studio 3D打印切片软件:从入门到精通的完整指南 【免费下载链接】BambuStudio PC Software for BambuLabs 3D printers 项目地址: https://gitcode.com/GitHub_Trending/ba/BambuStudio Bambu Studio作为专为BambuLab 3D打印机优化的专业切片软件&…...

Linux操作系统之线程:线程控制

前言:上一篇文章我们着重对线程他的共享代码这个特点进行了论述,讲解了部分性质与容易出现的问题。那么现在我们本篇文章就更加深层次的来学习一下线程吧!一、上文补充我们说线程的绝大部分资源都是共享的,这句话其实不是很完善。…...

Pixel Dimension Fissioner应用案例:为独立游戏开发者生成100+任务描述

Pixel Dimension Fissioner应用案例:为独立游戏开发者生成100任务描述 1. 游戏开发者的创意困境 独立游戏开发者在创作RPG或冒险类游戏时,常常面临一个共同挑战:如何快速生成大量独特且风格一致的任务描述。传统方法要么依赖人工编写&#…...

如何用AI读脸术做实时分析?CPU推理优化实战案例详解

如何用AI读脸术做实时分析?CPU推理优化实战案例详解 1. 项目背景与核心价值 在当今的AI应用场景中,实时人脸属性分析正变得越来越重要。无论是社交平台的智能推荐、零售行业的顾客分析,还是安防监控的智能识别,快速准确的人脸属…...

STM32_ADC_寄存器操作

文章目录一、ADC寄存器   1、ADC状态寄存器(ADC_SR)   2、ADC控制寄存器 1(ADC_CR1)   3、ADC控制寄存器 2(ADC_CR2)   4、ADC采样时间寄存器 1(ADC_SMPR1)   5、ADC采样时间寄存器 2(ADC_SMPR2)   6、ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x1..4)   7、ADC看…...

STM32_ADC_模数转换器

文章目录一、ADC简介二、 逐次逼近型ADC三、STM32ADC框图四、 ADC基本结构图五、 输入通道六、规则组的4种转换模式   1、单次转换、非扫描模式   2、连续转换、非扫描模式   3、单次转换、扫描模式   4、连续转换、扫描模式   5、触发控制   6、数据对齐   7、转…...

将AI主权还给你:GPT4All开源生态,在个人电脑上私密运行千款大模型

GPT4All:重塑AI访问民主化的开源生态系统在云计算主导的AI时代,GPT4All以其“完全本地化”的理念,将大模型的掌控权从云端巨头手中交还给每一位普通用户,开启了隐私安全、成本可控的AI应用新范式。当OpenAI发布GPT-4却未公开其技术…...

5.4.3 通信->WWW万维网内容访问标准(W3C):WWW(World Wide Web) 协议架构(分层)

WWW 本身不是网络底层协议,而是基于 TCP/IP 协议栈构建的应用层分布式超文本系统,其协议架构采用清晰的分层模型,通常从底层网络 → 传输 → Web 应用自上而下分为四层,同时配套支撑体系形成完整架构 WWW 标准分层架构&#xff08…...

基于SpringBoot+Vue的健康医院门诊在线挂号系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】

摘要 随着信息技术的快速发展,传统医疗行业的服务模式正逐步向数字化、智能化方向转型。医院门诊挂号作为医疗服务的重要环节,其效率直接影响患者的就医体验。传统线下挂号方式存在排队时间长、信息不对称、资源分配不均等问题,亟需通过信息化…...

SEO_掌握这七个SEO技巧,让你的流量持续增长

SEO技巧一:优化网站的关键词在当今互联网时代,网站的关键词优化是提升网站流量的重要手段之一。我们需要明确什么是关键词。关键词是用户在搜索引擎中输入的词语,用以查找相关信息的关键字。如果你的网站能够在这些关键词的搜索结果中排名靠前…...

SEO_10个提升网站排名的实用SEO技巧分享(470 )

SEO: 10个提升网站排名的实用技巧分享在当今数字化时代,搜索引擎优化(SEO)成为了每一个网站主人的首要任务。特别是对于想要在百度上获得高排名的网站而言,SEO技巧的掌握至关重要。本文将分享十个实用的SEO技巧,帮助你…...

# 发散创新:用Python打造自动化渗透测试工具链——从扫描到漏洞利用全流程实战在现代信息安全

发散创新:用Python打造自动化渗透测试工具链——从扫描到漏洞利用全流程实战 在现代信息安全攻防对抗中,快速、精准、可扩展的渗透测试能力已成为红队和安全研究人员的核心竞争力。本文将带你基于 Python 编写一个轻量级但功能完整的自动化渗透测试工具链…...

AudioLDM-S生成效果实测对比:10步和50步有什么区别?听音频就知道

AudioLDM-S生成效果实测对比:10步和50步有什么区别?听音频就知道 1. 一个参数,两种世界 如果你用过AI生成图片,一定知道“采样步数”这个参数。调高它,画面细节会更丰富,但生成时间也变长。在音频生成的世…...

SEO_如何通过内容优化有效提升SEO效果?(143 )

如何通过内容优化有效提升SEO效果?在当今互联网时代,搜索引擎优化(SEO)已经成为任何网站或博客成功的关键因素之一。SEO不仅仅是关于关键词排名,更是关于如何通过内容优化来提升SEO效果。如何通过内容优化有效提升SEO效…...

网络安全测评逻辑拓扑即学即会(二)

一、边框画法1.在“开始”栏“指针工具”右侧的形状中选择矩形。2.右键矩形框,依次选择“样式-填充-无填充”和“样式-线条-虚线”。3.移动鼠标在虚线框出现十字箭头时双击可以添加文字描述,通过“开始-段落”左侧半部分可以调整文字在虚线框里的位置。二…...

医学影像分割的‘注意力’该怎么加?从CVPR‘25论文MCADS,聊聊通道与空间注意力(CASAB)的实战设计心得

医学影像分割中的注意力机制实战:从MCADS论文看CASAB模块的设计哲学 当你在显微镜下观察一张病理切片时,那些看似杂乱的细胞排列其实隐藏着疾病诊断的关键线索。但要让AI模型像经验丰富的病理学家一样,准确识别出这些生物标志物的边界&#x…...

完整版:本地电脑 + WiFi 搭建 AI 自动炒股 + 自我学习系统

一、这套 AI 到底怎么 “学习赚钱”?(先讲逻辑,一看就懂) 核心逻辑:交易 → 记录 → 复盘 → 改错 → 优化策略 → 下次更赚钱 AI 的学习分为 4 层自动进化: 记住历史:每一笔买卖都记录&#…...

Shell脚本实战:5分钟搞定SFTP文件自动上传(含参数详解)

Shell脚本实战:5分钟搞定SFTP文件自动上传(含参数详解) 每次手动上传文件到远程服务器时,重复输入命令和密码的繁琐操作是否让您感到效率低下?本文将带您快速构建一个高可靠性的SFTP自动上传脚本,解决日常开…...

Qwen3-Reranker-4B在新闻推荐系统中的应用

Qwen3-Reranker-4B在新闻推荐系统中的应用 1. 新闻推荐的痛点:为什么传统方法不够用了 每天早上打开手机,你可能已经习惯了刷到一堆标题党新闻——“震惊!”“速看!”“最后一条”……这些内容看似热闹,但仔细一看&a…...

GitHub热门C语言开源项目:嵌入式与系统开发实用指南

GitHub 上热门 C 语言开源项目深度解析:嵌入式与系统级开发者的实用工具集在嵌入式系统、Linux 内核开发、物联网中间件及高性能服务构建等工程实践中,C 语言仍是最具确定性、可预测性与资源可控性的核心实现语言。尽管高级语言生态日益繁荣,…...