go语言设计模式 视频教程 - IT直通车整理提供

  [复制链接]

2081

主题

2095

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35774
admin 发表于 2020-12-20 18:21:26
26676 103
Go设计模式教程,清华学霸授课,值得一看!3 @, Z  Q1 G( o% A; i2 g; u
1 Z' \) Y/ C4 I0 D
课程简介
! I; {% I* n  m* m4 x; AGo(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。主要用于服务器后端开发与区块链开发。本课程主要实践架构上的设计模式。
1 P' c/ S! @0 j% ]: [6 H, {$ ~' p; m0 H8 A* b
软件设计模式的产生背景
0 k4 ~: l  n/ w1 a" T" Q# K“设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。4 H- D( \" d5 G! P- U0 e! Y3 S4 Q) X

% q( ?1 x1 X# X' M1977 年,美国**建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造(A Pattern Language: Towns Building Construction)中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。
  ^' e4 w+ h2 u2 D2 M# ?) N4 r/ }. }  J2 \( N; Q
1979 年他的另一部经典著作《建筑的永恒之道》(The Timeless Way of Building)进一步强化了设计模式的思想,为后来的建筑设计指明了方向。% l0 w) X. b3 q. L
, W' E, q* D( S0 ~# a
1987 年,肯特·贝克(Kent Beck)和沃德·坎宁安(Ward Cunningham)首先将克里斯托夫·亚历山大的模式思想应用在 Smalltalk 中的图形用户接口的生成中,但没有引起软件界的关注。" F$ j0 U$ ~4 G( V; U6 K

/ b0 u1 R) o/ H3 n3 T+ H( u8 z直到 1990 年,软件工程界才开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。
+ N4 a( J, e4 M
! |- E: e% K9 f& t' F# X1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ralph Johnson)、约翰·威利斯迪斯(John Vlissides)等 4 位作者合作出版了《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书,在本教程中收录了 23 个设计模式,这是设计模式领域里程碑的事件,导致了软件设计模式的突破。这 4 位作者在软件开发领域里也以他们的“四人组”(Gang of Four,GoF)匿名著称。% |3 {* L' _" Y* v: P
# M; P) g2 _( ~! G
直到今天,狭义的设计模式还是本教程中所介绍的 23 种经典设计模式。
  i0 O# l, Z: b( m/ u6 Q3 J4 t" }% S0 f) q/ W- G
软件设计模式的概念与意义% A2 c( ~6 Y7 Q; ]. p, U2 v" M
有关软件设计模式的定义很多,有些从模式的特点来说明,有些从模式的作用来说明。本教程给出的定义是大多数学者公认的,从以下两个方面来说明。
: U: t+ r1 @! a+ i
: K$ W) D+ c  L! {) E# j4 z" G1. 软件设计模式的概念. L. ]- G+ |  ]
软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。  z% r) H1 p1 z' ?! }0 e

% U+ C% M" q1 u2. 学习设计模式的意义0 F  b" w( a8 b, h! V7 u
设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。正确使用设计模式具有以下优点。; E) i, C2 U/ Q. S+ E& `
- ~( ], I! e( m) S- F$ K' O
可以提高程序员的思维能力、编程能力和设计能力。% u/ q2 [. E" |

# F! E5 f0 r  _3 y使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期。
* L- [$ g6 T+ h: p" t; ?# K- z* s+ J/ S: \) s8 N, g2 F. ^) p6 M8 ~
使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。: u1 P, m1 e! p) O8 J1 z
! f/ R& q* t5 ]4 x2 g

) \1 }, l! f) d当然,软件设计模式只是一个引导。在具体的软件幵发中,必须根据设计的应用系统的特点和要求来恰当选择。对于简单的程序开发,苛能写一个简单的算法要比引入某种设计模式更加容易。但对大项目的开发或者框架设计,用设计模式来组织代码显然更好。
( q5 `# d1 j# q4 Y1 z
+ [3 c3 @# q% p+ N2 a软件设计模式的基本要素9 v+ p/ T0 s* W# c
软件设计模式使人们可以更加简单方便地复用成功的设计和体系结构,它通常包含以下几个基本要素:模式名称、别名、动机、问题、解决方案、效果、结构、模式角色、合作关系、实现方法、适用性、已知应用、例程、模式扩展和相关模式等,其中最关键的元素包括以下 4 个主要部分。) [* H6 D9 y, O0 N' J4 i
# e2 Z$ {( a4 H. m  ^
1. 模式名称3 P0 z1 W# F! c6 Q9 a$ O
每一个模式都有自己的名字,通常用一两个词来描述,可以根据模式的问题、特点、解决方案、功能和效果来命名。模式名称(PatternName)有助于我们理解和记忆该模式,也方便我们来讨论自己的设计。3 b8 A# k6 ?# Q
) i/ Z- Y: T- q" j: P
2. 问题
# A& S0 l; p$ l' n5 X问题(Problem)描述了该模式的应用环境,即何时使用该模式。它解释了设计问题和问题存在的前因后果,以及必须满足的一系列先决条件。7 o% D$ k* B% _7 a/ v9 [5 ^

% h/ J0 J4 ~% l3. 解决方案1 k1 n) q7 Q2 V9 Z
模式问题的解决方案(Solution)包括设计的组成成分、它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象的 组合)来解决这个问题。1 z! i% ?; C1 }# l; g7 Y* {
) E+ M* t" \- l2 R3 n$ c9 ^
4. 效果+ y7 H5 x1 p' a0 M; e
描述了模式的应用效果以及使用该模式应该权衡的问题,即模式的优缺点。主要是对时间和空间的衡量,以及该模式对系统的灵活性、扩充性、可移植性的影响,也考虑其实现问题。显式地列出这些效果(Consequence)对理解和评价这些模式有很大的帮助。8 j7 i4 r+ _: }5 X$ G0 |

  n8 K9 k" h9 T; ]( o0 L附带配套资料 go设计模式资料下载.zip1 |5 g$ |5 l6 T- \

  l$ f  |3 J8 J/ M: h- o' f7 Y课程目录:, s7 v4 b1 g# A
