自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Go 语言高级开发者进阶之路

以下是 Go 语言高级开发者需要掌握的核心技能列表,分为。

2025-03-14 08:32:28 611

原创 Go channel底层实现原理以及为什么要懂原理

Go的channel通过hchan结构体、环形缓冲区、互斥锁和等待队列实现高效的goroutine间通信。其设计在保证并发安全的同时,通过直接数据传递和智能调度优化性能。理解其底层机制有助于编写高效、可靠的并发程序。

2025-03-14 08:28:52 735

原创 vscode 配置golang开发环境

在go1.20环境中需要指定工具的安装版本。vscode 配置golang开发环境。

2025-03-12 22:41:50 330

原创 Cursor配置Golang开发环境

熟悉IDE, 而不熟vscode的开发小伙伴们可以参考。

2025-03-11 23:58:37 574

原创 golang dlv调试工具

Delve(简称dlv。

2025-03-07 11:04:54 406

原创 DeepSeek学习资料

整理了最近看到的DeepSeek和AI的学习资料.尊重原创, 只搬运整理。

2025-02-19 08:32:05 227

原创 golang字符串拼接实现方式和比较

golang字符串拼接实现方式和比较

2025-02-15 09:29:49 514

原创 儿时玩伴今何在文案--短视频流行文案

家乡的变化很大, 唯独我的记忆还停留在最初的时候。小时候总是被问是谁家的孩子, 如今当我说出这句话时,就已经完成了闭环。当听到小孩口中说着他们的秘密基地时,我多想说一句那是我的秘密基地。对此 思念故乡的麦克阿瑟想说难怪有故人之姿,原来是故人之子。这一刻才理解了朝花夕拾的含义。而我更像是那个年兽,新年到时我才来,鞭炮响完我便走。当我再次回到家乡时,却不见牛羊成群,漫山耕耘,村里多了许多陌生脸庞,不知何时嫁来的姑娘。路上的小孩也不知是谁家的,看到我时以为我是外地的,可他们不知道,我才是这个村里长大的孩子。

2025-02-03 14:59:08 288

原创 composer安装指定php版本, 忽略平台原因导致的报错

composer安装指定php版本

2025-01-21 08:13:31 266

原创 laravel10.x 框架中间件实现原理

管道模式是一种软件设计模式,它允许将一系列操作按顺序连接在一起,形成一个处理管道。每个操作可以处理输入数据并将结果传递给下一个操作,类似于一个物理管道中的流体流动。在 Laravel 中,这个“流体”就是 HTTP 请求,而操作就是中间件。

2025-01-16 00:21:34 1367

原创 Gin框架中间件原理

总的来说,Gin借助切片收集中间件函数,然后在请求处理阶段通过巧妙的函数嵌套、闭包以及对函数执行顺序的控制,实现了将中间件函数组成链式结构来处理请求的机制。当有请求进来时,Gin会从已添加的中间件链头开始逐个执行中间件函数,这个过程是在处理请求的主逻辑中实现的。在Gin框架中,中间件(Middleware)是在处理请求的过程中,在请求被真正的处理函数处理之前或之后执行的一些逻辑。当定义一个中间件时,实际上是定义了一个函数,这个函数接收。方法添加进来的中间件函数的,每个中间件函数都是。切片就是用来存放通过。

2025-01-06 23:12:57 765

转载 Mysql知识整理(持续更新)

MySQL如何在线扩展表结构,内核原理?

2024-12-24 13:28:53 36

原创 PHP导出csv文件报编码异常

PHP导出CSV文件编码问题, 在文件头部添加bom

2024-12-20 21:57:58 268

原创 Rabbitmq实现延迟队列

在RabbitMQ中实现延迟队列(延时队列)可以有几种方案,其中常用的是通过死信队列(Dead Letter Queue,DLX)和rabbitmq_delayed_message_exchange插件来实现。以下是这两种方案的介绍以及注意事项。

2024-12-20 17:32:29 667

原创 bcmath和round() 什么场景下结果不同

讨论一个问题:bcmath和round() 什么场景下结果不同大多数场景下, bcmath和round()是一样的。

2024-12-12 19:01:09 408

原创 go build --gcflags是什么意思, go build后面还可以接哪些选项

go build 是 Go 语言的命令行工具中用于编译 Go 程序的命令。它可以根据指定的包名或文件列表来编译代码,并生成可执行文件或者库文件。

2024-11-06 09:21:36 570

原创 linux日志分割工具logorate快速验证配置是否有效

这个配置告诉 logrotate 每天对 /var/log/test.log 文件进行一次轮换,并保留最新的五个版本的日志文件。创建一些文件, 并修改文件的mtime(修改时间)logrorate配置文件参考。test为配置文件名称。

2024-10-17 07:45:33 399

原创 git 查看已经commit但是还没有push的所有文件变动内容

你当前在dev分支, 查看dev本地分支和远程分支的差异显示最后一次推送以来所有文件的详细改动git diff origin/main HEAD

2024-09-25 18:24:45 596

原创 PHP的guzzlehttp/guzzle库在碰到各种异常时的场景

经过测试得知在http状态码为1xx, 2xx, 3xx时, 会在111处输出返回在http状态码为4xx, 5xx时, 会在222处被捕获在目标服务不可达或其他异常时会在333处被捕获。

2024-09-25 16:51:44 858 1

原创 gin参数绑定panic错误分析

gin参数绑定panic错误分析和避免方法

2024-09-22 08:17:13 454

原创 linux监听网速

【代码】linux监听网速。

2024-09-06 20:40:53 478

原创 php 中 new self() 和 new static()区别

并且这个方法在子类中被调用,那么它将创建子类的实例,而不是父类的实例。关键字引用的是当前类本身。无论在哪个类中调用它,它总是引用定义关键字的那个类。这意味着,如果你在父类的一个方法中使用。关键字则不同,它引用的是调用该方法的类。这意味着如果你在父类的方法中使用。都用于创建当前类的实例,但它们在运行时绑定和继承上下文中的行为有所不同。,那么即使在子类中调用这个方法,它仍然会创建父类的实例,而不是子类的实例。而在需要确保总是创建某个特定类的实例时,因此,在需要根据调用上下文动态确定实例类型的情况下,

2024-07-08 18:11:27 557

原创 laravel中 firstOrNew(), firstOrCreate(), updateOrInsert(), updateOrCreate() 方法的区别和实现原理

在 Laravel 中,firstOrNew, 和是用于处理数据库记录的常用方法,每个方法有其特定的用途和行为。

2024-06-17 12:04:32 1622

原创 laravel创建项目

具体到命令 composer create-project --prefer-dist laravel/laravel water_cup “10.x”,这意味着Composer会创建一个新的Laravel项目,项目名称为 water_cup,并指定Laravel的版本为 10.x 系列。–prefer-dist 是一个选项,它告诉 Composer 在安装项目时优先使用打包好的发行版(例如 .zip 或 .tar.gz 文件)来加速安装过程。

2024-06-13 19:03:49 312

原创 golang windows打包为linux可执行文件

使用go的交叉编译功能然后再执行go build可能会报异常, 所以贴出我的go env配置仅供参考。

2024-06-12 09:21:54 1112

原创 Laravel orm和查询控制器注意事项

【代码】Laravel orm和查询控制器注意事项。

2024-06-03 15:47:31 119

原创 mysql在存储json字段时默认会美化

mysql在存储json字段时, 默认会美化, 从而导致golang json序列化的数据和数据库查询出来的数据, 本来是相等的. 结果因为美化的效果, 增加了缩进和换行而导致不相等。

2024-05-31 09:21:08 252

原创 查询mysql中字段重复记录

GROUP BY shop_id, order_id:首先按照shop_id和order_id两个字段对表中的记录进行分组。) as duplicate_count:计算每个组内的记录数,并将这个数量命名为duplicate_count。) > 1:筛选出那些组内记录数大于1的组,即至少有两行数据具有相同的shop_id和order_id值。这样,你就能得到所有shop_id和shopify_order_id重复的记录及其重复次数。

