自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 趣谈设计模式之访问者模式-手机里的艺术咖,我是涂鸦艺术家

可以做一个配置页面用于用户的自定义配置,制作咖啡的时候先读取配置然后根据用户的自定义配置微调。), 老板姬比特打算把拉花引入到比特咖啡中(其本质是通过一系列预设的形状来“渲染”咖啡),比特咖啡APP的普通会员只能在配置界面选择基础的拉花图案,而VIP会员可以选择更加精美和丰富的拉花图案(而且保留VIP用户可以自定义拉花图案的功能),也就是不同角色的访客看到的拉花配置和视觉效果都不同,老板给这个功能起了一个非常”drama“的名字作为宣传点——“艺术咖系列”,把使用这个APP的用户称为”涂鸦艺术家“。

2025-08-05 12:01:40 1243

原创 趣谈设计模式之模板方法模式-老板,你的数字咖啡制作好了,请享用!

模板方法模式是一种行为设计模式,通过定义算法骨架并延迟部分步骤到子类实现,提高代码复用性和扩展性。它包含抽象类(定义算法框架)和具体子类(实现具体步骤),适用于需要统一流程但允许步骤差异的场景。示例展示了文档处理器和咖啡制作流程的实现,其中父类定义通用步骤,子类实现特定细节。该模式的优点包括代码复用和符合开闭原则,缺点是父类与子类耦合度高。适用于需要统一算法结构但允许部分步骤灵活变化的场景。

2025-07-31 17:33:58 578

原创 高效代码提交规范流程

适用于 Git + Pull Request(PR)协作模式,确保代码质量、可追溯性与团队协同效率。

2026-01-06 17:28:06 895

原创 Git Flow架构图解:分支策略全解析

✅ 使用 标准 Git Flow 工作流图 作为参考(如 Atlassian 官方图)。✅ 所有合并操作必须遵循 “从下往上” 的原则:feature → develop,develop → release,release → main。✅ 紧急修复(hotfix)是例外,但必须通过专用分支完成,不能直接合并 main 到 develop。

2026-01-06 16:21:03 859

原创 认识CycloneDX

CycloneDX是什么:OWASP主导的标准化SBOM规范,Python CycloneDX是其在Python生态的落地工具,生成「软件物料清单」文件;核心价值软件供应链安全 > 依赖梳理 > 合规审计 > 漏洞响应,其中供应链安全是重中之重;核心工具(99%场景用这个,无代码);(进阶自动化场景);适用场景:所有Python项目,尤其是企业级、生产环境、需要合规/安全保障的项目,必用!

2026-01-05 23:48:02 964

原创 一文认识Redis

原因说明🔥 瓶颈在 I/O,不在 CPU内存操作极快,无需多线程并行计算🚫 避免锁竞争单线程无锁 → 无阻塞 → 高性能⚡ 事件驱动 + 非阻塞 I/O支持百万级并发连接💡 设计哲学:简单即高效逻辑清晰,易于维护、调试🔄 Redis 6.0 后:多线程 I/O,仍单线程执行命令保留优势,同时提升网络性能。

2026-01-04 21:00:25 1040

原创 F12开发者工具:揭秘CSP安全策略

F12 中看到的 CSP 是服务器返回的“内容安全策略”头,它告诉浏览器“哪些资源可以加载,哪些不可以”——是防止 XSS 等攻击的重要防线。如果你发现某个页面 CSP 设置过于宽松(比如允许),那可能就是安全风险点💡。

2026-01-04 16:26:12 272

原创 Redis Key命名规范实战指南

Key 应只作为“标识符”,真正的数据应存入 Redis 的 Value 中。会阻塞 Redis,

2026-01-04 14:24:50 1005

原创 Rust:高性能安全的现代编程语言

它像是一把“锋利但安全的刀”——你用它能做出最精妙的作品,而且不会割到自己。,2010 年诞生,2015 年正式发布 1.0 版本。Rust 是由 Mozilla 主导开发的一种。,被誉为“现代 C 语言的继承者”。

2025-12-31 11:27:42 716

原创 DDD分层项目结构模板

层级职责是否可依赖外部框架?domain核心业务逻辑、实体、规则❌ 否(纯净领域)用例编排、流程控制✅ 是(但不包含业务逻辑)技术实现(DB、存储、消息)✅ 是(依赖外部系统)api接收外部请求,返回响应✅ 是(HTTP/WebSocket)

2025-12-30 16:06:39 1188

原创 JWT防重放攻击:5分钟掌握核心防御策略

