活动图高阶讲解-03

1
00:00:00,000 --> 00:00:06,260
刚才我们讲了活动图的历史

2
00:00:06,260 --> 00:00:11,460
那我们来看这个活动图

3
00:00:11,460 --> 00:00:15,260
如果用来建模的话怎么用

4
00:00:15,260 --> 00:00:20,100
按照我们前面讲的软件方法的工作流

5
00:00:20,100 --> 00:00:23,500
业务建模、需求、分析、设计

6
00:00:23,500 --> 00:00:26,500
它怎么用

7
00:00:26,500 --> 00:00:29,900
实际上这四个工作流它都可以用

8
00:00:29,900 --> 00:00:33,900
第一个就是业务建模

9
00:00:33,900 --> 00:00:39,900
就是描述外部组织和我们的目标组织

10
00:00:39,900 --> 00:00:41,900
交互的时候

11
00:00:41,900 --> 00:00:44,900
然后各个系统之间怎么协作的

12
00:00:44,900 --> 00:00:51,900
那么系统在序列图上我们是业务工人、业务实体

13
00:00:51,900 --> 00:00:52,900
这样的东西

14
00:00:52,900 --> 00:00:58,900
那么活动图上就以泳道的方式来表示了

15
00:00:58,900 --> 00:01:01,900
当然泳道这个只是一个形式

16
00:01:01,900 --> 00:01:03,900
我们后面会说到,就是说

17
00:01:03,900 --> 00:01:10,900
活动图上我们可以把这个活动分配到某个块

18
00:01:10,900 --> 00:01:14,900
某个类或某个块的操作里面去

19
00:01:14,900 --> 00:01:20,900
成为那个类的操作的一个实现方式

20
00:01:20,900 --> 00:01:23,900
那这两个就绑定起来了

21
00:01:23,900 --> 00:01:27,900
表现在这个图上就是泳道的方式

22
00:01:27,900 --> 00:01:30,900
系统一,系统二这样

23
00:01:30,900 --> 00:01:31,900
但是呢

24
00:01:31,900 --> 00:01:33,900
EA在活动图上

25
00:01:33,900 --> 00:01:35,900
它没有

26
00:01:35,900 --> 00:01:38,900
这应该可以分很多栏的

27
00:01:38,900 --> 00:01:41,900
上面可以搞一个大的,目标组织这样的

28
00:01:41,900 --> 00:01:46,900
目标组织这个,单独起一个大的一栏

29
00:01:46,900 --> 00:01:47,900
没有

30
00:01:47,900 --> 00:01:50,900
你看刚才那个BPMN这里就有,对吧

31
00:01:50,900 --> 00:01:52,900
这里你看

32
00:01:52,900 --> 00:01:57,900
亚马公司这,是仓库部门、财务部门、销售部门

33
00:01:57,900 --> 00:01:58,900
对吧

34
00:01:58,900 --> 00:02:01,900
EA这个活动图的话

35
00:02:01,900 --> 00:02:03,900
我不知道怎么画,没画出来

36
00:02:03,900 --> 00:02:05,900
这个

37
00:02:05,900 --> 00:02:09,900
再捉摸捉摸

38
00:02:09,900 --> 00:02:12,900
也可能它就没有这个

39
00:02:12,900 --> 00:02:15,900
这个功能

40
00:02:15,900 --> 00:02:19,900
业务建模我们知道

41
00:02:19,900 --> 00:02:23,900
包括后面讲的系统的需求等等

42
00:02:23,900 --> 00:02:27,900
里面我们往往用用例

43
00:02:27,900 --> 00:02:31,900
来描述这个价值

44
00:02:31,900 --> 00:02:35,900
但是我们知道用例

45
00:02:35,900 --> 00:02:37,900
这个概念

46
00:02:37,900 --> 00:02:39,900
它是一个什么

47
00:02:39,900 --> 00:02:42,900
从卖的角度去看问题的

48
00:02:42,900 --> 00:02:47,900
从卖的角度去把一些

49
00:02:47,900 --> 00:02:49,900
交互的集合怎么样

50
00:02:49,900 --> 00:02:51,900
把它打包在一起的

51
00:02:51,900 --> 00:02:54,900
所以呢,往往一个用例背后

