WEBVTT

1
00:00:00.200 --> 00:00:03.399
<v Speaker 1>Welcome to React Roundup, the podcast where we keep you

2
00:00:03.480 --> 00:00:07.080
<v Speaker 1>updated on all things React related. This show is brought

3
00:00:07.080 --> 00:00:11.080
<v Speaker 1>to you by Void and top End Devs. Unvoid provides

4
00:00:11.160 --> 00:00:14.839
<v Speaker 1>high quality design and software development services on a client

5
00:00:14.880 --> 00:00:20.239
<v Speaker 1>friendly business model. Unlike all other software agencies, Unvoid allows

6
00:00:20.239 --> 00:00:24.120
<v Speaker 1>clients to only pay after the work is delivered and approved.

7
00:00:24.600 --> 00:00:28.079
<v Speaker 1>Visit unvoid dot com to learn more and reach out.

8
00:00:28.199 --> 00:00:30.679
<v Speaker 1>If you know a company that needs more professionals to

9
00:00:30.760 --> 00:00:36.000
<v Speaker 1>help with design and software development, that's u n void

10
00:00:36.479 --> 00:00:39.840
<v Speaker 1>dot com and top end Davs helps you stay up

11
00:00:39.840 --> 00:00:44.320
<v Speaker 1>to date with cutting edge technologies like JavaScript, Ruby, Elixir,

12
00:00:44.520 --> 00:00:48.799
<v Speaker 1>and AI. Visit topandevs dot com to join their AIDV

13
00:00:48.880 --> 00:00:54.159
<v Speaker 1>boot camp, weekly community meetups and access expert tutorials. I'm

14
00:00:54.240 --> 00:00:58.079
<v Speaker 1>Lucas Paganini, founder of Onvoid and host of this podcast.

15
00:00:58.439 --> 00:01:05.599
<v Speaker 1>Thank you for tuning in. Let's jump into the episode.

16
00:01:07.719 --> 00:01:11.159
<v Speaker 2>Hey everyone, welcome to another episode of React Round Up.

17
00:01:11.400 --> 00:01:13.799
<v Speaker 2>I am your host to Dave Paige nee Gringhouse, and

18
00:01:13.840 --> 00:01:16.799
<v Speaker 2>I am joined by our panel as TJ Vantol everybody,

19
00:01:17.040 --> 00:01:19.719
<v Speaker 2>and our special guest today is Florian Raffle.

20
00:01:19.920 --> 00:01:20.359
<v Speaker 3>Welcome.

21
00:01:20.599 --> 00:01:24.359
<v Speaker 2>Hi, So Florian, tell our audience a little bit about yourself.

22
00:01:24.519 --> 00:01:25.840
<v Speaker 3>And why you're famous.

23
00:01:26.120 --> 00:01:29.599
<v Speaker 4>Oh, I would say I'm famous, but yeah, thanks for

24
00:01:29.959 --> 00:01:33.319
<v Speaker 4>fine words. Yeah, my name is John. I'm a solution

25
00:01:33.439 --> 00:01:37.120
<v Speaker 4>architect from Unique, Germany. If you know me, you may

26
00:01:37.159 --> 00:01:42.159
<v Speaker 4>know me from my work in the web community, specially typescript, React,

27
00:01:42.599 --> 00:01:46.480
<v Speaker 4>microphone and these days especially you may also maybe know

28
00:01:46.599 --> 00:01:49.359
<v Speaker 4>me because of my work in the dotnet t shop community.

29
00:01:49.519 --> 00:01:52.239
<v Speaker 4>I am a Microsoft MVP since and more than ten

30
00:01:52.319 --> 00:01:55.680
<v Speaker 4>years now now dependsen say what they do with accounting.

31
00:01:58.239 --> 00:02:01.840
<v Speaker 4>Then let's say of ceremony there it was always a

32
00:02:01.840 --> 00:02:03.840
<v Speaker 4>full year and it's now i'd say in the mid

33
00:02:03.920 --> 00:02:06.359
<v Speaker 4>of the years, so they always make it let's say

34
00:02:06.879 --> 00:02:08.759
<v Speaker 4>four years. I don't know, but anyway, it should be

35
00:02:08.759 --> 00:02:11.680
<v Speaker 4>ten years now either way. So this is also where

36
00:02:11.680 --> 00:02:15.439
<v Speaker 4>I spend, of course, most of my time. I write articles,

37
00:02:15.479 --> 00:02:18.560
<v Speaker 4>I write blog posts. I wrote a book recently, so

38
00:02:18.840 --> 00:02:21.960
<v Speaker 4>it was a big achievement for me. So a lot

39
00:02:21.960 --> 00:02:25.439
<v Speaker 4>of work shouldn't be underestimated. And I'm very happy that

40
00:02:25.919 --> 00:02:28.400
<v Speaker 4>finally got released. I guess the 'll talk a little

41
00:02:28.400 --> 00:02:32.280
<v Speaker 4>bit about that too, And yeah, decides that I'm contributing

42
00:02:32.319 --> 00:02:36.319
<v Speaker 4>to open source and on my professional work, I always

43
00:02:36.400 --> 00:02:40.360
<v Speaker 4>do well architecture review a lot of implementation work and

44
00:02:41.599 --> 00:02:43.960
<v Speaker 4>working together which is a lot of different themes and

45
00:02:44.080 --> 00:02:47.039
<v Speaker 4>a lot of different clients, and always having fun, just

46
00:02:47.120 --> 00:02:50.879
<v Speaker 4>staying on top of the say, technology advancements. And it's

47
00:02:51.960 --> 00:02:56.000
<v Speaker 4>quite some interesting time that you're living in. So let's

48
00:02:56.039 --> 00:02:57.479
<v Speaker 4>me in a natcha so to speak.

49
00:02:58.719 --> 00:03:00.960
<v Speaker 2>Wow, that's quite a list of items. I'm not sure

50
00:03:00.960 --> 00:03:03.120
<v Speaker 2>when you find the time to sleep with everything that

51
00:03:03.240 --> 00:03:04.759
<v Speaker 2>sounds like you've got going on.

52
00:03:05.360 --> 00:03:08.919
<v Speaker 4>Yeah, my rings are Yeah. The good thing is, I

53
00:03:08.919 --> 00:03:12.120
<v Speaker 4>mean I have two little daughters, so sleep is pretty

54
00:03:12.159 --> 00:03:16.960
<v Speaker 4>much off the table anyway. So and then yeah, I

55
00:03:17.000 --> 00:03:20.759
<v Speaker 4>mean it just always goes yeah, one step further, one

56
00:03:20.759 --> 00:03:24.280
<v Speaker 4>step further. And since it's all so much fun, let's say,

57
00:03:24.879 --> 00:03:28.199
<v Speaker 4>writing all these these great react projects, working with microphone

58
00:03:28.280 --> 00:03:31.639
<v Speaker 4>and always of course being interested and everything that's happening

59
00:03:31.680 --> 00:03:34.840
<v Speaker 4>out there, it's just well all too exciting to sleep,

60
00:03:34.840 --> 00:03:38.800
<v Speaker 4>I would say. Yeah. Sometimes. The rest, of course, let's

61
00:03:38.800 --> 00:03:43.479
<v Speaker 4>called vacation is the vacation with kids' date, I guess,

62
00:03:43.560 --> 00:03:49.159
<v Speaker 4>but at least so they're growing older. The vacation days

63
00:03:49.159 --> 00:03:53.159
<v Speaker 4>are also, my experience, a little bit expanding, right, So

64
00:03:53.319 --> 00:03:56.000
<v Speaker 4>starting with zero, now we are maybe a week of

65
00:03:56.120 --> 00:03:58.159
<v Speaker 4>vacation per year, accumulated.

66
00:04:00.520 --> 00:04:01.759
<v Speaker 3>I love the enthusiasm.

67
00:04:02.000 --> 00:04:05.000
<v Speaker 2>So one article that really caught our eye was one

68
00:04:05.000 --> 00:04:07.479
<v Speaker 2>that you wrote for log Rocket, which we will link

69
00:04:07.520 --> 00:04:09.639
<v Speaker 2>to in the show notes, and it's called react as

70
00:04:09.639 --> 00:04:12.479
<v Speaker 2>a black box. And why does this matter? Do you

71
00:04:12.520 --> 00:04:15.120
<v Speaker 2>think that you could give our audience, if they haven't

72
00:04:15.120 --> 00:04:17.319
<v Speaker 2>read it, a little bit of insight into it and

73
00:04:17.680 --> 00:04:18.600
<v Speaker 2>your opinion on that.

74
00:04:18.879 --> 00:04:22.040
<v Speaker 4>Sure? Yeah, I mean, please read the article everyone, but

75
00:04:23.000 --> 00:04:26.399
<v Speaker 4>let's say summarize it in two or three sentences. If

76
00:04:26.399 --> 00:04:30.720
<v Speaker 4>you're using reacts, you're mostly well not using it very

77
00:04:30.759 --> 00:04:34.240
<v Speaker 4>much directly. Of course, you're writing let's say react components

78
00:04:34.240 --> 00:04:37.319
<v Speaker 4>and all that, which are pretty much only functions these days.

79
00:04:37.879 --> 00:04:40.519
<v Speaker 4>Most of the things that does for you, it does

80
00:04:40.600 --> 00:04:43.360
<v Speaker 4>under the hooks, which means you don't explicitly interact with

81
00:04:43.439 --> 00:04:46.000
<v Speaker 4>its API. And it's really just a black box. So

82
00:04:46.040 --> 00:04:48.879
<v Speaker 4>you just throw something in and you expect it to work.

83
00:04:49.079 --> 00:04:52.920
<v Speaker 4>Your components being efficient, re rendering just happening very fast.

84
00:04:53.040 --> 00:04:54.639
<v Speaker 4>We have a lot of stuff going on, but you

85
00:04:54.839 --> 00:04:58.120
<v Speaker 4>just expected to work, right, and there, of course pros

86
00:04:58.160 --> 00:05:01.079
<v Speaker 4>and constant is approach there. I mean, there's a reason

87
00:05:01.079 --> 00:05:03.720
<v Speaker 4>why react is successful, and one of that reasons is

88
00:05:03.720 --> 00:05:05.759
<v Speaker 4>certainly that the black box. You don't need to care

89
00:05:05.800 --> 00:05:09.319
<v Speaker 4>about what makes the decisions or what really goes on

90
00:05:09.439 --> 00:05:12.000
<v Speaker 4>behind the curtain. But on the other hand, of course,

91
00:05:12.439 --> 00:05:15.439
<v Speaker 4>sometimes you're wondering, why is my component slow? Why is

92
00:05:15.439 --> 00:05:17.600
<v Speaker 4>it not really behaving the way I think it is?

93
00:05:18.000 --> 00:05:20.519
<v Speaker 4>And this is where the black box really comes from

94
00:05:20.560 --> 00:05:22.839
<v Speaker 4>the other side, right in terts you because you can't

95
00:05:22.879 --> 00:05:25.879
<v Speaker 4>really see what's going on and debugging this can be

96
00:05:27.160 --> 00:05:29.480
<v Speaker 4>I mean, I don't know how much time I spent

97
00:05:29.600 --> 00:05:33.600
<v Speaker 4>debugging real components that don't behave the way I imagine

98
00:05:33.639 --> 00:05:36.959
<v Speaker 4>they should behave. And personally, of course, I mean you

99
00:05:37.000 --> 00:05:39.319
<v Speaker 4>can already see that I have both sides. In the years,

100
00:05:39.439 --> 00:05:42.079
<v Speaker 4>I'm a little bit torn apart. I think, I mean,

101
00:05:42.120 --> 00:05:46.480
<v Speaker 4>the really great achievement and what makes functional programming also

102
00:05:46.480 --> 00:05:48.720
<v Speaker 4>created that the run time is doing a lot of

103
00:05:48.720 --> 00:05:51.240
<v Speaker 4>stuff for you, and you get a lot of guarantees

104
00:05:51.319 --> 00:05:54.240
<v Speaker 4>and on your let's say programer side that you don't

105
00:05:54.279 --> 00:05:57.480
<v Speaker 4>need to take care of, right, you just say, okay,

106
00:05:57.839 --> 00:06:00.360
<v Speaker 4>I always have my state here. I can be that

107
00:06:00.439 --> 00:06:02.680
<v Speaker 4>no one else is filing the step because it's immutable

108
00:06:02.759 --> 00:06:05.160
<v Speaker 4>for instance, and all that, and you just work with

109
00:06:05.199 --> 00:06:07.279
<v Speaker 4>it and you say, well, all these that say what

110
00:06:07.480 --> 00:06:11.160
<v Speaker 4>makes the decisions is under the hood and it just works.

111
00:06:11.360 --> 00:06:14.040
<v Speaker 4>And I think there will always be this straight off

112
00:06:14.199 --> 00:06:17.800
<v Speaker 4>so it shouldn't be too problematic in react case. And

113
00:06:18.279 --> 00:06:21.040
<v Speaker 4>my personal point of view is, well, you can't have

114
00:06:21.160 --> 00:06:24.839
<v Speaker 4>the let's say perfect thing here that just does everything

115
00:06:24.879 --> 00:06:26.800
<v Speaker 4>for you and you will never complain about it. There

116
00:06:26.800 --> 00:06:30.480
<v Speaker 4>will always be these educses and you will then of

117
00:06:30.519 --> 00:06:33.959
<v Speaker 4>course pay the price in some debugging let's say, sessions

118
00:06:34.000 --> 00:06:37.000
<v Speaker 4>that you would have wanted to avoid. But yeah, that's

119
00:06:37.000 --> 00:06:39.879
<v Speaker 4>a surprice we pay. Doesn't mean it's perfect, doesn't mean

120
00:06:39.920 --> 00:06:42.439
<v Speaker 4>we shouldn't try to improve it, and doesn't mean we

121
00:06:42.480 --> 00:06:45.279
<v Speaker 4>can't criticize it. It just means that I think it's

122
00:06:45.319 --> 00:06:47.600
<v Speaker 4>a good model after all, but we should be aware

123
00:06:47.639 --> 00:06:50.120
<v Speaker 4>of it. And that's that's my personal point of view.

124
00:06:51.120 --> 00:06:53.160
<v Speaker 5>Yeah, it's it's interesting in a way.

125
00:06:53.199 --> 00:06:56.439
<v Speaker 6>This is like the classical software paradigm, like how much

126
00:06:56.560 --> 00:07:00.000
<v Speaker 6>you trust a black box versus how much you control

127
00:07:00.240 --> 00:07:03.879
<v Speaker 6>on your own. I feel like it's somewhat at least

