- 博客(36)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 解剖了一个Github 5k Star项目
今天分享一个github 4.7k star的go整洁架构的项目go-backend-clean-architecture,项目技术栈:Gin、MongoDB、JWT Authentication Middleware、Test、Docker等项目通过一个HTTP服务的demo来做演示。工程结构目录结构整个工程的目录结构大致包含了:启动入口、环境变量配置、控制器层、业务层、反腐层、数据存储层。接下...
2024-11-13 21:36:47
422
原创 最近学到的5个Go的小技巧
无论你用自己喜欢的语言编程多久,你仍然会发现一些让你感到愉悦的新东西。以下是我最近在Go中学到的5个以前并不知道它们存在的小技巧。让编译器来计算数组长度在Go中,你可能很少使用数组,更多的是使用切片。但是当你使用切片时,如果厌倦了自己编写数组中的原书数量,你可以使用[...],来让编译器帮你解决。package mainimport "fmt"func main() { arr :=...
2024-11-05 21:27:54
178
原创 使用pre-commit hooks优化工程管理
最近看开源项目发现一个有意思的git commit规范(https://www.conventionalcommits.org/en/v1.0.0/),让代码提交语意更加清晰。语法<type>(<scope>): <subject> // 这一行是Header<BLANK LINE><body><BLANK LINE>...
2024-10-16 19:31:33
452
原创 go1.20升级风波。。。
unexpectedfaultaddress0x0fatalerror:faultunexpectedfaultaddress0x0fatalerror:fault[signalSIGSEGV:segmentationviolationcode=0x80addr=0x0pc=0x478dbf]goroutine49[running]:runtime...
2023-06-13 20:33:35
512
原创 从Hello World谈起
工作原因很久没更,记得这篇blog还是从java转golang刚刚一个月写下,不知不觉躺了3年了,orz。当时写了不少CRUD 但不了解golang底层,写起来还是有些不踏实。故而整理了这篇关于golang runtime机制冰山一角的文章。废话少说 全文有些长 建议先马后看人灿烂全文枯燥预警Golang的runtime机制是Golang语言的核心组成部分之一,它负责管理和调度goroutine,...
2023-05-18 08:23:59
162
原创 elasticsearch血泪史之没禁用的_source
多图预警现状生产上某个服务使用了ElasticSearch作为检索引擎,但是偶发性出现gc明显抖动,进而导致接口响应超时寝食难安...分析了一下我们的es集群规模并不大 ,以下是各个索引的...
2021-11-29 19:56:53
2030
原创 记一次elasticsearch 跨机房迁移
目标将A机房的ES集群迁移到B机房的ES集群ealsticsearch调研了在线和离线迁移两种比较有代表性的方案,两种方案都进行了测试演练,不过最终选择了离线的方式,原因有几点:在线迁移方...
2021-06-21 22:26:03
431
原创 小白零基础--gRPC整合Kubernetes
上一篇,我们简单介绍了下mac下单节点Kubernetes的安装,今天我们乘热打铁,感受下grpc整合Kubernetes的魅力。好了Talk is cheap,Show me the g...
2021-05-17 07:55:00
620
1
原创 记一次mac安装Kubernetes
家里老的台式机已经被淘汰掉了,之前kubeadm方式按照的k8s集群也不复存在,打算在mac上使用Docker Desktop安装了一下单节点的Kubernetes尝尝鲜,果然又踩坑了,随...
2021-04-20 23:26:26
431
原创 为何redis cluster偏偏使用16384个槽
昨天跟同事讨论redis集群,谈到redis cluster时随口吹嘘了一遍工作机制:"redis cluster采用虚拟槽分区,将key根据哈希函数映射到了16384个槽位......
2021-04-09 07:55:00
299
原创 golang并发底层实现竟然都是它!!!
《手摸手系列》把go sync包中的并发组件已经写完了,本文作为完结篇,最后再来探讨下go运行时锁的实现。记得在《手摸手Go 并发编程的基建Semaphore》那篇中我们聊过sync.Mu...
2021-04-07 08:02:00
907
原创 搞定Protocol Buffers (下)- 原来你是这样的pb
凡事知其然 更要知其所以然。本文仅抛砖引玉,阅读完本文,也许你也可以试着实现一个自己的protoc-gen-xxx。protobuf benchmarktotalTime表示一个对象操作的...
2021-04-02 08:01:00
285
原创 阅读go源码,你需要了解这几个编译器指示
长安城里的一切都在无可避免的走向庸俗。谈到编译器指示,我们在平时工作中几乎不会使用,除非你觉得你的代码瓶颈出现在编译期,不过了解掌握编译器指示对于我们阅读golang源码还是挺有帮助的。什...
2021-03-26 23:22:23
376
原创 搞定Protocol Buffers (上)- 使用篇
友情提示 因本文篇幅较长 如果觉得有用 建议收藏 需要时翻来看看。详细原理部分 下篇见。因为工作中gRPC使用非常频繁,而gRPC的默认序列化编码采用的也是Protocol Buffers...
2021-03-19 08:11:00
797
原创 手摸手Go 也谈sync.WaitGroup
最近因为工作上的事情更新会相对有点儿慢,这周末又加了天班。然后昨天好好休息了下,顺便翻了下《云雀叫了一整天》,看到一首小诗觉得不错分享给大家。从前慢木心记得早先少年时大家诚诚恳恳说一句是一...
2021-03-15 07:51:00
563
原创 手摸手Go 简单聊聊sync.RWMutex
那一天我二十一岁,在我一生的黄金时代,我有好多奢侈。我想爱,想吃,还想在一瞬间变成天上半明半暗的云,后来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消逝,最后变得像挨了...
2021-03-09 08:01:00
707
原创 手摸手Go 单例模式与sync.Once
I leave uncultivated today, was precisely yesterday perishes tomorrow which person of the body...
2021-03-04 08:06:00
159
原创 手摸手Go 并发编程基建Semaphore
I leave uncultivated today, was precisely yesterday perishes tomorrow which person of the body...
2021-03-01 08:01:00
996
原创 手摸手Go 并发编程基石atomic
only has compared to the others early, diligently diligently, can feel the successful taste。“高...
2021-02-25 08:01:00
5228
8
原创 手摸手Go 你的内存对齐了吗?
I leave uncultivated today, was precisely yesterday perishes tomorrow which person of the body...
2021-02-23 08:06:00
806
原创 手摸手Go 深入理解sync.Cond
Today that you are wasting is the unattainable tomorrow to someone who expired yesterday. This...
2021-02-20 08:08:00
652
原创 手摸手Go 深入浅出sync.Map
Today that you are wasting is the unattainable tomorrow to someone who expired yesterday. This...
2021-02-18 08:08:00
591
原创 手摸手Go 深入剖析sync.Pool
如果能够将所有内存都分配到栈上无疑性能是最佳的,但不幸的是我们不可避免需要使用堆上分配的内存。我们可以优化使用堆内存时的性能损耗吗?答案是肯定的。Go同步包中,sync.Pool提供了保存...
2021-02-10 08:08:00
196
原创 挖坑系列之Fx初窥
当我们谈到web服务时,使用Java的小伙伴第一反应肯定是Spring全家桶,虽然约定大于配置的SpringBoot相比最初Spring版本在易用性、开发效率方便已经有了长足的进步,但是其...
2021-02-09 08:08:00
420
原创 手摸手Go 接口与反射
点个在看你最好看Go是强类型/静态类型语言,每个变量在编译时就已经确定是哪种静态类型。反射(reflection)是程序在运行时可以访问、检测、修改自身状态或行为的一种能力。在Java出现...
2021-02-07 08:08:00
143
原创 手摸手Go Context探秘
使用Go作为服务端开发时,每个请求过来都会分配一个goroutine来处理,请求处理过程中,可能还会创建额外的goroutine访问DB或者RPC服务。这个请求涉及的goroutine可能...
2021-02-06 08:08:00
84
原创 你真的了解 sync.Mutex吗
Mutex是一个互斥的排他锁,零值Mutex为未上锁状态,Mutex一旦被使用 禁止被拷贝。使用起来也比较简单packagemainimport"sync"fu...
2021-02-05 08:08:00
433
原创 论与美女搭讪的正确姿势
不好意思放错片子了。。。同样是搭讪,今天来聊聊如何与GitHuber的"搭讪"艺术。附上封面图补偿一下。。。撸码多年一直使用开源社区提供的各种好用的库,save me ti...
2021-02-04 08:00:00
155
原创 肝了一上午的Golang之Plan9入门
从计算机诞生到现在,编程语言的发展大致分为了三个阶段从打孔程序的机器语言一系列指令、寄存器代码的汇编语言再到我们日常使用的高级语言机器语言一堆的0/1代码确实反人类,汇编语言指令繁杂 不同...
2021-01-30 12:01:36
587
原创 golang搭配 makefile 真香!
这篇文章打算跟大家聊聊Makefiles,作为一个后端开发者,熟练掌握Makefiles咖啡可以多喝几口。书归正传golang内置了很多 go commands 可以帮助我们完成go每个...
2021-01-18 19:30:05
504
1
原创 golang性能诊断看这篇就够了
点击上方蓝字关注我们我们日常接触性能诊断问题,一般分为两种情况,一是线上应用真的出现性能问题;二是我们需要对准备上线的系统进行性能预估;后者需要压力测试辅助进行,此处不表。针对GO应用,性...
2020-12-30 18:14:10
538
原创 5个golang中易犯的错误
点击上方蓝字关注我们To err is human,to forgive divine. -Alexander Pope初学golang我们经常会犯一些错误,...
2020-12-30 18:14:10
181
原创 java nio源码那点儿事儿
玩java也有些年头,感觉对于nio的理解总是停留在IO复用的io模型,知其然但不知其所以然,故而今天来解开Java NIO的神秘面纱。首先来回顾下NIO基本概念,Java NIO主要由B...
2020-12-29 13:23:57
275
原创 初识Quartz(2)
上一篇完成了一个Quartz 的小Demo,现在来看看这些code怎么工作的吧。在我们创建一个Job的时候,对于每个Quartz Job必须有一个实现了org.quartz.job接口的具体类。这个接口仅有一个是要你在Job中实现的方法,execute()方法,它的原型:[code="java"]pubilc void execute(JobExecutionContext conte...
2012-11-20 21:59:44
399
原创 初识Quartz
首先从Quartz官网上获得相应的jar包,Quartz package包含了许多jar文件,quartz-all-xxx.jar是Quartz的主要的library。获得jar包后引用到自己的工程里(我是把jar下载到我的本地Maven库中)[code="java"] org.quartz-scheduler quartz ${quartz.version}...
2012-11-20 14:12:33
443
spring security 自定义UserDetailsService问题
2012-11-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人