- 博客(47)
- 资源 (1)
- 收藏
- 关注
原创 深入分析Vue 3中Composition API与Options API的优缺点,什么时候该用Composition API,什么时候该用Options API。
Vue 3 在设计时加入了一个全新的 API——Composition API,与 Vue 2 中的 Options API 并行使用。Vue 3 的 Composition API 提供了更灵活的方式来组织和复用组件逻辑,但它并不是完全替代 Options API。每种 API 有其独特的优势和适用场景,开发者可以根据不同的需求选择最合适的方式。在 Vue 2.x 中,开发者使用 Options API 来构建组件。datamethodscomputedwatchprops等)。
2025-03-24 23:20:33
898
1
原创 深入解析 Vue3 响应式系统:原理、性能优化与应用场景
Vue3 中的响应式系统是基于现代 JavaScript 的Proxy和Reflect实现的。为了理解 Vue3 响应式系统的工作原理,我们需要先了解这两个对象。依赖收集(Dependency Collection)是 Vue3 响应式系统的核心功能之一。在响应式系统中,当我们访问某个响应式对象的属性时,Vue3 会自动追踪该属性依赖的函数或组件。这些被追踪的函数或组件会在数据发生变化时重新执行。这种机制保证了只有在数据发生变化时,相关组件才会重新渲染,从而避免了不必要的性能消耗。
2025-03-24 16:49:13
837
1
原创 Vue 3 + TypeScript 实现视频播放与字幕功能:集成西瓜播放器 XGPlayer
随着视频内容消费的快速增长,特别是在教育、娱乐、新闻等领域,集成一个流畅且功能丰富的视频播放器已成为 Web 应用的必备。大多数现有的视频播放器都能满足基本播放需求,但要实现像字幕切换、播放控制、响应式设计等功能,就需要使用更加专业的播放器。西瓜播放器 XGPlayer 是一款开源且高性能的前端视频播放器,支持 HLS、MP4、FLV 等多种格式,并且提供了丰富的插件支持,能够轻松实现视频播放器的自定义需求。
2025-03-21 17:50:30
797
原创 【Golang学习之旅】Go-zero + Gen:如何使用 Gen 提升 Go 开发效率
Go语言近年来因其高效、简洁的特性,成为了开发高并发、高性能分布式系统的重要语言之一。为了提升Go开发者的开发效率,很多框架和工具应运而生。Go-zero作为一个轻量级、高性能的微服务框架,因其模块化、易扩展等特点,受到了许多开发者的青睐。而Gen则是一个基于Go的代码生成工具,能够大幅度简化开发流程,特别是对于微服务和API接口的开发。本文将深入探讨Go-zero与Gen的结合,如何利用Gen生成代码,从而大幅提升Go开发的效率。
2025-02-27 17:51:17
1026
原创 【Golang学习之旅】Go-zero + GORM:微服务架构中的 ORM 与数据库操作
随着微服务架构的普及,开发人员越来越倾向于使用轻量级、高效的框架来构建高可扩展的应用程序。Go-zero 和 GORM 是 Go 语言中非常流行的两个框架,它们分别处理微服务框架和数据库 ORM 操作,结合使用能够显著提高开发效率和系统性能。在传统的单体架构中,数据库操作通常是程序中最复杂和最容易出错的部分。ORM(Object Relational Mapping)作为一种重要的数据库操作方式,可以帮助开发者在面向对象的编程模型中处理数据库表的增删改查操作。
2025-02-27 11:24:13
1239
原创 IOS基础面试题
MVC(Model-View-Controller)是一种常见的设计模式,用于组织代码Model(模型): 代表数据层,处理数据的逻辑。View(视图): 负责展示界面,显示数据。Controller(控制器): 连接Model和View,处理视图的更新以及用户交互。Delegate是iOS中一种常用的设计模式,用于对象之间的通信。一个对象通过delegate(委托)将某些任务或事件的处理委托给另一个对象。常用于处理UI事件(如UITableViewDelegate)。
2025-02-24 16:07:58
801
1
原创 【Golang学习之旅】分布式任务队列(使用 RabbitMQ / Kafka)
在微服务架构中,处理异步任务是不可避免的需求。为了处理任务的异步执行,系统需要一个可靠的消息队列机制。消息队列能够保证消息的持久化、顺序性和可靠性,并且能够有效地解耦各个服务之间的依赖。本文将深入探讨如何使用Golang构建一个分布式任务队列系统,借助RabbitMQ和Kafka这两种流行的消息队列中间件,实现任务的生产和消费。分布式任务队列是一种基于消息队列的技术架构,它通过在不同的服务或节点之间传递任务来实现异步处理。需要异步执行的后台任务需要并发处理的大规模任务解耦微服务之间的依赖。
2025-02-19 16:38:51
975
原创 【Golang学习之旅】Go 语言微服务架构实践(gRPC、Kafka、Docker、K8s)
随着互联网技术的飞速发展,尤其是云计算的普及,微服务架构已经成为企业构建大型、分布式系统的主流选择。微服务架构的核心思想是将一个传统的单体应用程序拆解成若干个小而独立的服务,每个服务运行在独立的进程中,通过网络进行通信。每个微服务都负责一个独立的功能,并且可以根据业务需求独立开发、部署和扩展。在微服务架构中,服务之间通过标准协议(如HTTP、gRPC等)进行通信,而每个服务都拥有自己的数据存储和处理逻辑,避免了数据集中管理的单点故障问题。
2025-02-15 23:37:22
1575
2
原创 【Golang学习之旅】如何在Go语言中使用Redis实现分布式锁,并解决锁过期导致的并发问题?
在Go语言中使用Redis实现分布式锁并解决锁过期导致的并发问题是一个常见的需求,尤其是在需要确保分布式环境中多个实例不会同时操作同一资源时。Redis提供了强大的原子操作,能够帮助我们实现可靠的分布式锁。
2025-02-15 17:51:36
1325
原创 【Golang学习之旅】gRPC 与 REST API 的对比及应用
REST(Representational State Transfer)是一种基于 HTTP 协议的架构风格,它提供了一组约定,使得 Web 服务可以通过标准的 HTTP 方法(GET、POST、PUT、DELETE)进行通信。REST API 采用 JSON 或 XML 作为数据格式,并且通过 URL 结构定义资源。基于 HTTP 协议,无需额外的通信协议支持使用 JSON 或 XML 作为数据交换格式采用无状态(Stateless)架构设计,易于扩展适用于 Web 开发,兼容性强。
2025-02-10 22:15:37
918
原创 【Golang学习之旅】使用 JWT 进行身份认证(Token 机制)
是一种基于 JSON 格式的无状态认证机制,广泛应用于 RESTful API 的身份认证。它的基本思想是:服务器在用户登录成功后,生成一个Token(令牌),然后客户端在后续的请求中携带该 Token,服务器通过解析 Token 进行身份验证。无状态:服务器不需要存储 Token 状态,所有信息都包含在 Token 内部。跨平台:基于 JSON 格式,可以在任何支持 HTTP 的环境中使用。自包含:Token 本身包含了身份验证相关的信息,减少了数据库查询。
2025-02-10 11:11:22
1172
原创 【Golang学习之旅】Go + Redis 缓存设计与优化(项目实战)
假设我们正在开发一个电商平台,需要缓存商品信息以提高页面加载速度。商品信息经常被查询,但修改频率较低,因此使用 Redis 作为缓存会大大减少数据库的查询压力。在本节中,我们将通过一个实际的项目案例,演示如何在 Go 中使用 Redis 实现高效的缓存设计与优化。通过上述设计,我们显著减少了数据库查询次数,降低了数据库的负载,提高了系统的响应速度和吞吐量。
2025-02-09 20:49:47
540
原创 【Golang学习之旅】Go + Redis 的缓存设计与优化
在高并发和大规模的数据访问场景中,如何提高应用的响应速度和系统的稳定性是开发者必须面对的挑战。传统的数据库存储虽然在数据持久化方面做得很好,但其在处理大规模高频访问时却常常表现出性能瓶颈。为了解决这一问题,缓存作为一种常见的技术,能够显著提升数据访问速度,减少数据库的压力,从而提高系统的整体性能。Redis作为一种高性能的内存数据存储,因其出色的读写性能、丰富的数据结构和易于扩展的特点,已经成为现代Web系统中不可或缺的一部分。而在Go语言开发中,Redis被广泛用于各种高并发、高性能的场景,如缓存。
2025-02-09 20:30:49
1055
2
原创 动手写ORM框架 - GeeORM第一天 database/sql 基础
首先创建一个名为 geeorm 的 module,并新建文件 log/log.go,用于放置和日志相关的代码。因此,在写核心代码之前,我们先用几十行代码实现一个简单的 log 库。掌握了基础的 SQL 语句和 Go 标准库 database/sql 的使用,可以开始实现 ORM 框架的雏形了。SQLite 的使用暂时介绍这么多,了解了以上使用方法已经足够我们完成今天的任务了。用于和数据库的交互,接下来我们写一个 Demo,看一看这个库的用法。至此呢,一个简单的支持分级的 log 库就实现完成了。
2025-02-08 11:35:55
1162
原创 【Golang学习之旅】Go + MySQL 数据库操作详解
✅ 适合人群:Go 后端开发者 | 数据库开发者 | 想掌握 GORM 的工程师✅ 文章亮点:从 安装、基础操作、CRUD、事务、索引优化 到 进阶技巧,全面解析 GORM✅ 目标:掌握 Go 语言 + MySQL(GORM),开发高效数据库应用!GORM是Go语言最流行的ORM框架,它提供了一套强大且简介的数据库操作API,相比,它具备以下优势:✅ 代码简洁:无需手写 SQL,使用链式调用✅ 支持自动迁移:可自动创建和更新数据库表结构✅ 支持事务、预加载、钩子函数。
2025-02-08 10:34:45
864
原创 7天用Go从零实现ORM框架GeeORM
GeeORM 的目的主要是了解 ORM 框架设计的原理,具体实现上鲁棒性做得不够,一些复杂的特性,例如 gorm 的关联关系,xorm 的读写分离没有实现。数据库的特性非常多,简单的增删查改使用 ORM 替代 SQL 语句是没有问题的,但是也有很多特性难以用 ORM 替代,比如复杂的多表关联查询,ORM 也可能支持,但是基于性能的考虑,开发者自己写 SQL 语句很可能更高效。除了基础的功能,比如表的操作,记录的增删查改,gorm 还实现了关联关系(一对一、一对多等),回调插件等;举一个具体的例子,来理解。
2025-02-07 16:40:18
846
原创 【Golang学习之旅】使用 Gin 构建 RESTful API
✅ 适合人群:Go 后端开发者 | Web API 开发者 | 想快速掌握 Gin 框架的工程师✅ 文章亮点:从零开始,详细解析 Gin 的核心功能,并通过 实战代码 构建 RESTful API✅ 目标:掌握 Gin 框架,实现高效、可扩展的 RESTful API!if token!})returnctx.Next()// 初始化 Gin 引擎})✅ 学习了 Gin 的核心功能: 请求解析、JSON 绑定、路由分组、中间件。
2025-02-07 11:01:29
699
原创 【Golang学习之旅】Golang 内存管理与 GC 机制详解
✅ 适合人群:Golang 开发者 | 后端工程师 | 高性能应用开发者✅ 文章亮点:深入解析 Go 内存管理、GC 机制、优化技巧 + 实战代码✅ 目标:掌握 Go 内存管理与垃圾回收(GC),提升程序性能!Go 采用三色标记法(Tri-color Mark & Sweep)进行垃圾回收,GC 过程如下:1️⃣标记(Mark): 标记所有可达对象(存活对象)2️⃣清除(Sweep): 清理不可达对象(垃圾对象)3️⃣重分配(Reclaim): 回收已释放的内存,减少碎片🔹 Go 采用。
2025-02-07 09:46:45
1192
原创 【Golang学习之旅】Go 语言错误处理(error 接口、panic、recover)
✅ 适合人群:Golang 开发者 | 后端开发工程师 | 并发编程初学者✅ 文章亮点:深入解析 error、panic、recover + 代码示例 + 实战场景✅ 目标:掌握 Go 语言错误处理机制,编写健壮、高质量的 Go 代码!error🔹 Go 语言错误处理的基本原则:✅ 普通错误使用error处理(推荐方式)✅ 严重错误使用panic处理✅ 程序应尽可能优雅地恢复panic用于表示程序发生严重错误,无法继续执行,通常用于不可恢复的错误,如:✅ 数组越界✅ 空指针引用。
2025-02-06 14:11:55
920
原创 【golang学习之旅】Go 语言并发编程(goroutine、channel 的使用)
✅ 适合人群:Golang 开发者 | 并发编程初学者 | 后端开发工程师✅ 文章亮点:深入解析 Goroutine & Channel + 代码示例 + 实战场景✅ 目标:掌握 Go 并发编程核心,让你的代码更高效、更强大!Goroutine是Go语言的轻量级线程,由Go运行时管理,而非操作系统。相比传统线程,Goroutine占用内存小:默认仅2KB栈空间,可动态扩展调度高效:Go运行时管理Goroutine的调度,无需手动创建线程启动成本低:创建Goroutine比创建线程的开销小很多。
2025-02-06 10:48:09
1019
原创 【Golang学习之旅】Go 语言数据类型详解(string、slice、map等)
✅ 适合人群:Golang 新手 | 后端开发者 | 面试求职者✅ 文章亮点:超详细解析 + 代码示例 + 实战应用✅ 目标:掌握 Go 语言核心数据类型,助你写出高效、稳定的 Go 代码!📌 本篇文章介绍了 Go 语言的常见数据类型,包括 string、slice、map 等,帮助你掌握 Go 语言基础。📌 进阶学习:Go 并发(Goroutine)、微服务(gRPC)、Web 开发(Gin 框架)Go 官方文档。
2025-02-05 15:20:11
1291
1
原创 【Golang学习之旅】Go 语言基础语法概览
✅ 适合人群: Golang 新手 | 后端开发者 | 面试求职者✅ 文章亮点: 语法详解 + 实战代码 + 高质量示例✅ 目标: 10 分钟快速掌握 Golang 基础语法,助你高效写项目!Go 语言(Golang)是Google开发的一门静态强类型并发支持强语法简洁的编程语言,广泛应用于后端开发云计算微服务区块链等领域。🔹 Go 语言的 4 大核心特点:✅ 语法简洁(减少代码冗余,开发高效)✅ 高性能(比 Python 快,比 Java 简单)
2025-02-05 14:13:57
1122
原创 Go语言中的高阶函数
Go语言通过函数的一等公民特性和闭包支持,为高阶函数提供了实用且类型安全的实现方式。减少重复代码(DRY原则)增强代码的模块化实现灵活的策略模式构建声明式API然而,开发者需在函数式风格的简洁性与Go语言惯用模式之间找到平衡。对于需要高度复用或复杂逻辑的场景,高阶函数是一个强大的工具;而对于简单的流程控制,传统的命令式代码可能更直观。
2025-02-05 10:06:09
358
原创 Docker 的基本概念和优势,以及在应用程序开发中的实际应用
Docker是一种开源的容器化平台,可以将应用程序和其依赖的运行环境打包成一个独立的容器。它基于Linux容器技术,可以在不同的操作系统上运行,提供了一种轻量级、快速、可移植的应用程序部署解决方案。总之,Docker提供了一种轻量级、快速、可移植的应用程序部署解决方案,可以在应用程序开发、测试和部署中发挥重要作用。
2025-02-04 21:12:24
376
原创 Go语言面试宝典:50道必会题目与精解
interface是Go中的抽象类型,定义了一组方法,但没有实现。一个类型只要实现了接口中的所有方法,就实现了该接口。通道用于在不同goroutine之间传递数据。通过chan关键字定义,使用发送数据,接收数据。
2025-02-04 20:11:39
1087
1
原创 玩转Mysql:查询优化、数据库表设计、索引优化的理解
如果顾客信息经常变动(如地址、电话号码),我们不希望在每个订单中都重复存储顾客的详细信息。数据库的设计直接影响到查询性能和系统的可拓展性。好的设计可以让查询更高效,不好的设计可能会导致性能瓶颈。这样可以确保顾客信息更新时,只有一处数据需要更改,避免冗余数据。
2025-02-03 23:02:37
306
原创 玩转goroutine:Golang中对goroutine的应用
上一篇文章讲到了goroutine的基本原理和概念的理解,本次将基于玩转goroutine:Golang中对goroutine的理解述这篇文章的内容来写一个API接口,实现goroutine并发处理任务。任务处理过程中,我们模拟了time.Sleep来表示任务的耗时。在实际项目中,可以替换成实际的业务逻辑,比如数据库操作调用微服务等。如果任务数量较多,或者每个任务执行时间较长,考虑引入任务池(Worker Pool)来限制并发数,避免过多的goroutine造成系统资源的浪费。
2025-02-03 20:51:25
898
原创 玩转goroutine:Golang中对goroutine的理解
Go语言的 goroutine 是一种轻量级的线程管理机制,它是 Go 提供的并发编程的核心之一。与传统的线程相比,goroutine 的创建和销毁开销非常小,可以轻松地处理成千上万的并发任务。理解 goroutine 的机制对于高效编写 Go 并发代码非常重要。在 Go 中,goroutine 是一个由 Go 运行时(runtime)管理的轻量级线程。你可以使用 go 关键字来启动一个新的 goroutine,它会在后台并发执行某个函数。不同于传统的线程,goroutine 的创建和销毁非常快速且开销小。
2025-02-02 16:08:35
757
原创 玩转Gin框架:Golang使用Gin完成登录流程
Token 认证机制是一种常用的身份验证方法,特别适用于现代化的 前后端分离 和 微服务架构 的应用。相比传统的 Session 认证机制,Token 认证具有一些明显的优势,特别是在 扩展性 和 跨平台 支持上,大致流程如下:4. 客户端通过用户名和密码请求登录,后端对接收到的账号和密码进行验证5. 如验证通过,则会签发一个Token返回给客户端进行存储6. 后续客户端通过头部携带Token向服务器请求资源。
2025-02-01 00:37:12
866
原创 前端面试题集合
当在一个执行环境中访问变量或函数时,会首先在当前执行环境的变量对象中查找,如果找不到,则会沿着作用域链向上查找,直到找到对应的变量或函数,或者达到最外层的全局对象(如window)。在这些异步操作中,任务的执行不会阻塞程序的其他部分,而是在后台进行,当任务完成时,会通过回调函数或事件来通知程序进行下一步操作。relative:生成相对定位的元素,相对于其正常位置进行定位,通过设置 top、right、bottom、left 属性来调整元素的位置,不会脱离文档流,周围的元素仍然会按照正常布局进行排列。
2023-06-28 18:26:57
235
原创 vue3让你写页面样式事半功倍的CSS框架-Unocss认识
作者:vue、vite核心开发成员 Anthony Fu定义:Unocss 是一个引擎,而非一款框架,因为它并未提供核心工具类,所有功能可以通过预设和内联配置提供优点直观定制简单无值的属性化模式更好的兼容其他的组件库样式带来灵活性的同时兼顾了性能。
2023-06-17 10:46:18
714
原创 使用nodejs+redis+mysql开发忘记密码-设置用户密码和修改密码接口
【代码】使用nodejs+redis+mysql开发忘记密码-设置用户密码和修改密码接口。
2023-06-14 21:22:42
360
原创 前端获取电池信息
随着技术的日益发展,web前端技术远比我们想象的强大。浏览器允许网站获取用户设备的电池状态信息,例如电量百分比,剩余电量,充电状态等等。我们可以使用这些信息,根据用户设备的电量调整我们的应用行为。在这篇中,我们将探讨如何在前端中获取电池信息,用到的就是关于 Battery Status API。
2023-06-14 19:02:28
218
原创 使用nodejs+redis+mysql获取微信二维码并扫码返回微信公众号
【代码】使用nodejs+redis+mysql获取微信二维码并扫码返回微信公众号。
2023-06-12 11:08:18
350
星星教程网源码
2014-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人