128
00:07:03.879 --> 00:07:06.319
<v Speaker 6>somewhat new to the front end world, at least because

129
00:07:06.879 --> 00:07:09.399
<v Speaker 6>back in the day, I feel like the jQuery days

130
00:07:09.439 --> 00:07:11.920
<v Speaker 6>like Jquerry. I mean, obviously it's a bit of a

131
00:07:11.920 --> 00:07:14.879
<v Speaker 6>black box, it's got APIs that abstract things for you,

132
00:07:14.959 --> 00:07:18.079
<v Speaker 6>but you could sort of fundamentally know what JQuery's doing

133
00:07:18.160 --> 00:07:20.480
<v Speaker 6>under the hood, Like the code get a little bit gnarly,

134
00:07:20.560 --> 00:07:23.480
<v Speaker 6>but you know they're like abstracting browser APIs for you.

135
00:07:23.519 --> 00:07:26.759
<v Speaker 6>They're doing some basic things. And if jQuery didn't do

136
00:07:26.800 --> 00:07:29.160
<v Speaker 6>exactly what you wanted, it's like, okay, you at least

137
00:07:29.160 --> 00:07:30.839
<v Speaker 6>had a rough idea of what was wrong or how

138
00:07:30.879 --> 00:07:34.040
<v Speaker 6>to work around it. Whereas I feel like nowadays with

139
00:07:34.360 --> 00:07:37.160
<v Speaker 6>stuff like React, and this isn't really specific to React,

140
00:07:37.160 --> 00:07:40.000
<v Speaker 6>because you could make the same argument for other frameworks

141
00:07:40.000 --> 00:07:42.560
<v Speaker 6>as well, but there really is a lot more magic

142
00:07:42.639 --> 00:07:45.240
<v Speaker 6>going on than there used to be. So if something

143
00:07:45.240 --> 00:07:47.839
<v Speaker 6>went wrong in Jquerry, like I could probably go into

144
00:07:47.879 --> 00:07:49.959
<v Speaker 6>the domin at least get a high level over you

145
00:07:50.040 --> 00:07:55.160
<v Speaker 6>of what's going wrong. But if like reacts doesn't reconcile

146
00:07:55.399 --> 00:07:59.839
<v Speaker 6>my JSX like correctly in some situations, I mean, I

147
00:08:00.079 --> 00:08:03.519
<v Speaker 6>certainly ran into and this is rare, but sometimes I've

148
00:08:03.560 --> 00:08:05.680
<v Speaker 6>run into React situations where it's like, oh man, like

149
00:08:05.759 --> 00:08:08.600
<v Speaker 6>unless I unless I google it and find somebody that

150
00:08:09.079 --> 00:08:11.360
<v Speaker 6>ran into the same problem that has like some ideas

151
00:08:11.360 --> 00:08:13.160
<v Speaker 6>of what I can do, Like it can be I

152
00:08:13.160 --> 00:08:15.160
<v Speaker 6>can be at a loss because it's just there's a

153
00:08:15.199 --> 00:08:17.319
<v Speaker 6>lot more complexity in the front end world than there

154
00:08:17.439 --> 00:08:17.920
<v Speaker 6>used to be.

155
00:08:18.639 --> 00:08:22.680
<v Speaker 2>And there's just some use cases that React doesn't have

156
00:08:22.720 --> 00:08:25.800
<v Speaker 2>a solve for. And this I think this came about

157
00:08:25.879 --> 00:08:30.079
<v Speaker 2>earlier and reacts life cycles, like when it was still

158
00:08:30.199 --> 00:08:32.399
<v Speaker 2>using a lot of class based components. But there were

159
00:08:32.440 --> 00:08:35.000
<v Speaker 2>some situations where if you, like you wanted a model,

160
00:08:35.080 --> 00:08:37.600
<v Speaker 2>for instance, to just pop out and sit on top

161
00:08:37.639 --> 00:08:40.679
<v Speaker 2>of everything else that you could then either interact with

162
00:08:40.799 --> 00:08:43.840
<v Speaker 2>or just close and go back, it was really really

163
00:08:44.039 --> 00:08:47.840
<v Speaker 2>hard or darn near impossible to make that happen in

164
00:08:47.879 --> 00:08:51.360
<v Speaker 2>a way that made sense or was as easy as

165
00:08:51.879 --> 00:08:54.799
<v Speaker 2>some of the other JavaScript frameworks like Angular made it.

166
00:08:55.320 --> 00:08:57.360
<v Speaker 2>So there was a lot of at least for me

167
00:08:57.440 --> 00:09:00.000
<v Speaker 2>when I was getting familiar with React and starting to learn,

168
00:09:00.000 --> 00:09:02.159
<v Speaker 2>but there were a lot of really frustrating moments where

169
00:09:02.200 --> 00:09:04.360
<v Speaker 2>I couldn't do things that I would have been able

170
00:09:04.399 --> 00:09:08.960
<v Speaker 2>to do pretty easily in other JavaScript frameworks. But at

171
00:09:08.960 --> 00:09:12.200
<v Speaker 2>the same time, it's funny that you make that comparison

172
00:09:12.320 --> 00:09:15.919
<v Speaker 2>of it being a black box, because that's almost something

173
00:09:16.000 --> 00:09:19.120
<v Speaker 2>that I haven't heard React described as in a very

174
00:09:19.200 --> 00:09:23.200
<v Speaker 2>long time. It seems like Angular really took that and

175
00:09:23.240 --> 00:09:25.759
<v Speaker 2>got hammered a lot with it because of all their

176
00:09:25.799 --> 00:09:29.679
<v Speaker 2>specific syntax and components and the way that they wanted

177
00:09:29.720 --> 00:09:33.559
<v Speaker 2>everything built and styled. But everybody's like, oh, react, you

178
00:09:33.600 --> 00:09:37.279
<v Speaker 2>can do anything with it. But you're very right in

179
00:09:37.360 --> 00:09:40.399
<v Speaker 2>that if it's something under the hood that we don't

180
00:09:40.440 --> 00:09:44.720
<v Speaker 2>have either access to or any understanding of that's in

181
00:09:44.799 --> 00:09:48.960
<v Speaker 2>their source code, yeah, we're limited in that regard.

182
00:09:49.360 --> 00:09:51.639
<v Speaker 4>I mean the Angle that example is a good one,

183
00:09:51.720 --> 00:09:54.559
<v Speaker 4>because that is I mean, if you look at angle

184
00:09:54.600 --> 00:09:56.799
<v Speaker 4>and that's right, it a couple of times saying I mean.

185
00:09:56.799 --> 00:10:00.000
<v Speaker 4>There may be some folks in the audience who completely

186
00:10:00.080 --> 00:10:02.759
<v Speaker 4>disagree with me, but for me though, it felt wrong

187
00:10:02.840 --> 00:10:06.559
<v Speaker 4>because they pretty much reinvented everything and you couldn't even

188
00:10:06.679 --> 00:10:10.399
<v Speaker 4>use other stuff from you, I mean the plane JavaScript ecosystem,

189
00:10:10.919 --> 00:10:12.879
<v Speaker 4>because I mean you first had to wrap it in

190
00:10:12.960 --> 00:10:16.919
<v Speaker 4>some angle, a specific notion of a service or you know,

191
00:10:17.399 --> 00:10:20.399
<v Speaker 4>following all their terminology and what they I mean that

192
00:10:20.440 --> 00:10:22.919
<v Speaker 4>they made a great thing, but it was in my

193
00:10:23.080 --> 00:10:26.200
<v Speaker 4>opinion always why do you need to re engineer that

194
00:10:26.120 --> 00:10:29.240
<v Speaker 4>that's already there? Browdlary ships? Is that why? But you

195
00:10:29.279 --> 00:10:31.320
<v Speaker 4>need to wrap it just to bring it to your framework,

196
00:10:31.759 --> 00:10:34.960
<v Speaker 4>and so I mean Angler maybe on the run time,

197
00:10:35.279 --> 00:10:39.519
<v Speaker 4>people may disagree with me, less complex, and then what reacted.

198
00:10:39.639 --> 00:10:42.159
<v Speaker 4>Certainly there are other areas like injection for instance of

199
00:10:42.200 --> 00:10:44.080
<v Speaker 4>what it does with me that day, the reflection and

200
00:10:44.159 --> 00:10:46.519
<v Speaker 4>song where it is certainly more complex. But if you

201
00:10:46.559 --> 00:10:50.120
<v Speaker 4>look at the chorretit right, the reconciliation algorithm. Here what

202
00:10:50.279 --> 00:10:53.120
<v Speaker 4>really makes reacts special. So this is a lot of

203
00:10:53.120 --> 00:10:57.159
<v Speaker 4>complexity that's completely hidden from you doing let's say your work.

204
00:10:57.240 --> 00:11:00.720
<v Speaker 4>Usually whereas Reacted, Angler was always on this change detection

205
00:11:00.799 --> 00:11:03.039
<v Speaker 4>algorithm and so in this case a little bit more

206
00:11:03.080 --> 00:11:06.480
<v Speaker 4>lads weight. But then it brought all these complexity also

207
00:11:06.480 --> 00:11:08.440
<v Speaker 4>in form of all what you could call a black box,

208
00:11:08.440 --> 00:11:10.840
<v Speaker 4>because it was also just throwing terminology at you and

209
00:11:11.000 --> 00:11:13.840
<v Speaker 4>use everything from our framework and we then do something

210
00:11:13.879 --> 00:11:17.320
<v Speaker 4>under the hood which goes back to basic browser APIs right,

211
00:11:17.600 --> 00:11:19.480
<v Speaker 4>So you could look at it from two angles, and

212
00:11:19.559 --> 00:11:24.320
<v Speaker 4>certainly in some perspective Reacted was very open and Angler

213
00:11:24.440 --> 00:11:26.799
<v Speaker 4>was a black box. But from other perspective and this

214
00:11:26.879 --> 00:11:28.559
<v Speaker 4>is really where we look at the core run time,

215
00:11:28.799 --> 00:11:31.039
<v Speaker 4>it's the other way around. And then of course you

216
00:11:31.039 --> 00:11:34.679
<v Speaker 4>can ask, well, what is the better way personally, I mean, hey, already,

217
00:11:35.360 --> 00:11:38.039
<v Speaker 4>I guess we gave enough things. I think the React

218
00:11:38.120 --> 00:11:41.200
<v Speaker 4>way is quite good, even though, and this is great

219
00:11:41.279 --> 00:11:44.919
<v Speaker 4>that you mentioned the model. React always tried to then,

220
00:11:45.279 --> 00:11:49.200
<v Speaker 4>let's say find solutions. So they introduced from the portal API,

221
00:11:49.279 --> 00:11:51.960
<v Speaker 4>which is a great API in my opinion. But in

222
00:11:52.000 --> 00:11:54.720
<v Speaker 4>the last two three four years we got a lot

223
00:11:54.840 --> 00:11:57.440
<v Speaker 4>of new APIs. I mean, starting with hooks. You've got

224
00:11:57.480 --> 00:11:59.879
<v Speaker 4>all these things that you certainly now use from Reactor.

225
00:12:00.120 --> 00:12:04.279
<v Speaker 4>Previously we're only using i mean create elements unknowingly, but

226
00:12:04.679 --> 00:12:07.919
<v Speaker 4>the class component knowingly. And now it's it's really a

227
00:12:07.919 --> 00:12:11.000
<v Speaker 4>lot of things like lazy you should use I guess

228
00:12:11.399 --> 00:12:13.919
<v Speaker 4>all the hooks of course, because they're awesome, even though

229
00:12:13.960 --> 00:12:16.759
<v Speaker 4>highly debated. And so now you have this whole zoo

230
00:12:17.159 --> 00:12:19.600
<v Speaker 4>and I'm not even starting the strict mode and all

231
00:12:19.600 --> 00:12:22.559
<v Speaker 4>that stuff, so that they also should know. So also here,

232
00:12:22.919 --> 00:12:26.320
<v Speaker 4>I mean suddenly complexity goes into the API comes that

233
00:12:26.440 --> 00:12:28.600
<v Speaker 4>the user and you now need to make decisions. So

234
00:12:29.159 --> 00:12:32.519
<v Speaker 4>it's it's not as severe as the Angular but it

235
00:12:32.639 --> 00:12:35.720
<v Speaker 4>starts also to shift. Here are the worst cases. Of course,

236
00:12:35.759 --> 00:12:39.279
<v Speaker 4>if you have the API complexity like angular class, you

237
00:12:39.320 --> 00:12:42.559
<v Speaker 4>have the internal complexity because suddenly you need to know

238
00:12:42.600 --> 00:12:44.399
<v Speaker 4>a lot of things to use it, and then you

239
00:12:44.440 --> 00:12:46.159
<v Speaker 4>need to look to know to know a lot of

240
00:12:46.200 --> 00:12:48.759
<v Speaker 4>things to debug it. And it's just like, oh, I

241
00:12:48.759 --> 00:12:51.799
<v Speaker 4>don't know. I mean, let's hope it doesn't go in

242
00:12:51.840 --> 00:12:54.600
<v Speaker 4>that way. If it goes X will not be as

243
00:12:54.679 --> 00:12:56.919
<v Speaker 4>successful anymore. I suppose, I don't know.

244
00:12:57.080 --> 00:13:00.080
<v Speaker 6>I'm serious, Like, based off this, like what advice you

245
00:13:00.120 --> 00:13:04.480
<v Speaker 6>have for like the just the average React developer, like

246
00:13:04.559 --> 00:13:07.799
<v Speaker 6>building their their apps. Is this something you think people

247
00:13:07.840 --> 00:13:10.799
<v Speaker 6>should just be aware of? Is this a reason to

248
00:13:11.039 --> 00:13:14.080
<v Speaker 6>like avoid React or use it only when you need it?

249
00:13:14.159 --> 00:13:17.279
<v Speaker 6>And I'm curious what advice you to have people?

250
00:13:17.279 --> 00:13:18.639
<v Speaker 3>Do you still reach for it?

251
00:13:20.519 --> 00:13:22.679
<v Speaker 4>I mean I always reach for it even though I'm

252
00:13:22.799 --> 00:13:25.639
<v Speaker 4>very let's say open for alternatives. There are these days,

253
00:13:25.679 --> 00:13:28.240
<v Speaker 4>I mean a lot of what I would call lightweight

254
00:13:28.279 --> 00:13:32.639
<v Speaker 4>alternatives to React, things like solid chats, for instance, which say, okay,

255
00:13:33.039 --> 00:13:35.799
<v Speaker 4>what React brought to the table, how you write components?

256
00:13:35.919 --> 00:13:39.000
<v Speaker 4>This is really great, but maybe what other frameworks bring

257
00:13:39.039 --> 00:13:41.600
<v Speaker 4>to the table. Let's pick for instance, swells Swelter in

258
00:13:41.639 --> 00:13:44.960
<v Speaker 4>my opinion, also an awesome framework, is also good. So

259
00:13:45.000 --> 00:13:48.000
<v Speaker 4>how can we combine these to make for instance, the

260
00:13:48.039 --> 00:13:51.399
<v Speaker 4>amount of JavaScript that we ship to the user. Yeah,

261
00:13:51.919 --> 00:13:55.720
<v Speaker 4>less heavy, and I mean this was always one concern

262
00:13:55.840 --> 00:13:58.919
<v Speaker 4>with these let's say more bloaded frameworks, I mean React.

263
00:13:58.919 --> 00:14:01.559
<v Speaker 4>It is certainly not in that when when Angler started,

264
00:14:01.759 --> 00:14:04.279
<v Speaker 4>I don't really want to that they bash Angler, and

265
00:14:04.320 --> 00:14:07.879
<v Speaker 4>please forgive me for always mentioning it. I'm just an Angler,

266
00:14:07.879 --> 00:14:11.360
<v Speaker 4>and you always think of theven I thought so anyway,

267
00:14:11.440 --> 00:14:14.000
<v Speaker 4>I was always shipping. I saw at least the guy

268
00:14:14.039 --> 00:14:16.600
<v Speaker 4>shipping for Hello worlds six hundred and seven and eight

269
00:14:16.679 --> 00:14:20.360
<v Speaker 4>hundred kilobytes of JavaScript Mini Fight. Of course, jesuits a

270
00:14:20.399 --> 00:14:23.799
<v Speaker 4>little bit less, but nevertheless, it's nearly a megabyte. And

271
00:14:23.919 --> 00:14:26.720
<v Speaker 4>all you did was I don't know, using HTP service

272
00:14:26.759 --> 00:14:28.799
<v Speaker 4>in there, and it really some elementary stuff but not

273
00:14:28.840 --> 00:14:30.759
<v Speaker 4>really a lot of pages, just you know, one one

274
00:14:30.799 --> 00:14:34.399
<v Speaker 4>simple page. It was just fetching something. And of course

275
00:14:34.440 --> 00:14:37.559
<v Speaker 4>in reactually could have that a lot more lightweight, but

276
00:14:37.559 --> 00:14:39.759
<v Speaker 4>you still would ship I don't know, one hundred fifty

277
00:14:39.840 --> 00:14:42.799
<v Speaker 4>one hundred and twenty something. That's that still three digits

278
00:14:42.919 --> 00:14:46.000
<v Speaker 4>amount of javascripts for all you do is catch maybe

279
00:14:46.039 --> 00:14:50.000
<v Speaker 4>one resource and display a little string on the on

280
00:14:50.039 --> 00:14:52.240
<v Speaker 4>the screen. Now, of course, one could argue, I mean

281
00:14:52.279 --> 00:14:54.639
<v Speaker 4>this is not what REEC was built for. You should

282
00:14:54.720 --> 00:14:57.799
<v Speaker 4>then build a real single page application, and suddenly if

283
00:14:57.840 --> 00:15:00.879
<v Speaker 4>you have I don't know, one of the half megabytes

284
00:15:00.879 --> 00:15:04.159
<v Speaker 4>of javascripts, hopefully lazy loaded in chunks and so on,

285
00:15:04.399 --> 00:15:07.759
<v Speaker 4>then it suddenly makes sense you can afford bringing React

286
00:15:07.799 --> 00:15:10.120
<v Speaker 4>and React on, especially react on. I mean, React is

287
00:15:10.240 --> 00:15:14.240
<v Speaker 4>still white weights to the end user. But then we

288
00:15:14.320 --> 00:15:16.559
<v Speaker 4>have now these other frameworks like solid and they're really

289
00:15:16.559 --> 00:15:19.639
<v Speaker 4>aim for let's pick this small use case apart. We

290
00:15:19.679 --> 00:15:23.039
<v Speaker 4>can still help you make you productive, and then we

291
00:15:23.240 --> 00:15:25.759
<v Speaker 4>just shift the minimal amount. So what is my recommendation?

292
00:15:26.240 --> 00:15:28.639
<v Speaker 4>If all you want to do is write with something

293
00:15:28.679 --> 00:15:32.200
<v Speaker 4>really simple, one screen, just look around. You will find

294
00:15:32.240 --> 00:15:35.240
<v Speaker 4>something that will suit you from how you approach the

295
00:15:35.320 --> 00:15:39.240
<v Speaker 4>thing as a developer, with a community, also enough documentation,

296
00:15:39.720 --> 00:15:42.279
<v Speaker 4>and maybe also being efficient and white weight. If you

297
00:15:42.360 --> 00:15:45.799
<v Speaker 4>say you're building a full single page application, a tool

298
00:15:45.960 --> 00:15:49.240
<v Speaker 4>like experience I always call it, we'll say you're building

299
00:15:49.240 --> 00:15:52.000
<v Speaker 4>the next Photoshop in the browser something I mean, React

300
00:15:52.000 --> 00:15:55.399
<v Speaker 4>is certainly a good choice. You can certainly afford shifting

301
00:15:55.399 --> 00:15:59.879
<v Speaker 4>this one hundred one hundred twenty kilobytes. Additionally, which Jesus, Jesus,

302
00:16:00.159 --> 00:16:02.799
<v Speaker 4>maybe I don't know fifty forty KO pipes. I don't

303
00:16:02.840 --> 00:16:05.279
<v Speaker 4>know something in that range, so that certainly doesn't make

304
00:16:05.440 --> 00:16:08.759
<v Speaker 4>a great difference, but that would be my recommendation. There

305
00:16:08.759 --> 00:16:10.879
<v Speaker 4>are a lot of great frameworks, and I mean the

306
00:16:10.960 --> 00:16:14.159
<v Speaker 4>principles and the parading that reacts to the table you

307
00:16:14.200 --> 00:16:16.759
<v Speaker 4>can find now in a multitude of frameworks, and there

308
00:16:16.759 --> 00:16:19.360
<v Speaker 4>are really some great ones. Just because they don't have

309
00:16:19.600 --> 00:16:22.360
<v Speaker 4>so many stars or not take by by Facebook doesn't

310
00:16:22.399 --> 00:16:25.559
<v Speaker 4>mean they're worse. Just look around, make sure that they

311
00:16:25.559 --> 00:16:28.720
<v Speaker 4>are properly maintained, and not just stop tomorrow.

312
00:16:29.200 --> 00:16:29.399
<v Speaker 2>Yeah.

313
00:16:30.159 --> 00:16:33.519
<v Speaker 6>Well, and I think it's just decent software development advice

314
00:16:33.559 --> 00:16:37.080
<v Speaker 6>in general. Right, Like, abstractions in themselves are not bad.

315
00:16:37.159 --> 00:16:40.039
<v Speaker 6>Black boxes are not bad, but you have to accept

316
00:16:40.360 --> 00:16:42.080
<v Speaker 6>a certain amount of trade offs. You have to make

317
00:16:42.120 --> 00:16:45.480
<v Speaker 6>sure if you need the abstraction, if you need that complexity,

318
00:16:45.519 --> 00:16:48.480
<v Speaker 6>if you're dealing with that level of problem, then great,

319
00:16:48.600 --> 00:16:50.799
<v Speaker 6>Like that's a trade off, it's probably good for you.

320
00:16:50.879 --> 00:16:55.519
<v Speaker 6>But if you're solving a much simpler problem, you could

321
00:16:55.519 --> 00:16:58.039
<v Speaker 6>probably reach for a much simpler tool at least to

322
00:16:58.080 --> 00:16:58.559
<v Speaker 6>start with.

323
00:16:59.720 --> 00:17:03.679
<v Speaker 4>Right, right, And I mean, discussion with obstruction is also

324
00:17:03.759 --> 00:17:07.559
<v Speaker 4>not newer, but I'm surprised that these days, it seems

325
00:17:07.559 --> 00:17:10.519
<v Speaker 4>like obstructions, well, at least there is a little bit

326
00:17:10.559 --> 00:17:13.359
<v Speaker 4>of let's say, a trend in articles to say obstructions

327
00:17:13.400 --> 00:17:17.400
<v Speaker 4>are bad becauseous here, and I mean, of course they're right.

328
00:17:17.440 --> 00:17:21.599
<v Speaker 4>There's no simple solution to say, oh, I mean always

329
00:17:21.599 --> 00:17:25.720
<v Speaker 4>obstruct a way we've seen any angular example story. Again,

330
00:17:26.000 --> 00:17:28.839
<v Speaker 4>it will be a theme that I guess that too

331
00:17:28.920 --> 00:17:31.039
<v Speaker 4>much obstruction will just hurt you because you need to

332
00:17:31.119 --> 00:17:34.680
<v Speaker 4>learn all these things too, right. So it firstly starts simple, oh, well,

333
00:17:34.720 --> 00:17:39.000
<v Speaker 4>just one obstruction, I can save these three linns. But suddenly, oh, oh,

334
00:17:39.160 --> 00:17:41.960
<v Speaker 4>which obstruction did I use to abstract these three lines?

335
00:17:42.039 --> 00:17:44.400
<v Speaker 4>I need to find it? And suddenly you're more concerned

336
00:17:44.400 --> 00:17:47.759
<v Speaker 4>about finding the right function that you extracted formally than

337
00:17:47.960 --> 00:17:51.359
<v Speaker 4>just to do the coding right. And so there's always

338
00:17:51.359 --> 00:17:54.559
<v Speaker 4>this straight off and there's certainly no one site fits

339
00:17:54.559 --> 00:17:57.000
<v Speaker 4>some all solutions here, like with everything right. So this

340
00:17:57.119 --> 00:17:59.799
<v Speaker 4>is one of the things that are always criticize many

341
00:17:59.839 --> 00:18:02.599
<v Speaker 4>art because only say oh this is good or everything

342
00:18:02.599 --> 00:18:07.519
<v Speaker 4>else is bad. Yeah, I mean there's always a reason why.

343
00:18:07.559 --> 00:18:10.920
<v Speaker 4>For instance, why exists, even though why is now bad

344
00:18:10.960 --> 00:18:13.880
<v Speaker 4>and excess the new thing to do, right, there was

345
00:18:13.920 --> 00:18:16.839
<v Speaker 4>a reason for that and we shouldn't forget that reason. Maybe,

346
00:18:16.880 --> 00:18:19.480
<v Speaker 4>of course technology advanced and maybe why is really not

347
00:18:19.559 --> 00:18:21.880
<v Speaker 4>the thing to do anymore, but maybe there was a reason,

348
00:18:22.119 --> 00:18:25.319
<v Speaker 4>and that reason just well, in this context is not

349
00:18:25.400 --> 00:18:29.279
<v Speaker 4>valid anymore, or something else should be, let's say, considered too.

350
00:18:29.519 --> 00:18:31.799
<v Speaker 4>And it's always good to know the tradeoffs and what

351
00:18:31.880 --> 00:18:34.839
<v Speaker 4>other things exist and in what context that makes sense,

352
00:18:34.920 --> 00:18:37.759
<v Speaker 4>because yeah, I mean there is in my opinion, there

353
00:18:37.799 --> 00:18:40.119
<v Speaker 4>is no real black and white always it's just great

354
00:18:40.240 --> 00:18:42.839
<v Speaker 4>and you need to find which shade of prey you

355
00:18:43.440 --> 00:18:48.000
<v Speaker 4>fits to your particular problem. And I guess, yeah, we

356
00:18:48.039 --> 00:18:50.079
<v Speaker 4>can discuss it in the REACT context, but I just

357
00:18:50.119 --> 00:18:53.039
<v Speaker 4>said it's all in soft I mean, I guess also

358
00:18:53.240 --> 00:18:57.240
<v Speaker 4>generations of what we knew that and we also learn

359
00:18:57.279 --> 00:19:00.759
<v Speaker 4>it again, at least I do. And it's always a

360
00:19:00.799 --> 00:19:03.720
<v Speaker 4>little bit of this cycle that that goes around, and

361
00:19:03.799 --> 00:19:05.839
<v Speaker 4>we just need to see right where we end up,

362
00:19:05.880 --> 00:19:07.920
<v Speaker 4>is where we are currently, and what we can do

363
00:19:08.000 --> 00:19:11.119
<v Speaker 4>to just yeah, not make the same mistakes again. I mean,

364
00:19:11.160 --> 00:19:13.839
<v Speaker 4>I think this is the only thing to really go forward,

365
00:19:13.880 --> 00:19:17.640
<v Speaker 4>to reflect a bit and to find let's say, a

366
00:19:17.680 --> 00:19:20.680
<v Speaker 4>better way forward, and to not forget why we picked

367
00:19:20.680 --> 00:19:23.559
<v Speaker 4>that one. The why is quite often really crucial.

368
00:19:24.599 --> 00:19:27.039
<v Speaker 6>Yeah, I feel like that the EBB and flow is

369
00:19:27.039 --> 00:19:29.079
<v Speaker 6>an interesting way of putting it, because I feel like

370
00:19:29.119 --> 00:19:31.720
<v Speaker 6>that's we've had cycles like that before, even in the

371
00:19:31.720 --> 00:19:34.079
<v Speaker 6>front end world, Like I remember there was a time

372
00:19:34.160 --> 00:19:38.519
<v Speaker 6>where pretty large JavaScript frameworks were quite popular. There are

373
00:19:38.519 --> 00:19:42.680
<v Speaker 6>things like Dojo and Sencha, things that were fairly fairly

374
00:19:42.720 --> 00:19:45.640
<v Speaker 6>heavy that got popular for a while, and then there

375
00:19:45.720 --> 00:19:49.240
<v Speaker 6>was the push towards jQuery and like smaller things, and

376
00:19:49.279 --> 00:19:51.559
<v Speaker 6>then now we started to creep back up again with

377
00:19:51.720 --> 00:19:55.279
<v Speaker 6>some of these JavaScript frameworks. And I almost feel like

378
00:19:55.319 --> 00:19:57.440
<v Speaker 6>this is true in the bill tools world as well,

379
00:19:57.519 --> 00:20:00.680
<v Speaker 6>Like there's I mean, there was a while where Webpack

380
00:20:00.720 --> 00:20:03.400
<v Speaker 6>had like a monopoly and everybody was totally cool with it,

