- 博客(64)
- 收藏
- 关注
原创 如何给自己的网站添加 https ssl 证书
相信大家都知道 https 是更加安全的,特别是一些网站,有 https 的网站更能够让用户信任访问接下来以我的个人网站五岁小孩 (jxy.xj.cn)为例子,带大家一起从 0 到 1 配置网站 https证书是 腾讯云免费证书、服务器也是腾讯云的、使用 docker 部署的 nginx申请证书 -> 下载证书 -> 配置nginx -> 重启 ngix。
2024-04-08 19:54:26
6805
4
原创 如何实现小程序滑动删除组件+全选批量删除组件
如何实现小程序滑动删除组件+全选批量删除组件采用 uni-app 实现,可以适用微信小程序、其他各种小程序以及 APP、Web等多个平台下载开发者工具 HbuilderX进入 【Dcloud 插件市场】 搜索 【滑动删除组件+左滑删除+全选批量删除组件】,一键导入示例运行即可。
2024-04-05 15:28:45
814
2
原创 小程序实现微信 【我的】界面
小程序实现仿微信 【我的】界面采用 uni-app 实现,可以适用微信小程序、其他各种小程序以及 APP、Web等多个平台下载开发者工具 HbuilderX进入 【Dcloud 插件市场】 搜索 【小程序实现仿微信 【我的】界面】,一键导入示例运行即可。
2024-04-05 15:24:22
1104
原创 如何实现仿微信界面[我的+首页聊天列表+长按菜单功能+添加菜单功能]
如何实现仿微信界面[我的+首页聊天列表+长按菜单功能+添加菜单功能]采用 uni-app 实现,可以适用微信小程序、其他各种小程序以及 APP、Web等多个平台下载开发者工具 HbuilderX进入 【Dcloud 插件市场】 搜索 【仿微信界面[我的+首页聊天列表+长按菜单功能+添加菜单功能]】,一键导入示例运行即可。
2024-04-05 15:19:15
736
原创 Go 源码之 gin 框架
gin.New()初始化一个实例:gin.engine,该实例实现了http.Handler接口。实现了ServeHTTP方法注册路由、注册中间件,调用addRoute将路由和中间件注册到 methodTree 前缀树(节省空间,搜索快)下,methodTree 的非叶子节点是相同 method 的 url 的最长公共前缀字符串,叶子节点是完整的 url 路径。
2024-03-31 15:30:25
902
原创 Go 源码之 gorm 的字段 clone 的设计
clone值描述设置1创建 DB 的默认值,表示 全新 DB,但是复用db.Session如果NewDb=true时,则clone=12则只复用 配置和Statementdb.Session如果NewDb=false时,则clone=10则直接复用原 dbdb.Where 等链式调用clone = 1表示全新的db句柄;open创建时,clone默认=1,db.Session如果NewDb=true时,clone=1clone = 0。
2024-03-23 10:20:46
685
原创 Go 源码之 gorm
实例都会有一个Statement的字段,Statement就是我们真正要执行的语句,我们的 Chain Method 和 Finisher Method,事实上都是在修改Statement这个结构体。gorm处理并发冲突的方法和golang的context相似,通过复制db结构解决;等等,这些在语句执行被执行前,设置和修改语句内容的,都叫 Chain Method。等等,会设置和修改语句内容,并执行语句的,都叫 Finisher Method。方法特定调用的简写,底层都是调用的。
2024-03-22 21:07:30
1058
原创 Go 源码之 Context
在 Go 语言中,context用于管理请求的生命周期和取消操作context提供了一种方便的方式来传递取消信号可以设置超时时间用于跟踪请求的上下文中的相关信息context的使用可以提高代码的可维护性和可读性,它使得处理并发任务更加安全和可靠在 Go 源码中,contextcontext 接口定义了基本的操作context 的具体实现通常使用协程来管理和传播取消信号通过传递 context 对象,不同的函数可以共享和处理相同的上下文信息使用context正确传递和使用context。
2024-03-22 21:05:54
720
原创 分布式理论 CAP + Base
Base:基本可用(Basically Available)和最终一致性(Eventually consistent)CAP 规则下 AP 模型 的延伸,AP + Base,实现 服务高可用 + 数据最终一致性最终一致性:也就是允许节点之间的数据出现短暂的数据不一致情况,但是节点高可用。
2024-03-21 10:36:42
454
原创 golang内存分配
在程序运行过程中,垃圾收集器会自动管理内存的分配和回收,以确保程序不会出现内存泄漏或者内存溢出等问题。总之,Go语言的内存分配由垃圾收集器负责管理,程序员可以使用make和new函数进行堆分配,也可以使用函数调用进行栈分配。在堆分配中,需要手动释放不再使用的内存,否则会造成内存泄漏。但是,在Go语言中,由于有垃圾收集器的存在,程序员通常不需要手动释放内存。但是,栈分配的内存大小通常比较有限,因此不能用于分配大量的数据。栈分配是通过函数调用来实现的。Go语言中的内存分配可以通过两种方式进行:堆分配和栈分配。
2024-03-21 10:36:11
425
原创 mac 解决 go link name must refer to declared function or variable
在 执行 go mod tidy 时报错,如下。go link name must refer to declared function or variable
2024-03-21 10:35:38
472
原创 go 字符串高效拼接
最常用的方法肯定是 + 连接两个字符串。这与python类似,不过由于golang中的字符串是不可变的类型,因此用 + 连接会产生一个新的字符串对效率有影响。
2024-03-21 10:18:58
315
原创 (大白话)一口气带你学完 flex 布局
Flex是Flexible Box的缩写,意为”弹性布局;任何一个容器都可以指定为Flex布局。十分简单灵活,几行代码就可以实现各种页面的的布局;彻底摆脱各种 float、display、position。采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目基础代码。
2024-03-20 19:40:49
727
原创 遍历二叉树
先序遍历可以想象为,一个小人从一棵二叉树根节点为起点,沿着二叉树外沿,逆时针走一圈回到根节点,路上遇到的元素顺序,就是先序遍历的结果。
2024-03-20 19:15:20
270
原创 goalnd debug操作
goalnd debug操作有劳各位看官 ,你们的支持是我最大的动力!!!同时也欢迎大家在评论区提问、分享您的经验和见解!!!
2024-03-20 19:14:14
357
原创 服务 OOM 情况分析
简称内存溢出,正常情况下服务是部署在服务器上的,oom表示服务占用的内存达到服务器的可用内存,如果是k8s的话,pod是可配置服务最大的内存,超过则oom。所有会导致内存增大并且溢出的可能性。
2024-03-20 19:13:44
211
原创 Go 的 recover
recover 是用来捕获程序的 panic 的,需要和 defer 配合使用// 有效recover()// 生效的范围有问题,panic(1)在第一个defer中没用recover,直接panicrecover()panic(2)panic(1)// 无效主协程的recover不能处理子协程的panic,子协程的panic只能子协程自己处理,一个协程中最上层能够捕获下层的panic。
2024-03-20 19:13:12
341
原创 go 的 struct 能不能比较
相同类型的struct的实例值可比较: A1 = A2。相同类型的指针类型的实例值可比较 &A1 = &A2。不同类型的struct不可比较:A1!
2024-03-19 17:03:24
469
原创 Go 通过 hash 判断文件是否被修改
通过一下函数对指定文件进行hash md5,生成md5字符串,修改文件后再生成新的md5字符串,两个对比即可知道文件是否有改动。
2024-03-19 17:02:32
612
原创 goalng 格式化 proto
保存Goland配置并重启Goland,proto文件发生修改则可立即被格式化。设置—Tools—File Watchers—新增。
2024-03-19 17:02:01
914
原创 protoc 自定义插件生成代码
个人博客地址正常根据proto生成对应的go代码首先安装 protoc编译工具,然后安装go代码生成插件go install github.com/golang/protobuf/protoc-gen-go@latestprotoc --go_out= [文件生成的位置] [proto所在的目录]加上-I 则表示生成某个文件时会搜索需要导入的其他proto此时生成的只有go代码,如果需要生成grpc连接客户端,则需要。
2024-03-18 14:19:30
498
原创 使用decimal包解决golang浮点数运算失真
decimal建议只用做计算;不建议用来字符串和浮点数之间转换,比如Decimal 转float64 会自定约算小数点,而且大量数据计算下性能差。
2024-03-18 14:18:53
537
原创 Go 单元测试中 testing 包的数据类型M/T/B/PB
testing.M对main方法进行的测试testing.T对函数/方法进行单元测试testing. B对性能进行的测试testing.PB。
2024-03-18 14:18:22
1172
原创 使用Bitmap设计数据库单个字段保存多种组合状态
BitMap 的基本原理就是用一个bit 位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。= 0 或者 1280 & 1024 = 1024。1280 & 256!=0 或者 1280 & 256 = 256。& 表 两个数相同位数都为1 则为结果为1,反之为0。因此2的n次方在二进制中只有一个bit位为1。如 2的8次方:100000000。2的n次方 相当于把1往左移n位。
2024-03-17 21:23:46
309
小程序滑动删除组件+全选批量删除组件+附源码
2024-04-03
uni-app+小程序+纯canvas 转盘
2024-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人