52
00:02:54,900 --> 00:02:59,900
它会包含着多个回合的这种交互

53
00:02:59,900 --> 00:03:02,900
比如说,这个业务用例

54
00:03:02,900 --> 00:03:05,900
外部组织这样一做

55
00:03:05,900 --> 00:03:06,900
这边搞搞搞

56
00:03:06,900 --> 00:03:09,900
这时候返回一个东西到外部组织这里

57
00:03:09,900 --> 00:03:14,900
然后外部组织这里又做第二个

58
00:03:14,900 --> 00:03:16,900
进来,这边又这样

59
00:03:16,900 --> 00:03:18,900
也就是说,它为了

60
00:03:18,900 --> 00:03:22,900
达到一个它想要的价值

61
00:03:22,900 --> 00:03:28,900
它要和我们这个组织,和我们内部交互很多次

62
00:03:28,900 --> 00:03:33,900
就像,比如说,我们《软件方法》里面提到一个办证嘛

63
00:03:33,900 --> 00:03:33,900
对吧

64
00:03:33,900 --> 00:03:35,900
你办证

65
00:03:35,900 --> 00:03:37,900
你到工商去办证

66
00:03:37,900 --> 00:03:41,900
那么你首先要先提交申请

67
00:03:41,900 --> 00:03:43,900
提交完了

68
00:03:43,900 --> 00:03:45,900
里面有个流程

69
00:03:45,900 --> 00:03:48,900
过了很多天

70
00:03:48,900 --> 00:03:52,900
然后人家返回给你说,可以来

71
00:03:52,900 --> 00:03:54,900
正式来办了

72
00:03:54,900 --> 00:03:59,900
你再拿上材料又到工商去办

73
00:03:59,900 --> 00:04:02,900
也就是说,你要和工商打交道

74
00:04:02,900 --> 00:04:04,900
至少打两次交道

75
00:04:04,900 --> 00:04:08,900
但你不能说一次交道是一个用例,不是的

76
00:04:08,900 --> 00:04:11,900
因为你对它的期望

77
00:04:12,900 --> 00:04:14,900
就是把证办下来

78
00:04:14,900 --> 00:04:16,900
你证办不下来

79
00:04:16,900 --> 00:04:18,900
这个意义都不大

80
00:04:18,900 --> 00:04:20,900
你前面的做了白做

81
00:04:20,900 --> 00:04:23,900
那系统用例也是一样的

82
00:04:23,900 --> 00:04:25,900
比如说,拿取款机为例

83
00:04:25,900 --> 00:04:27,900
你为了取现金

84
00:04:27,900 --> 00:04:31,900
你要和这个取款机交互很多次

85
00:04:31,900 --> 00:04:33,900
才能取到现金

86
00:04:33,900 --> 00:04:39,900
所以我们这个活动图上面的话

87
00:04:40,900 --> 00:04:42,900
如果要描述这个用例的话

88
00:04:42,900 --> 00:04:46,900
它往往是要多次交互,多个活动

89
00:04:46,900 --> 00:04:49,900
组织起来的

90
00:04:49,900 --> 00:04:55,900
业务建模

91
00:04:55,900 --> 00:04:59,900
外部组织,目标组织里面多个系统

92
00:04:59,900 --> 00:05:01,900
需求呢

93
00:05:01,900 --> 00:05:03,900
跟业务建模差不多

94
00:05:03,900 --> 00:05:06,900
就是把目标系统放这里

95
00:05:06,900 --> 00:05:08,900
外部系统

96
00:05:08,900 --> 00:05:10,900
做什么

97
00:05:10,900 --> 00:05:14,900
也同样有多次的交互的回合

98
00:05:14,900 --> 00:05:20,900
那么这里面经常会有一个问题

99
00:05:20,900 --> 00:05:22,900
就是说

100
00:05:22,900 --> 00:05:25,900
假设我用活动图来描述需求的话

101
00:05:25,900 --> 00:05:29,900
应该描述到多细的问题

102
00:05:29,900 --> 00:05:36,900
因为有的同学经常会这样问

103
00:05:36,900 --> 00:05:38,900
有的同学会这样问

104
00:05:38,900 --> 00:05:45,900
假设我的系统是用面向过程的方式来做

105
00:05:45,900 --> 00:05:46,900
来思考

106
00:05:46,900 --> 00:05:48,900
我没有什么对象

107
00:05:48,900 --> 00:05:49,900
我就是过程

108
00:05:49,900 --> 00:05:53,900
对我来说就不分什么对象

109
00:05:53,900 --> 00:05:55,900
我就是过程

110
00:05:55,900 --> 00:05:58,900
或者说,我所有的过程

111
00:05:58,900 --> 00:06:02,900
我都看作“系统”对象的一个操作

112
00:06:03,900 --> 00:06:06,900
所有的都是我这个系统的操作

113
00:06:06,900 --> 00:06:10,900
那既然是系统的操作

114
00:06:10,900 --> 00:06:13,900
系统作为一个整体的操作

115
00:06:13,900 --> 00:06:15,900
那不都是需求吗?对不对?

116
00:06:15,900 --> 00:06:20,900
是这样

117
00:06:20,900 --> 00:06:23,900
需求是系统作为一个整体的表现

118
00:06:23,900 --> 00:06:29,900
但不代表说系统作为整体的表现

119
00:06:29,900 --> 00:06:31,900
一定是需求

120
00:06:32,900 --> 00:06:33,900
这地方一定要注意

121
00:06:33,900 --> 00:06:35,900
需求是整体的

122
00:06:35,900 --> 00:06:37,900
系统作为整体的一个表现

123
00:06:37,900 --> 00:06:39,900
但系统作为整体的表现不一定是需求

124
00:06:39,900 --> 00:06:40,900
很简单

125
00:06:40,900 --> 00:06:41,900
比如说,我们举个例子

126
00:06:41,900 --> 00:06:45,900
就像我们刚才讲的那个

127
00:06:45,900 --> 00:06:49,900
假设我系统就把所有的代码团在一起

128
00:06:49,900 --> 00:06:52,900
我也不分什么模块,也不分了

129
00:06:52,900 --> 00:06:54,900
所有代码团在一起

130
00:06:54,900 --> 00:07:01,900
假设我系统是不分任何模块

131
00:07:01,900 --> 00:07:03,900
所有代码团在一起的话

132
00:07:03,900 --> 00:07:05,900
那里面的某一行代码算不算需求

133
00:07:05,900 --> 00:07:07,900
不算的

134
00:07:07,900 --> 00:07:10,900
倒过来是不对的

135
00:07:10,900 --> 00:07:12,900
因为我们需求是什么

136
00:07:12,900 --> 00:07:14,900
不这样不行

137
00:07:14,900 --> 00:07:19,900
你代码不这样写可以吗,是可以的

138
00:07:19,900 --> 00:07:24,900
那什么是不这样不行的

139
00:07:24,900 --> 00:07:26,900
就是功能和性能

140
00:07:26,900 --> 00:07:28,900
就是说在涉众眼里看来,不这样不行的

141
00:07:28,900 --> 00:07:31,900
所以这里面怎么样和分析

142
00:07:31,900 --> 00:07:35,900
把它分界线分清楚

143
00:07:35,900 --> 00:07:37,900
要点还是不这样不行

144
00:07:37,900 --> 00:07:40,900
就是说,你不这样分解可以吗?

145
00:07:40,900 --> 00:07:43,900
比如说,这里为什么分两个活动

146
00:07:43,900 --> 00:07:45,900
不分可以吗?

147
00:07:45,900 --> 00:07:47,900
如果说不分也可以

148
00:07:47,900 --> 00:07:51,900
照样可以满足涉众利益

149
00:07:51,900 --> 00:07:53,900
那这两个就不用分了

150
00:07:53,900 --> 00:07:56,900
一个活动就可以了

151
00:07:56,900 --> 00:07:57,900
如果说不分不行

152
00:07:57,900 --> 00:07:59,900
因为里面的规则

153
00:07:59,900 --> 00:08:02,900
我们业务规则本身就要求

154
00:08:02,900 --> 00:08:06,900
必须要这样分

155
00:08:06,900 --> 00:08:09,900
不分就没有办法满足我们的业务规则

156
00:08:09,900 --> 00:08:11,900
那就可以

157
00:08:11,900 --> 00:08:15,900
就是说

158
00:08:15,900 --> 00:08:17,900
分析

159
00:08:17,900 --> 00:08:19,900
如果是面向过程的话

160
00:08:19,900 --> 00:08:21,900
分析比需求

161
00:08:21,900 --> 00:08:23,900
需要分得更细的

162
00:08:24,900 --> 00:08:26,900
那么判断什么是需求

163
00:08:26,900 --> 00:08:28,900
什么是分析

164
00:08:28,900 --> 00:08:30,900
就要看

165
00:08:30,900 --> 00:08:32,900
什么是不这样不行

166
00:08:32,900 --> 00:08:35,900
分析是这样也行的

167
00:08:35,900 --> 00:08:39,900
因为分解有很多种分解

168
00:08:39,900 --> 00:08:41,900
比如,同样一个大的

169
00:08:41,900 --> 00:08:43,900
大的一个活动

170
00:08:43,900 --> 00:08:46,900
你可以分成两个,分成三个

171
00:08:46,900 --> 00:08:49,900
三个里面还可以再分,对不对

172
00:08:49,900 --> 00:08:52,900
理论上你可以无限地分下去

173
00:08:54,900 --> 00:08:57,900
但是哪些是你要画出来的

174
00:08:57,900 --> 00:08:59,900
表达出来的

175
00:08:59,900 --> 00:09:03,900
那么这里的判断标准就是

176
00:09:03,900 --> 00:09:05,900
不这样不行

177
00:09:05,900 --> 00:09:07,900
那分析就是

178
00:09:07,900 --> 00:09:09,900
结合

179
00:09:09,900 --> 00:09:11,900
因为你怎么分解

180
00:09:11,900 --> 00:09:14,900
到底分解成几个活动

181
00:09:14,900 --> 00:09:17,900
每一个活动的输入输出参数

182
00:09:17,900 --> 00:09:19,900
是什么类型

183
00:09:19,900 --> 00:09:22,900
是跟你的静态模型

184
00:09:22,900 --> 00:09:25,900
也就是类模型或者数据模型是相关的

185
00:09:25,900 --> 00:09:29,900
那分析就要结合我们的类模型

186
00:09:29,900 --> 00:09:31,900
或者说数据模型

187
00:09:31,900 --> 00:09:34,900
来决定

188
00:09:34,900 --> 00:09:37,900
怎么样的分解

189
00:09:37,900 --> 00:09:39,900
是比较合理的

190
00:09:39,900 --> 00:09:41,900
但这个跟需求没关系

191
00:09:41,900 --> 00:09:43,900
需求要的是功能和性能

192
00:09:43,900 --> 00:09:47,900
也就是说,在满足需求的情况下

193
00:09:47,900 --> 00:09:49,900
结合上这个

194
00:09:49,900 --> 00:09:51,900
合理的数据模型或类模型

195
00:09:51,900 --> 00:09:55,900
挑出一个最佳的

196
00:09:55,900 --> 00:09:57,900
子活动的分解

197
00:09:57,900 --> 00:09:59,900
这个是分析

198
00:09:59,900 --> 00:10:03,900
设计

199
00:10:03,900 --> 00:10:05,900
就是结合

200
00:10:05,900 --> 00:10:07,900
语言、平台的实现

201
00:10:07,900 --> 00:10:12,900
类模型和数据模型

202
00:10:12,900 --> 00:10:14,900
这个映射是一样的

203
00:10:14,900 --> 00:10:15,900
就不用说了

204
00:10:15,900 --> 00:10:17,900
我们看逻辑上

205
00:10:17,900 --> 00:10:19,900
逻辑上,活动图能用来做什么

206
00:10:19,900 --> 00:10:21,900
活动图的话

207
00:10:21,900 --> 00:10:24,900
最常见的就是

208
00:10:24,900 --> 00:10:26,900
我们把它当流程图用

209
00:10:26,900 --> 00:10:29,900
就在类的操作下面

210
00:10:29,900 --> 00:10:31,900
绑定一个活动图

211
00:10:31,900 --> 00:10:34,900
比如说,我们类的操作绑定这样一个活动图

212
00:10:34,900 --> 00:10:36,900
操作1,绑定这样一个活动图

213
00:10:36,900 --> 00:10:38,900
那这个图画完之后

214
00:10:38,900 --> 00:10:39,900
你绑定到这个操作

215
00:10:39,900 --> 00:10:41,900
生成代码的时候

216
00:10:41,900 --> 00:10:43,900
它会生成类似这样的代码

217
00:10:43,900 --> 00:10:45,900
这个代码就是生成的

218
00:10:45,900 --> 00:10:48,900
它跟我们的活动图是

219
00:10:48,900 --> 00:10:50,900
对应的

220
00:10:50,900 --> 00:10:55,900
这是面向对象

221
00:10:55,900 --> 00:10:57,900
包括面向过程

222
00:10:57,900 --> 00:10:59,900
都一样

223
00:10:59,900 --> 00:11:01,900
我们把它当成一个流程图来用

224
00:11:01,900 --> 00:11:04,900
其中控制流是焦点

225
00:11:04,900 --> 00:11:06,900
控制流

226
00:11:06,900 --> 00:11:08,900
如果这样,否则这样

227
00:11:08,900 --> 00:11:10,900
if else 控制流

228
00:11:12,900 --> 00:11:14,900
另外一个

229
00:11:14,900 --> 00:11:16,900
用处就是

230
00:11:16,900 --> 00:11:18,900
把它当成数据流是焦点的

231
00:11:18,900 --> 00:11:22,900
就是

232
00:11:22,900 --> 00:11:24,900
现在另外一个流派

233
00:11:24,900 --> 00:11:26,900
函数式编程的思想

234
00:11:26,900 --> 00:11:28,900
把我们的

235
00:11:28,900 --> 00:11:32,900
系统看作是由若干函数

236
00:11:32,900 --> 00:11:34,900

237
00:11:34,900 --> 00:11:36,900
组装而成的

238
00:11:38,900 --> 00:11:40,900
这跟我们前面讲的

239
00:11:40,900 --> 00:11:42,900
数据的加工机一样

240
00:11:42,900 --> 00:11:44,900
进来

241
00:11:44,900 --> 00:11:46,900
出去

242
00:11:46,900 --> 00:11:48,900
变成

243
00:11:48,900 --> 00:11:49,900
文本的代码

244
00:11:49,900 --> 00:11:50,900
类似这样的

245
00:11:50,900 --> 00:11:51,900
管道一样的

246
00:11:51,900 --> 00:11:52,900
函数1

247
00:11:52,900 --> 00:11:54,900
函数2

248
00:11:54,900 --> 00:11:56,900
出来,函数3

249
00:11:56,900 --> 00:11:58,900
它跟这个是非常相像和对应的

250
00:11:58,900 --> 00:12:03,900
当然活动图本身只要能够解决好

251
00:12:03,900 --> 00:12:07,900
它本来是面向过程的

252
00:12:07,900 --> 00:12:09,900
你要变成面向函数的

253
00:12:09,900 --> 00:12:13,900
要解决好的一个,递归

254
00:12:13,900 --> 00:12:17,900
你怎么

255
00:12:17,900 --> 00:12:18,900
能够

256
00:12:18,900 --> 00:12:20,900
调用自己

257
00:12:20,900 --> 00:12:23,900
那这个的话

258
00:12:23,900 --> 00:12:25,900
可以解决

259
00:12:25,900 --> 00:12:31,900
把我自己的输出

260
00:12:31,900 --> 00:12:33,900
变成我自己的输入

261
00:12:36,900 --> 00:12:38,900
那第二个

262
00:12:38,900 --> 00:12:40,900
就是高阶函数

263
00:12:40,900 --> 00:12:42,900
就是把函数

264
00:12:42,900 --> 00:12:44,900
作为参数

265
00:12:44,900 --> 00:12:46,900
把函数作为另外一个函数的参数

266
00:12:46,900 --> 00:12:51,900
这个也可以解决

267
00:12:51,900 --> 00:12:53,900
就是说

268
00:12:53,900 --> 00:12:54,900
我们

269
00:12:54,900 --> 00:12:56,900
活动图有一个

270
00:12:56,900 --> 00:12:58,900
把活动当作块

