- 博客(32)
- 问答 (1)
- 收藏
- 关注

原创 【Go并发编程】Goroutine 调度器揭秘:从 GMP 模型到 Work Stealing 算法
一文搞懂Go语言协程(Groutine)的实现原理,并了解Go并发编程的工作流程。
2025-02-15 12:20:11
1425
原创 云原生配置管理:Viper的12个高级用法详解
Viper作为Go语言中最强大的配置管理库,提供了丰富的功能和灵活的配置方式。通过本文介绍的12个高级用法,你可以在云原生项目中更好地管理和使用配置,提高开发效率和代码质量。
2025-03-14 19:28:40
421
原创 依赖注入的艺术:Wire框架最佳实践
Wire是Google开源的一个Go语言依赖注入工具,它通过生成代码来实现依赖注入。与运行时依赖注入框架不同,Wire在编译时完成所有工作,确保依赖关系的注入是类型安全的且效率高。Wire的核心优势包括:• 类型安全:依赖关系在编译时确定,避免了运行时错误。• 自动化生成代码:Wire自动生成依赖注入所需的代码,减少了手动创建工厂函数的工作量。• 无运行时开销:Wire在编译时生成代码,没有运行时性能损失。Provider是一个可以创建某种类型实例的函数。
2025-03-11 17:13:03
293
原创 微服务通信:用gRPC + Protobuf 构建高效API
本文将带你深入理解如何使用gRPC和Protobuf构建高效的微服务通信API,并通过Golang实现一个完整的示例。gRPC的高性能和跨语言支持使其成为微服务架构中的理想选择,而Protobuf的强类型和代码生成功能则进一步简化了开发过程。通过Golang实现的一个简单示例,我们展示了如何定义Protobuf文件、生成Go代码、实现gRPC服务器和客户端。这将生成两个文件:user.pb.go和user_grpc.pb.go,分别包含消息结构和服务接口的定义。接下来,我们实现gRPC服务器。
2025-03-05 22:08:07
1248
原创 只需几步!在本地电脑轻松部署DeepSeek大模型
本文一分钟教会你快速在本地部署各种AI大模型(比如deepseek),既方便又简单,小白都会。
2025-02-27 15:05:55
744
原创 【Go并发编程】内存模型陷阱:那些可能让你熬夜Debug的并发Bug
深入解析Go内存模型中的并发陷阱:数据竞争、内存可见性与指令重排序,教你如何避免熬夜Debug!
2025-02-24 19:07:11
483
原创 【Go并发编程】Channel进阶:实现高性能消息队列的5种模式
用Go语言的Channel实现5种高性能消息队列,解锁分布式系统高效解耦和异步处理的实用技巧!
2025-02-17 11:16:39
1170
原创 【核心特性】深入对比:try catch 与 Go 的 error 模式
一文了解为什么Go要弃用try catch的方式处理异常,Go语言又是怎么处理error的。
2025-02-13 12:01:13
713
原创 【核心特性】从鸭子类型到Go的io.Writer设计哲学
一文搞懂什么是鸭子类型和Go语言的io.writer的设计哲学,为我们提供新的思维方式和设计方法。
2025-02-12 11:34:25
661
1
原创 【核心特性】为什么云原生时代属于Go语言?(剖析Go核心优势)
本文深入剖析大厂青睐Golang作为后端开发语言的原因,并全面梳理Golang的核心优势。
2025-02-10 16:34:37
575
1
原创 Mysql存储过程详解
存储过程基本概念存储过程是一组为了完成某向特定功能的 SQL 语句集,其实质上就是一段存储在数据库中的代码,它可以由声明式的 SQL 语句(如:CREATE、UPDATE和SELECT等语句)和过程是SQL语句(如:IF…THEN…ELSE控制结构语句)组成。存储过程的优点可增强SQL语言的功能和灵活性存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和复杂的运算良...
2020-01-30 22:11:47
315
原创 网络ip段计算,网络地址计算,广播地址计算,主机号计算规则
ip网段格式一个ip段的范围通常是从网络地址 ~ 广播地址 ,一般去除网络地址和广播地址后的范围就是一个可用的ip段怎么计算ip的网络地址?计算规则使用ip的二进制和子网掩码二进制进行位与运算可以得到一个新的二进制ip,然后我们把它转换为十进制后的结果就是网络地址了示例如:有一个ip为222.73.196.18/29,ip中的/29是代表子网掩码二进制中从左往右将有29个1,接...
2019-10-29 16:22:52
3554
原创 PHP使用RabbitMQ全过程
RabbitMQ简介RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的。使用场景在我们秒杀购买商品的时候,通常将会涌入大批量的请求和数据库查询,容易导致请求阻塞和数据库宕机。那要怎么解决这种问题呢,这个时候就到了消息队列发挥作用的时候了,消息队列(rabbitmq)在接收到请求之后会放入一个通道里面...
2019-10-23 11:18:23
1291
原创 Mysql最左前缀原则
底层原理当有多列索引时,mysql底层使用索引查询的时候是从左往右进行匹配,并且是需要从左往右连续的。示例如:索引顺序是a、b、c,当查询条件为a = 1 或 a = 1 and b = 1 时将会使用到索引,但是当查询条件为b = 1 或 a = 1 and c = 1将不会使用上索引多了索引创建示例如有一个2列索引(a,b),则在a,(a,b)上会建立索引如有一个3列索引(a,b,...
2019-10-21 18:16:34
495
1
原创 PHP生命周期
概述PHP的整个生命周期被划分为以下几个阶段:模块初始化阶段、请求初始化阶段、执行脚本阶段、请求关闭阶段、模块关闭阶段。php的cli模式下每次执行一个脚本都会完整的经历这些阶段,而FastCgi模式下则只会在启动时执行一次模块初始化阶段,然后接下来的各个请求只会执行请求初始化阶段、脚本执行阶段,请求关闭阶段。流程图1.模块初始化阶段这个阶段主要进行PHP框架、zend引擎的初始化操作。...
2019-10-17 19:02:27
2656
原创 解决error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
apt-get install libpcap-dev
2018-08-13 19:16:42
2449
1
原创 Vue路由、页面跳转、页面传参和参数接收示例
Vue路由、页面跳转、页面传参和参数接收示例路由地址设置页面跳转+传参子页面接收父页面参数路由地址设置 index.js页面路由地址配置文件位于src/router/index.js 例如我们需要设置一个/list-detail的路由,我们只需在当前文件下增加如下配置import Vue from 'vue'import Router from ...
2018-07-06 17:29:14
37079
2
原创 windows安装nginx+php
1.nginx安装教程(http://mp.youkuaiyun.com/postedit/79603129)2.php下载安装 打开php官网(http://php.net/downloads.php)下载windows版本php 可以看到提供了两个版(Non Thread Safe & Thread Safe)本可以下载,两者区别的话大家自己百度了解一下,我这 里就不具体介绍了...
2018-03-18 19:23:11
468
原创 windows安装nginx
1.百度“nginx for windows”然后进入nginx官方网站(http://nginx.org/en/docs/windows.html)进行下载2.下载完成解压后文件结构如下图 3.然后打开conf文件夹下的nginx.conf进行相关配置![图片上传中...] root xxx用来配置网站根目录server_name ...
2018-03-18 18:54:43
259
原创 MYSQL五表联查/N表联查一次性查出某个条件的所有数据并按某个条件进行排序
select title,content from A where uid = 1 UNION select title,content from B where uid = 1 UNION select title,content from C where uid = 1 UNION select title,content from D where uid = 1 UNION select title,content from E where uid = 1 UNION order by c
2016-12-28 16:40:13
1891
原创 js中格式化时间一位数变成两位数
var time = 4;console.log((Array(2).join(0)+time).slice(-2));
2016-12-14 11:13:02
11798
3
原创 实现js输入框只允许输入金额
function check(obj){ var id = obj.id; var val =obj.value; var regStrs = [['^0(\\d+)$', '$1'], //禁止录入整数部分两位以上,但首位为0['[^\\d\\.]+$', ''], //禁止录入任何非数字和点['\\.(\\d?)\\.+', '.$1'], //禁止录入两个以上的点
2016-11-02 16:16:41
5650
原创 div浮动层,遮罩层屏幕居中(水平垂直居中)CSS代码
.toast{ width:100px; height:100px; background:transparent; background:rgba(0,0,0,0.5); border-radius:8px; position: fixed; margin:auto;left:0; right:0; top:0;
2016-10-06 18:50:53
9355
原创 史上最精简jquery实现秒懂的星星评分代码
Document.box{width:300px;height:40px;background:red;}li{height: 40px;width:40px;background: url('star.png');background-repeat: no-repeat;background-size: 25px 25px;list-sty
2016-10-05 21:38:18
6681
leetcode上的最长回文子串题的检测机制目是不是有bug
2021-08-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人