快乐的程序员
GO 如何利用高阶函数写出优雅的代码 GO 如何利用高阶函数写出优雅的代码
前言go项目中经常需要查询db,按照以前java开发经验,会根据查询条件写很多方法,如: GetUserByUserID GetUsersByName GetUsersByAge 每一种查询条件写一个方法,这种方式对外是挺好的,对外遵循
2024-03-12
DDD目录结构 DDD目录结构
├── cmd 存放 main.go 等 ├── adapter │   ├── grpc │   └── http │   └── facade 引用其他微服务(接口防腐层)
2024-03-12
Go 可排序的map Go 可排序的map
前言众所周知,go map是无序的,每次遍历map得到的顺序是不一样的。如果非要实现有序,则只能先获取所有的key,再排序,然后遍历key,通过key获取value。 今天把上述操作封装了一下,写了一个可排序map。 接口// 创建一个So
2024-03-12
Go 函数返回nil避坑 Go 函数返回nil避坑
前言go语言写函数时经常返回nil,然后在函数外面判断返回值是否为空。这里有个bug,记录一下 问题1 (*Type)(nil) ≠ nil func returnsError() error { var p *MyError = nil
2024-03-12
grep快速搜索文本 grep快速搜索文本
1 r-递归查找grep -r 'for' * 2 i-忽略大小写grep -i 'a' * 3 c-显示匹配到的次数grep -cr 'for' * 4 n-输出行号grep -rn "for" * 5 l-只显示匹配到的
2024-03-12
Go 结构体转换成 map Go 结构体转换成 map
写在前面最近项目中多次遇到需要将结构体转换成map的操作,于是在网上搜了一下相关实现 方法一:序列化和反序列化这种方法比较简单,也就是先将结构体序列化成字节,再把字节序列化成map func StructToMapV1(src interf
2024-03-12
随机数生成算法 随机数生成算法
写在前面今天下午在阅读负载均衡文章的时候,文章中提到随机负载均衡,需要生成随机序列。根据学习心得总结一下,希望对大家有所帮助。 go语言生成随机数的坑文中提到洗牌算法生成随机数。 var endpoints = []string {
2024-03-12
Go 中节省内存小技巧 Go 中节省内存小技巧
GO虽然不消耗大量内存,但是仍有一些小技巧可以节省内存,良好的编码习惯是每一个程序员都应该具备的素质。 预先分配切片数组是具有连续内存的相同类型的集合。数组类型定义时要指定长度和元素类型。 因为数组的长度是它们类型的一部分,数组的主要问题是
2024-03-12
GO 反射对性能的影响原来这么大 GO 反射对性能的影响原来这么大
写在前面今天在公司写了一段代码,判断一个变量是否为空值,由于判断的类型太少,code review的时候同事说还有很多类型没有考虑到,并且提到有没有开源的包做这个事,于是找了一段assert.IsEmpty里面的代码。但是这段代码用到了反射
2024-03-12
Temporal简单实例 Temporal简单实例
目的学习temporal基本概念和用法 前言公司2个项目用到了temporal,之前收藏的一些temporal相关文章一直没看,今天好好学习了一下并写一个简单的demo 什么是temporalTemporal是一种分布式、可扩展、持久且高度
2024-03-12
docker 报 address already in use docker 报 address already in use
今天启动用docker 启动postgresql报:ERROR: for temporal-postgresql Cannot start service postgresql: Ports are not available: list
2024-03-12
telepresence 安装和使用 telepresence 安装和使用
telepresence主要解决的问题 帮助开发人员对kubernetes进行调试以及问题分析; 开发人员无需再将本地开发运行到Kubernetes内部; 可以提高团队间的实时协作,以及对环境创建进行预览; telepresence能够将
2024-03-12
17 / 23