《Easy 搞定 Golang 设计模式》(学 Go 语言设计模式,如此简单)

2022-10-08 13:46:14 +08:00
 sanbenweiyang

一、在线教学视频

平台 链接
https://www.bilibili.com/video/BV1Eg411m7rV
https://www.douyin.com/video/7146449608854523175

二、提纲

三、原创文章作品

文章《 Easy 搞定 Golang 设计模式》

四、源代码

Github: https://github.com/aceld/EasySJMS

Gitee: https://gitee.com/Aceld/EasySJMS

五、原创作品

刘丹冰 Aceld
技术知识库 https://www.yuque.com/aceld
代表作品 《 Golang 修养之路》
《 8 小时转职 Golang 工程师》
《 zinx-Golang 轻量级 Tcp 服务器框架》
《 Lars-基于 C++负载均衡远程服务器调度系统》
《 libevent 深入浅出》
《 Nginx 中文入门手册》
《 Linux 上 Lua 应用实战与人工智能》
github https://github.com/aceld
2219 次点击
所在节点    Go 编程语言
13 条回复
pastor
2022-10-08 13:56:45 +08:00
求设计模式党和面向对象中毒党放过 golang ,不要把你们的魔爪伸过来,求求你们了

阿里已经有一帮毒瘤 javaer 搞了一些 go 框架来毒害社区了,求求你们拿到 KPI 后就不要再继续这种行为了

孩子们会中毒的!
gaifanking
2022-10-08 15:44:39 +08:00
用 go 了就别卷设计模式那一套了,Keep It Simple, Stupid
wellsc
2022-10-08 16:26:16 +08:00
why
bruce0hh
2022-10-08 16:26:31 +08:00
我是 java 转 go 的,但是写 go 是一堆烂代码,一股 java 味,所以我觉得特意学习 go 的设计模式,比如 functional options 这些还挺好的。别的学习写好 go 代码的途径还真不知道
haolongsun
2022-10-08 16:27:10 +08:00
用 go 还玩设计模式?这种有多远滚多远,毒害人
LaoLeyuan
2022-10-08 17:33:49 +08:00
我是 go 新手,不太明白大家为什么这么反感这种课程,有人能够具体解释一下吗?
zhangfeiwudi
2022-10-08 17:40:04 +08:00
golang 我就用过选项模式,这个模式的确很好用。所以 golang 肯定是有设计模式的,不过应该和传统的 java 设计模式不太一样。 我感觉更多是学习一种思路和参考吧。不要局限于设计模式这个用法,更多的是明白为什么要这么用。如果带入 golang 是否有可行的地方。毕竟 golang 只有结构体 连类都没。而且还有 init 方法。
nmap
2022-10-08 17:44:00 +08:00
主要是各种 interface 和 struct 的组合吧?开源代码里面确实用的眼花缭乱
sanbenweiyang
2022-10-09 18:42:48 +08:00
看到评论说 go 不需要设计模式,本来不想理的,但是看言语这么激进,想想还是得回复一下。 如果是因 go 的简洁而屏蔽设计模式,这太片面了。设计模式本是理论,是编程思想,是构建规模庞大的系统必备理论技能方法。和编程语言有何关系。 说 go 像 C 简单不需要设计模式的,可以百度搜“《 Linux kernel design patterns 》” 这篇文档,这是 Linux 内核 用 C 语言总结出来的设计模式,真正写内核 C 语言的,不用面向对象的思想如何去迭代系统和代码。 写个 demo 级别的项目当然不需要设计模式了。当你的系统足够复杂,你再试试。 设计模式是理论,只不过是通过什么语言去学习而已,他并没有绑定什么编程语言,就算算法和数学一样。
gaifanking
2022-10-12 09:33:24 +08:00
@sanbenweiyang 大家多是调侃吧。我最开始接触 java 开发,那时候还是 servlet 开发,就跟现在的 go 类似,用起来简单,效果也不错。后来随着 java 项目越来越大型化,出现了 struts spring hibernate 框架,再后面 struts 被干趴下,spring 一家独大,等等等等不一而云。设计模式的出现也是为了解决大型项目的可维护性和可扩展性。
而 go 作为一种新型语言,适用于不同的场景:如果是单体开发,我觉得难免也会卷起来,各种设计模式、框架都会出现。可如果作为微服务,以至云原生开发就截然不同了,每个微服务的职责越来越小,甚至退化为“函数”的粒度,在这种场景就完全不需要那么多框架和设计模式了。
bigpigB
2022-10-19 09:35:55 +08:00
看到了一半,觉得作者的视频做的真好,讲的也好。
我是 Go 初学者
bigpigB
2022-10-19 09:40:39 +08:00
不明白为什么有人这么反感这个,之前在看 k8s 代码的时候,有很多都是一知半解,大概知道这个代码里写的是什么,但不知道为什么这么设计
后面看了博主的视频,才发现里面大量运用了设计模式,做了很多抽象化,节省了大量代码空间和提高性能
所以说 Go 用不到设计模式,或者说是可以不用过量设计的,都是见仁见智吧
haohu108123
2022-10-21 11:17:50 +08:00
支持 支持

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/885239

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX