陈明勇_社区达人页

个人头像照片
陈明勇
已加入开发者社区1696

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
江湖新秀
江湖新秀

成就

已发布61篇文章
2条评论
已回答1个问题
0条评论
已发布0个视频
github地址

我关注的人 更多

技术能力

兴趣领域
  • Go
  • Java
  • JavaScript
  • 前端开发
  • SEO
  • 设计模式
  • 开发框架
  • API
  • 开发工具
  • 中间件
擅长领域
技术认证

暂时未有相关云产品技术能力~

一个热爱技术,喜欢专研技术的程序员。

暂无精选文章
暂无更多信息

2024年06月

  • 06.05 01:09:58
    发表了文章 2024-06-05 01:09:58

    Go 语言 mongox 库:简化操作、安全、高效、可扩展、BSON 构建

    go mongox 是一个基于泛型的库,扩展了 MongoDB 的官方库。通过泛型技术,它实现了结构体与 MongoDB 集合的绑定,旨在提供类型安全和简化的数据操作。 go mongox 还引入链式调用,让文档操作更流畅,并且提供了丰富的 BSON 构建器和内置函数,简化了 BSON 数据的构建。 此外,它还支持插件化编程和内置多种钩子函数,为数据库操作前后的自定义逻辑提供灵活性,增强了应用的可扩展性和可维护性。

2024年05月

  • 02.19 14:11:53
    发表了文章 2024-02-19 14:11:53

    Go 1.22 slices 库的更新:高效拼接、零化处理和越界插入优化

    本文详细介绍了 Go 1.22 版本中 slices 库的更新内容,总结起来有三个方面:新增了 Concat 函数、对部分函数新增了零化处理的逻辑和对 Insert 函数进行了越界插入优化
  • 02.13 12:15:04
    发表了文章 2024-02-13 12:15:04

    Go 1.22 for 循环的两处重要更新

    本文介绍了 Go 1.22 版本对 for 循环所做的两处重要更新:循环的每次迭代都会创建新变量 和 循环支持对整数范围进行迭代。 - 循环的每次迭代都会创建新变量,有效避免了以往版本中常见的闭包陷阱,提高了代码的安全性和可预测性。 - 循环支持对整数范围进行迭代,极大地增强了 for 循环的灵活性,使得编写计数循环更加直接和简洁。
  • 01.24 22:09:44
    发表了文章 2024-01-24 22:09:44

    Go 定时器:Timer 和 Ticker

    本文深入探讨了 Go 语言中的 Timer 和 Ticker 定时器,详细介绍了它们的创建方式、基本用法以及相关的方法等。此外,文章还概括了这两个定时器之间的主要区别,并强调了在使用过程中的注意事项。
  • 01.16 11:58:02
    发表了文章 2024-01-16 11:58:02

    Go 简单设计和实现可扩展、高性能的泛型本地缓存

    本文将会探讨如何极简设计并实现一个可扩展、高性能的本地缓存。支持多样化的缓存策略,例如 最近最少使用(LRU)等。
  • 01.11 14:40:18
    发表了文章 2024-01-11 14:40:18

    Go 实现一个支持多种过期、淘汰机制的本地缓存的核心原理

    本文旨在探讨实现一个支持多种 过期、淘汰 机制的 go 本地缓存的核心原理,我将重点讲解如何支持多样化的过期和淘汰策略。
  • 01.11 14:38:52
    发表了文章 2024-01-11 14:38:52

    Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能

    本文将探讨几个热门的 go 日志库如 logrus、zap 和官网的 slog,我将分析这些库的的关键设计元素,探讨它们是如何支持日志轮转与切割功能的配置。

2024年01月

2023年11月

  • 11.14 12:57:21
    发表了文章 2023-11-14 12:57:21

    go-mongox:简单高效,让文档操作和 bson 数据构造更流畅

    `go-mongox` 基于 **泛型** 对 `MongoDB` 官方框架进行了二次封装,它通过使用链式调用的方式,让我们能够丝滑地操作文档。同时,其还提供了多种类型的 `bson` 构造器,帮助我们高效的构建 `bson` 数据。
  • 11.14 12:55:33
    发表了文章 2023-11-14 12:55:33

    玩转 Go Slices 切片泛型库

    本文全面介绍了 Go slices 库的所有函数,并着重指出了使用某些函数时的注意事项,通过阅读本文,相信你将能够熟练掌握如何使用 Go Slices 库。

