自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(964)
  • 资源 (1)
  • 收藏
  • 关注

原创 echarts:一个复杂的瀑布图制作

分析一下这个需求,主要有几个难点:答:echarts 官方 把这种柱子叫瀑布图,实现的原理就是使用一个透明的柱子给他顶起来。我直接搬过来原文。我本来想到的是 y 轴的 type 设置为 time但是做着做着,发现不行,我们做瀑布图要用到 stack,而 stack 不支持 type = time那就只能用 type = value 了,也就是要把时间转化为一个数值,比如在上面的图中,最底部是 13:00,我们先以 13:00 为 0,那么 12:00 就是 1,11:00 就是 2,以此类推。那么

2024-02-06 11:51:44 3250

原创 spring:微服务springcloud入门以及eureka、ribbon、hystrix、feign、gateway的使用

微服务的简单入门

2023-12-18 09:00:00 1600

原创 设计模式:DDD领域驱动设计

面对复杂系统,怎能不知道DDD

2023-05-08 18:42:37 1907 7

原创 抽象语法树AST以及babel原理

什么是AST?借用一下百度百科的解释:在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。其实意思就是将代码以树的格式展现出来,举个例子你就明白了:大家可以在这个网站 https://astexplorer.net/ 上输入代码,会被解析为 AST,如图:可以看到,代码的每一个字符都以树的形式展示了出来。AST的应用

2022-04-10 23:47:29 2041

原创 RN:React Native原理以及新架构JSI、Fabric等概念

说明RN需要一个JS的运行环境, 在IOS上直接使用内置的javascriptcore, 在Android 则使用webkit.org官方开源的jsc.so。 此外还集成了其他开源组件,如fresco图片组件,okhttp网络组件等。RN 会把应用的JS代码(包括依赖的framework)编译成一个js文件(一般命名为index.android.bundle), , RN的整体框架目标就是为了解释运行这个js 脚本文件,如果是js 扩展的API, 则直接通过bridge调用native方法; 如果是UI

2022-02-12 21:56:59 18657

原创 webview原理和JSBridge

webview是一个嵌入式的浏览器,我们平常使用频率最高的就是客户端内嵌的webview特点:运行在webview中的JS代码有能力调用原生的系统API,没有传统浏览器沙箱的限制。目前javascript和客户端(后面统称native)交互的常见方式有两种JSBridgeschemaJSBridge当我们在native内打开m页,native会在全局的window下,为我们注入一个Bridge。这个Bridge里面,会包含我们与native交互的各种方法、比如判断第三方App是否安装、获取网

2022-02-09 18:39:10 8946

原创 小程序底层原理

小程序的 Http Rquest 请求是不是用的浏览器 Fetch API?不是, http request是由逻辑层发起,通过native去触发的,且不支持promise。小程序渲染再同一个线程么?小程序是双线程设计,即视图渲染与业务逻辑分别在运行在不同的线程中。这个设计主要是解决web技术中的一个痛点:web页面开发渲染线程和脚本线程是互斥的,长时间的脚本运行可能会导致页面失去响应或者白屏,体验糟糕。小程序为了更好体验,将页面的渲染线程和脚本线程分开设计在不同线程中执行,具体实现:● 视图v

2022-02-07 19:39:14 2519 1

原创 一文搞清楚软链接和硬链接

前言我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data)元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inod

2022-01-06 16:38:53 4276 6

原创 可能是最全的h5唤起App方案

背景调研 h5 唤起 App 方案目的:引导已下载用户打开APP,引导未下载用户下载APP。先说结论ios9 及以上用 Universal Link(uc/qq浏览器不支持,不过safari占比最大)android6及以上用applink(chrome和小众浏览器支持,市场占比还是比想像中大的)其它情况scheme(各种限制及弹窗确认)微信ios7月的版本已经支持ulink了,android还是乖乖走应用宝吧(引导出微信也行,效果不好)ok,接下来我们一个一个聊URL Scheme有

2021-11-08 18:28:49 28414 28

原创 px、pt、dpi、dip、分辨率、屏幕尺寸等等概念