381
00:20:03.440 --> 00:20:06.960
<v Speaker 6>and now it's like cool to be like counter webpack

382
00:20:07.000 --> 00:20:10.960
<v Speaker 6>and to be using all these hip, new, strangely named

383
00:20:11.480 --> 00:20:15.839
<v Speaker 6>tools that are like different and smaller and faster, and

384
00:20:16.279 --> 00:20:18.359
<v Speaker 6>it's like we can just as an industry, we can't

385
00:20:18.400 --> 00:20:19.799
<v Speaker 6>make up our mind, Like as soon as we go

386
00:20:19.839 --> 00:20:21.279
<v Speaker 6>too far in one direction, we come.

387
00:20:21.200 --> 00:20:21.839
<v Speaker 5>Back in the other.

388
00:20:22.599 --> 00:20:26.160
<v Speaker 2>Yeah, it's very much a pendulum of popular opinion. But

389
00:20:26.519 --> 00:20:29.640
<v Speaker 2>one thing that I remember from a senior developer telling

390
00:20:29.680 --> 00:20:32.519
<v Speaker 2>me once, which I liked a lot was that if

391
00:20:32.559 --> 00:20:36.559
<v Speaker 2>I could explain to him why I had chosen a

392
00:20:36.599 --> 00:20:40.240
<v Speaker 2>particular way to solve a problem or style or whatever,

393
00:20:40.759 --> 00:20:43.480
<v Speaker 2>he was fine with it. He just wanted a reason

394
00:20:43.680 --> 00:20:46.920
<v Speaker 2>for why I was choosing to solve a problem other

395
00:20:47.000 --> 00:20:49.000
<v Speaker 2>than well it was like this and the rest of

396
00:20:49.039 --> 00:20:51.319
<v Speaker 2>the code, or I saw somebody online do it, or

397
00:20:51.359 --> 00:20:55.720
<v Speaker 2>somebody told me if I had a valid viewpoint. He

398
00:20:55.839 --> 00:20:58.319
<v Speaker 2>was totally good with it. It was just have a

399
00:20:58.440 --> 00:21:01.480
<v Speaker 2>reason for why do you think to do it this way?

400
00:21:02.720 --> 00:21:05.240
<v Speaker 4>I think there's a good attitude. But I mean cod

401
00:21:05.240 --> 00:21:09.480
<v Speaker 4>re views or let's say, yeah, just knowing why things

402
00:21:09.799 --> 00:21:12.720
<v Speaker 4>went in a certain directions are always good to let's say,

403
00:21:12.960 --> 00:21:16.519
<v Speaker 4>be based on well, this kind of knowledge because at

404
00:21:16.519 --> 00:21:18.319
<v Speaker 4>the end of the day, I mean, there will be

405
00:21:18.359 --> 00:21:21.559
<v Speaker 4>always also new people joining team class of course, people

406
00:21:21.599 --> 00:21:24.279
<v Speaker 4>that are not as on your level or as senior

407
00:21:24.319 --> 00:21:27.359
<v Speaker 4>as you, and so for them knowing the reason is

408
00:21:27.400 --> 00:21:30.400
<v Speaker 4>also really good at a learning experience, either to the company,

409
00:21:30.400 --> 00:21:34.039
<v Speaker 4>to the project, or to software development in general. Right,

410
00:21:34.119 --> 00:21:36.920
<v Speaker 4>And so I always think that quite often we are

411
00:21:36.960 --> 00:21:40.880
<v Speaker 4>not asking the why or answering the why good enough,

412
00:21:40.920 --> 00:21:43.720
<v Speaker 4>at least I know that for myself. So I think

413
00:21:43.759 --> 00:21:46.920
<v Speaker 4>this is always something where we can be also, yeah,

414
00:21:47.079 --> 00:21:50.119
<v Speaker 4>full of critics of ourselves and always try to improve.

415
00:21:50.319 --> 00:21:53.839
<v Speaker 4>And yeah, I think the why question is one that

416
00:21:54.079 --> 00:21:56.200
<v Speaker 4>is also of course if we go back to the

417
00:21:56.200 --> 00:21:59.519
<v Speaker 4>black box topic, one that you don't really see them

418
00:21:59.599 --> 00:22:03.000
<v Speaker 4>right again, you're interacting with something where the system is

419
00:22:03.319 --> 00:22:06.000
<v Speaker 4>completely hidden from you, so you don't see why things

420
00:22:06.079 --> 00:22:09.359
<v Speaker 4>might end up in that state. Yeah, and microphonance, if

421
00:22:09.400 --> 00:22:12.079
<v Speaker 4>we also good why questions? Why are you doing microphoneance?

422
00:22:12.119 --> 00:22:14.119
<v Speaker 4>This is something I can ask a lot these days

423
00:22:14.119 --> 00:22:17.160
<v Speaker 4>because believe it or not, I don't know how you

424
00:22:17.599 --> 00:22:19.880
<v Speaker 4>feel about microphonance if you heard a lot about it,

425
00:22:20.000 --> 00:22:22.079
<v Speaker 4>or on what side of the pandulum you are. But

426
00:22:22.200 --> 00:22:26.119
<v Speaker 4>this is again like the guys are saying, we just

427
00:22:26.200 --> 00:22:30.119
<v Speaker 4>that Microsoft didn't work or was used for everything and

428
00:22:30.839 --> 00:22:34.039
<v Speaker 4>shouldn't be used for everything, totally agreed. Then the other

429
00:22:34.119 --> 00:22:36.640
<v Speaker 4>guys will say, oh, Microsoft was so great, now we

430
00:22:36.680 --> 00:22:40.240
<v Speaker 4>need to do microfondance. We don't know why because of

431
00:22:40.359 --> 00:22:42.480
<v Speaker 4>front and is working great, but we want to do it.

432
00:22:42.880 --> 00:22:45.400
<v Speaker 4>And so I mean also here I have the full spectrum,

433
00:22:45.400 --> 00:22:48.319
<v Speaker 4>would really be eager to know what your opinions are

434
00:22:49.039 --> 00:22:49.799
<v Speaker 4>on this one.

435
00:22:50.079 --> 00:22:52.920
<v Speaker 2>Well, that's a great segue actually, as we were talking

436
00:22:52.920 --> 00:22:56.079
<v Speaker 2>about things that are gaining popularity. So I have not

437
00:22:56.319 --> 00:22:58.799
<v Speaker 2>really worked with micro front ends. I've worked in a

438
00:22:59.000 --> 00:23:03.240
<v Speaker 2>very heavy micro service environment where we had different back

439
00:23:03.359 --> 00:23:07.759
<v Speaker 2>ends mostly serving one one single front end. But I'd

440
00:23:07.799 --> 00:23:10.880
<v Speaker 2>love to hear more about what is the use case

441
00:23:10.880 --> 00:23:15.200
<v Speaker 2>because I've had pretty big mono repos that are massive

442
00:23:15.240 --> 00:23:19.000
<v Speaker 2>REACT projects, so I could see if you could break

443
00:23:19.039 --> 00:23:22.440
<v Speaker 2>that up that would possibly be useful. But I'd love

444
00:23:22.480 --> 00:23:25.480
<v Speaker 2>to hear more about how this came about and your

445
00:23:26.160 --> 00:23:28.640
<v Speaker 2>experiences with it. And TJ, I don't know if you've

446
00:23:28.680 --> 00:23:31.000
<v Speaker 2>ever worked with microfrinends.

447
00:23:30.279 --> 00:23:35.119
<v Speaker 6>Either similar experience. I've got it back in with micros

448
00:23:35.279 --> 00:23:39.599
<v Speaker 6>or a background with micro services, but never really had

449
00:23:40.039 --> 00:23:43.039
<v Speaker 6>a use case for a micro fun end. So maybe

450
00:23:43.039 --> 00:23:44.640
<v Speaker 6>maybe a good place to start it. Maybe you could

451
00:23:44.680 --> 00:23:47.720
<v Speaker 6>just give us like the very simple like one oh one,

452
00:23:47.839 --> 00:23:49.119
<v Speaker 6>what is the micro fun end?

453
00:23:49.279 --> 00:23:50.759
<v Speaker 5>Why would you use it? That sort of thing?

454
00:23:51.160 --> 00:23:54.079
<v Speaker 4>Yeah, Or I tell microphone is all about distributing the

455
00:23:54.119 --> 00:23:57.599
<v Speaker 4>work on a front end application, and there are various

456
00:23:57.640 --> 00:24:01.400
<v Speaker 4>ways to do it, which is where the complexity already

457
00:24:01.400 --> 00:24:04.720
<v Speaker 4>comes into play here. So you could, for instance, do

458
00:24:04.799 --> 00:24:06.839
<v Speaker 4>what to just describe as a mono report. You could

459
00:24:06.839 --> 00:24:09.039
<v Speaker 4>do that. You could say, okay, we just now make

460
00:24:09.440 --> 00:24:13.920
<v Speaker 4>certain libraries, let's say component libraries for instance, and in

461
00:24:14.039 --> 00:24:16.160
<v Speaker 4>order to let they have it's still all together. We

462
00:24:16.240 --> 00:24:18.519
<v Speaker 4>have them in a MONORAPO, and we have one large

463
00:24:18.519 --> 00:24:22.440
<v Speaker 4>build that could certainly justify let's say, or it could

464
00:24:22.519 --> 00:24:24.599
<v Speaker 4>be counted as a micro front them. But then we

465
00:24:24.720 --> 00:24:27.759
<v Speaker 4>still have maybe large or longer bill times. Let's say,

466
00:24:28.039 --> 00:24:32.920
<v Speaker 4>we still have maybe conflicting full requests, and we still

467
00:24:32.960 --> 00:24:35.359
<v Speaker 4>need to give everyone access to this. Plus of course,

468
00:24:35.519 --> 00:24:40.359
<v Speaker 4>yeah cd I already mentioned along build times. Now everyone

469
00:24:40.400 --> 00:24:42.920
<v Speaker 4>of course shares the same build pipeline, which means this

470
00:24:43.039 --> 00:24:46.640
<v Speaker 4>is always let's say the one bottle neck potentially, and

471
00:24:46.680 --> 00:24:49.960
<v Speaker 4>so there are of course other ways. So one way

472
00:24:50.079 --> 00:24:54.119
<v Speaker 4>is to say, okay, instead of having real micro services,

473
00:24:54.680 --> 00:24:57.440
<v Speaker 4>we now have micro web servers so to speak, so

474
00:24:57.920 --> 00:25:02.880
<v Speaker 4>servers that still are there, but instead of serving for instance, Jason,

475
00:25:03.000 --> 00:25:06.240
<v Speaker 4>they may still do, they now serve also HTML. And

476
00:25:06.279 --> 00:25:11.480
<v Speaker 4>then we combine these things, for instance on a reverse proxy,

477
00:25:11.559 --> 00:25:14.960
<v Speaker 4>so we have one like an API gateway in front

478
00:25:14.960 --> 00:25:18.440
<v Speaker 4>of it that now takes these different HTML fragments, puts

479
00:25:18.440 --> 00:25:21.519
<v Speaker 4>them together, spits it out. Challenge here is of course,

480
00:25:21.519 --> 00:25:24.039
<v Speaker 4>how do you now debuct this? You're responsible of one

481
00:25:24.039 --> 00:25:27.000
<v Speaker 4>of these fragments, how do you get that? And who's

482
00:25:27.119 --> 00:25:31.119
<v Speaker 4>responsible for let's say, maintaining that reverse proxy or this?

483
00:25:31.440 --> 00:25:34.599
<v Speaker 4>That's good, call it microfront and gateway. The area where

484
00:25:34.640 --> 00:25:37.839
<v Speaker 4>I'm mostly working is in the third one, where you say, oh,

485
00:25:38.000 --> 00:25:40.279
<v Speaker 4>what you can do is you still may have something

486
00:25:40.359 --> 00:25:43.680
<v Speaker 4>like these component lips, but instead of needing a build

487
00:25:43.759 --> 00:25:47.759
<v Speaker 4>process with tooling like webpag or another bundler, you deploy

488
00:25:47.839 --> 00:25:51.319
<v Speaker 4>them independently in form of still javascripts for instance, and

489
00:25:51.559 --> 00:25:54.079
<v Speaker 4>now you combine them in the front and are There

490
00:25:54.119 --> 00:25:57.960
<v Speaker 4>are a couple of popular approaches. Usually what you do

491
00:25:58.000 --> 00:25:59.680
<v Speaker 4>here is, of course you have in a single page

492
00:25:59.680 --> 00:26:02.759
<v Speaker 4>eptic and sometimes people call it in a single page

493
00:26:02.759 --> 00:26:06.200
<v Speaker 4>application of single page applications, because each of these javascripts

494
00:26:06.440 --> 00:26:09.640
<v Speaker 4>can be independent single page application. I'm not really into

495
00:26:09.680 --> 00:26:12.720
<v Speaker 4>that one, but nevertheless you can can, of course refer

496
00:26:12.799 --> 00:26:15.119
<v Speaker 4>to it. The gist of it is that you need

497
00:26:15.160 --> 00:26:18.000
<v Speaker 4>some orchestration engine now in the front ends that runs

498
00:26:18.000 --> 00:26:20.759
<v Speaker 4>in your browser, on your web app, and that can

499
00:26:20.799 --> 00:26:24.039
<v Speaker 4>handle now getting these different javascripts and bringing them together,

500
00:26:24.519 --> 00:26:27.480
<v Speaker 4>isolating them as well as possible. Even though I mean

501
00:26:27.559 --> 00:26:30.319
<v Speaker 4>there are limits. Of course, in document object models, if

502
00:26:30.359 --> 00:26:32.799
<v Speaker 4>you want the true isolation, only way to do it

503
00:26:32.839 --> 00:26:35.400
<v Speaker 4>is an eye frame, which is problematic for a couple

504
00:26:35.440 --> 00:26:38.079
<v Speaker 4>of reasons. Then of course we have the web components

505
00:26:38.119 --> 00:26:40.440
<v Speaker 4>here in this space. They allow us at least to

506
00:26:40.480 --> 00:26:43.599
<v Speaker 4>have proper style isolation, which is great and can be

507
00:26:43.640 --> 00:26:46.359
<v Speaker 4>also not se great. My opinion is for a partier,

508
00:26:48.519 --> 00:26:51.240
<v Speaker 4>but we still have from the scripting perspective a lot

509
00:26:51.279 --> 00:26:54.640
<v Speaker 4>of potential conflicts. And then we can also do something

510
00:26:54.759 --> 00:26:59.759
<v Speaker 4>like yeah, standard script injection with ESMs or UMD modules

