自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Element Plus 实战指南

作为后端开发者,您需要一个能够快速构建企业级界面的UI框架。Element Plus 是 Vue 3 的最佳UI框架之一,专为中后台系统设计。

2026-03-20 15:24:03 131

原创 Go 语言依赖注入和Java 区别

本文对比了Go与Java(Spring)在依赖注入(DI)上的核心差异。Go采用显式构造函数注入,通过手动组装依赖链实现DI,依赖关系集中在初始化函数中;而Java通过Spring容器和注解实现自动注入。主要区别在于:Go依赖编译期检查,类型安全且性能更高;Java依赖运行时反射,灵活性更强但调试较难。文章还介绍了Go的三种常见DI模式:ServiceContext集中管理、函数选项模式灵活配置以及接口注入便于测试。最终指出Go的显式DI设计更简单直接、类型安全且性能优越,体现了"显式优于隐式&q

2026-03-19 17:31:24 263

原创 React API集成与路由

加载中...

2026-01-30 08:45:55 358

原创 Vue Router 4 与 [特殊字符] Pinia 状态管理

作为后端开发者,您对路由和状态管理应该有天然的理解。Vue Router 相当于前端的控制器路由,Pinia 相当于前端的状态管理(类似 Redux 或 Vuex,但更简单)。:Vue Router 是您的前端控制器,Pinia 是您的前端服务层。合理使用它们,可以构建出结构清晰、易于维护的大型应用!Pinia 是 Vue 官方推荐的状态管理库,相比 Vuex 更简单、更符合组合式 API 的风格。:user、cart、product 等。:如登录状态、用户偏好。查看路由树和当前路由。

2026-01-30 08:42:20 344

原创 人脸识别前后端How to do

本文介绍了人脸识别系统的前后端实现方案。前端采用React/Vue+face-api.js实现人脸检测,后端使用Python/FastAPI+face_recognition进行特征提取和比对。系统包含人脸注册、识别流程,采用Docker容器化部署,强调HTTPS加密和用户授权等隐私保护措施。建议从基础功能开始逐步完善,可结合云服务快速验证方案可行性。

2026-01-28 09:45:55 259

原创 Hooks、状态管理

/ 创建自定义Context// 模拟登录id: 1,email,name: '测试用户',user,login,logoutreturn ({children}// 自定义Hookif (!context) {throw new Error('useAuth必须在AuthProvider内使用');// 使用示例return (<inputplaceholder="邮箱"/><input。

2026-01-28 09:42:44 60

原创 组件通信 与 ⏳ 生命周期

根据场景选择合适方式。

2026-01-28 09:34:35 849

原创 Vue基础语法与响应式系统详解

掌握 Vue 响应式是掌握 Vue 的关键。作为后端开发者,您已经理解状态管理,现在只需将这种理解应用到前端UI交互中。作为后端开发者,您已经熟悉数据和状态管理的概念。Vue的响应式系统是其核心特色,让您只需关注数据变化,UI会自动更新。:对比 React 的 useState 和 Vue 的 ref。基本类型 (string, number, boolean)自动缓存依赖 vs 需要手动刷新。前端UI响应 vs 后端业务逻辑。:响应式是 Proxy 实现的。方便重新赋值整个数组。SQL视图/计算字段。

2026-01-28 09:27:32 245

原创 React基础:语法、组件与JSX