攻击者截获一个有效的 JWT 令牌,然后在稍后的时间重复发送这个令牌给服务器,冒充合法用户进行操作。✅ 举个例子:你登录后拿到了一个 JWT,攻击者在你请求时抓包拿到了这个 token。他可以在 24 小时后,重复使用这个 token访问你的账户,比如修改密码、转账等。防御手段适用场景是否推荐🔹 短有效期(TTL)所有场景✅✅✅ 强烈推荐🔹 刷新令牌 + 黑名单长期登录(App/PC)✅✅✅ 强烈推荐🔹 Unique Nonce(一次性随机数)高安全操作(转账、支付)

2025-12-30 11:00:00 549

原创 高效周报模板:聚焦价值与成长

XXX:XXX:2025年XX月XX日 — XX月XX日(星期一至星期日):结果导向|目标对齐|反思改进。

2025-12-29 11:32:03 314

原创 周报升级术:从流水账到价值输出

做了什么(简要)+ 为什么做(背景/目标)+ 怎么做的(关键动作)+ 产生了什么结果(数据/影响)+ 下一步计划(清晰可执行)

2025-12-29 11:30:12 565

原创 大模型相关概念浅谈

提示工程又名 提示词工程,指为模型生成内容创建有效指令的过程,因为模型生成的内容通常是非确定性的,所以构建一个从模型生成正确内容的提示是艺术和科学的结合。提示工程的通用指导原则流式传输是一种持续传输数据块的通信方式,与传统请求——响应模型不同,响应数据可分块发送。典型应用场景要了解流式输出,需要先了解长链接。长链接(Long Connection)是指在一次连接建立后,在一段时间内保持连接状态,持续进行数据传输,而不是每次传输数据都重新建立连接。与短链接相比,长链接减少了连接建立和断开的开销,适用于需

2025-12-26 16:51:54 750

原创 用户ID设计:安全与性能的最佳实践

项目推荐方案用户ID生成UUIDv4(随机生成)数据库主键CHAR(36)存储 UUIDJWT 中传递的用户标识sub字段使用 UUID安全性保障JWT 签名 + 不暴露自增ID + 不允许枚举前后端交互使用基于snowflake算法+业务前缀特性说明✅ 分布式唯一Snowflake 算法保证全局唯一,也可将 Snowflake 换成 Redis INCR(更简单)✅ 可读性强Z1001 易读、易查、易调试✅ 业务语义清晰前缀区分不同业务(Z=用户,O=订单)

2025-12-25 10:06:17 508

原创 高并发API鉴权实战设计思路

要点推荐做法鉴权方式无状态✅ 保持无状态,支持水平扩展权限控制在 JWT 中携带权限信息黑名单机制使用 Redis 存储jti,支持自动清理性能优化网关层统一鉴权 + 公钥缓存 + 限流安全防护HTTPS + 防重放 + 防暴力破解。

2025-12-24 11:45:00 1061

原创 FastAPI精确限流:API级防刷实战

如果你需要按用户 IDAPI 路径IP + 用户 ID等维度限流,可以自定义 key_func。# 按用户 ID 限流(需从 token 解析用户)# 从 JWT token 中解析 user_id# 假设你有一个解析函数。

2025-12-24 11:00:00 488

原创 JWT令牌类型全解析:Bearer、JWT与Refresh

