自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 详解数据结构之-「数组篇」

数组一旦初始化就是连续的内存空间,用来存储一类相同数据类型的元素。数组数据结构的特性是支持下标随机访问,最好时间复杂度为O(1),最坏时间复杂度为O(n)。数组的寻址公式是:address=基地址+i*type_size。

2024-04-21 14:27:44 785

原创 亿级表优化「TIDB 分区篇」,值得收藏

这是亿级别表优化的第二篇,对第一篇感兴趣的可以看看。

2024-04-10 08:54:03 757

原创 深入go泛型特性之comparable「附案例」

comparable 为 Go 中的预定义类型,comparable 是一种类型约束,用于指定某些类型可以进行相等性比较。这意味着我们可以使用 == 和!= 运算符来比较这些类型的值。下面是官方 sdk 给出的解释。有几个关键信息"comparable"是一个接口,所有可比较类型实现这个接口;包含了布尔型、数值型、字符串、指针、通道、结构体等,这里注意结构体中的所有成员变量都是可比较类型。可比较的接口只能用作行参数约束,不可以作为变量的类型,这个应该比较好理解。

2024-04-06 22:00:19 742

原创 go 结构体和for循环迭代器的坑,赶紧看看你踩了吗?

最近打算写踩坑系列,把我在开发中遇到的坑总结出来,希望对大家有一些帮助。

2024-04-03 09:01:02 663

原创 golang map 我在开发中踩过的坑,你都踩了吗?

Go中的map是日常开发中常用的数据结构,用于存储键值对。但是,如果使用不当,容易遇到一些问题。下面我列的这些坑你中了几个?

2024-03-25 20:45:57 1043

原创 记录一次线上 GO 服务 oom 排查以及内存优化思路「附GO json库调研」

如何定位 GO 服务 oom 问题?最近营销自动化服务线上内存资源告警频繁,记录一次GO 服务内存 OOM 定位、内存优化思路。

2024-03-19 09:10:45 798

原创 祖传屎山代码平时不优化,一重构就翻天覆地

代码垒了又垒,维护困难,屎山代码重构,改善代码可读性和可维护性,本文旨在帮助读者了解重构的思路、技巧。

2024-03-14 09:02:13 755

原创 责任链模式Golang版本「附详细案例」

责任链模式很早前学习且简单用于项目里。最近有一个 case 更复杂,结合工厂模式和策略模式一起使用,顺带把一些思考总结下来。

2024-03-08 08:57:49 624 2

原创 GO原子操作「源码分析+案例」

虽然 GO 提倡“不要通过共享内存来通信,而应该通过通信来共享内存“,但是在日常开发中,使用共享内存方式来协调”协程“运行,解决临界区共享资源问题还挺常见的,所以锁和原子操作也非常值得大家深入学习的。如果研读过 GO 源码,GO 大佬们喜欢用锁+原子操作的套路实现高性能基础库(比如:sync.Mutex、sync.Map、sync.Once 等)

2024-03-02 11:38:53 668

原创 设计模式学习之路-策略模式「附详细案例」

策略模式(StrategyPattern)是一种行为设计模式。它定义了一系列算法,将每种算法封装在独立的策略实现子类中,并使它们可以互相替换,从而使得算法变化可以独立于使用算法的使用方。

2024-02-28 09:24:15 977

原创 深入GO之sync.Once你需要了解的快慢路径编程范式

1、 Once 代码虽然少,但是用了“快慢路径”这种非常经典的编程范式,通常用于在需要在性能优先和正确性保证之间进行权衡。2、 Do 函数执行完后才会对 done 字段执行原子操作置为 1 ,如果你需要执行的逻辑耗时很长,会阻塞 goroutine。3、 Do 执行完毕都会执行 defer 对 done 字段执行原子操作置为 1,不论你的参数函数执行成功与否,参数函数都无法执行了。

2024-02-25 07:32:26 636

原创 GO singleflight 你真的会用吗?「源码分析+详细案例」

缓存在项目中使用应该是非常频繁的,提到缓存只要了解过 singleflight ,基本都会用于缓存实现的一部分吧?

2024-02-22 12:24:53 892

原创 深入设计模式之工厂模式「附详细案例」

工厂模式关注的是对象的创建过程,它将创建过程封装到工厂类中,调用方不需要关心对象的具体创建过程,只需通过工厂方法或抽象工厂获取所需的对象即可。工厂模式可以总结几个优势吧1、 封装变化:例如更改创建对象的方式、添加新的对象类型等,可以通过修改工厂类来实现,而不需要修改调用者的代码。这种封装性可以保持调用者代码的稳定性,调用者无需关心对象创建逻辑的变化。2、 代码复用:将创建对象的代码抽离到独立的工厂类中,可以在不同的地方复用该工厂类,而不需要重复编写创建对象的代码。这提高代码的复用,减少代码的冗余。

2024-02-20 08:56:19 582

原创 亿级表优化思路-SQL 篇

为啥会写亿级表优化?网上谈的不少但是不知道大伙儿是否在自己 Owner 的业务中验证过。我也来凑凑热闹。

2024-02-18 10:51:22 986

原创 深入 GO Context「源码分析+详细案例」

为什么会写 Context 呢?我在网上搜了一圈非常多文章在写,但没有讲具体的案例。我把这些年使用的场景和技巧总结下来,结合源码分析+项目实践学习会更高效。

2024-02-16 09:23:40 1052

原创 自制火锅底料之重庆火锅

火锅可以说是四川人心中的美食首选。所谓开心搓一顿火锅,不开心搓一顿火锅,谈恋爱 搓一顿火锅,分手也可以搓一顿火锅。可以说无论任何场合火锅都能轻松驾驭,火锅的美味除 了新鲜食材的选择,重中之重是一份正宗的火锅底料。我们日常吃的火锅又以重庆火锅和四川 (成都) 火锅居多,以下给大家分享一下如何自己制作火锅底料(以重庆火锅底料为例)。

2024-02-15 08:00:00 889

原创 深入设计模式-适配器模式「GO 版本」

为什么会写“适配器”模式呢?主要有 2 个原因:1、使用“适配器”模式的场景比较多,比如“监听”系统内部事件适配数据、调用三方接口适配接口数据等。2、写“适配器”模式文章少或者说能写的深的文章少并且没有结合具体的业务场景。后文会举真实案例,“适配器”模式如何解决项目上的痛点。

2024-02-14 08:00:00 541

原创 深入 GO 选项模式

为什么会写“选项模式”?网上很多文章都在写,看了一圈都没有我想要的文章,能把“选项模式”融入到日常开发中(后面会举开发中遇到的实际问题,如何解决了我在开发中遇到的问题)。另外写“选项模式”不得不提“Builder模式”,后文会对比这 2 个模式的优缺点。

2024-02-13 08:00:00 1746

原创 GO unsafe.Pointer & uintptr

你是否经常看源码,源码里用unsafe.Pointer,uintptr各种骚操作,有没有想过为啥源码会这么用?若不了解unsafe.Pointer,uintptr使用姿势,代码很难看懂。虽然 GO 官方不建议大家使用,但作为一个 GO工程师怎么能不了解unsafe.Pointer呢。

2024-02-12 10:07:56 850 2

Effective_C#

2012年10月24日 - Effective_C#_中文版_改善C#程序的50种方法 本书围绕一些关于C#和.NET的重要主题,包括C#语言元素、.NET资源管理、使用C#表达设计、创建二进制组件...

2016-07-27

蓝桥杯习题125道

习题加答案,非常详细,适合大多数人群,在一定时间类可以快速提高个人的算法能力

2015-04-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除