2023年10月

  • 10.12 09:58:28
    发表了文章 2023-10-12 09:58:28

    Go slog 包:开启结构化日志的奇妙之旅

    本文对 go 语言里的 slog 包进行了详细介绍,包括基本的使用、Logger 实例的创建和高效输出日志以及自定义日志信息等内容。
  • 10.12 09:55:36
    发表了文章 2023-10-12 09:55:36

    Go 项目必备:深入浅出 Wire 依赖注入工具

    在本文中,我们详细探讨了 Go Wire 工具的基本用法和高级特性。它是一个专为依赖注入设计的代码生成工具,它不仅提供了基础的依赖解析和代码生成功能,还支持多种高级用法,如接口绑定和构造结构体。
  • 10.12 09:53:22
    发表了文章 2023-10-12 09:53:22

    Go Gin 框架系列 - 入门篇

    本文将会对 Go Gin 框架进行简单介绍,括它的一些优势和特点,然后通过一个入门示例,演示了如何安装和使用 Gin 启动一个 WEB 服务器并注册路由。

2023年08月

  • 08.20 19:17:51
    发表了文章 2023-08-20 19:17:51

    深入探索 Go 1.21.0 中的 maps 工具库

    本文对 Go 工具库 maps 进行详细介绍,包括其提供的函数 Clone、Copy、DeleteFunc、Equal 和 EqualFunc,并强调了使用这些函数时需要注意的地方。
  • 08.14 09:58:14
    发表了文章 2023-08-14 09:58:14

    Go 1.21 新内置函数:min、max 和 clear

    Go 1.21 版本已经正式发布,它带来了许多新特性和改进。其中引入了的三个新内置函数:max、min 和 clear,接下来的内容将详细介绍这些函数的用途和特点。

2023年07月

  • 07.29 16:13:42
    发表了文章 2023-07-29 16:13:42

    [Go开源工具] go-optioner:轻松生成函数选项模式代码

    你是否使用过 functional options 函数选项模式?在使用时,你是否遇到过多字段的结构体而需要手动编写大量的设置选项函数的代码? 本文介绍了 go-opioner 开源工具的安装和使用,它能够根据结构体的定义,自动生成函数选项模式的代码。
  • 07.29 16:08:52
    发表了文章 2023-07-29 16:08:52

    高阶函数编程:探索Go语言中的函数一等公民

    Go 函数一等公民。你是否听说过 `Go` 语言中的函数是一等公民?如果没有,那么恭喜你,本文将带你一起揭开这个神秘的面纱。如果你已经了解这个概念,你是否知道为什么 `Go` 语言中的函数被称为一等公民?不管你的答案是什么,通过阅读本文,你将对这个概念有更深入的了解。
  • 07.29 16:02:21
    发表了文章 2023-07-29 16:02:21

    Go 语言 iota 的神奇力量

    在本文中,我将带着大家深入探讨 iota 的神奇力量,包括 iota 的介绍和应用场景以及使用技巧和注意事项。

2023年06月

  • 06.30 17:52:27
    发表了文章 2023-06-30 17:52:27

    Go 项目分层下的最佳 error 处理方式

    本文对 Go 项目分层下的最佳 `error` 处理方式进行介绍,并通过使用 github.com/pkg/errors 库中的一些实用函数来提供实现示例。
  • 06.08 21:00:51
    发表了文章 2023-06-08 21:00:51

    Go 函数选项模式(Functional Options Pattern)

    本文对 Go 函数选项模式(Functional Options Pattern)进行了详细介绍,并通过封装一个消息结构体的例子,展示了如何使用函数选项模式进行代码实现。

2023年05月

  • 05.26 13:41:14
    发表了文章 2023-05-26 13:41:14

    Go 空结构体:零内存的魔力

    本文将会对 Go 语言中的空结构体进行介绍,包括其概念、定义方式、特点、零内存原理和使用场景。
  • 05.18 13:24:56
    发表了文章 2023-05-18 13:24:56

    一文掌握 Go 并发模式 Context 上下文

    本文详细介绍了 Go 语言中的 Context 上下文,包括核心方法、创建方式以及应用场景等方面的内容。