271
00:12:58,900 --> 00:13:00,900
在SysML里面

272
00:13:00,900 --> 00:13:02,900
活动作为块来使用

273
00:13:04,900 --> 00:13:06,900
那块本身

274
00:13:06,900 --> 00:13:08,900
就是一个

275
00:13:08,900 --> 00:13:10,900

276
00:13:10,900 --> 00:13:11,900
它可以作为一个

277
00:13:11,900 --> 00:13:13,900
传递的参数

278
00:13:13,900 --> 00:13:17,900
所以活动图目前是

279
00:13:17,900 --> 00:13:19,900
函数式

280
00:13:19,900 --> 00:13:20,900
编程

281
00:13:20,900 --> 00:13:22,900
如果说有什么图形化

282
00:13:22,900 --> 00:13:24,900
表示的话

283
00:13:24,900 --> 00:13:25,900
活动图

284
00:13:25,900 --> 00:13:26,900
目前是

285
00:13:26,900 --> 00:13:28,900
为数不多的一个选择

286
00:13:31,900 --> 00:13:33,900
这是设计的

287
00:13:33,900 --> 00:13:37,900
工作流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/457854.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql的语法总结3

查询表 精确查找 举例 去除重复行 假设您有一个名为 students 的表,其中包含 name 和 age 两列,您想要查询所有不重复的年龄,可以使用以下查询: 详细匹配 查询emp表中在部门10工作、工资高于1000或岗位是CLERK的所有雇员的姓名、…

C++ 优先级队列(大小根堆)OJ

目录 1、 1046. 最后一块石头的重量 2、 703. 数据流中的第 K 大元素 为什么小根堆可以解决TopK问题? 3、 692. 前K个高频单词 4、 295. 数据流的中位数 1、 1046. 最后一块石头的重量 思路:根据示例发现可以用大根堆(降序)模拟这个过程。 class So…

【Jenkins】data stream error|Error cloning remote repo ‘origin‘ 错误解决【亲测有效】

错误构建日志 17:39:09 ERROR: Error cloning remote repo origin 17:39:09 hudson.plugins.git.GitException: Command "git fetch --tags --progress http://domain/xxx.git refs/heads/*:refs/remotes/origin/*" returned status code 128: 17:39:09 stdout: 17…

unity报错出现Asset database transaction committed twice!

错误描述: 运行时报错 Assertion failed on expression: ‘m_ErrorCode MDB_MAP_RESIZED || !HasAbortingErrors()’Asset database transaction committed twice!Assertion failed on expression: ‘errors MDB_SUCCESS || errors MDB_NOTFOUND’ 解决办法&…

基于springboot实现驾校信息管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现驾校信息管理系统演示 摘要 随着人们生活水平的不断提高,出行方式多样化,也以私家车为主,那么既然私家车的需求不断增长,那么基于驾校的考核管理也就不断增强,那么业务系统也就慢慢的随之加大。信息…

mac删除带锁标识的app

一 、我们这里要删除FortiClient.app 带锁 常规方式删除不掉带锁的 app【如下图】 二、删除命令,依次执行即可。 /bin/ls -dleO /Applications/FortiClient.app sudo /usr/bin/chflags -R noschg /Applications/FortiClient.app /bin/ls -dleO /Applications/Forti…

C语言【典型算法编程题】总结

以下最全总结! 一,分支结构 1,if 编写程序,从键盘上输入三角形的三个边长(实数),判断这三个边能否构成三角形(构成三角形的条件为:任意两边之和大于第三边),如果能构成三角形,则计算三角形的面积并输出(保留2位小数);如果不能构成三角形,则输出“Flase”字符…

idea如何使用,从激活开始

idea到期后激活使用 如何使用 点击阅读 idea分享

【LinuxC】C语言线程(pthread)

文章目录 一、 POSIX 线程库1.1 POSIX标准1.2 Pthreads1.2 数据类型、函数、宏1.21 数据类型1.22 函数1.23 宏 二、创建线程三、线程同步四、线程销毁五、示例5.1 完整示例5.2 信号量示例 本专栏上一篇文章是Windows下(MSVC)的线程编程,需要的…

ELK日志管理实现的3种常见方法

