V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
sanbenweiyang
V2EX  ›  Go 编程语言

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

  •  
  •   sanbenweiyang · 2022-10-08 13:46:14 +08:00 · 2405 次点击
    这是一个创建于 800 天前的主题,其中的信息可能已经有所发展或是发生改变。
    13 条回复    2022-10-21 11:17:50 +08:00
    pastor
        1
    pastor  
       2022-10-08 13:56:45 +08:00   ❤️ 4
    求设计模式党和面向对象中毒党放过 golang ,不要把你们的魔爪伸过来,求求你们了

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

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