文章目录基本概念屏幕尺寸屏幕比例像素pxpt/point分辨率DPI(点每英寸)PPI(像素每英寸)DIP/DPdensityandroid最后参考资料基本概念屏幕尺寸屏幕的对角线长度,一般讲的大小单位都是英寸。比如我们说 iphone6 是6.7英寸,就是屏幕对角线为 6.7英寸。屏幕比例只确定了对角线长,2边长度还不一定。所以有了4:3、16:9这种,这样就可以算出屏幕边长了。像素pxpx 不是自然界的长度单位,而是一个抽象的单位,比如:windows桌面属性里的“设置”看到,如果是10

2021-08-15 21:28:37 9821 11

原创 web端自动化部署方案

背景为了提高发布效率,践行DevOps,我们使用 gitlab 的 CI 工具作为我们前端项目的自动化部署方案。集成后的开发&发布模式发布测试环境:代码提交到test分支自动发布。发布正式环境:将test代码合并到master分支自动发布。集成CI/CD思路集成步骤1、集成ci脚本# test、preview和master分支默认支持线上部署# develop分支默认是开发分支,不建议(禁止)触发CI/CD流程,姑不作为默认触发部署分支stages: - instal

2021-01-30 23:52:10 1232 3

原创 SEO:基于SPA的搜索引擎优化方案调研

背景由于SPA项目不利于SEO优化,于是有了以下几个方案方案选择方案一:服务端渲染(SSR)直接java或php渲染(那样就又是前后端不分离了,不考虑)服务端起一个node应用优点:SEO 友好首屏渲染快(可在服务端缓存页面,请求到来直接给 html)缺点:代码改动大、需要做特定SSR框架的改动(例如vue的nuxt,react的next)丢失了部分SPA体验node 容易成为性能瓶颈方案二:构建时预渲染方案在项目开发完成之后,将有限的需要SEO的页面挑选出来,借助p

2021-01-14 18:25:19 956

原创 vue:详解vue中的代理proxy

问题我们本地调试一般都是 npm run serve,然后打开 本机ip:8080(localhost:8080)对吧,这时候我们要调接口调试,后端的接口的地址可能在测试环境,也可能是自己电脑的 ip,总之不是你的 lcoalhost:8080,那么你调接口就会产生跨域,那么怎么办呢?就需要proxy出场了复习一下跨域的解决方案jsonpcorsNode中间件代理(两次跨域)nginx反向代理CORS支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案JSONP只支持GET请求,

2020-07-11 22:58:47 78178 40

原创 js:浅谈函数式编程