token_type场景推荐token_type一般 API 认证(FastAPI + JWT)bearer(或bearerjwt明确 Token 是 JWT 格式jwt支持“记住我”或自动续期refresh使用 OAuth 1.0a(不推荐)mac。

2025-12-23 17:24:24 293

原创 代码坏味道:常见编程问题与优化方案

重复代码一般是因为需求迭代比较快,开发小伙伴担心影响已有功能,就复制粘贴造成的。重复代码很难维护的,如果你要修改其中一段的代码逻辑,就需要修改多次,很可能出现遗漏的情况,随着项目中重复代码越来越多,项目变得越难维护。

2025-12-23 15:31:44 1211

原创 前端埋码:数据采集实战

页面埋码(也叫“埋点”或“数据埋点”)是指在网页或 App 的特定页面、按钮、交互行为等关键位置,插入一段 JavaScript 代码(或 SDK),用于自动收集用户的操作行为数据。埋码 = 在页面上“埋下”一个数据采集的“探针”。埋码 = 为用户行为装上“数据记录器”它让模糊的“用户用了我的产品”变成清晰的“用户在第3步点了‘取消’,共1000人”——这是产品进化和商业决策的数据基石。如果你是产品经理、运营或前端开发,掌握埋码的核心逻辑和作用,将极大提升你的数据敏感度和产品判断力。

2025-12-23 11:17:14 1702

原创 高效PR/MR提交模板:提升代码合并效率

请在提交 PR/MR 前,建议认真填写以下内容。良好的描述有助于评审人快速理解你的变更,提升合并效率!

2025-12-22 14:38:55 281

原创 渐进式账户锁定机制浅谈

所以在设计或管理一个系统,建议采用这种机制,既防不怀好意的用户恶意触发失败登录锁定,锁死合法用户造成“拒绝服务”,又不惹真正的用户在手抖或者忘记密码情况下,尝试登录导致锁定时间过过长影响用户体验 😄。在系统登录中,渐进式账户锁定机制(Progressive Account Lockout)是一种安全策略,用来防止暴力破解密码攻击,同时尽量减少对正常用户的干扰。其核心思想是:不是一两次错误就直接锁定账户,而是随着错误次数的增加,逐步加强锁定的惩罚。👉 这就是“渐进式”的体现:错误越多,锁定时间越长。

2025-12-22 09:58:47 281

原创 常见的前后端登录认证的几种模式(JWT、SSO、OAuth2.0)

🎯 JWT 就像一张“电子身份证”,它把你的身份信息加密封装成一个字符串,你带着它去访问系统,系统用“钥匙”验证它是否真实有效JWT不建议存储密码、银行卡号等敏感信息一定要用HTTPS传输JWT,防止被窃听设置合理的过期时间(如30min~2h)模式是否需要用户登录是否需要后端是否安全适用场景授权码模式✅ 是✅ 是⭐⭐⭐⭐⭐网站、App、任何有后端的场景隐式模式(简化模式)✅ 是❌ 否⭐⭐纯前端 SPA(不推荐)密码模式✅ 是✅ 是⭐。

2025-12-19 17:08:27 509

原创 超快Python包管理器uv:极速安装新选择

uvuvuv不仅仅是一个工具,它代表了Python 生态的未来方向快、安全、现代化。无论你是初学者还是资深开发者,从现在开始使用uv,你将体验到前所未有的开发效率。📎GitHub 项目📚官方文档。

2025-12-19 14:59:56 1010

原创 diagrams画C4视图示例(未完..)

位于顶层,是软件系统架构图启点,表达系统全貌。本层不涉及具体细节(技术选型、协议、部署方案等其他细节),因此可以更好的向非技术人员介绍系统。待描述的核心系统以及相关用户、支撑系统、不应出现与核心系统无关的其他系统。

2025-11-07 17:21:58 172

原创 软件开发流程图

流水线部署到预生产环境&测试&发布生产。提交代码&创建到dev分支的MR。如有必要进行原有文档补充更新。创建到master分支的MR。流水线部署到开发环境&自测。编写代码&单元测试用例。梳理涉及界面功能范围。根据检视意见优化代码。

2025-11-07 10:06:18 823

原创 DDD落地实践探索(未完..)

在学习ddd如何落地实践之前,先了解什么是限界上下文?限界上下文是 DDD用于战略设计上提出的概念,用来确定语义所在的领域边界。限界就是 领域的边界, 上下文是 语义环境。通过领域的限界上下文,可以在统一的领域边界内用统一的语言进行交流。其定义: 用来封装通用语言和领域对象,提供上下文环境,保证在领域内的一些术语、业务相关对象等(通用语言)有一个确切的含义,没有二义性。这个边界定义了模型的适用范围,使团队成员明确的知道什么应该在模型中实现,什么不应该在模型中实现。

2025-10-27 15:36:43 920

原创 FAQ常见问题解答模板

2025-10-27 15:31:53 158

原创 Python多patch装饰器使用指南

摘要:在Python单元测试中使用多个patch装饰器时,装饰器按从下到上的顺序应用,参数顺序需与之对应。示例展示了如何模拟两个外部函数,证明装饰器顺序不影响结果,但必须保持参数一致。建议保持代码清晰、覆盖所有测试路径、处理异常情况,并将测试集成到CI流程中以确保可靠性。

2025-10-21 15:48:33 440

原创 一文看懂Python装饰器执行顺序

本文通过三个示例演示了Python装饰器的执行顺序和嵌套机制。示例1和2展示了当使用@f1@f2装饰器链时,执行顺序为:先执行外层装饰器f2(outerf2),再执行f1(outerf1),然后依次执行内层wrapper函数(innerf1→innerf2)。示例3调整了wrapper函数内部逻辑,改变了print语句的顺序,但基本执行流程不变。实验证明,装饰器链的调用顺序与直接嵌套调用(f1(f2(test)))等价,且wrapper函数的执行顺序会影响最终结果。

2025-10-21 14:24:13 220

原创 PythonORM框架排序技巧:空值置后的JSON字段排序

通过case子句,Field字段的key为空值时赋值为无穷大,比如这的999999999。(2)且该字段中某个key的值为空的排列到最后。记一次通过ORM框架排序某个表json字段。(1)要求该字段按照升序排序。

2025-10-16 20:32:09 126

原创 Python编程最佳实践提升质量与安全(未完待续)

Python代码整洁之道:PEP8规范示例

2025-10-16 12:02:09 1056

原创 架构设计与DDD

架构设计与DDD传送门

2025-10-09 17:35:58 333

原创 架构设计与DDD(未完待续..)

贫血模型的实体有一堆属性和get、set方法,看不出具体的业务逻辑,要梳理这个实体关联什么业务,只能一层层的搜service,这就是贫血失忆症,不够面向对象。而充血模型,除了get、set方法,还包含具体的业务方法,每个实体都是清晰的,这样的模型就叫充血模型,充血模型内存计算会多一些,内聚核心业务逻辑处理。这才是面向对象的本质。

2025-10-09 17:13:31 1022

原创 构建高性能系统的思路

本文将详细介绍构建高性能系统的思路、使用的工具和手段,帮助开发者全面掌握构建高性能系统的技巧。通过合理选择和配置工具和框架,优化系统的各个组件,可以显著提高系统的性能和稳定性。· 在开始构建高性能系统之前,首先要明确系统的功能需求、性能目标和预期的用户规模。· Python:Python拥有丰富的库和框架,如Django、Flask和FastAPI,适合快速开发高性能Web应用。· 根据系统需求选择合适的编程语言和框架,如Python的FastAPI或Node.js的Express。

2025-09-30 18:58:19 599

原创 MR模板以及代码审查规范

【MR类型】:feature/* | bugfix/* | release/X.Y | dev | main。新增了xxxxx功能、逻辑…简要描述MR的主要内容。关联的issue编号, 如 #100。如果你是测试开发,还需要描述测试情况。会影响xxx模块、xxxx模块,…为了支持xxxx,需要xxxx…【新增内容】or 【变更内容】【简要描述】or 【标题】如果涉及到模块的修改、更新。xxxx平台——xxx模块。如果涉及到问题单号或者编号。

2025-09-29 16:02:06 629 1

原创 设计模式之代理模式-骆驼与巴巴羊的故事

兔子:你们之间的事,我不想掺和,不过我也不允许你被欺负,要不你找巴巴羊看看,他应该能帮上忙,前一阵白象惹事,巴巴羊用我家种的胡萝卜把白象打的鼻青脸肿的,灰头土脸跑了。骆驼:兔子,最近我家这边不太平啊,连小蚂蚁都开始威胁我了,鹰酱和他穿一条裤子的,你能卖给我几个葫芦卜或者蘑菇吗,价钱好说,我不缺钱,我缺的是安全感。骆驼:兔子,我家周围最近不太安全,有各种豺狼虎豹,你要不来我的沙漠派一些兵兔兔保护我好不好,保护费你随便开价。分析:在这三个动物关系种,巴巴羊作为兔子的代理,卖给骆驼胡罗卜之类的农副产品。

2025-09-25 15:37:50 1121

原创 设计模式之命令模式

换句话说就是, 命令模式把 命令内容、命令执行者、调用者或调用时间点分离,实现了请求的发送和执行之间的解耦。将请求和操作封装成对象,将不同请求和其接收者分开解耦来实现请求的发送、执行、撤销等操作。

2025-08-26 20:16:20 454

原创 趣谈设计模式之策略模式-比特咖啡给你一杯满满的情绪价值,让您在数字世界里”畅饮“

在程序运行时动态的选择不同的算法策略或者行为,是一种行为型设计模式。策略对象之间是独立的,没有共享状态,客户端自由选择不同的策略对象。

2025-08-19 19:31:31 929 1

原创 手机场景性能测试中的部分关键指标

在性能测试中,拦截率帧通常指的是在特定条件下,系统未能按时渲染的帧数占总帧数的比例。例如,在测试图形性能时,可能会同时考虑CPU、GPU和内存的使用情况,以全面评估应用的性能表现。在性能测试中,拦截原因分布指的是导致帧或图层未能按时渲染的各种原因的分布情况。2.拦截率:但凡一帧中有一个图层被拦截,这一帧则认为DSS被拦截,表针存在DSS优化空间的帧的比例,可细分为:视效拦截率和硬件规格拦截率。与拦截率帧类似,拦截率图层指的是在特定条件下,未能按时渲染的图层数占总图层数的比例。

2025-08-15 17:18:06 967

空空如也

空空如也

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

TA关注的人

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