2024-05-29 10:11:53 244

原创 linux下使用pecl安装php扩展

linux下如何使用pecl安装php扩展

2024-05-18 10:18:13 955

原创 golang并发访问map安全问题

Go语言规范并未保证在并发写情况下map的行为。因此,如果发生并发写,程序可能会出现未定义的行为,如panic(数据竞争检测器检测到问题时)、数据不一致、程序崩溃等。这些行为是不可预测的,且难以调试。

2024-04-18 18:26:00 1087 2

原创 git restore, git revert, git checkout, git switch, git stash使用和区别

git revert, 和(现在推荐使用git switch)是 Git 中用于处理不同场景下的版本恢复或切换的命令。是 Git 2.23 版本引入的一个新命令,它主要负责将文件恢复到某个指定的状态。:使用可以撤销对工作区文件的修改,将其恢复到最近一次提交的状态,丢弃本地未提交的更改。:使用可以取消对暂存区文件的更改,即撤销已经git add但还未git commit的改动。:结合选项,可以将文件恢复到特定提交的状态,例如将文件恢复到上一个提交时的状态。git revert。

2024-04-16 09:14:16 667

原创 mysql 查询后, 不存在则插入记录, 但是在高并发时容易导致重复插入, 有什么解决办法吗

高并发时查询插入问题