JSX是JavaScript的扩展,不是模板语言组件必须返回单个根元素(或使用Fragment<>Props是只读的,组件不能修改自己的propskey属性在列表中是必需的,用于React识别元素事件处理使用驼峰命名(onClick,不是onclick)条件渲染有多种方式,选择最适合场景的样式可以是内联对象、CSS类或CSS-in-JS。

2026-01-28 09:24:18 86

原创 后端开发者快速入门react

作为后端开发者,你已经具备了编程思维和工程经验,学习React会更快。

2026-01-28 09:18:22 677

原创 后端开发者-Vue快速学习路线

作为后端开发者,您的优势在于理解数据流和架构设计。重点掌握Vue的响应式原理和组件通信,就能快速上手。实践中遇到问题多查阅官方文档,结合AI辅助开发效率会更高!

2026-01-28 09:06:25 335

原创 Nginx+Lua动态加载黑名单

​Nginx+Lua动态黑名单的核心价值​:​实时防御​:毫秒级生效拦截恶意流量​资源节约​:10万QPS检测仅消耗5% CPU​灵活扩展​:支持自定义封禁策略​无缝集成​:兼容现有Nginx架构​部署建议​:使用OpenResty替代原生Nginx(内置LuaJIT)黑名单存储优先选择Redis Cluster共享内存大小按1.2 * 平均IP数配置结合ELK实现拦截日志审计​该方案可拦截99.5%的恶意扫描流量,将DDoS攻击影响降低80%以上,是物联网平台安全防护的基石方案。

2025-10-16 21:19:51 457

原创 MySQL 架构全景解析

​分层设计​:连接层 → SQL层 → 引擎层 → 文件层​插件式存储引擎​:InnoDB(事务)、MyISAM(读多写少)​内存管理​:缓冲池 + 各种缓存区​日志系统​:Redo Log(崩溃恢复) + Undo Log(事务回滚)​锁机制​:行级锁 + MVCC(并发控制)​性能优化关键​:合理配置缓冲池大小优化SQL查询和索引监控锁竞争和慢查询根据业务特点选择存储引擎MySQL的模块化架构使其能够适应不同的应用场景,从小型网站到大型企业系统都能提供良好的性能表现。

2025-09-30 10:57:52 376

原创 b树和b+树

​维度​​B树​​B+树​​数据存储​分布式存储集中式存储(叶子节点)​查询性能​单点查询可能更快范围查询绝对优势​空间效率​节点利用率低内部节点可存更多键值​适用场景​文件系统、嵌入式数据库、大数据存储​现代应用​逐渐被替代数据库事实标准​终极选择建议​:需要范围查询 → ​必选B+树​内存数据库/缓存 → 考虑B树写密集型场景 → 测试比较两者性能通用数据库应用 → ​无脑选择B+树​。

2025-09-30 10:11:16 730

原创 Golang GMP 模型深度解析

​高性能并发​:轻量级Goroutine + 智能调度​资源高效​:M数量控制 + G栈复用​公平调度​:工作窃取 + 全局队列​系统友好​:网络轮询器 + 系统调用优化​GMP模型是Go语言高并发能力的基石,理解其原理对于编写高性能Go程序至关重要。​。

2025-09-27 09:52:25 610

原创 Golang锁机制深度解析:从使用到底层实现

​三层实现体系​:用户层:sync.Mutex API运行时层:goroutine调度与信号量硬件层:CPU原子指令​优化关键​:自旋减少上下文切换饥饿模式保证公平性位压缩节省内存​性能铁律​:锁性能=临界区执行时间+等待开销+切换开销​最终建议​:读多写少 → RWMutex短期锁定 → Mutex + 自旋长期持有 → 分解锁粒度复杂同步 → Channel + Select。

2025-09-26 11:05:32 443

原创 Slice 切片扩容机制

Go切片扩容机制深度解析:当切片容量不足时,会触发扩容(len==cap时追加元素)。Go1.18+采用平滑增长策略:小切片(<256)双倍扩容,大切片按约1.25倍增长,并优先满足目标容量。扩容过程包括容量计算、内存对齐和数据迁移三个阶段。关键优化点包括:预分配容量(make指定cap)、避免中间扩容、处理并发安全等。注意扩容可能导致内存泄漏(底层数组被引用)和性能问题(高频扩容)。最佳实践是合理预估容量,必要时手动控制扩容时机。

2025-09-26 10:56:46 417

原创 漏标(Missing Mark)问题深度解析

​ 是指在垃圾回收的并发标记阶段,本应存活的对象被错误判定为垃圾并被回收,导致程序出现严重错误。漏标问题是并发GC设计的核心挑战,现代垃圾回收器的很多优化都是围绕解决这个问题展开的。​:A已标记完成(黑色),B正在扫描(灰色),C待扫描(白色)假设我们有三个对象:A(黑)、B(灰)、C(白)​:黑色对象新引用白色对象 + 灰色对象路径断裂。​ 同时运行,对象的引用关系可能发生变化。​:并发标记 + 引用关系修改不同步。​:难以调试的Heisenbug。避免编写容易引发漏标的代码。​:可能被利用进行攻击。

2025-09-26 10:44:06 929

原创 Golang GC 屏障机制深度解析:漏标问题与解决方案

过程中,由于用户程序与GC线程同时运行,导致对象引用关系变化,使得本应存活的对象被错误回收。"GC开始时暂停所有goroutine,将栈上对象全部标记为黑色,建立安全基线。"GC漏标问题本质是并发标记时引用关系变化导致的对象错误回收。"标记结束后再次STW,重新扫描可能修改的栈引用,确保万无一失。的原理是拦截所有指针删除操作,将被删除的对象标记为灰色。"面试官好,关于GC的写屏障和漏标问题,这是一个涉及。"Golang的GC是完美的"(缺乏批判思维)"漏标就是bug,需要避免"(过于简单)

2025-09-26 10:41:00 1050

原创 索引下推和索引跳跃

以下是关于 ​​ 和 ​。

2025-09-26 09:25:48 505

原创 mysql 日志

MySQL 的日志系统是其核心组件,保证了数据库的 ​​ 和。

2025-09-26 09:17:51 785

原创 Mysql事务回滚机制,原子性依靠什么

MySQL的事务回滚机制和原子性实现主要依赖 ​​ 和 ​。

2025-09-26 09:00:56 358

原创 sync.Map和map的区别

sync.Map。

2025-09-25 09:15:53 436

原创 Golang-Channel

【代码】Golang面试-Channel。

2025-09-25 08:49:08 481

原创 Go channel 的底层实现

Channel 是 Go 语言并发编程的核心机制,理解其底层实现对于编写高性能并发程序至关重要。下面我将从数据结构到运行时机制全面解析 channel 的实现原理。

2025-09-25 08:35:28 909

原创 go无缓冲通道

在 Go 语言中,**无缓冲通道(Unbuffered Channel)** 是一种特殊的通道类型,它的行为与**缓冲通道(Buffered Channel)** 有显著区别。无缓冲通道的核心特点是**同步阻塞**,即发送和接收操作必须同时准备好才能完成数据传输。- 当向无缓冲通道发送数据时(`ch <- data`),发送者会阻塞,直到有另一个 goroutine 从通道中接收数据。无缓冲通道的本质是**同步点**,确保发送和接收操作同时完成。无缓冲通道**是同步的,发送和接收操作必须配对。

2025-09-06 10:51:35 534

原创 go 语言map是线程不安全的如何处理

在 Go 语言中,map确实是的。当多个 goroutine 并发读写同一个 map 时,会导致 ​​(竞态条件),可能引发程序崩溃或数据不一致。

2025-09-02 16:01:20 478

原创 Go语言中的指针接收者

摘要:Go指针接收者与Java类方法在对象状态修改和性能优化上具有相似性,但实现机制存在显著差异。Go需显式使用指针接收者修改对象状态并避免大对象复制,而Java默认支持引用传递。设计哲学上,Go分离数据与行为,通过隐式接口实现;Java则耦合数据与行为,需显式声明接口。实践场景中,Go优先用指针接收者处理对象修改和大对象,而Java自动处理引用传递。迁移时需注意Go的显式指针控制与Java的隐式行为差异。

2025-08-15 15:11:47 666

原创 若以微服务部署踩坑点

windows docker desktop 部署nacos mysql。

2025-08-08 11:10:33 440

原创 Go 语言中 ​10 个高频实用写法

​并发安全​共享数据用sync.Mutex或atomic包Channel 优先于共享内存​错误处理​错误需显式检查,避免忽略自定义错误类型提供上下文(如fmt.Errorf("读取 %s 失败: %w", path, err)​性能优化​大结构体用指针传递(高频创建对象考虑sync.Pool​代码简洁​接口定义小而非大(如io.Reader避免嵌套过深,尽早返回错误Go 基础语法并发模式实战。

2025-08-01 11:47:02 480

原创 Go语言常用的设计模式

本文系统介绍了24种设计模式在Go语言中的实现,分为创建型、结构型、行为型和Go特有模式四类。创建型模式包括单例、工厂方法等6种实例化模式;结构型模式涵盖适配器、装饰器等7种对象组合方式;行为型模式提供责任链、观察者等7种交互模式;特别针对Go语言特性提出函数选项、并发模式等4种特有实现。所有模式均结合Go语言特性(接口、组合、并发)给出具体代码示例和应用场景,并强调Go语言"组合优于继承"的设计哲学,建议根据实际业务需求选择模式,避免过度设计。

2025-08-01 10:57:36 1094

原创 Go 语言中,创建结构体实例对象有几种常用方式

在 Go 语言中,创建结构体实例的几种方式有本质区别。

2025-07-22 14:51:24 500

原创 Mocha 使用

​灵活的结构​:清晰的describeit层次​强大的异步支持​:无缝兼容回调/Promise/async-await​可扩展性​:搭配任意断言库、测试报告工具​丰富配置​:通过钩子、超时、过滤等适应复杂场景安装 Mocha + Chai使用describeit组织测试优先使用处理异步通过beforeEach管理测试状态合理配置超时时间(避免异步任务失败)是否需要更深入探讨某些特定功能(如TDD/BDD模式、集成测试覆盖率工具Istanbul等)?

2025-07-07 09:43:53 503

原创 VS Code 使用技巧

定期清理未用插件保持编辑器性能。💠 提示:优先掌握高频快捷键(如。

2025-06-30 11:28:28 1111

原创 JavaScript异步编程

JavaScript异步编程是处理单线程语言并发问题的核心技术,通过非阻塞执行提升性能和用户体验。

2025-06-28 11:10:49 879

原创 Java异步编程的5种核心实现方式

Java异步编程通过非阻塞方式提升系统性能和响应速度,适用于I/O密集型任务和高并发场景。

2025-06-28 11:06:45 761

原创 Java回调机制

​。

2025-06-28 10:57:23 686

原创 深刻理解回调函数

​。

2025-06-28 09:25:24 1113

原创 node 常用的的一些命令

或 Node.js 社区资源。脚本封装常用操作,提升效率。

2025-06-26 10:59:32 1015

原创 解决 Visual Studio 中 Git 提交缺少用户名的问题

您在 Visual Studio 提交代码时遇到的 "git 没有用户名" 错误是因为 Git 需要配置用户身份信息才能进行提交。

2025-06-24 15:16:51 839

收 入 证 明.doc

收 入 证 明.doc

2023-11-29

springsecurity入门笔记+教程

springsecurity入门笔记+教程

2023-09-20

空空如也

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

TA关注的人

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