511
00:27:00.279 --> 00:27:03.200
<v Speaker 4>and hear things like single spar or the framework where

512
00:27:03.200 --> 00:27:05.960
<v Speaker 4>eye contribute to which is called viral. They help you

513
00:27:06.039 --> 00:27:09.119
<v Speaker 4>to use that as an orchestration engine. So in the end,

514
00:27:09.119 --> 00:27:12.640
<v Speaker 4>it's really about that you allow different teams to work

515
00:27:12.799 --> 00:27:15.839
<v Speaker 4>on the same application even though they have their own repository,

516
00:27:16.000 --> 00:27:20.920
<v Speaker 4>own CD pipeline right, which allows to ship new updates

517
00:27:21.079 --> 00:27:24.839
<v Speaker 4>off their code or a new feature in really seconds

518
00:27:24.839 --> 00:27:27.799
<v Speaker 4>to minutes depending how it is all set up, instead

519
00:27:27.799 --> 00:27:31.720
<v Speaker 4>of waiting longer and maybe having more loaded processes sharing things.

520
00:27:31.720 --> 00:27:33.559
<v Speaker 4>So this is what it is about, a little bit

521
00:27:33.680 --> 00:27:37.240
<v Speaker 4>like in the micro service department. Also here you often

522
00:27:37.279 --> 00:27:41.079
<v Speaker 4>here hear one argument you can now use independent technology.

523
00:27:41.240 --> 00:27:45.079
<v Speaker 4>So one team uses React, another users Anglar. Well, let's

524
00:27:45.079 --> 00:27:48.440
<v Speaker 4>not go there, right. Personally, I would say you should

525
00:27:48.680 --> 00:27:52.640
<v Speaker 4>try to have a set of core technologies because it's

526
00:27:52.640 --> 00:27:54.640
<v Speaker 4>the front and if you combine it in the front

527
00:27:54.640 --> 00:27:56.920
<v Speaker 4>and in the browser, right, you ship all that to

528
00:27:57.640 --> 00:28:00.680
<v Speaker 4>users browser. And if you suddenly run ten frameworks in

529
00:28:00.720 --> 00:28:03.440
<v Speaker 4>this yeah, maybe on a mobile device, it will not

530
00:28:03.559 --> 00:28:06.599
<v Speaker 4>be a great experience, right, So you should maybe try

531
00:28:06.640 --> 00:28:09.880
<v Speaker 4>to limit it to one. Or maybe there's this other

532
00:28:09.920 --> 00:28:13.240
<v Speaker 4>cool framework that's used in a particular page or particular

533
00:28:13.279 --> 00:28:16.000
<v Speaker 4>part of your page, maybe you should try to limit it.

534
00:28:16.039 --> 00:28:18.480
<v Speaker 4>But I guess it's the same again as with micro

535
00:28:18.559 --> 00:28:21.279
<v Speaker 4>services that the goal was also never to have a

536
00:28:21.279 --> 00:28:24.559
<v Speaker 4>patchwork of technology. It was always to just you know,

537
00:28:24.640 --> 00:28:27.599
<v Speaker 4>allow using different technologies. That then the best thing, the

538
00:28:27.640 --> 00:28:30.279
<v Speaker 4>best tool for the job. If you have their service

539
00:28:30.279 --> 00:28:33.039
<v Speaker 4>that deals a lot with it, I don't know, data manipulation,

540
00:28:33.160 --> 00:28:35.680
<v Speaker 4>you can use a language or framework that's dedicated to that.

541
00:28:35.880 --> 00:28:38.319
<v Speaker 4>If you have another service that I don't know, should

542
00:28:38.359 --> 00:28:40.400
<v Speaker 4>do something else, and you have a team that only

543
00:28:40.440 --> 00:28:42.880
<v Speaker 4>knows I don't know, c sharp dot net, they can

544
00:28:43.279 --> 00:28:46.759
<v Speaker 4>use this this one And I guess it's similar here right,

545
00:28:46.880 --> 00:28:50.480
<v Speaker 4>so you shouldn't. Just because you can doesn't mean you should.

546
00:28:51.240 --> 00:28:53.160
<v Speaker 4>But yeah, it gives you a little bit more freedom.

547
00:28:53.200 --> 00:28:55.480
<v Speaker 4>And this is what microphone is about, giving you this

548
00:28:55.599 --> 00:28:59.839
<v Speaker 4>freeedom to actually, yeah, I have distributed developments possible and

549
00:29:00.079 --> 00:29:03.440
<v Speaker 4>be a little both or flexible and agent as we are.

550
00:29:03.680 --> 00:29:05.880
<v Speaker 4>But there are, of course, maybe that's a good transition.

551
00:29:05.920 --> 00:29:09.279
<v Speaker 4>There of course counter arguments too, right, So complexity rises

552
00:29:09.319 --> 00:29:13.920
<v Speaker 4>just that two and you need somehow to Yeah, I

553
00:29:14.000 --> 00:29:18.160
<v Speaker 4>have this orchestration there under control. You also need new

554
00:29:18.240 --> 00:29:22.519
<v Speaker 4>processes because yeah, now teams can maybe deploy independently. Maybe

555
00:29:22.559 --> 00:29:25.880
<v Speaker 4>you don't want that, maybe you want that. It always depends,

556
00:29:25.880 --> 00:29:29.960
<v Speaker 4>and so you always of course also hear shift complexity, right,

557
00:29:30.000 --> 00:29:32.759
<v Speaker 4>So you gain something, but then something else is maybe

558
00:29:32.759 --> 00:29:36.000
<v Speaker 4>a little bit worse or challenging for no silver bubllets.

559
00:29:36.359 --> 00:29:36.559
<v Speaker 2>Kah.

560
00:29:36.680 --> 00:29:39.559
<v Speaker 6>Well, no, it's interesting because I'm thinking like so it

561
00:29:39.559 --> 00:29:42.440
<v Speaker 6>helps my brain to think in terms of like concrete examples.

562
00:29:42.559 --> 00:29:46.160
<v Speaker 6>So I imagine I'm building my standard react app, but

563
00:29:46.200 --> 00:29:48.400
<v Speaker 6>I have a shop, and the shop is quite a

564
00:29:48.400 --> 00:29:51.960
<v Speaker 6>bit different, and so today, because my brain doesn't think

565
00:29:51.960 --> 00:29:55.880
<v Speaker 6>in terms of micro friend ends, I would think like, oh, okay,

566
00:29:56.039 --> 00:29:57.759
<v Speaker 6>my shop is quite a bit different, So I'm going

567
00:29:57.799 --> 00:29:59.480
<v Speaker 6>to want to do my best to make sure I'm

568
00:29:59.519 --> 00:30:02.480
<v Speaker 6>like lazy loading that or like deferring loading of that.

569
00:30:03.160 --> 00:30:05.519
<v Speaker 6>But I would still my gut would still be like, oh, well,

570
00:30:05.559 --> 00:30:08.720
<v Speaker 6>of course i'd keep that apart of my same React application, right,

571
00:30:08.759 --> 00:30:10.400
<v Speaker 6>I just make sure to try to do my best

572
00:30:10.400 --> 00:30:13.559
<v Speaker 6>to lazily load this stuff in. It sounds like the

573
00:30:13.599 --> 00:30:18.160
<v Speaker 6>micro front end approach would essentially say that shop would

574
00:30:18.160 --> 00:30:23.480
<v Speaker 6>be almost like its own separate project in a sense. Right,

575
00:30:24.240 --> 00:30:26.759
<v Speaker 6>that it would that there's some like like you said,

576
00:30:26.839 --> 00:30:30.680
<v Speaker 6>orchestration layer that figures out how to bring that app

577
00:30:30.720 --> 00:30:34.440
<v Speaker 6>in and reconcile it. So first of all, I'm curious

578
00:30:34.440 --> 00:30:37.680
<v Speaker 6>if my understanding of this is correct, and then I'm

579
00:30:37.680 --> 00:30:40.039
<v Speaker 6>also trying to get like sounds like the benefits of

580
00:30:40.079 --> 00:30:43.519
<v Speaker 6>this is it's because it's like it's isolated thing, then

581
00:30:43.640 --> 00:30:45.359
<v Speaker 6>the team that's working on it can kind of work

582
00:30:45.359 --> 00:30:48.640
<v Speaker 6>on it potentially even like deploy it without worrying about

583
00:30:48.640 --> 00:30:50.680
<v Speaker 6>the rest of the app. Like, if you're we assume

584
00:30:50.680 --> 00:30:52.440
<v Speaker 6>the rest of our React app is quite large, it

585
00:30:52.440 --> 00:30:55.039
<v Speaker 6>probably would take forever to build and test and deploy,

586
00:30:55.160 --> 00:30:58.720
<v Speaker 6>and having like little logical sections of these isolated I

587
00:30:58.759 --> 00:31:01.160
<v Speaker 6>could see some benefits of that, but like you said,

588
00:31:01.160 --> 00:31:03.200
<v Speaker 6>I could also see trade off. So I guess, first

589
00:31:03.240 --> 00:31:05.119
<v Speaker 6>of all, is my understanding of this correct, Is that

590
00:31:05.240 --> 00:31:06.480
<v Speaker 6>use case sort of makes sense?

591
00:31:06.880 --> 00:31:09.359
<v Speaker 4>Yeah, it makes We've got in the shop most I mean,

592
00:31:09.400 --> 00:31:12.119
<v Speaker 4>there are a lot of e commerce companies that use

593
00:31:12.279 --> 00:31:15.440
<v Speaker 4>micro fundance. Most of them, however, don't do client side

594
00:31:15.720 --> 00:31:19.240
<v Speaker 4>what we call client SiGe compositions. So where we already

595
00:31:19.279 --> 00:31:22.119
<v Speaker 4>ship a JavaScript that acts as the orchestration layer and

596
00:31:22.119 --> 00:31:25.880
<v Speaker 4>then brings together the other script, most of these companies

597
00:31:25.920 --> 00:31:29.759
<v Speaker 4>actually do the server side composition here. The reason is that,

598
00:31:30.000 --> 00:31:32.240
<v Speaker 4>first of all, their parts are not really so much

599
00:31:32.279 --> 00:31:36.000
<v Speaker 4>about interactivity. Second, they care a lot about performance, so

600
00:31:36.079 --> 00:31:37.839
<v Speaker 4>that they really want to have something that can be

601
00:31:37.880 --> 00:31:39.599
<v Speaker 4>pre cash and so on, and they just send it

602
00:31:39.640 --> 00:31:43.279
<v Speaker 4>out to the end user that it's as fast as possible, right,

603
00:31:43.319 --> 00:31:46.640
<v Speaker 4>so they followed this, one hundred million seconds of additional

604
00:31:46.839 --> 00:31:50.960
<v Speaker 4>loading time means that less revenue, and so they always

605
00:31:51.000 --> 00:31:54.079
<v Speaker 4>try to optimize here. But nevertheless, there are of course

606
00:31:54.519 --> 00:31:58.519
<v Speaker 4>also e commerce shops that are built using microfundant, using

607
00:31:58.559 --> 00:32:01.839
<v Speaker 4>a microphonat approach, and for that, yeah, so what you

608
00:32:01.880 --> 00:32:04.519
<v Speaker 4>would do usually, but there'll of course a lot of

609
00:32:04.519 --> 00:32:07.920
<v Speaker 4>different approaches, but what I personally like as an approach

610
00:32:07.960 --> 00:32:10.799
<v Speaker 4>is that you follow here a more domain chrythm approach.

611
00:32:10.920 --> 00:32:13.799
<v Speaker 4>So what you would want to do is you identify

612
00:32:14.200 --> 00:32:16.759
<v Speaker 4>first of all the grand theme of your applications. Well

613
00:32:16.960 --> 00:32:19.319
<v Speaker 4>it's in the e commerce space, right, But then you

614
00:32:19.720 --> 00:32:23.440
<v Speaker 4>start identifying subdomains here, right. So one subdomain could be

615
00:32:23.799 --> 00:32:25.759
<v Speaker 4>I don't know a recommendation model. So you're on a

616
00:32:25.759 --> 00:32:27.920
<v Speaker 4>product detailt page. You want to see a list of

617
00:32:27.960 --> 00:32:30.960
<v Speaker 4>recommendations related products I don't know, products that may only

618
00:32:31.000 --> 00:32:34.559
<v Speaker 4>make sense for this particular user, and so there could

619
00:32:34.559 --> 00:32:36.680
<v Speaker 4>be one team just working on let's say you I

620
00:32:36.799 --> 00:32:39.319
<v Speaker 4>fragment for that. This team may also want to bring

621
00:32:39.359 --> 00:32:41.920
<v Speaker 4>in I don't know something now menu bar or in

622
00:32:42.680 --> 00:32:45.599
<v Speaker 4>some menus here that that we offer, and we may

623
00:32:45.640 --> 00:32:47.920
<v Speaker 4>have another team that only works on maybe the product

624
00:32:48.000 --> 00:32:50.920
<v Speaker 4>details page. There may be a third team working just

625
00:32:51.000 --> 00:32:54.079
<v Speaker 4>on the product search. And product search is also interesting

626
00:32:54.119 --> 00:32:56.839
<v Speaker 4>because while it may have a dedicated page right search

627
00:32:56.920 --> 00:32:59.960
<v Speaker 4>resultants on, it also has of course maybe a search

628
00:33:00.279 --> 00:33:03.079
<v Speaker 4>that's always visible and they own this spar right, so

629
00:33:03.200 --> 00:33:05.759
<v Speaker 4>every input and so on that's owned by this one team,

630
00:33:06.279 --> 00:33:09.799
<v Speaker 4>and so you would actually not just one screen and

631
00:33:09.799 --> 00:33:11.759
<v Speaker 4>say this one screen belongs to this one team, but

632
00:33:11.799 --> 00:33:15.480
<v Speaker 4>you would actually do it. Well, I actually decompose every

633
00:33:15.559 --> 00:33:17.680
<v Speaker 4>screen that I have, and maybe I have the main

634
00:33:17.720 --> 00:33:20.720
<v Speaker 4>content of this screen that goes into particular team, but

635
00:33:20.759 --> 00:33:23.519
<v Speaker 4>then I see other components that may be on a

636
00:33:23.559 --> 00:33:25.720
<v Speaker 4>lot of pages, maybe all pages, may only be in

637
00:33:25.759 --> 00:33:28.359
<v Speaker 4>a few pages, but I identify in what's the main

638
00:33:28.480 --> 00:33:31.039
<v Speaker 4>does this fragment of your eye lie? And this is

639
00:33:31.079 --> 00:33:34.519
<v Speaker 4>what microphons are about, that you cannot find the correct

640
00:33:34.519 --> 00:33:36.480
<v Speaker 4>team that only let's say, ear is now the search

641
00:33:36.960 --> 00:33:40.160
<v Speaker 4>the search bar and the search page, the search without page,

642
00:33:40.359 --> 00:33:42.279
<v Speaker 4>and they will do everything with it, and then if

643
00:33:42.279 --> 00:33:45.160
<v Speaker 4>there have an improvement for the page, they can ship

644
00:33:45.200 --> 00:33:49.200
<v Speaker 4>it completely independently and they are just responsible for that.

645
00:33:49.559 --> 00:33:52.559
<v Speaker 4>There are also approaches out there, I mean one that

646
00:33:52.680 --> 00:33:56.359
<v Speaker 4>is certainly easier to implement, but in my opinion, will

647
00:33:56.440 --> 00:34:00.599
<v Speaker 4>lead to well, let's say more frustration team where you

648
00:34:00.680 --> 00:34:02.960
<v Speaker 4>divide the UI by what you see on the screen.

649
00:34:03.079 --> 00:34:04.920
<v Speaker 4>So you just say, oh, there's a head up, that

650
00:34:05.000 --> 00:34:07.200
<v Speaker 4>should be a microphonet, there's a food, should be another

651
00:34:07.279 --> 00:34:11.239
<v Speaker 4>microphone in, there's a navigation bars should be a third microphoneant, Yeah,

652
00:34:11.519 --> 00:34:14.159
<v Speaker 4>you see that. It are quite a lot of beginner tutorials.

653
00:34:14.159 --> 00:34:17.360
<v Speaker 4>In my opinion, it's there because it of course makes

654
00:34:17.400 --> 00:34:21.320
<v Speaker 4>sense visually and it's easy to implement, I mean easier maybe.

655
00:34:21.320 --> 00:34:23.719
<v Speaker 4>But on the other hand, of course it will have

656
00:34:23.800 --> 00:34:27.480
<v Speaker 4>a lot of frustration points because suddenly this team that's

657
00:34:27.480 --> 00:34:30.480
<v Speaker 4>doing in navigation bar is always let's say, dragged and

658
00:34:30.519 --> 00:34:32.679
<v Speaker 4>pulled by every other team. We need something in here

659
00:34:32.760 --> 00:34:35.239
<v Speaker 4>under this condition, we need it. Can you just update

660
00:34:35.320 --> 00:34:37.719
<v Speaker 4>that we have a new icon and it will never

661
00:34:38.320 --> 00:34:41.199
<v Speaker 4>work out smoothly? I mean you just created now Yeah.

662
00:34:41.280 --> 00:34:43.239
<v Speaker 4>I don't know if there's a word for it, maybe

663
00:34:43.599 --> 00:34:48.480
<v Speaker 4>spaghetti modulet I don't know. Yes, we can, we can,

664
00:34:48.519 --> 00:34:50.760
<v Speaker 4>we can invent something now here, but but it's really

665
00:34:50.840 --> 00:34:54.320
<v Speaker 4>it will not be maintainable in my experience, and so

666
00:34:54.840 --> 00:34:59.000
<v Speaker 4>I always advocate going for the identifying domains and putting

667
00:34:59.039 --> 00:35:02.199
<v Speaker 4>those into let's say teams or microphondance, which are then

668
00:35:02.480 --> 00:35:06.039
<v Speaker 4>responsible or in charge. Yeah, certain teams are in charge

669
00:35:06.039 --> 00:35:06.360
<v Speaker 4>of them.

670
00:35:06.559 --> 00:35:08.679
<v Speaker 2>That's what I was going to ask is how do

671
00:35:08.800 --> 00:35:12.239
<v Speaker 2>you do you have any advice for how to know

672
00:35:12.400 --> 00:35:17.400
<v Speaker 2>when a project has gotten so big or something a

673
00:35:17.400 --> 00:35:19.920
<v Speaker 2>piece of a project is so complex that it should

674
00:35:20.000 --> 00:35:22.280
<v Speaker 2>be broken out because it seems like that's a very

675
00:35:23.199 --> 00:35:26.280
<v Speaker 2>that might be a very difficult thing to identify. When

676
00:35:26.679 --> 00:35:29.280
<v Speaker 2>when is the right time to break this into its

677
00:35:29.280 --> 00:35:30.599
<v Speaker 2>own separate front.

678
00:35:30.440 --> 00:35:32.320
<v Speaker 4>End the good question.

679
00:35:33.000 --> 00:35:34.480
<v Speaker 3>It depends.

680
00:35:35.920 --> 00:35:38.559
<v Speaker 4>I always say, if you're happy with your monoliths, don't

681
00:35:38.599 --> 00:35:41.320
<v Speaker 4>change it. I mean there's a reason for it. Also,

682
00:35:41.880 --> 00:35:45.280
<v Speaker 4>I mean we started with the monorepple, right, and I

683
00:35:45.400 --> 00:35:47.760
<v Speaker 4>said mono repo. It can also be something like a

684
00:35:47.800 --> 00:35:51.440
<v Speaker 4>microphone introdutionally, just now combined to different pieces of build time,

685
00:35:51.559 --> 00:35:54.119
<v Speaker 4>which is also fine. Right, So if you start with

686
00:35:54.159 --> 00:35:56.440
<v Speaker 4>a monorepple, for instance, if you say, I don't know

687
00:35:56.480 --> 00:35:58.480
<v Speaker 4>if they ever need this micro front and stuff, but

688
00:35:58.639 --> 00:36:01.960
<v Speaker 4>it would be nice to architecturally maybe group it, my

689
00:36:02.440 --> 00:36:05.000
<v Speaker 4>advice would always be, well, start with a monolith, but

690
00:36:05.079 --> 00:36:07.199
<v Speaker 4>do it as a mono report, because if you did that,

691
00:36:07.679 --> 00:36:10.159
<v Speaker 4>it will be easy later on to just extract out

692
00:36:10.199 --> 00:36:12.599
<v Speaker 4>certain modules and just put a little bit of with

693
00:36:12.639 --> 00:36:15.760
<v Speaker 4>the right framework debugging and seedra capabilities on it, and

694
00:36:15.840 --> 00:36:19.199
<v Speaker 4>you then have your distributed microphone and solution. But you

695
00:36:19.239 --> 00:36:21.960
<v Speaker 4>don't need to start with it immediately because that adds

696
00:36:22.159 --> 00:36:25.039
<v Speaker 4>just complexity at a stage where all you should care

697
00:36:25.079 --> 00:36:27.559
<v Speaker 4>about is really bring out your stuff and see that

698
00:36:27.639 --> 00:36:30.639
<v Speaker 4>it works. But nevertheless, so when it's the right time

699
00:36:30.679 --> 00:36:33.239
<v Speaker 4>to let's say, make the transition, well, I would say

700
00:36:33.280 --> 00:36:36.320
<v Speaker 4>if the majority of the team members are unhappy, that's

701
00:36:36.320 --> 00:36:39.800
<v Speaker 4>always a good time because if frustration grows, I mean,

702
00:36:40.079 --> 00:36:42.840
<v Speaker 4>you suddenly have a pain point and you need to

703
00:36:42.880 --> 00:36:45.920
<v Speaker 4>solve that pain point. People wouldn't be let's say, in pain.

704
00:36:45.960 --> 00:36:48.599
<v Speaker 4>If they would say, oh, we ship features too fast, well,

705
00:36:48.639 --> 00:36:51.639
<v Speaker 4>it's too much fun. We can experiment around this new stuff. Well,

706
00:36:51.679 --> 00:36:53.760
<v Speaker 4>that death doesn't sound like pain to me. But if

707
00:36:53.800 --> 00:36:56.000
<v Speaker 4>they say, oh, my poor regress is hanging there for

708
00:36:56.079 --> 00:36:58.400
<v Speaker 4>two weeks and we were supposed to shift that feature

709
00:36:58.440 --> 00:37:01.400
<v Speaker 4>a month ago, but suddenly all the bills take so long,

710
00:37:01.480 --> 00:37:04.360
<v Speaker 4>and then there was this conflict here. In conflict there, well,

711
00:37:04.400 --> 00:37:06.960
<v Speaker 4>it sounds like some things he needs to change somewhere.

712
00:37:07.000 --> 00:37:09.159
<v Speaker 4>I'm not sure if microphone is is a solution here, right,

713
00:37:09.440 --> 00:37:12.079
<v Speaker 4>but I'm sure that something needs to change, and maybe

714
00:37:12.119 --> 00:37:15.920
<v Speaker 4>microphone isn't a good solution if you hear as pain points,

715
00:37:16.000 --> 00:37:19.719
<v Speaker 4>especially things like it needs to go faster particular features.

716
00:37:20.400 --> 00:37:24.159
<v Speaker 4>So this is really where microphones may hit the nailia.

717
00:37:24.519 --> 00:37:28.039
<v Speaker 4>But make no mistake, migration of existing applications I mean,

718
00:37:28.239 --> 00:37:30.800
<v Speaker 4>if we have this case that it just describes monoapo

719
00:37:30.960 --> 00:37:34.920
<v Speaker 4>all nicely grouped this, this is the beauty. This will work.

720
00:37:35.280 --> 00:37:38.199
<v Speaker 4>But usually it's not as nice like this because the

721
00:37:38.239 --> 00:37:41.239
<v Speaker 4>application is five years old. It started nice, but then

722
00:37:41.360 --> 00:37:44.599
<v Speaker 4>duct taper duc Tapier there was a feature that never

723
00:37:44.800 --> 00:37:47.360
<v Speaker 4>someone thought us, so we needed to work around for it.

724
00:37:47.519 --> 00:37:50.320
<v Speaker 4>How can we now do that in this distecret world.

725
00:37:50.760 --> 00:37:53.199
<v Speaker 4>It will not be a pretty journey. I mean, certainly

726
00:37:53.199 --> 00:37:56.400
<v Speaker 4>the architecture will be more sound afterwards, and most time

727
00:37:56.440 --> 00:37:59.119
<v Speaker 4>will not be spent in this microphone in space, but

728
00:37:59.239 --> 00:38:01.519
<v Speaker 4>rather in how can we distributed? Because we've made it

729
00:38:01.599 --> 00:38:04.880
<v Speaker 4>a smucketti before it. But certainly I think this is

730
00:38:04.920 --> 00:38:07.920
<v Speaker 4>when you hear enough people complaining, it's a good point

731
00:38:08.039 --> 00:38:08.840
<v Speaker 4>to think about it.

732
00:38:08.920 --> 00:38:13.719
<v Speaker 6>Yeah, Honestly, the productivity and the sort of flexibility around

733
00:38:13.800 --> 00:38:16.679
<v Speaker 6>this seems like the biggest advantage to me because I've

734
00:38:16.679 --> 00:38:19.960
<v Speaker 6>certainly been on teams and been in projects where it's

735
00:38:20.320 --> 00:38:22.079
<v Speaker 6>like you put it in terms of happiness, but it's

736
00:38:22.280 --> 00:38:25.239
<v Speaker 6>almost in terms of just like how how evil you

737
00:38:25.280 --> 00:38:28.880
<v Speaker 6>are to get stuff done? Because countless times where like

738
00:38:28.920 --> 00:38:30.719
<v Speaker 6>you go to deploy something and it's like, oh no,

739
00:38:30.800 --> 00:38:33.320
<v Speaker 6>we can't put the push this out because this is

740
00:38:33.360 --> 00:38:34.960
<v Speaker 6>in the way, or no, this is tied to this

741
00:38:35.000 --> 00:38:36.159
<v Speaker 6>really so that's not ready.

742
00:38:36.199 --> 00:38:37.360
<v Speaker 5>We have to back this out.

743
00:38:37.920 --> 00:38:39.480
<v Speaker 6>We have to bring in the person who's really good

744
00:38:39.480 --> 00:38:42.119
<v Speaker 6>at get to figure out how to reconcile all of

745
00:38:42.119 --> 00:38:44.679
<v Speaker 6>these problems, right, and you keep stepping on each other's toes,

746
00:38:45.119 --> 00:38:48.199
<v Speaker 6>and nobody wants that to be their day at work,

747
00:38:48.440 --> 00:38:51.840
<v Speaker 6>like you want to be shipping things, doing things, and

748
00:38:52.320 --> 00:38:56.440
<v Speaker 6>software just being a complicated topic. I think as projects grow,

749
00:38:56.519 --> 00:38:59.360
<v Speaker 6>as we work on bigger and bigger things, there's something

750
00:38:59.599 --> 00:39:02.800
<v Speaker 6>in here about that sort of stuff getting in your way.

751
00:39:02.960 --> 00:39:05.559
<v Speaker 6>So it's an interesting way of bringing it out because

752
00:39:05.599 --> 00:39:09.280
<v Speaker 6>as you described it, you're talking far more granular components

753
00:39:09.320 --> 00:39:11.719
<v Speaker 6>than I had like pictured in my head because again,

754
00:39:11.719 --> 00:39:13.400
<v Speaker 6>like I went, I immediately went to like, oh, my

755
00:39:13.639 --> 00:39:17.840
<v Speaker 6>entire shopping experience, but you're talking like just even like

756
00:39:17.920 --> 00:39:21.159
<v Speaker 6>individual widgets like the search or the products thing, and

757
00:39:21.800 --> 00:39:24.960
<v Speaker 6>it's it just goes to show how like my mind

758
00:39:25.239 --> 00:39:27.480
<v Speaker 6>does not work this way just because I haven't been

759
00:39:27.519 --> 00:39:30.239
<v Speaker 6>a I haven't really considered this. So now like I

760
00:39:30.320 --> 00:39:32.199
<v Speaker 6>used to like retrain my brain to like when I

761
00:39:32.239 --> 00:39:34.519
<v Speaker 6>see things like that, to think, oh, like that's that's

762
00:39:34.559 --> 00:39:37.519
<v Speaker 6>an option or that's a potential way that I can

763
00:39:37.639 --> 00:39:38.159
<v Speaker 6>attack this.

764
00:39:38.800 --> 00:39:41.559
<v Speaker 4>Yeah, I mean it takes. I mean I'm not working

765
00:39:41.599 --> 00:39:44.440
<v Speaker 4>in this now for already more than five years in

766
00:39:44.480 --> 00:39:46.599
<v Speaker 4>the microphoneance space. So when I thought it was just

767
00:39:46.639 --> 00:39:50.559
<v Speaker 4>the well the term microphone and wasn't well existing yet,

