GO 学习之路
文章平均质量分 96
彭亚川Allen
写代码、做饭、养花……
展开
-
golang map 我在开发中踩过的坑,你都踩了吗?
Go中的map是日常开发中常用的数据结构,用于存储键值对。但是,如果使用不当,容易遇到一些问题。下面我列的这些坑你中了几个?原创 2024-03-25 20:45:57 · 1891 阅读 · 0 评论 -
记录一次线上 GO 服务 oom 排查以及内存优化思路「附GO json库调研」
如何定位 GO 服务 oom 问题?最近营销自动化服务线上内存资源告警频繁,记录一次GO 服务内存 OOM 定位、内存优化思路。原创 2024-03-19 09:10:45 · 1280 阅读 · 0 评论 -
祖传屎山代码平时不优化,一重构就翻天覆地
代码垒了又垒,维护困难,屎山代码重构,改善代码可读性和可维护性,本文旨在帮助读者了解重构的思路、技巧。原创 2024-03-14 09:02:13 · 924 阅读 · 0 评论 -
责任链模式Golang版本「附详细案例」
责任链模式很早前学习且简单用于项目里。最近有一个 case 更复杂,结合工厂模式和策略模式一起使用,顺带把一些思考总结下来。原创 2024-03-08 08:57:49 · 846 阅读 · 2 评论 -
GO原子操作「源码分析+案例」
虽然 GO 提倡“不要通过共享内存来通信,而应该通过通信来共享内存“,但是在日常开发中,使用共享内存方式来协调”协程“运行,解决临界区共享资源问题还挺常见的,所以锁和原子操作也非常值得大家深入学习的。如果研读过 GO 源码,GO 大佬们喜欢用锁+原子操作的套路实现高性能基础库(比如:sync.Mutex、sync.Map、sync.Once 等)原创 2024-03-02 11:38:53 · 757 阅读 · 0 评论 -
设计模式学习之路-策略模式「附详细案例」
策略模式(StrategyPattern)是一种行为设计模式。它定义了一系列算法,将每种算法封装在独立的策略实现子类中,并使它们可以互相替换,从而使得算法变化可以独立于使用算法的使用方。原创 2024-02-28 09:24:15 · 1050 阅读 · 0 评论 -
GO singleflight 你真的会用吗?「源码分析+详细案例」
缓存在项目中使用应该是非常频繁的,提到缓存只要了解过 singleflight ,基本都会用于缓存实现的一部分吧?原创 2024-02-22 12:24:53 · 1060 阅读 · 0 评论 -
GO unsafe.Pointer & uintptr
你是否经常看源码,源码里用unsafe.Pointer,uintptr各种骚操作,有没有想过为啥源码会这么用?若不了解unsafe.Pointer,uintptr使用姿势,代码很难看懂。虽然 GO 官方不建议大家使用,但作为一个 GO工程师怎么能不了解unsafe.Pointer呢。原创 2024-02-12 10:07:56 · 931 阅读 · 2 评论