2023年04月

  • 04.30 20:32:31
    发表了文章 2023-04-30 20:32:31

    Go 方法接收器:选择值接收器还是指针接收器?

    本文简单介绍了 Go 语言中的方法接收器,重点讲解了值接收器和指针接收器。通过实际示例展示了它们的用法,并对比了它们的差异性。最后,给出了如何根据实际情况正确选择接收器的建议。 总之,在选择接收器时,我们应考虑接收器类型的特性及使用场景,根据实际需求做出选择。若 无法确定 究竟使用哪种接收器,建议优先考虑 指针接收器。
  • 04.18 21:55:41
    发表了文章 2023-04-18 21:55:41

    Go 语言中没有枚举类型,但是我们可以这样做

    在日常开发中,枚举类型是很常用的,虽然 Go 语言中没有内置枚举类型,但也不妨碍我们自己实现一个类似的 “枚举类型”。
  • 04.12 20:41:08
    发表了文章 2023-04-12 20:41:08

    Go sync.Once:简约而不简单的并发利器

    我是陈明勇,本文将详细介绍 Go 语言中的 sync.Once,包括它的基本定义、使用场景和应用实例以及源码分析等。在实际开发中,sync.Once 经常被用于实现单例模式和延迟初始化操作。
  • 04.06 19:51:08
    发表了文章 2023-04-06 19:51:08

    Go RWMutex:高并发读多写少场景下的性能优化利器

    RWMutex 是 Go 中的一种读写锁实现,它通过读锁允许多个 goroutine 同时执行读操作,当有写操作请求时,必须等待所有读操作执行结束后才能执行写操作。 RWMutex 的设计采用了 Write-preferring 方案,即如果有写操作在等待执行,新来的读操作将会被阻塞,以避免写操作的饥饿问题。 根据 RWMutex 的特性,它适用于 读多写少的高并发场景,可以实现并发安全的读操作,从而减少在锁竞争中的等待时间。 虽然它能够给程序带来了性能的提升,然而,如果使用不当,就可能会导致 panic 或死锁等问题。因此,在使用 RWMutex 时需要特别小心,并避免错误的用法。

2023年03月

  • 03.28 23:43:02
    发表了文章 2023-03-28 23:43:02

    Go Mutex:保护并发访问共享资源的利器

    本文主要介绍了 Go 语言中互斥锁 Mutex 的概念、对应的字段和方法、基本使用和易错场景,最后基于 Mutex 实现一个简单的线程安全的缓存。
  • 03.14 21:50:18
    发表了文章 2023-03-14 21:50:18

    学会 Go select 语句,轻松实现高效并发

    本文主要介绍了 `Go` 语言中的 `select` 语句。先是介绍语法,然后根据示例介绍了基本用法,接着介绍与channel结合使用的场景,最后总结使用的注意事项。
  • 03.14 21:45:50
    发表了文章 2023-03-14 21:45:50

    一文初探 Goroutine 与 channel

    哈喽大家好,我是陈明勇,本文介绍的内容是 Go 并发模块的两个重要角色 → goroutine 与 channel。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!