768
00:39:51.039 --> 00:39:53.360
<v Speaker 4>they later on I think it first came up in

769
00:39:53.400 --> 00:39:56.280
<v Speaker 4>the salt Works radar. I don't even know. Someone taught

770
00:39:56.320 --> 00:39:59.480
<v Speaker 4>me while ago that it was first point. But anyway,

771
00:39:59.679 --> 00:40:02.960
<v Speaker 4>that was then coined afterwards, just retrospectively, I was like, ah,

772
00:40:03.719 --> 00:40:06.599
<v Speaker 4>that's what That's what I was doing. Right either way,

773
00:40:06.679 --> 00:40:09.159
<v Speaker 4>I mean that you don't start with that right away.

774
00:40:09.199 --> 00:40:13.519
<v Speaker 4>And still, of course getting the rights decomposition right on

775
00:40:13.840 --> 00:40:16.719
<v Speaker 4>this domain that I described is also not easy, right,

776
00:40:16.800 --> 00:40:19.360
<v Speaker 4>so you need, of course do main experts. You need

777
00:40:19.440 --> 00:40:22.719
<v Speaker 4>to know people of course that really understands the requirements

778
00:40:22.719 --> 00:40:25.239
<v Speaker 4>of your solution that you either want to build or

779
00:40:25.239 --> 00:40:27.199
<v Speaker 4>that you have built and I want to let's say

780
00:40:27.440 --> 00:40:30.400
<v Speaker 4>roll out as microphone then and yeah, you need of

781
00:40:30.400 --> 00:40:34.400
<v Speaker 4>course to then train the people. Ideally, of course, this

782
00:40:34.519 --> 00:40:37.519
<v Speaker 4>is the experience I had in most projects. I mean,

783
00:40:37.559 --> 00:40:41.000
<v Speaker 4>if the micro frontum setup was done well, developers of

784
00:40:41.000 --> 00:40:44.400
<v Speaker 4>individual modules don't even let's say, know that they are

785
00:40:44.440 --> 00:40:48.159
<v Speaker 4>doing micro fundams. I mean they're just developing. I mean

786
00:40:48.440 --> 00:40:51.599
<v Speaker 4>you tell them you now do the shopping basket, okay,

787
00:40:52.079 --> 00:40:55.320
<v Speaker 4>and then they develop ideally at least now this client

788
00:40:55.400 --> 00:40:58.440
<v Speaker 4>site perdigon like for a single page application. They even

789
00:40:58.480 --> 00:41:02.360
<v Speaker 4>have the debugging experience the same as you know, as

790
00:41:02.360 --> 00:41:05.199
<v Speaker 4>if you would debug the grand application right on. The

791
00:41:05.239 --> 00:41:07.360
<v Speaker 4>difference is in their view, they only see let's say,

792
00:41:07.440 --> 00:41:09.760
<v Speaker 4>naked application. Maybe I don't know how to food are

793
00:41:09.760 --> 00:41:12.480
<v Speaker 4>in there, some design elements and they're they're saying that

794
00:41:12.519 --> 00:41:14.760
<v Speaker 4>they are focusing on and all the other microphones may

795
00:41:14.760 --> 00:41:17.119
<v Speaker 4>not even be there. Maybe they are there. I don't

796
00:41:17.119 --> 00:41:19.519
<v Speaker 4>know they've used in but you can decide it in

797
00:41:19.559 --> 00:41:22.559
<v Speaker 4>the setup for instance. And so they don't even know.

798
00:41:22.599 --> 00:41:25.039
<v Speaker 4>They're just developed there and they don't need to know

799
00:41:25.079 --> 00:41:27.960
<v Speaker 4>the particularities of this kind of style. And I think

800
00:41:28.039 --> 00:41:30.280
<v Speaker 4>this is a good way, because we're back at the

801
00:41:30.320 --> 00:41:33.079
<v Speaker 4>black box. I guess here, if you would now know

802
00:41:33.199 --> 00:41:34.840
<v Speaker 4>a lot of stuff, or need to know all this

803
00:41:34.960 --> 00:41:38.400
<v Speaker 4>stuff what's happening below, I mean certainly would be great

804
00:41:38.679 --> 00:41:42.440
<v Speaker 4>and in certain edge case conditions it would help you.

805
00:41:42.639 --> 00:41:46.800
<v Speaker 4>No questions are But in the ninety ninety five percent case, right,

806
00:41:47.119 --> 00:41:49.280
<v Speaker 4>I mean if the platform with the run time or

807
00:41:49.360 --> 00:41:51.320
<v Speaker 4>it takes away all that for you, and all you

808
00:41:51.400 --> 00:41:53.519
<v Speaker 4>need to do is focus on your problem and how

809
00:41:53.559 --> 00:41:58.199
<v Speaker 4>you solve that. No technological questions asked, No, oh oh ah,

810
00:41:58.360 --> 00:42:00.239
<v Speaker 4>I need to wire up this with that. No, you

811
00:42:00.400 --> 00:42:03.280
<v Speaker 4>just focus on your domain specific problem. This is where

812
00:42:03.280 --> 00:42:05.239
<v Speaker 4>I want to be because at the end, I mean,

813
00:42:05.280 --> 00:42:07.840
<v Speaker 4>this is also where for instance, our case, we are

814
00:42:07.840 --> 00:42:10.920
<v Speaker 4>getting the money from our customer doesn't say we're paying

815
00:42:10.960 --> 00:42:15.280
<v Speaker 4>you to debuct react. No, we're paying you to bring

816
00:42:15.639 --> 00:42:18.480
<v Speaker 4>the shopping cards to life, for instance. And I think

817
00:42:18.760 --> 00:42:21.400
<v Speaker 4>this is working in your problem. I think this is

818
00:42:21.679 --> 00:42:25.559
<v Speaker 4>what makes some frameworks productive and great, and others well

819
00:42:25.920 --> 00:42:31.199
<v Speaker 4>technological interesting, but otherwise maybe not the productive.

820
00:42:31.599 --> 00:42:34.280
<v Speaker 2>So are these the kinds of things? And I'm sure

821
00:42:34.440 --> 00:42:37.000
<v Speaker 2>much more that you talk about in your book that

822
00:42:37.039 --> 00:42:37.880
<v Speaker 2>you just wrote.

823
00:42:38.119 --> 00:42:40.840
<v Speaker 4>Yeah, the book is, I would say, well, let's be

824
00:42:40.960 --> 00:42:44.519
<v Speaker 4>just end in the camera. It's called The Art of Microfondance.

825
00:42:44.880 --> 00:42:47.639
<v Speaker 4>You can find an Amazon. It's released from the Pucked

826
00:42:48.519 --> 00:42:52.880
<v Speaker 4>Publishing company, and half of the book is very practical.

827
00:42:53.000 --> 00:42:57.079
<v Speaker 4>So there I mentioned, let's say the three grant schemes

828
00:42:57.079 --> 00:42:59.599
<v Speaker 4>that we have in a microphonance space right, built time,

829
00:42:59.679 --> 00:43:05.159
<v Speaker 4>in service side, client side. These are all covered in here.

830
00:43:05.440 --> 00:43:07.559
<v Speaker 4>Class of course, a lot more patterns, so there's a

831
00:43:07.559 --> 00:43:10.119
<v Speaker 4>lot of also here a lot of shades of prey, right,

832
00:43:10.440 --> 00:43:13.400
<v Speaker 4>so I think it has seven patterns and all of

833
00:43:13.440 --> 00:43:18.719
<v Speaker 4>these very practically introduced. But most of the or let's say,

834
00:43:18.760 --> 00:43:21.039
<v Speaker 4>the other half of the book really deals that with

835
00:43:21.440 --> 00:43:23.679
<v Speaker 4>how do I choose the right to maintain composition? How

836
00:43:23.719 --> 00:43:26.639
<v Speaker 4>do I now work with designers for instance, because they

837
00:43:26.679 --> 00:43:29.280
<v Speaker 4>will still design a monolith and you need to teach

838
00:43:29.360 --> 00:43:33.159
<v Speaker 4>them what are you doing technically that they will well

839
00:43:33.639 --> 00:43:36.440
<v Speaker 4>give you the best experience because at the end of

840
00:43:36.480 --> 00:43:39.400
<v Speaker 4>the day you will design, you will create something that

841
00:43:39.599 --> 00:43:42.440
<v Speaker 4>is in its mature flexible. So for instance, the navigation bar,

842
00:43:42.920 --> 00:43:45.559
<v Speaker 4>it's not cut in stone. Someone can just write a

843
00:43:45.599 --> 00:43:47.880
<v Speaker 4>new feature and they have a new item. How does

844
00:43:47.920 --> 00:43:50.639
<v Speaker 4>it behave in under these conditions? Right, So suddenly designers

845
00:43:50.639 --> 00:43:53.280
<v Speaker 4>need to go beyond the static screen design and really

846
00:43:53.280 --> 00:43:57.920
<v Speaker 4>think about these things, but also about organizational changes, because yeah,

847
00:43:58.039 --> 00:44:01.599
<v Speaker 4>if you really distribute the code, suddenly responsibility should be

848
00:44:01.639 --> 00:44:04.840
<v Speaker 4>also distributed and things like that. So it's really half

849
00:44:04.880 --> 00:44:07.599
<v Speaker 4>and half, so one half very very practical. The other

850
00:44:07.679 --> 00:44:10.800
<v Speaker 4>half I would still say practical, but maybe not for

851
00:44:10.920 --> 00:44:15.159
<v Speaker 4>the let's say standard developer more let's say for architects

852
00:44:15.320 --> 00:44:18.679
<v Speaker 4>or decision makers than and people to say, oh, I

853
00:44:18.719 --> 00:44:21.400
<v Speaker 4>now want to know what what is beyond the horizon

854
00:44:21.440 --> 00:44:24.840
<v Speaker 4>if we go that way. Yeah, and certainly is one

855
00:44:24.840 --> 00:44:26.280
<v Speaker 4>of the things I covered.

856
00:44:26.400 --> 00:44:28.960
<v Speaker 5>He and it's got a five star average on Amazon,

857
00:44:29.079 --> 00:44:29.960
<v Speaker 5>so I mean.

858
00:44:32.480 --> 00:44:35.119
<v Speaker 4>It's a lot of small numbers. So I wouldn't say

859
00:44:35.119 --> 00:44:35.760
<v Speaker 4>it's dead.

860
00:44:36.599 --> 00:44:38.280
<v Speaker 5>You've got to market it, sell the bush.

861
00:44:44.880 --> 00:44:47.639
<v Speaker 4>Sorry, Yeah, I didn't want to just spoil you, and

862
00:44:49.239 --> 00:44:51.679
<v Speaker 4>I always try to be honest. So at the moment, mean,

863
00:44:51.719 --> 00:44:54.039
<v Speaker 4>the book is fresh one month out there, so I

864
00:44:54.079 --> 00:44:56.199
<v Speaker 4>don't know how many reaviions it now has on Amazon.

865
00:44:56.239 --> 00:44:58.960
<v Speaker 4>Common on the German side has I think two reviews

866
00:44:59.360 --> 00:45:02.000
<v Speaker 4>for three I don't know anyway all five starts at

867
00:45:02.039 --> 00:45:04.760
<v Speaker 4>the moment. It will not stay that way, so I'm

868
00:45:05.159 --> 00:45:07.719
<v Speaker 4>I'm a realist in that case. But still it would

869
00:45:07.760 --> 00:45:11.480
<v Speaker 4>be happy if any guy, any any girl once say

870
00:45:11.559 --> 00:45:14.000
<v Speaker 4>well look at that. Just also you can give me,

871
00:45:14.079 --> 00:45:17.199
<v Speaker 4>let's say, a message on Twitter for instance, because I

872
00:45:17.280 --> 00:45:20.760
<v Speaker 4>still have I think fifteen or twenty five percent of

873
00:45:20.880 --> 00:45:23.880
<v Speaker 4>the ebook, and there may be a chance. I still

874
00:45:23.920 --> 00:45:27.440
<v Speaker 4>have I think some physical copies, so hard copies of

875
00:45:27.480 --> 00:45:29.880
<v Speaker 4>this that's like the one I old man that I

876
00:45:29.880 --> 00:45:32.880
<v Speaker 4>could get you for free actually if you message me.

877
00:45:32.920 --> 00:45:35.360
<v Speaker 4>But these are limited. Actually I think I have five

878
00:45:35.480 --> 00:45:38.639
<v Speaker 4>or six left there. But anyway, if you're interested, always

879
00:45:38.679 --> 00:45:42.199
<v Speaker 4>just taking me. I'm very open, of course, and sorry,

880
00:45:42.440 --> 00:45:44.719
<v Speaker 4>I want to sell the book more. It's the best together.

881
00:45:45.079 --> 00:45:48.480
<v Speaker 4>It even discusses west development in general in the introduction.

882
00:45:48.920 --> 00:45:51.679
<v Speaker 4>You should read it. If you don't know what cgi

883
00:45:51.920 --> 00:45:55.519
<v Speaker 4>SSI and so on, it's in there. If we talked

884
00:45:55.519 --> 00:45:58.880
<v Speaker 4>about tooling web peg parcel, it's all disgusting here. Why

885
00:45:59.440 --> 00:46:02.880
<v Speaker 4>that's to new? That's not in this book at I think.

886
00:46:02.920 --> 00:46:06.639
<v Speaker 4>But I even have ees building here, so you can't say,

887
00:46:06.719 --> 00:46:10.719
<v Speaker 4>I'm yeah, there's still pretty new stuff in here. Could

888
00:46:10.719 --> 00:46:13.119
<v Speaker 4>be on the computing stuff. But anyway, any kind of

889
00:46:13.199 --> 00:46:16.400
<v Speaker 4>criticism also to me, right, So if there is something

890
00:46:16.440 --> 00:46:18.559
<v Speaker 4>you like to improved, I don't know if there will

891
00:46:18.559 --> 00:46:20.599
<v Speaker 4>ever be a second edition, but just tell me. I

892
00:46:20.679 --> 00:46:24.320
<v Speaker 4>always also love to learn. And yeah, I'm not saying

893
00:46:24.360 --> 00:46:27.280
<v Speaker 4>the book is perfect, but I try to put everything

894
00:46:27.320 --> 00:46:30.199
<v Speaker 4>I know about my performance in there, even though as

895
00:46:30.239 --> 00:46:32.920
<v Speaker 4>always right, you finish the book when you're like, hmm,

896
00:46:32.920 --> 00:46:35.840
<v Speaker 4>this is one cool thing. I didn't mention it, but