背景函数式编程是一种编程思想,其余的还有声明式与命令式函数式举例假设我们要把字符串 functional programming is great 变成每个单词首字母大写var string = 'functional programming is great';var result = string .split(' ') .map(v => v.slice(0, 1).toUpperCase() + v.slice(1)) .join(' ');整个过程就是 join(m

2020-05-09 15:18:02 886

原创 阿里云VPC、vSwitch、内网IP与外网权限通俗讲解

很多新手在阿里云买 ECS 的时候,一路默认下单,根本没有接触 VPC、交换机、路由表这些概念。但当运维听到「这台服务器没有开外网权限」时,背后其实就是这套网络体系在管控。本文从新手视角,结合实际场景,把整套阿里云专有网络讲清楚,区分两种“无外网权限”,并附典型业务拓扑。

2026-11-06 14:12:16 27

原创 GitLab Runner 从概念、部署到前端CI落地实战

GitLab Runner 是 GitLab CI/CD 的任务代理调度程序。GitLab 本身只负责管理流水线(Pipeline)、Job、代码仓库;Runner 才是真正拉取代码、执行build、打包镜像、部署脚本的 worker。Runner 和 GitLab 是主动拉取模式:Runner 定时轮询 GitLab,领取匹配标签的Job,执行完成后回传日志、产物、状态。一台Runner可以配置并发,同时跑多个打包任务。

2026-11-05 11:30:17 198

原创 办公出口IP漂移,云资源白名单频繁失效?聊聊中小团队都会踩的经典网络痛点

微型团队、无专职运维:自动化脚本/固定宽带IP10~50人初创,少量远程:WireGuard VPN + EIP 或者固定公网IP50~200人、外包多、有合规要求:SASE零信任 / 云上NAT+VPN200人以上、多分支、强等保:SD-WAN专线 + ZTNA混合大厂:自研零信任,直接废弃IP白名单体系重点提醒:没有万能方案。很多团队的误区是,总想找一个方案同时解决【办公室、居家、外包、海外】全部场景,往往最后方案复杂、成本失控。优先按团队当前最核心的场景做取舍。

2026-11-03 10:34:26 231

原创 Mac下班后跑 VSCode + Claude 不中断:屏幕可以熄屏,但机器不能睡眠

不知道你有没有踩过这个坑:下班前把 Claude Code 在 VSCode 里丢了一个大任务——重构整个模块、补全单元测试、梳理老项目技术债、批量生成文档。锁屏、关掉显示器,开开心心走人。第二天一早回来,发现 Claude 停了,报错、连接断开、任务半截中断。很多人第一反应:是不是要屏幕一直亮着?答案:不需要屏幕常亮,显示器可以熄屏省电;但是 Mac 整机不能进入睡眠。一旦整机睡眠,网络、进程全部暂停,VSCode 的 Claude 会话直接断掉。✅显示器熄屏。

2026-11-02 18:37:36 199

原创 云计算里的「弹性」到底是什么?从EIP开始理解云弹性

很多刚接触云的同学,第一次看到一堆带弹性的名词:弹性公网IP、弹性计算、弹性伸缩、弹性块存储……很容易懵:到底什么是弹性?它是一个功能,还是一种理念?为什么传统机房很少提弹性?云弹性,就是资源可以跟着业务负载动态扩缩,按需取用、用完释放,按实际消耗计费。弹性不是某一个产品,是云计算最核心的能力;弹性公网IP(EIP)只是弹性理念落地最典型的一个产品。传统IDC是“提前采购、固定硬件”:买一台物理服务器,CPU、内存、硬盘、绑定的公网IP全部焊死;

2026-11-02 17:23:57 150

原创 单节点 MinIO 部署流程

适用系统:Huawei Cloud EulerOS 2.0 x86_64MinIO 二进制方式部署,不需要 yum 安装,简单干净,和你前面用 obsutil 工具风格统一,兼容 S3,可以直接用 obsutil 访问。

2026-10-30 11:16:42 166

原创 自建对象存储:从0搞懂OSS/OBS底层原理与落地选型

云服务器ECS(比如华为云HCE EulerOS 2.0):可以SSH登录、yum装软件、ls看本地目录,是一台完整操作系统主机;对象存储:华为OBS / 阿里云OSS,用来存放图片、静态资源、备份文件。OBS/OSS是一台可以SSH登录的服务器。❌ 错误:OBS本身没有操作系统,不能ssh登录,不能yum安装软件。✅ 正确:OBS是对象存储服务;我们在ECS上通过obsutil这类S3客户端,调用API去读写远端的对象存储。

2026-10-30 10:51:00 247

原创 深度拆解 Claude Code 插件系统

如果你已经体验过 Claude Code 的 TUI、fullscreen 全屏渲染,会发现它本身已经足够好用:终端内直接写代码、改文件、跑命令、diff 预览。它不知道你项目内部规范、私有脚手架、内部接口、自研组件库、公司代码审查流程。很多人会把一长串项目规约塞在 system prompt 里,每次新建会话都粘贴一遍,上下文臃肿、容易丢失、无法复用。把领域能力封装成可分发、可一键加载、可跨项目复用的扩展单元,而不是靠 prompt 堆出来的临时约定。先澄清一个容易混淆的点:本文讲的是。

2026-10-29 17:21:30 325

原创 别被名字骗了:Claude Code Fullscreen 不是窗口全屏,是终端渲染革命

如果你在用 Claude Code(官方 CLI 版本,不是网页 claude.ai),大概率遇到过这个痛点:在 VSCode 内置终端、iTerm2、tmux 里跑长对话,流式输出疯狂闪烁、滚动条乱跳、对话越聊内存越高,输入框被源源不断的 token 挤到看不见。很多人看到第一反应:把终端窗口最大化?完全不是。Fullscreen Rendering,直译叫全屏渲染,本质是一套基于终端备用缓冲区(Alternate Screen Buffer)的 TUI 渲染方案。

2026-10-29 17:13:37 158

原创 一文读懂 RBAC:基于角色的访问控制

只要做后台系统、SaaS、代码平台、云平台,一定会碰到权限设计。很多人一上来就写一张用户权限表,做到后面权限爆炸、难以审计、改一个权限要改几十处。RBAC 是工业界最普及的授权模型,GitLab、Kubernetes、阿里云RAM、很多OA、后台管理系统都在用。但很多开发者只知道“给用户分配角色”,分不清 RBAC 和 ACL、ABAC、ReBAC 的边界,选型的时候容易踩坑:什么时候用 RBAC,什么时候要上 ABAC?RBAC 能不能搞定动态、细粒度的权限?

2026-10-27 11:39:29 235

原创 GitLab 权限系统

GitLab 是绝大多数企业代码托管、CI/CD、需求管理的统一平台。误以为角色是简单的“能看/不能看”,忽略了群组继承、保护分支、Token 独立权限、实例全局权限这几套体系是叠加在一起的。Maintainer 为什么不能删仓库?我在父组是 Developer,子项目能不能直接提交代码?产品只需要看需求,不想给代码权限,该分配什么角色?自动化脚本、容器镜像拉取,该用什么 Token,和用户角色有什么区别?新账号登录GitLab,没有加入任何组、项目,是什么权限?

2026-10-27 11:30:33 565

原创 阿里云CDN

CDN+OSS是国内前端静态项目的标准最佳实践。OSS负责持久化存储,CDN负责就近分发缓存;域名交给CDN作为加速域名,源站指向OSS。

2026-10-26 18:22:47 355

原创 华为云 obsutil 使用指南

obsutil 是华为云OBS静态CI发布的利器,和阿里云ossutil使用习惯高度对齐,同样可以替代rsync上传服务器的模式,把静态资源托管交给OBS+华为CDN,免去服务器运维成本。分支判断环境 → npm打包 → 目录重命名 → obsutil sync增量同步到OBS。安全底线:IAM子用户、最小权限、AK/SK掩码、上线前dry-run试运行。

2026-10-26 17:58:47 395

原创 阿里云ossutil64使用指南

ossutil64 的 sync 命令是前端静态CI发布利器,替代传统rsync上传服务器的模式,把静态资源托管交给OSS+CDN,减少服务器运维成本。分支判断环境 → npm打包 → 目录重命名 → ossutil sync增量同步到OSS。安全底线:RAM子账号、最小权限、AK掩码、上线前dry-run试运行。

2026-10-26 17:54:44 566

原创 GitLab CI 环境变量整理

实例级(管理员后台)Group 组级别变量(组下所有项目继承)Project 项目级别变量(项目设置 → CI/CD → Variables)顶层全局变量job内单个job变量手动触发流水线时,页面上填入的变量(最高)

2026-10-26 16:41:11 260

原创 docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器

前提:多个前端SPA项目,比如:项目A:门诊管理 /a项目B:病案统计 /b项目C:系统管理 /c。

2026-10-09 15:51:30 363

原创 docker:基于docker的前端部署方案

把dist、nginx配置打包进镜像。适合:版本强审计,每次发布一个镜像tag,镜像作为交付物;缺点:改前端必须重新build镜像,回滚需要拉旧镜像Dockerfile示例# arm麒麟: nginx:1.24-alpine-arm64# 关闭版本号,安全头# 安全:创建普通用户,不root运行USER nginx"],拷贝到医院内网机器导入。缺点:每次前端小改动都要打包镜像,运维不如bind mount方便。

2026-10-09 15:46:17 252

原创 Turborepo 深度解析:前端 Monorepo 构建系统的原理、配置与实战

多应用 + 共享包的 Monorepo:当你有 2 个以上应用和若干共享包时,Turborepo 的拓扑构建和缓存能带来立竿见影的速度提升CI 构建时间过长:远程缓存让 CI 从「每次全量构建」变成「只构建改动部分」,典型案例是从 4 分钟降到 20 秒团队协作中重复构建:远程缓存让团队成员共享构建产物,新人 clone 项目后第一次构建也能命中大量缓存已经在用 pnpm workspace:pnpm 解决依赖安装,Turborepo 解决构建编排,两者是互补关系而非竞争关系。

2026-08-21 10:58:40 411

原创 pnpm workspace 是什么

是 pnpm 内置的,用来在里维护多个独立子包,共用依赖、统一版本、互相本地引用,不用发包到 npm。

2026-08-21 10:49:44 337

原创 系规:ITSS与ITIL4

P:Planning & Design 规划设计I:Implementing 部署实施O:Operation 服务运营I:Improvement 持续改进S:Supervision 监督管理一句话:ITSS把整套IT服务工作,按这个5步循环来管理(循环、螺旋优化,不是一次性做完就结束)

2026-08-17 16:27:19 220

原创 什么是SLA、SLB

它们属于不同层面的概念。可以理解成:SLA 是承诺,SLB 是工具。

2026-08-17 16:09:41 251

原创 国标/行标/国际标准编号命名规律全科普(GB/GB/T/ISO/IEC/YY/T)

标准编号的核心逻辑,本质是一套「领域+约束力+版本」的编码体系。GB体系是国内合规底线,ISO/IEC是国际通用背书,YY/T等行业标是细分领域专项规范。掌握这套命名规律,既能搞定软考所有标准类选择题,也能精准读懂企业资质、产品宣传、招投标文件中的各类标准合规描述,彻底告别标准混淆问题。

2026-08-13 18:25:08 585

原创 科普专利申请

专利是国家授予的「独家技术垄断权」。只要拿到专利证书,在保护期内,别人不能擅自使用、仿制、抄袭、商用你的技术。违者可以维权、索赔、投诉、下架竞品。软著:保护代码、保护写法(版权)ISO/等保:保护公司合规、流程、安全(资质)专利:保护技术方案、算法逻辑、结构、创新方法(核心技术壁垒)软著证明“这是你写的”,专利证明“这是你独创的先进技术”。对于软件和科技公司:ISO和等保解决合规接单,软著解决产品自研证明,专利解决技术壁垒、资质升级、核心竞争力。三者搭配,才是一套完整的科技企业资质矩阵。

2026-08-13 18:02:35 262

原创 医疗器械软件注册申请全科普

医疗器械软件分为两类,统称SaMD/SiMD1. 独立医疗器械软件(SaMD)不需要硬件,软件本身就是医疗器械。举例:AI影像诊断、心电分析、肺结节筛查、康复评估、手术规划、医用测温分析软件。2. 嵌入式医疗器械软件(SiMD)装在医疗设备里的程序,跟着硬件一起注册。举例:监护仪、彩超、呼吸机、血糖仪内部程序。✅属于医械软件:用于诊断、判断病情、辅助治疗、产生医疗结论❌不属于医械软件:医院挂号、收费、病历存储、OA、运维监控、办公系统(只做信息化,不产生医疗判断)普通软件看ISO、等保;

2026-08-13 17:56:00 315

原创 科普三级等保

全称:网络安全等级保护三级测评。它是国家公安网安强制的网络安全合规制度,依据《网络安全法》《数据安全法》《等级保护2.0标准》,对单套上线系统进行安全检测、整改、备案、年审的整套合规体系。ISO27001:证明你公司安全制度规范(拿项目用)三级等保:证明你上线的系统安全合规(不违法、不被罚用)ISO是企业的“商务资质门票”,三级等保是系统的“合法身份证”。对于软件行业:ISO解决能不能接单,等保解决能不能合法上线、能不能验收回款、会不会被查被罚。

2026-08-13 17:48:57 273

原创 软件行业必备ISO体系科普:ISO9001、ISO20000、ISO27001

ISO 全称 International Organization for Standardization,即国际标准化组织。ISO体系并非产品技术标准,而是一套全球通用的企业标准化管理规范,核心逻辑不是保证产品、服务零缺陷,而是通过标准化流程,实现工作流程可落地、可追溯、可复盘、可持续改进,最大限度降低人为失误、流程混乱、风险失控等问题。企业通过ISO认证,不代表业务毫无问题,仅证明企业具备一套合规、稳定、成熟的管理制度,是政企合作、项目招投标、客户信任背书的核心基础资质。

2026-08-13 17:45:17 429

nginx判读user_agent并转发请求配置文件

nginx判读user_agent并转发请求配置文件

2022-03-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除