1-1 1项目版本迭代.mp4" E4 n* U3 I3 K/ B8 m) \
1-2 2DAG模型.mp4' m1 m* b6 T0 E+ K3 G+ C
1-3 3默克尔树.mp4
9 Z% T$ U' x. V9 S( D$ [1-4 4设计模式简介.mp4
$ p8 k' @) @, h# `! h6 B1-5 5简单工厂设计模式.mp48 n+ k! `0 Y' N( Y( s  |2 M# Y
1-6 6工厂模式.mp4
. ]* _& t# g: `! S: R8 V+ |+ s1-7 7抽象工厂.mp4
- k. ]1 ~0 ]' u2 u" U1-8 8单例设计模式.mp4
! h* A& L/ L! ]& `/ g% j1-9 9原型模式.mp4# ?0 w& F9 y/ `4 _2 c
2-1 1.构造者.mp4
9 y% }$ r+ \. x( s' P. ^; p2-2 2适配器.mp4
; x2 J) t6 l& g3 X8 p8 n* j2-3 3组合模式.mp4. j- g3 m# d2 a: ]
2-4 4代理模式.mp44 x6 |$ V7 ]! ]
2-5 5外观模式.mp4
7 B0 l5 ?+ A  E5 c! a; o2-6 6桥接模式.mp4
2 K! V* w& D4 N0 m3-1 1装饰器模式.mp4
2 Y- J9 I, X$ Z0 t+ @& m3-2 2享元模式.mp4; |& C, D6 c. i' Z
3-3 3责任链.mp45 k- P. n0 r% g0 Y& O
3-4 4观察者.mp4" L5 A7 @; f" \
3-5 5解释器模式.mp4
  @, B1 h7 M+ ~, K6 i4 X3-6 6状态机模式.mp4
) t# O% X1 L! Y! \3-7 小结.mp4
: p- ?/ Q8 a- l' G: G4-1 1模板设计模式.mp4
1 ]& p3 [! y+ |! U2 s; Z" j! B4-2 2.中介者模式.mp4
5 u+ k0 D  W& G4-3 3策略模式.mp42 G4 R) w3 e5 v3 e" n
4-4 4备忘录模式.mp44 B1 p* S% a: k5 \
4-5 5命令模式.mp44 Q4 C; r: h8 u) S. R
4-6 6访问者模式.mp4/ Y& N7 |" R; Q, I8 g9 ?' U
; k: e0 ~/ B  d/ q3 M2 }1 t
下载地址:
7 l. j$ e2 ]1 J" r
游客,该资源需要支付 10金币 才能下载,本站VIP会员全站免费支付
, e. ~" z" q" A8 o8 k* ~; \3 b' S
7 ?+ q+ J7 k7 n
. i8 n6 j' @" }
回复

使用道具 举报

chunzi1 发表于 2020-12-27 01:49:05
谢谢分享学习~
回复

使用道具 举报

acmain_chm 发表于 2020-12-28 11:44:29 来自手机
祝IT直通车越办越好
回复

使用道具 举报

奥特曼 发表于 2020-12-31 15:33:45
ttttttttttttt
回复

使用道具 举报

13665771361 发表于 2021-1-1 20:46:29
学习了不少知识,感谢楼主!
回复

使用道具 举报

shuqi168 发表于 2021-1-4 16:05:33
教程不错很清晰,来下载新课程学习了
回复

使用道具 举报

stanleywong1985 发表于 2021-1-4 18:49:52 来自手机
ititititititititititit
回复

使用道具 举报

joesala 发表于 2021-1-4 22:22:29
<<go语言设计模式 视频教程 - IT直通车整理提供>>[复制链接]
回复

使用道具 举报

yupeng3322 发表于 2021-1-6 17:06:32
楼主发贴辛苦了,谢谢楼主分享
回复

使用道具 举报

hj920808 发表于 2021-1-6 17:06:55 来自手机
讲的很详细,对于新手的我有帮助,100分
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 AD:IT直通车VIP会员全站免金币下载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

遇到问题联系客服

在线客服QQ 488090338 

如您充值或开通会员后资源无法下载

本站有售后服务,联系客服修复即可

[联系客服]-[会员充值]

更多课程

关于本站

VIP介绍 加入我们

售后服务

QQ客服 Email邮件

网站声明

IT直通车(www.itztc.com)是一个IT视频教程、软件、书籍资源整合分享平台
站内所有资源均来自于互联网,版权归属原资源作者,如无意侵犯您的版权,请联系我们删除处理。

Archiver|手机版|小黑屋|IT学习网 |网站地图

Powered by Discuz! X3.4  © 2001-2013 IT直通车 ICP证:粤ICP备13026616号 增值电信业务经营许可证:粤B2-20140196

返回顶部 返回列表