897
00:46:35.880 --> 00:46:38.159
<v Speaker 4>then I just make a blog post about it and then.

898
00:46:42.039 --> 00:46:43.239
<v Speaker 3>Well that's fantastic.

899
00:46:43.360 --> 00:46:46.400
<v Speaker 2>So Florian, as we were talking about, if people want

900
00:46:46.400 --> 00:46:48.360
<v Speaker 2>to get in touch with you about your book or

901
00:46:48.400 --> 00:46:51.519
<v Speaker 2>about anything else, what are the best ways to reach you, I.

902
00:46:51.480 --> 00:46:54.480
<v Speaker 4>Guess the best way is Twitter. They might handle the

903
00:46:54.519 --> 00:46:57.840
<v Speaker 4>flow and rubble just one word. Maybe we'll have the

904
00:46:57.880 --> 00:47:01.920
<v Speaker 4>address also in there. Otherwise, I'm of course on guit

905
00:47:02.079 --> 00:47:05.719
<v Speaker 4>ub some of the projects I'm contributing there to Guita,

906
00:47:05.960 --> 00:47:09.119
<v Speaker 4>So this is a chetroom. For instance. I'm very active

907
00:47:09.159 --> 00:47:11.480
<v Speaker 4>in the Piral chatroom, so if you're interested in a

908
00:47:11.559 --> 00:47:14.920
<v Speaker 4>microphone and framework PIRL, I will also paste the address

909
00:47:14.920 --> 00:47:17.920
<v Speaker 4>in there. Would we want to check out? And we

910
00:47:17.960 --> 00:47:20.880
<v Speaker 4>have their public guitar chatroom. I'm very active there. You

911
00:47:20.920 --> 00:47:25.239
<v Speaker 4>will see me chatting around giving answers to Pyrol in

912
00:47:25.320 --> 00:47:28.519
<v Speaker 4>particular or microphones in general. And I think we have

913
00:47:28.559 --> 00:47:31.039
<v Speaker 4>a great community in our channel. We have I don't know,

914
00:47:31.199 --> 00:47:34.880
<v Speaker 4>one hundred and sixty one hundred and seventy people, not

915
00:47:35.000 --> 00:47:38.159
<v Speaker 4>all of course active all day, but there's always one

916
00:47:38.199 --> 00:47:41.280
<v Speaker 4>good answer for every question. And I will paste it

917
00:47:41.320 --> 00:47:44.360
<v Speaker 4>in the chatroom. But that's either I guess that's the

918
00:47:44.400 --> 00:47:49.159
<v Speaker 4>best way to reach me. Otherwise, of course email can

919
00:47:49.239 --> 00:47:53.480
<v Speaker 4>give you this and otherwise on my personal website. They're

920
00:47:53.480 --> 00:47:55.760
<v Speaker 4>also all the I mean, I'm also in Skype and

921
00:47:55.800 --> 00:48:04.000
<v Speaker 4>so on. All the messengers rights in a Richmond which one. Yeah,

922
00:48:04.119 --> 00:48:07.679
<v Speaker 4>it's like it this comic about all the stand ups, right,

923
00:48:07.719 --> 00:48:10.320
<v Speaker 4>So there are certain stand ups we need to imprace

924
00:48:10.320 --> 00:48:15.039
<v Speaker 4>them all. We need a new one. It's the same thing,

925
00:48:15.280 --> 00:48:18.119
<v Speaker 4>so we need a messenger to have all the messengers.

926
00:48:17.840 --> 00:48:19.119
<v Speaker 3>Very good, excellent.

927
00:48:19.719 --> 00:48:22.039
<v Speaker 2>Well, now is a portion of the show where we

928
00:48:22.079 --> 00:48:25.079
<v Speaker 2>move into picks. So TJ, would you like to start

929
00:48:25.119 --> 00:48:25.960
<v Speaker 2>us off this week?

930
00:48:26.199 --> 00:48:29.320
<v Speaker 6>Yeah, I'm going to pick some Marvel stuff. So I

931
00:48:29.519 --> 00:48:33.159
<v Speaker 6>went to the theater for the first time and since COVID,

932
00:48:33.239 --> 00:48:36.239
<v Speaker 6>which honestly was probably the best part of the experience.

933
00:48:36.239 --> 00:48:38.840
<v Speaker 6>It was just really I didn't realize I'm not a

934
00:48:38.880 --> 00:48:40.840
<v Speaker 6>big movie person. I didn't realize how much I sort

935
00:48:40.880 --> 00:48:43.800
<v Speaker 6>of missed the atmosphere of this actually going seeing a

936
00:48:43.800 --> 00:48:47.159
<v Speaker 6>movie in person. And we saw Black Widow. It was

937
00:48:47.159 --> 00:48:51.159
<v Speaker 6>pretty good. We definitely enjoyed it. But it's set off.

938
00:48:52.079 --> 00:48:53.920
<v Speaker 5>Now we have to watch all the Marvel things.

939
00:48:54.000 --> 00:48:58.320
<v Speaker 6>So now we've been on Disney Plus and started WandaVision,

940
00:48:58.559 --> 00:49:02.880
<v Speaker 6>which was it' quite the trip, like, very very engaging

941
00:49:03.119 --> 00:49:07.360
<v Speaker 6>and very interesting show. So highly recommend, I guess go

942
00:49:07.400 --> 00:49:09.760
<v Speaker 6>to if you can safely go to a movie theater. Now,

943
00:49:09.920 --> 00:49:12.440
<v Speaker 6>i'd recommend getting back to that. And WandaVision has been

944
00:49:12.480 --> 00:49:15.000
<v Speaker 6>a pretty good show that sounds like a good re

945
00:49:15.239 --> 00:49:19.280
<v Speaker 6>entrance to the movies. Marvel movies very rarely disappoint me.

946
00:49:19.960 --> 00:49:20.719
<v Speaker 5>Yeah.

947
00:49:20.800 --> 00:49:21.320
<v Speaker 4>Nice.

948
00:49:22.559 --> 00:49:26.400
<v Speaker 2>Well, my pick this week is going to be totally unrelated.

949
00:49:26.559 --> 00:49:30.440
<v Speaker 2>It is a GitHub course that I found, or I

950
00:49:30.440 --> 00:49:34.360
<v Speaker 2>guess GitHub documentation and it's called IoT for Beginners, and

951
00:49:34.400 --> 00:49:37.880
<v Speaker 2>it's actually made by Microsoft. But if you've listened to

952
00:49:37.920 --> 00:49:40.639
<v Speaker 2>the show with any regularity, you'll know that I started

953
00:49:40.719 --> 00:49:44.760
<v Speaker 2>a new job about a month ago now, and the job,

954
00:49:44.800 --> 00:49:47.480
<v Speaker 2>while it is web development, it is working for a

955
00:49:47.519 --> 00:49:53.159
<v Speaker 2>company that specializes in Internet of Technology enablement called blues Wireless,

956
00:49:53.800 --> 00:49:58.000
<v Speaker 2>and so we make things called note cards that connect

957
00:49:58.079 --> 00:50:01.599
<v Speaker 2>to Raspberry pies or are we knows, or to just

958
00:50:01.760 --> 00:50:05.559
<v Speaker 2>the cloud by themselves. And so I need to actually

959
00:50:05.679 --> 00:50:08.800
<v Speaker 2>understand how the Internet of Things works because I've never

960
00:50:08.840 --> 00:50:12.960
<v Speaker 2>really interacted with it before. So I'm starting with some

961
00:50:13.039 --> 00:50:16.639
<v Speaker 2>of the really basic online things that are available to

962
00:50:17.519 --> 00:50:20.480
<v Speaker 2>kind of learn how to use raspberry pies and get

963
00:50:20.519 --> 00:50:25.199
<v Speaker 2>into that sort of space. And this IoT for beginners

964
00:50:25.480 --> 00:50:30.880
<v Speaker 2>is very comprehensive. It's free, there's videos, there's build kits

965
00:50:30.920 --> 00:50:34.360
<v Speaker 2>that they recommend, there's all kinds of really useful getting

966
00:50:34.440 --> 00:50:37.599
<v Speaker 2>started from the very basics, and I'm really enjoying it,

967
00:50:37.719 --> 00:50:40.119
<v Speaker 2>So I would recommend that for anybody who's kind of

968
00:50:40.159 --> 00:50:44.360
<v Speaker 2>looking for a foray into it. So, Florian, do you

969
00:50:44.440 --> 00:50:46.280
<v Speaker 2>have anything that you'd like to pick?

970
00:50:46.599 --> 00:50:49.079
<v Speaker 4>Well, I mean, first of all, well those are all

971
00:50:49.159 --> 00:50:53.400
<v Speaker 4>good picks. Black Widow. I still want to see I've seen.

972
00:50:53.480 --> 00:50:56.800
<v Speaker 4>I can also stream it. It's the twenty euros quite

973
00:50:56.800 --> 00:51:01.159
<v Speaker 4>expensive actually for the extreaming access there. But anyway, one division,

974
00:51:01.199 --> 00:51:04.280
<v Speaker 4>I yeah, I've seen the first two episodes. It was

975
00:51:04.760 --> 00:51:05.960
<v Speaker 4>crazy for me. I don't know.

976
00:51:06.519 --> 00:51:09.880
<v Speaker 6>I actually you have to stick with it because it

977
00:51:09.920 --> 00:51:13.480
<v Speaker 6>starts absolutely insane and then they start to somewhat explain it.

978
00:51:14.159 --> 00:51:17.119
<v Speaker 4>But then I heard it got better, but I mean

979
00:51:17.119 --> 00:51:20.280
<v Speaker 4>they lost me. Anyway. The Microsoft things, they're always greater.

980
00:51:20.360 --> 00:51:23.159
<v Speaker 4>I remember when Microsoft release, for instance, the clouds patterns

981
00:51:23.199 --> 00:51:25.400
<v Speaker 4>that was really great. So they always do a great

982
00:51:25.480 --> 00:51:30.039
<v Speaker 4>job at documentation and being really comprehensive, really accessible and approachable,

983
00:51:30.199 --> 00:51:31.920
<v Speaker 4>so that that it certainly kick out. I need to

984
00:51:32.000 --> 00:51:34.679
<v Speaker 4>check that out. So my pig would be a book

985
00:51:35.440 --> 00:51:37.800
<v Speaker 4>and all good. But I mean that's for me, is

986
00:51:37.840 --> 00:51:40.880
<v Speaker 4>like a hidden classic which is called I don't know

987
00:51:41.239 --> 00:51:45.079
<v Speaker 4>your code as a crime scene. It's, yeah, an interesting

988
00:51:45.119 --> 00:51:48.920
<v Speaker 4>book in that fact that sometimes I mean already things

989
00:51:49.000 --> 00:51:53.239
<v Speaker 4>like for instance we heard about GIT here leave trails

990
00:51:53.480 --> 00:51:55.639
<v Speaker 4>where you can see where the problems are in your

991
00:51:55.679 --> 00:51:58.280
<v Speaker 4>code base. So for instance, if you see that let's

992
00:51:58.320 --> 00:52:01.760
<v Speaker 4>say a certain amount of commit is always in a

993
00:52:01.800 --> 00:52:05.599
<v Speaker 4>part of your application with a certain file, let's say that

994
00:52:06.000 --> 00:52:08.559
<v Speaker 4>usually doesn't carry any feature, but you know it's just

995
00:52:08.800 --> 00:52:12.400
<v Speaker 4>for instance, some orchestration lays. Then you know architecturally something

996
00:52:12.480 --> 00:52:15.199
<v Speaker 4>isn't dry because after a while, I mean, it should

997
00:52:15.320 --> 00:52:18.239
<v Speaker 4>stabilize pretty much, and you should just see for instance

998
00:52:18.320 --> 00:52:21.679
<v Speaker 4>changes in well, new files being added, new features coming along.

999
00:52:21.960 --> 00:52:23.719
<v Speaker 4>And if you see a pattern like that, well you

1000
00:52:23.800 --> 00:52:27.719
<v Speaker 4>have a very healthy application. Congratulations. Usually, especially in our

1001
00:52:27.760 --> 00:52:30.599
<v Speaker 4>own applications, I see a lot of commits happening to

1002
00:52:30.719 --> 00:52:33.760
<v Speaker 4>files where well they should be already stable somehow. But

1003
00:52:34.039 --> 00:52:36.960
<v Speaker 4>either I'm just in refectory mood or really something is

1004
00:52:37.480 --> 00:52:39.760
<v Speaker 4>not really done right. And I mean, this book goes

1005
00:52:39.800 --> 00:52:42.639
<v Speaker 4>into a lot of patterns of detecting such fishy things.

1006
00:52:43.119 --> 00:52:46.639
<v Speaker 4>What you can do then and well, yeah, following then

1007
00:52:46.760 --> 00:52:50.239
<v Speaker 4>your crimes to detect what to improve, because after all,

1008
00:52:50.239 --> 00:52:53.639
<v Speaker 4>we shouldn't just reflector for the refectory sake, but we

1009
00:52:53.639 --> 00:52:56.599
<v Speaker 4>should reflect them and make things more productive. But for

1010
00:52:56.719 --> 00:52:59.679
<v Speaker 4>that's the first to recognize what's all making us not

1011
00:52:59.719 --> 00:53:02.920
<v Speaker 4>so abductive. This book is I think, at least for

1012
00:53:02.960 --> 00:53:05.400
<v Speaker 4>me it was and still is when I haven't opened

1013
00:53:05.440 --> 00:53:08.559
<v Speaker 4>it a great guide. Today I will post an Amazon

1014
00:53:08.599 --> 00:53:09.199
<v Speaker 4>link for it.

1015
00:53:09.320 --> 00:53:09.840
<v Speaker 3>Excellent.

1016
00:53:09.920 --> 00:53:12.360
<v Speaker 2>That sounds like a really good read and something that

1017
00:53:12.400 --> 00:53:15.119
<v Speaker 2>I will definitely be looking into. I'm always looking for

1018
00:53:15.679 --> 00:53:19.320
<v Speaker 2>new ways to improve my own coding practices. Well, Florian,

1019
00:53:19.400 --> 00:53:21.920
<v Speaker 2>it has been an absolute pleasure to have you on.

1020
00:53:22.039 --> 00:53:24.360
<v Speaker 2>Thank you so much for joining us today on React

1021
00:53:24.360 --> 00:53:24.840
<v Speaker 2>Around Up.

1022
00:53:25.039 --> 00:53:28.320
<v Speaker 4>Thanks for having me was a pleasure, all right.

1023
00:53:28.440 --> 00:53:30.920
<v Speaker 2>We will see everybody on the next episode.