ELK日志管理实现的3种常见方法 1. 日志收集方法 1.1 使用DaemonSet方式日志收集 通过将node节点的/var/log/pods目录挂载给以DaemonSet方式部署的logstash来读取容器日志,并将日志吐给kafka并分布写入Zookeeper数据库.再使用logstash将Zookeeper中的数据写入ES,并通过kibana…

如何利用百度SEO优化技巧将排到首页

拥有一个成功的网站对于企业和个人来说是至关重要的,在当今数字化的时代。在互联网上获得高流量和优质的访问者可能并不是一件容易的事情,然而。一个成功的SEO战略可以帮助你实现这一目标。需要一些特定的技巧和策略、但要在百度搜索引擎中获得较高排名。…

某狗网翻译接口逆向之webpack扣取

​​​​​逆向网址 aHR0cHM6Ly9mYW55aS5zb2dvdS5jb20 逆向链接 aHR0cHM6Ly9mYW55aS5zb2dvdS5jb20vdGV4dA 逆向接口 aHR0cHM6Ly9mYW55aS5zb2dvdS5jb20vYXBpL3RyYW5zcGMvdGV4dC9yZXN1bHQ 逆向过程 请求方式:POST 参数构成: 【s】 1b921dbefaa8d939afca…

了解常用测试模型 -- 瀑布模型、螺旋模型、增量与迭代、敏捷开发

目录 瀑布模型 开发流程 开发特征 优缺点 适用场景 螺旋模型 开发流程 开发特征 优缺点 适用场景 增量与迭代开发 什么是增量开发?什么是迭代开发? 敏捷开发 什么是敏捷开发四原则(敏捷宣言)? 什么是 s…

Pytorch从零开始实战21

Pytorch从零开始实战——Pix2Pix理论与实战 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——Pix2Pix理论与实战内容介绍数据集加载模型实现开始训练总结 内容介绍 Pix2Pix是一种用于用于图像翻译的通用框架,即图像到图像的转换。…

手撕HashMap底层源码 (JDK1.7版本的HashMap)

day27 集合框架 标绿已经学习底层,深入底层主要是研究实现类底层 手撕HashMap底层源码 JDK1.7版本的HashMap 切换版本 原因:jdk1.7和jdk1.8的HashMap不同(头插法/尾插法) 首先如果没有jdkjre1.7,就安装jdkjre1.7&am…

mysql数据库备份学习笔记

数据库备份 方法1 物理备份:xtrabackup 方法2 逻辑备份 mysqldump 参考备份与恢复的方法: 【MySql】Mysql之备份与恢复_mysql数据库备份与还原-CSDN博客 可以借鉴的物理备份: 思路是 先做一次全量备份,然后每天做一次增量备份…

从大模型到Agentscope——进阶: 容错机制与构建多模态应用

文章目录 容错机制与构建多模态应用高鲁棒的容错机制鲁棒性的挑战可访问性错误规则可解错误&模型可解错误不可解错误 设计理念:多模态 容错机制与构建多模态应用 高鲁棒的容错机制 鲁棒性的挑战 可访问性错误 默认重新调用三次并把报错给打印出来 规则可解错误…

嵌入式单片机学习思路感想分享

今天看到了一个提问,原话如下: 曾经干了8年单片机工程师,对工程师从入门,到入行,再到普通,再到高级,整个路径还算清晰,比如什么阶段,会碰到什么瓶颈,怎么突破,我都经历过。 这个同学,有个典型的问题,就是学得太多且杂了,估计稍微复杂点的项目,做不出来。 现在…

长期护理保险可改善老年人心理健康 | CHARLS CLHLS CFPS 公共数据库周报(3.6)...

欢迎报名2024年“真实世界临床研究”课程! 本周郑老师开讲:“真实世界临床研究”培训班,3月16-17日两天,欢迎报名! CHARLS公共数据库‍ CHARLS数据库简介中国健康与养老追踪调查(China Health and Retirement Longitud…

.NET高级面试指南专题十八【 外观模式模式介绍,提供了简化的接口,隐藏系统的复杂性】

介绍: 外观模式是一种结构设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式定义了一个高层接口,使得子系统更容易使用。 原理: 外观类(Facade Class):提供了一…