2024-04-16 08:06:19 2225

转载 将redis发布订阅模式用做消息队列和rabbitmq的区别?Redis禁用持久化功能的设置?想想为什么要使用MQ?使用了消息队列会有什么缺点?

rabbitmq:具有消息消费确认机制,如果发布一条消息,还没有消费者消费该队列,那么这条消息将一直存放在队列中,直到有消费者消费了该条消息,以此可以保证消息的可靠消费,那么rabbitmq的消息是如何存储的呢?rabbitmq是一个专门的AMQP协议队列,他的优势就在于提供可靠的队列服务,并且可做到异步,而redis主要是用于缓存的,redis的发布订阅模块,可用于实现及时性,且可靠性低的功能。redis:实时性高,redis作为高效的缓存服务器,所有数据都存在内存中,所以它具有更高的实时性。

2024-03-28 08:05:36 190

转载 php Carbon类操作方法

原文链接:https://blog.youkuaiyun.com/qq_35560768/article/details/131248816。版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。php Carbon类操作方法。

2024-03-21 11:59:13 396

原创 PhpStorm配置XDebug3

本地web服务配置xdebug调试环境xdebug现在有3.x版本, 我使用的是3.x版本。

2024-03-07 15:07:01 597

原创 运行go mod tidy报错

使用国内精修, go sum db依然设置为空, 完全兼容的。找到对应包进行升级, 有的改版本号。临时不校验go.sum方法。

2024-03-06 00:13:40 2237

原创 npm使用淘宝镜像报错和安装yarn

windows安装yarn和nvm

2024-03-05 22:14:09 356

原创 Golang Kratos cookie转metadata和cookie存储

cookie转metadata。

2024-02-26 09:05:23 399 1

原创 windows安装golang多版本管理工具gvm/g

不然,会出现【Symlink…配置GOROOT,这个指向g/gvm工作目录下的go,gvm安装go版本后,会在这个路径下建立一个软链到versions目录下的指定版本,靠这个方法来控制当前的go版本,这里比较重要的一步,【以管理员身份运行命令行工具】,不管是CMD、还是powershell,都要以管理员身份运行!4.编辑系统变量中的【PATH】变量,增加一行【D:\g\】和一行【%GOROOT%\bin】,如下图。执行命令【go version】验证安装,显示具体go版本表示go安装成功。

2023-08-01 09:06:26 2399 1

原创 Golang 结构体遇到slice和map

因为slice和map这两种数据类型都包含了指向底层数据的指针,因此我们在需要复制它们时要特别注意。我改变了data的值, 但是我本没有想改变p1结构体的值.

2023-07-20 09:43:11 207

空空如也

空空如也

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

TA关注的人

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