2023年02月

  • 02.13 22:46:25
    发表了文章 2023-02-13 22:46:25

    Go 语言中的 Slice 陷阱:如何避免常见错误

    Go 语言提供了很多方便的数据类型,其中包括 slice。然而,由于 slice 的特殊性质,在使用过程中易犯一些错误,如果不注意,可能导致程序出现意外行为。本文将详细介绍 使用 slice 时易犯的一些错误,帮助读者更好的使用 Go 的 slice,避免犯错误。
  • 02.11 14:26:29
    发表了文章 2023-02-11 14:26:29

    Go 实现线性查找算法和二分查找算法

    本文对线性查找算法和二分查找算法进行了介绍。线性查找算法虽简单,但是查找效率低,时间复杂度为 O(N);而二分查找法效率虽较高,但是所查找的数组必须是有序的,时间复杂度为 O(logn),基于区间特点的不同(左闭右闭、左闭右开),二分查找算法的写法也不同。
  • 02.11 14:25:17
    发表了文章 2023-02-11 14:25:17

    Go 实现希尔排序算法及图解

    本文对希尔排序进行简单的介绍,然后通过图解演示希尔排序的整个排序过程,最后使用 Go 语言实现希尔排序算法。对于希尔排序里的增量,本文首次去数组长度的一般作为增量值,然后依次减半,直到等于 1;除了这种取值方式,还可以使用 Knuth序列算法去计算增量的值。
  • 02.11 14:21:59
    发表了文章 2023-02-11 14:21:59

    Go 实现插入排序算法及优化

    本文首先对插入排序进行简单地介绍,通过图片来演示插入排序的过程,然后使用 Go 语言实现插入排序的算法。为减少算法中交换次数的逻辑,对算法进行优化,将交换的逻辑变成把前面的数往后移,最后将待排序的数插入到合适的位置即可。 除了这种优化方式,还有一种改造方式:普通的算法往左查找的方式是线性查找,由于元素是有序的,因此线性查找可以换成二分查找,但是经过二分找到待插入的位置之后,也得移动前面的元素,相比上面的优化方法,还多了 O(logn) 的查找时间复杂度,因此我认为没有必要改造成二分查找。
  • 02.11 14:18:16
    发表了文章 2023-02-11 14:18:16

    Go 实现选择排序算法及优化

    本文简单介绍了什么是选择排序,然后通过图片的方式演示选择排序的过程,接下来是实现 O(N²) 时间复杂度的算法,最后优化算法,从结果来看,优化后的算法效率快了一倍,但是时间复杂度仍为 O(N²)。
  • 02.11 14:17:16
    发表了文章 2023-02-11 14:17:16

    只会用 Go 写 O(N²) 的冒泡排序算法?来看看优化后最好情况下的 O(N) 算法吧

    本文首先对冒泡排序进行简单的介绍,然后通过图片演示冒泡排序的思路。普通冒泡排序算法一共要遍历 n - 1 轮,由测试用例 [4 2 1 3 5] 的结果可以推断出 如果在一轮遍历中,没有进行元素交换位置的操作,那么此时数组的里所有元素都处于正确位置。 根据这个结论,对算法进行优化,优化后的算法,最好的情况下时间复杂度为 O(N)。
  • 02.09 23:11:55
    发表了文章 2023-02-09 23:11:55

    一文熟悉 Go 的分支结构(if - else-if - else、switch)

    我是陈明勇,本文分享的知识是 Go 的分支结构。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!
  • 02.09 23:11:04
    发表了文章 2023-02-09 23:11:04

    一文熟悉 Go 的循环结构 —— for 循环

    我是陈明勇,本文分享的知识是 Go 的循环结构。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!
  • 02.09 23:10:18
    发表了文章 2023-02-09 23:10:18

    一文熟悉 Go 函数

    我是陈明勇,本文分享的知识是 Go 的函数。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!
  • 02.09 23:09:48
    发表了文章 2023-02-09 23:09:48

    一文了解 Go 标准库 strings 常用函数和方法

    我是陈明勇,本文分享的知识是 Go 标准库 —— strings 常用函数和方法。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!
  • 02.09 23:08:36
    发表了文章 2023-02-09 23:08:36

    一文了解 Go 标准库 strconv:string 与其他基本数据类型的转换

    我是陈明勇,本文分享的知识是 Go 标准库 —— strings 常用函数和方法。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!
  • 02.09 23:08:05
    发表了文章 2023-02-09 23:08:05

    一文了解 Go 方法

    我是陈明勇,本文分享的知识是 Go 方法。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!
  • 02.09 23:07:33
    发表了文章 2023-02-09 23:07:33

    一文了解 Go 接口

    我是陈明勇,本文分享的知识是 Go 接口。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!
  • 02.09 23:06:32
    发表了文章 2023-02-09 23:06:32

    一文了解 Go time 包的时间常用操作

    Go time 包的使用。介绍如何获取当前时间、获取具体时间单位的值、时间格式化和字符串与时间类型相互转换等操作。掌握了这些函数和方法的使用,应对开发中时间操作的场景不成问题。
  • 02.09 23:05:47
    发表了文章 2023-02-09 23:05:47

    一文掌握 Go 文件的读取操作

    哈喽大家好,我是陈明勇,本文分享的知识是 Go 文件的读取操作。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!
  • 02.09 23:05:20
    发表了文章 2023-02-09 23:05:20

    一文掌握 Go 文件的写入操作

    本文先是对 File.Write、File.WriteString、File.WriteAt 进行介绍,通过例子演示它们的使用方式;然后介绍 File.Seek,说明了它的用法;最后引出 bufio.NewWriter、Writer.WriteString、Writer.Flush,使用它们代替 File 结构体里的写入方法,可以不用频繁操作磁盘,提高写入效率。
  • 02.09 23:04:48
    发表了文章 2023-02-09 23:04:48

    Go 也能实现 “继承”?

    本文介绍了 Go 语言中的 “继承”,它是通过组合的思想去模拟实现面向对象中的继承。然后介绍了什么是类型嵌入以及类型嵌入的两种类型,嵌入的类型包含的字段和方法以隐式存在。 “继承”的实现,能够提高代码的复用性,代码的维护性和扩展性也得以提高。
  • 02.09 23:04:21
    发表了文章 2023-02-09 23:04:21

    一文了解 Go 标准库 math 和 rand 的常用函数

    本文介绍了标准库 math 和 rand 的常用函数的用法,并通过例子进行说明。 math 库里虽说有最大值和最小值比较,但是形参类型必须是浮点型,如果我们想比较的是整型的最大最小值,就得自己封装函数。 获取随机数时,不要忘记设置随机种子,否则多次获取到的随机数将会是一样的。
  • 02.09 23:01:55
    发表了文章 2023-02-09 23:01:55

    Go 读取 YAML 配置文件的两种方式

    本文介绍了读取 YAML 配置文件的两种方式,第一种是通过 yaml.v3 包,第二种是通过 viper 包。如果是在项目里解析配置文件,推荐使用 viper 包,它支持解析多种格式的配置文件,监听配置文件的更新,修改配置文件等。
  • 02.09 23:01:16
    发表了文章 2023-02-09 23:01:16

    一文掌握使用 Go 标准库 sort 对切片进行排序

    本文介绍了如何使用 sort 包里的函数,对基本数据类型的切片进行排序。sort 包还提供了对自定义的集合进行排序,需要实现 Interface 接口,由使用者去自定义排序规则,通过 sort.Sort 函数进行排序。
  • 发表了文章 2024-06-05

    Go 语言 mongox 库:简化操作、安全、高效、可扩展、BSON 构建

  • 发表了文章 2024-05-15

    Go 1.22 slices 库的更新:高效拼接、零化处理和越界插入优化

  • 发表了文章 2024-05-15

    Go 1.22 for 循环的两处重要更新

  • 发表了文章 2024-05-15

    Go 定时器:Timer 和 Ticker

  • 发表了文章 2024-05-15

    Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能

  • 发表了文章 2024-05-15

    Go 实现一个支持多种过期、淘汰机制的本地缓存的核心原理

  • 发表了文章 2024-05-15

    Go 简单设计和实现可扩展、高性能的泛型本地缓存

  • 发表了文章 2023-11-14

    go-mongox:简单高效,让文档操作和 bson 数据构造更流畅

  • 发表了文章 2023-11-14

    玩转 Go Slices 切片泛型库

  • 发表了文章 2023-10-12

    Go slog 包:开启结构化日志的奇妙之旅

  • 发表了文章 2023-10-12

    Go 项目必备:深入浅出 Wire 依赖注入工具

  • 发表了文章 2023-10-12

    Go Gin 框架系列 - 入门篇

  • 发表了文章 2023-08-20

    深入探索 Go 1.21.0 中的 maps 工具库

  • 发表了文章 2023-08-14

    Go 1.21 新内置函数:min、max 和 clear

  • 发表了文章 2023-07-29

    [Go开源工具] go-optioner:轻松生成函数选项模式代码

  • 发表了文章 2023-07-29

    高阶函数编程:探索Go语言中的函数一等公民

  • 发表了文章 2023-07-29

    Go 语言 iota 的神奇力量

  • 发表了文章 2023-06-30

    Go 项目分层下的最佳 error 处理方式

  • 发表了文章 2023-06-08

    Go 函数选项模式(Functional Options Pattern)

  • 发表了文章 2023-05-26

    Go 空结构体:零内存的魔力

正在加载, 请稍后...
滑动查看更多
  • 回答了问题 2024-01-16

    你会选择成为一名独立开发者吗?

    1、你会选择成为一名独立开发者吗? 如果可以,我想成为一名独立开发者,我相信这也是诸多开发者的想法。 2、要成为一名独立开发者,需要做哪些准备? 一个健壮的身体雄厚的技术功底良好的产品意识良好的沟通能力良好的运营能力······
    踩0 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息