WEBVTT

1
00:00:02.400 --> 00:00:05.300
<00:00:02.400>Thank <00:00:02.600>you <00:00:02.800>very <00:00:03.000>much. <00:00:03.199>So, <00:00:03.400>like <00:00:03.599>I <00:00:03.800>said,

2
00:00:05.300 --> 00:00:09.600
<00:00:05.300>it's <00:00:05.439>going <00:00:05.580>to <00:00:05.720>be <00:00:05.859>here <00:00:06.000>at <00:00:06.140>we <00:00:06.279>are <00:00:06.420>developers <00:00:06.560>and <00:00:06.699>this

3
00:00:08.600 --> 00:00:12.600
<00:00:08.600>is <00:00:08.879>not <00:00:09.160>my <00:00:09.440>dog <00:00:09.719>unfortunately, <00:00:10.000>but

4
00:00:11.600 --> 00:00:14.300
<00:00:11.600>at <00:00:13.000>least

5
00:00:14.300 --> 00:00:17.300
<00:00:14.300>he <00:00:14.533>keeps <00:00:14.766>clean <00:00:15.000>and <00:00:15.233>after <00:00:15.466>his <00:00:15.700>stuff

6
00:00:17.300 --> 00:00:18.100
and

7
00:00:19.100 --> 00:00:22.300
<00:00:19.100>Basically, <00:00:19.255>this <00:00:19.411>is <00:00:19.566>what <00:00:19.722>the <00:00:19.877>sessions <00:00:20.033>all <00:00:20.188>about <00:00:20.344>how <00:00:20.500>we

8
00:00:22.300 --> 00:00:26.000
<00:00:22.300>can <00:00:22.500>clean <00:00:22.700>up <00:00:22.900>after <00:00:23.100>our <00:00:23.300>stuff. <00:00:23.500>Hopefully <00:00:23.700>it's

9
00:00:25.200 --> 00:00:28.500
<00:00:25.200>not <00:00:25.375>that <00:00:25.550>messy, <00:00:25.724>but <00:00:25.900>sometimes <00:00:26.075>it <00:00:26.250>is <00:00:26.425>who <00:00:26.599>knows?

10
00:00:29.000 --> 00:00:29.500
so

11
00:00:31.300 --> 00:00:34.000
<00:00:31.300>Hold <00:00:31.766>on. <00:00:32.233>Yeah, <00:00:32.700>so

12
00:00:35.200 --> 00:00:36.800
<00:00:35.200>short <00:00:35.666>introduction. <00:00:36.133>I'm <00:00:36.600>Gil.

13
00:00:37.700 --> 00:00:40.300
<00:00:37.700>I <00:00:37.900>come <00:00:38.100>from <00:00:38.300>Israel <00:00:38.500>and <00:00:38.700>I've <00:00:38.900>been <00:00:39.100>in

14
00:00:40.300 --> 00:00:43.200
<00:00:40.300>software. <00:00:40.474>I <00:00:40.650>don't <00:00:40.824>obsess <00:00:41.000>age <00:00:41.175>10 <00:00:41.349>something <00:00:41.525>like <00:00:41.699>that.

15
00:00:43.200 --> 00:00:47.300
<00:00:43.200>My <00:00:43.900>day <00:00:44.600>job

16
00:00:47.300 --> 00:00:50.700
<00:00:47.300>is <00:00:47.500>being <00:00:47.699>a <00:00:47.900>trainer <00:00:48.099>and <00:00:48.300>consultant <00:00:48.500>for <00:00:48.699>with

17
00:00:50.700 --> 00:00:52.800
<00:00:50.700>developers <00:00:50.933>and <00:00:51.166>tested <00:00:51.400>and <00:00:51.633>everyone <00:00:51.866>in <00:00:52.100>between.

18
00:00:53.900 --> 00:00:56.200
<00:00:53.900>And <00:00:54.250>I <00:00:54.600>hope <00:00:54.949>to <00:00:55.300>help

19
00:00:56.200 --> 00:01:00.800
<00:00:56.200>everyone <00:00:56.375>who <00:00:56.550>wants <00:00:56.725>better <00:00:56.900>a <00:00:57.075>better <00:00:57.250>software <00:00:57.425>and <00:00:57.600>of

20
00:00:59.800 --> 00:01:02.100
<00:00:59.800>the <00:01:00.033>books <00:01:00.266>every <00:01:00.500>day <00:01:00.733>in <00:01:00.966>testing <00:01:01.199>with

21
00:01:02.100 --> 00:01:05.300
<00:01:02.100>a <00:01:02.275>spring <00:01:02.450>testing <00:01:02.625>and <00:01:02.800>examples. <00:01:02.975>I'm <00:01:03.150>going <00:01:03.325>to <00:01:03.500>show

22
00:01:05.300 --> 00:01:07.400
<00:01:05.300>today <00:01:05.649>obviously <00:01:06.000>in <00:01:06.350>Java <00:01:06.700>but

23
00:01:08.200 --> 00:01:11.700
<00:01:08.200>Whatever <00:01:08.400>language <00:01:08.600>you <00:01:08.800>to <00:01:09.000>use <00:01:09.200>the <00:01:09.400>principles <00:01:09.600>are

24
00:01:11.700 --> 00:01:14.300
<00:01:11.700>going <00:01:11.980>to <00:01:12.260>be <00:01:12.540>used <00:01:12.820>the <00:01:13.100>same

25
00:01:14.300 --> 00:01:18.000
<00:01:14.300>way <00:01:14.416>there. <00:01:14.533>You <00:01:14.649>can <00:01:14.766>get <00:01:14.883>in <00:01:15.000>touch <00:01:15.116>with <00:01:15.233>me <00:01:15.350>at <00:01:15.466>guillot <00:01:15.583>testing.com <00:01:15.700>or

26
00:01:17.500 --> 00:01:20.500
<00:01:17.500>at <00:01:17.780>I <00:01:18.060>thinking.com <00:01:18.340>or <00:01:18.620>everyday <00:01:18.900>unit

27
00:01:20.500 --> 00:01:24.200
<00:01:20.500>testing <00:01:20.780>which <00:01:21.060>redirects <00:01:21.340>there <00:01:21.620>or <00:01:21.900>on

28
00:01:24.200 --> 00:01:27.400
<00:01:24.200>Twitter, <00:01:24.340>which <00:01:24.480>is <00:01:24.620>sometimes <00:01:24.760>I <00:01:24.900>live <00:01:25.040>there <00:01:25.180>as <00:01:25.320>well. <00:01:25.460>And <00:01:25.600>that's

29
00:01:27.400 --> 00:01:27.800
basically

30
00:01:29.600 --> 00:01:29.800
so

31
00:01:31.700 --> 00:01:34.400
<00:01:31.700>people <00:01:31.855>ask <00:01:32.011>me <00:01:32.166>Guild. <00:01:32.322>Do <00:01:32.477>you <00:01:32.633>write <00:01:32.788>clean <00:01:32.944>tests <00:01:33.100>in

32
00:01:34.400 --> 00:01:37.200
<00:01:34.400>the <00:01:34.575>answer <00:01:34.750>is <00:01:34.925>I <00:01:35.100>really <00:01:35.275>try, <00:01:35.450>you <00:01:35.625>know, <00:01:35.800>it's

33
00:01:37.200 --> 00:01:40.600
<00:01:37.200>very <00:01:37.400>hard. <00:01:37.600>Why <00:01:37.800>is <00:01:38.000>it <00:01:38.200>hard? <00:01:38.400>Because <00:01:38.600>like

34
00:01:40.600 --> 00:01:43.200
<00:01:40.600>I <00:01:40.755>don't <00:01:40.911>know <00:01:41.066>a <00:01:41.222>couple <00:01:41.377>of <00:01:41.533>days <00:01:41.688>after <00:01:41.844>I've <00:01:42.000>written

35
00:01:43.200 --> 00:01:46.100
<00:01:43.200>any <00:01:43.316>code <00:01:43.433>and <00:01:43.550>test <00:01:43.666>I <00:01:43.783>look <00:01:43.900>at <00:01:44.016>it <00:01:44.133>and <00:01:44.250>it <00:01:44.366>basically <00:01:44.483>looks <00:01:44.600>like

36
00:01:46.100 --> 00:01:46.400
this.

37
00:01:47.200 --> 00:01:50.600
<00:01:47.200>And <00:01:47.400>I <00:01:47.600>basically <00:01:47.800>look <00:01:48.000>like <00:01:48.200>this <00:01:48.400>code <00:01:48.600>also.

38
00:01:52.700 --> 00:01:56.100
<00:01:52.700>And <00:01:52.875>there's <00:01:53.050>a <00:01:53.225>reason <00:01:53.400>for <00:01:53.575>that <00:01:53.750>in <00:01:53.925>we <00:01:54.100>we

39
00:01:55.100 --> 00:01:58.200
<00:01:55.100>talk <00:01:55.449>about <00:01:55.800>code <00:01:56.149>doesn't <00:01:56.500>change

40
00:01:58.200 --> 00:02:02.700
<00:01:58.200>we <00:01:58.355>change <00:01:58.511>so <00:01:58.666>whenever <00:01:58.822>we <00:01:58.977>look <00:01:59.133>at <00:01:59.288>the <00:01:59.444>code, <00:01:59.600>I

41
00:02:01.700 --> 00:02:04.700
<00:02:01.700>don't <00:02:01.980>know <00:02:02.260>if <00:02:02.540>you've <00:02:02.820>written <00:02:03.100>something

42
00:02:04.700 --> 00:02:05.800
<00:02:04.700>like <00:02:05.195>a <00:02:05.690>Blog.

43
00:02:06.800 --> 00:02:10.000
<00:02:06.800>Or <00:02:07.149>piece <00:02:07.500>of <00:02:07.850>music <00:02:08.199>or

44
00:02:09.500 --> 00:02:12.600
<00:02:09.500>a <00:02:09.850>painting <00:02:10.199>every <00:02:10.550>draft <00:02:10.900>is

45
00:02:12.600 --> 00:02:15.600
<00:02:12.600>we <00:02:12.727>look <00:02:12.854>at <00:02:12.981>it <00:02:13.109>like <00:02:13.236>that <00:02:13.363>because <00:02:13.490>we <00:02:13.618>know <00:02:13.745>we're <00:02:13.872>better <00:02:14.000>with

46
00:02:15.600 --> 00:02:18.200
<00:02:15.600>land <00:02:15.880>over <00:02:16.160>time. <00:02:16.440>And <00:02:16.720>if <00:02:17.000>the

47
00:02:18.200 --> 00:02:21.300
<00:02:18.200>code <00:02:18.480>stays <00:02:18.760>like <00:02:19.040>that, <00:02:19.320>well, <00:02:19.600>this

48
00:02:21.300 --> 00:02:23.100
<00:02:21.300>is <00:02:21.475>the <00:02:21.650>best <00:02:21.825>way <00:02:22.000>I <00:02:22.175>could <00:02:22.350>have <00:02:22.525>left <00:02:22.700>it.

49
00:02:23.900 --> 00:02:26.800
<00:02:23.900>Where <00:02:24.133>we <00:02:24.366>probably <00:02:24.600>could <00:02:24.833>have <00:02:25.066>done <00:02:25.300>more.

50
00:02:28.100 --> 00:02:32.300
<00:02:28.100>But <00:02:28.299>test <00:02:28.500>code <00:02:28.700>is <00:02:28.900>a <00:02:29.100>bit <00:02:29.299>different <00:02:29.500>and

51
00:02:31.300 --> 00:02:33.600
<00:02:31.300>the <00:02:31.766>reason <00:02:32.233>it's <00:02:32.700>different.

52
00:02:34.800 --> 00:02:37.700
<00:02:34.800>Again, <00:02:35.000>it's <00:02:35.200>not <00:02:35.400>that <00:02:35.600>the <00:02:35.800>code <00:02:36.000>itself <00:02:36.200>is.

53
00:02:38.600 --> 00:02:41.200
<00:02:38.600>But <00:02:38.799>the <00:02:39.000>way <00:02:39.200>we <00:02:39.400>treat <00:02:39.600>it <00:02:39.799>test <00:02:40.000>code

54
00:02:41.200 --> 00:02:43.400
<00:02:41.200>and <00:02:41.480>production <00:02:41.760>code <00:02:42.040>we <00:02:42.320>treat <00:02:42.600>differently.

55
00:02:45.300 --> 00:02:46.700
<00:02:45.300>And <00:02:45.510>there's <00:02:45.720>a <00:02:45.930>couple <00:02:46.140>reasons <00:02:46.350>for <00:02:46.560>that.

56
00:02:48.700 --> 00:02:51.800
<00:02:48.700>First <00:02:48.933>of <00:02:49.166>all, <00:02:49.399>we <00:02:49.633>know <00:02:49.866>it's <00:02:50.100>real

57
00:02:51.800 --> 00:02:54.200
<00:02:51.800>code, <00:02:51.955>but <00:02:52.111>we <00:02:52.266>don't <00:02:52.422>treat <00:02:52.577>it <00:02:52.733>as <00:02:52.888>well. <00:02:53.044>Let's <00:02:53.200>like

58
00:02:54.200 --> 00:02:57.700
<00:02:54.200>it's <00:02:54.480>not <00:02:54.760>production <00:02:55.040>code. <00:02:55.320>So <00:02:55.600>already

59
00:02:57.700 --> 00:03:00.200
<00:02:57.700>we <00:02:57.855>look <00:02:58.011>at <00:02:58.166>it <00:02:58.322>a <00:02:58.477>bit <00:02:58.633>differently <00:02:58.788>than <00:02:58.944>in <00:02:59.100>regular

60
00:03:00.200 --> 00:03:01.400
<00:03:00.200>production <00:03:01.280>code.

61
00:03:02.800 --> 00:03:05.400
<00:03:02.800>It <00:03:02.955>is <00:03:03.111>a <00:03:03.266>bit <00:03:03.422>more <00:03:03.577>than <00:03:03.733>to <00:03:03.888>that <00:03:04.044>when <00:03:04.200>we

62
00:03:05.400 --> 00:03:08.800
<00:03:05.400>develop <00:03:05.680>code. <00:03:05.960>We <00:03:06.240>know <00:03:06.520>that <00:03:06.800>we

63
00:03:08.800 --> 00:03:11.500
<00:03:08.800>are <00:03:08.975>going <00:03:09.150>to <00:03:09.325>go <00:03:09.500>back <00:03:09.675>to <00:03:09.850>it. <00:03:10.025>And <00:03:10.200>so

64
00:03:11.500 --> 00:03:14.300
<00:03:11.500>we <00:03:11.733>try <00:03:11.966>if <00:03:12.200>we <00:03:12.433>have <00:03:12.666>like <00:03:12.900>some

65
00:03:14.300 --> 00:03:15.600
<00:03:14.300>clean <00:03:14.885>code <00:03:15.470>standards.

66
00:03:18.800 --> 00:03:21.400
<00:03:18.800>We <00:03:18.975>don't <00:03:19.150>any <00:03:19.325>if <00:03:19.500>we <00:03:19.675>don't <00:03:19.850>have <00:03:20.025>any <00:03:20.200>clean

67
00:03:21.400 --> 00:03:24.200
<00:03:21.400>code <00:03:21.540>standards, <00:03:21.680>we <00:03:21.820>just <00:03:21.960>leave <00:03:22.100>it <00:03:22.240>as <00:03:22.380>is <00:03:22.520>but <00:03:22.660>then <00:03:22.800>we

68
00:03:24.200 --> 00:03:27.300
<00:03:24.200>don't <00:03:24.433>do <00:03:24.666>the <00:03:24.899>face. <00:03:25.133>But <00:03:25.366>if <00:03:25.600>we

69
00:03:27.300 --> 00:03:30.500
<00:03:27.300>do <00:03:27.455>we <00:03:27.611>cannot <00:03:27.766>try <00:03:27.922>to <00:03:28.077>keep <00:03:28.233>it <00:03:28.388>in <00:03:28.544>a <00:03:28.700>certain

70
00:03:30.500 --> 00:03:33.100
<00:03:30.500>way <00:03:30.655>because <00:03:30.811>we <00:03:30.966>know <00:03:31.122>we're <00:03:31.277>going <00:03:31.433>to <00:03:31.588>get <00:03:31.744>back <00:03:31.900>in

71
00:03:33.100 --> 00:03:34.800
<00:03:33.100>the <00:03:33.450>sometimes <00:03:33.799>in <00:03:34.150>the <00:03:34.500>future.

72
00:03:36.700 --> 00:03:39.600
<00:03:36.700>That's <00:03:36.839>not <00:03:36.980>just <00:03:37.119>like <00:03:37.260>that <00:03:37.399>because <00:03:37.540>once <00:03:37.679>it <00:03:37.820>automated <00:03:37.959>test <00:03:38.100>passes

73
00:03:39.600 --> 00:03:41.400
<00:03:39.600>we <00:03:39.755>can <00:03:39.911>it's <00:03:40.066>about <00:03:40.222>its <00:03:40.377>way <00:03:40.533>back <00:03:40.688>in <00:03:40.844>the <00:03:41.000>past.

74
00:03:41.900 --> 00:03:44.200
<00:03:41.900>Because <00:03:42.055>we <00:03:42.211>kind <00:03:42.366>of <00:03:42.522>think <00:03:42.677>about <00:03:42.833>what <00:03:42.988>are <00:03:43.144>the <00:03:43.300>chances

75
00:03:44.200 --> 00:03:46.900
<00:03:44.200>we <00:03:44.433>just <00:03:44.666>go <00:03:44.899>back <00:03:45.133>into <00:03:45.366>this <00:03:45.600>test.

76
00:03:48.700 --> 00:03:51.500
<00:03:48.700>Obviously <00:03:48.933>the <00:03:49.166>chances <00:03:49.399>are <00:03:49.633>high <00:03:49.866>but <00:03:50.100>our

77
00:03:51.500 --> 00:03:53.300
<00:03:51.500>brain <00:03:51.733>doesn't <00:03:51.966>consume <00:03:52.200>in <00:03:52.433>the <00:03:52.666>same <00:03:52.900>way.

78
00:03:54.700 --> 00:03:57.800
<00:03:54.700>So <00:03:54.839>if <00:03:54.980>we <00:03:55.119>don't <00:03:55.260>go <00:03:55.399>we're <00:03:55.540>not <00:03:55.679>going <00:03:55.820>to <00:03:55.959>planning <00:03:56.100>planning

79
00:03:57.800 --> 00:03:58.900
<00:03:57.800>to <00:03:58.047>go <00:03:58.295>back <00:03:58.542>in <00:03:58.790>the

80
00:03:59.800 --> 00:04:01.700
<00:03:59.800>it <00:04:00.033>we <00:04:00.266>deserves <00:04:00.500>a <00:04:00.733>little <00:04:00.966>bit <00:04:01.200>attention.

81
00:04:03.300 --> 00:04:06.400
<00:04:03.300>One <00:04:03.475>more <00:04:03.650>thing <00:04:03.825>we <00:04:04.000>do <00:04:04.175>is <00:04:04.350>that <00:04:04.525>we <00:04:04.700>write

82
00:04:06.400 --> 00:04:08.400
<00:04:06.400>it <00:04:06.633>a <00:04:06.866>bit <00:04:07.100>differently <00:04:07.333>and <00:04:07.566>that <00:04:07.800>is

83
00:04:09.700 --> 00:04:12.400
<00:04:09.700>Once <00:04:09.855>a <00:04:10.011>test <00:04:10.166>passes <00:04:10.322>we <00:04:10.477>kind <00:04:10.633>of <00:04:10.788>copy <00:04:10.944>and <00:04:11.100>paste

84
00:04:12.400 --> 00:04:13.300
<00:04:12.400>it <00:04:12.670>and <00:04:12.940>modify <00:04:13.210>it.

85
00:04:14.200 --> 00:04:14.900
<00:04:14.200>This <00:04:14.410>is <00:04:14.620>not <00:04:14.830>like

86
00:04:16.100 --> 00:04:19.400
<00:04:16.100>Regular <00:04:16.450>code <00:04:16.800>development, <00:04:17.150>but <00:04:17.500>if

87
00:04:19.400 --> 00:04:22.300
<00:04:19.399>we <00:04:19.555>don't <00:04:19.711>take <00:04:19.866>care <00:04:20.022>of <00:04:20.177>to <00:04:20.333>cover <00:04:20.488>our <00:04:20.644>tracks <00:04:20.799>and

88
00:04:22.300 --> 00:04:25.500
<00:04:22.300>refactor <00:04:22.475>along <00:04:22.650>the <00:04:22.825>way <00:04:23.000>we'll <00:04:23.175>see <00:04:23.350>that <00:04:23.525>I'll <00:04:23.700>show

89
00:04:25.500 --> 00:04:28.300
<00:04:25.500>you <00:04:25.640>today <00:04:25.780>in <00:04:25.920>the <00:04:26.060>examples. <00:04:26.200>I <00:04:26.340>would <00:04:26.480>look <00:04:26.620>like <00:04:26.760>so <00:04:26.900>you

90
00:04:28.300 --> 00:04:29.600
<00:04:28.300>can <00:04:28.534>see <00:04:28.768>that <00:04:29.002>and <00:04:29.236>once <00:04:29.470>we

91
00:04:31.700 --> 00:04:34.800
<00:04:31.700>Duplicate <00:04:31.855>code <00:04:32.011>we <00:04:32.166>duplicate <00:04:32.322>a <00:04:32.477>lot <00:04:32.633>of <00:04:32.788>the <00:04:32.944>code <00:04:33.099>smells

92
00:04:34.800 --> 00:04:37.500
<00:04:34.800>and <00:04:35.033>and <00:04:35.266>the <00:04:35.500>noises <00:04:35.733>and <00:04:35.966>the <00:04:36.200>garbage

93
00:04:37.500 --> 00:04:40.000
<00:04:37.500>we <00:04:37.627>don't <00:04:37.754>like <00:04:37.881>to <00:04:38.009>see <00:04:38.136>so <00:04:38.263>there's <00:04:38.390>a <00:04:38.518>lot <00:04:38.645>more <00:04:38.772>of <00:04:38.900>it.

94
00:04:41.500 --> 00:04:44.200
<00:04:41.500>And <00:04:41.600>basically <00:04:41.700>what <00:04:41.800>happens <00:04:41.900>is <00:04:42.000>that <00:04:42.100>we <00:04:42.200>don't <00:04:42.300>apply <00:04:42.400>the <00:04:42.500>same <00:04:42.600>standards <00:04:42.700>for <00:04:42.800>a <00:04:42.900>lot

95
00:04:44.200 --> 00:04:47.300
<00:04:44.200>of <00:04:44.375>teams <00:04:44.550>that <00:04:44.724>I <00:04:44.900>work <00:04:45.075>with <00:04:45.250>do <00:04:45.425>code <00:04:45.599>reviews.

96
00:04:48.400 --> 00:04:51.100
<00:04:48.400>But <00:04:48.599>whatever <00:04:48.799>they <00:04:49.000>don't <00:04:49.200>look <00:04:49.400>at <00:04:49.599>the <00:04:49.799>tests,

97
00:04:51.100 --> 00:04:52.500
<00:04:51.100>or <00:04:51.352>they <00:04:51.604>just <00:04:51.856>look <00:04:52.108>at <00:04:52.360>them.

98
00:04:53.200 --> 00:04:56.000
<00:04:53.200>To <00:04:53.316>see <00:04:53.433>if <00:04:53.550>they're <00:04:53.666>passing <00:04:53.783>something <00:04:53.900>like <00:04:54.016>that <00:04:54.133>again. <00:04:54.250>It's <00:04:54.366>not <00:04:54.483>the <00:04:54.599>same

99
00:04:56.600 --> 00:04:58.900
<00:04:56.600>standards <00:04:56.950>as <00:04:57.300>we <00:04:57.650>apply <00:04:58.000>to.

100
00:04:59.900 --> 00:05:02.200
<00:04:59.900>Regular <00:05:00.075>code <00:05:00.250>and <00:05:00.424>let's <00:05:00.599>of <00:05:00.775>course. <00:05:00.950>Like <00:05:01.125>I <00:05:01.299>said,

101
00:05:02.200 --> 00:05:05.100
<00:05:02.200>if <00:05:02.327>you <00:05:02.454>don't <00:05:02.581>have <00:05:02.709>any <00:05:02.836>clean <00:05:02.963>code <00:05:03.090>standards, <00:05:03.218>these <00:05:03.345>are <00:05:03.472>exactly <00:05:03.599>the

102
00:05:05.100 --> 00:05:07.000
<00:05:05.100>same <00:05:05.333>standards <00:05:05.566>that <00:05:05.800>you <00:05:06.033>apply <00:05:06.266>to <00:05:06.500>this.

103
00:05:07.700 --> 00:05:08.000
now

104
00:05:09.900 --> 00:05:10.900
<00:05:09.900>most <00:05:10.799>Developers

105
00:05:13.100 --> 00:05:16.200
<00:05:13.100>that <00:05:13.240>they <00:05:13.380>took <00:05:13.520>a <00:05:13.660>can <00:05:13.800>of <00:05:13.940>agree <00:05:14.080>that <00:05:14.220>their <00:05:14.360>job <00:05:14.500>is

106
00:05:17.200 --> 00:05:17.600
this

107
00:05:20.700 --> 00:05:23.400
<00:05:20.700>code <00:05:20.875>that <00:05:21.050>works <00:05:21.224>over <00:05:21.400>and <00:05:21.575>over <00:05:21.750>again <00:05:21.925>code <00:05:22.099>that

108
00:05:23.400 --> 00:05:24.300
<00:05:23.400>works. <00:05:23.805>We <00:05:24.210>understand.

109
00:05:24.900 --> 00:05:27.600
<00:05:24.900>Where <00:05:25.099>we <00:05:25.299>have <00:05:25.500>tests <00:05:25.700>for <00:05:25.900>that <00:05:26.099>we <00:05:26.299>have

110
00:05:27.600 --> 00:05:28.300
documentation.

111
00:05:29.500 --> 00:05:31.800
<00:05:29.500>It's <00:05:29.675>we <00:05:29.850>we <00:05:30.025>know <00:05:30.200>if <00:05:30.375>it's <00:05:30.550>working <00:05:30.725>or <00:05:30.900>not.

112
00:05:32.400 --> 00:05:33.900
<00:05:32.400>The <00:05:32.625>over <00:05:32.849>and <00:05:33.075>over <00:05:33.299>and <00:05:33.525>over <00:05:33.750>again.

113
00:05:34.800 --> 00:05:35.200
That's

114
00:05:36.100 --> 00:05:38.600
<00:05:36.100>mostly <00:05:36.800>not <00:05:37.500>measurable

115
00:05:39.400 --> 00:05:42.300
<00:05:39.400>If <00:05:39.539>you <00:05:39.679>go <00:05:39.820>back <00:05:39.960>into <00:05:40.099>that <00:05:40.239>code <00:05:40.380>we <00:05:40.520>want <00:05:40.659>to <00:05:40.799>spend.

116
00:05:43.900 --> 00:05:47.200
<00:05:43.900>As <00:05:44.133>much <00:05:44.366>as <00:05:44.599>we <00:05:44.833>can <00:05:45.066>working <00:05:45.299>on

117
00:05:47.200 --> 00:05:50.800
<00:05:47.200>the <00:05:47.327>new <00:05:47.454>stuff <00:05:47.581>rather <00:05:47.709>than <00:05:47.836>all <00:05:47.963>stuff <00:05:48.090>and <00:05:48.218>everything <00:05:48.345>around <00:05:48.472>clean <00:05:48.599>code

118
00:05:50.800 --> 00:05:53.700
<00:05:50.800>and <00:05:50.955>automated <00:05:51.111>tests <00:05:51.266>all <00:05:51.422>the <00:05:51.577>processes <00:05:51.733>that <00:05:51.888>we <00:05:52.044>have <00:05:52.200>to

119
00:05:53.700 --> 00:05:56.400
<00:05:53.700>spend <00:05:53.900>less <00:05:54.099>time <00:05:54.300>on <00:05:54.500>the <00:05:54.700>maintenance <00:05:54.900>part <00:05:55.099>and

120
00:05:56.400 --> 00:05:59.600
<00:05:56.400>more <00:05:56.516>on <00:05:56.633>the <00:05:56.750>new <00:05:56.866>stuff <00:05:56.983>help <00:05:57.099>us <00:05:57.216>there <00:05:57.333>so <00:05:57.450>we <00:05:57.566>know <00:05:57.683>in <00:05:57.799>our

121
00:05:59.600 --> 00:06:01.300
<00:05:59.600>minds <00:05:59.880>that <00:06:00.160>it <00:06:00.440>will <00:06:00.720>help <00:06:01.000>us.

122
00:06:02.300 --> 00:06:05.100
<00:06:02.300>Clean <00:06:02.580>code <00:06:02.860>help <00:06:03.140>us <00:06:03.420>obviously <00:06:03.700>clean

123
00:06:05.100 --> 00:06:06.500
<00:06:05.100>code <00:06:05.352>in <00:06:05.604>test <00:06:05.856>will <00:06:06.108>help <00:06:06.360>us.

124
00:06:07.900 --> 00:06:10.300
<00:06:07.900>But <00:06:08.179>again, <00:06:08.460>we <00:06:08.739>don't <00:06:09.020>look <00:06:09.299>at

125
00:06:10.300 --> 00:06:11.100
<00:06:10.300>it <00:06:10.540>the <00:06:10.780>same <00:06:11.020>way.

126
00:06:13.300 --> 00:06:16.900
<00:06:13.300>So <00:06:13.475>we <00:06:13.650>need <00:06:13.825>to <00:06:14.000>change <00:06:14.175>your <00:06:14.350>mind <00:06:14.525>the <00:06:14.700>way

127
00:06:16.900 --> 00:06:19.400
<00:06:16.900>we <00:06:17.133>think <00:06:17.366>about <00:06:17.599>it. <00:06:17.833>So <00:06:18.066>that <00:06:18.299>that's

128
00:06:19.400 --> 00:06:22.600
<00:06:19.400>one <00:06:19.539>thing <00:06:19.679>but <00:06:19.820>let's <00:06:19.960>talk <00:06:20.099>first <00:06:20.239>about <00:06:20.380>what <00:06:20.520>is <00:06:20.659>clean <00:06:20.799>code

129
00:06:22.600 --> 00:06:25.600
<00:06:22.600>now. <00:06:22.775>I <00:06:22.950>teach <00:06:23.125>clean <00:06:23.300>code <00:06:23.475>a <00:06:23.650>lot <00:06:23.825>a <00:06:24.000>lot

130
00:06:25.600 --> 00:06:28.600
<00:06:25.600>of <00:06:25.880>work <00:06:26.160>curses <00:06:26.440>and <00:06:26.720>workshops <00:06:27.000>a

131
00:06:28.600 --> 00:06:31.100
<00:06:28.600>lot <00:06:29.066>of <00:06:29.533>demand <00:06:30.000>for

132
00:06:31.100 --> 00:06:31.300
that.

133
00:06:32.100 --> 00:06:35.700
<00:06:32.100>And <00:06:32.380>there's <00:06:32.660>also <00:06:32.940>always <00:06:33.220>that <00:06:33.500>discussion

134
00:06:35.700 --> 00:06:38.200
<00:06:35.700>what <00:06:35.933>makes <00:06:36.166>code <00:06:36.400>clean. <00:06:36.633>It <00:06:36.866>does <00:06:37.099>not

135
00:06:38.200 --> 00:06:41.800
<00:06:38.200>one <00:06:38.355>definition. <00:06:38.511>Well, <00:06:38.666>I'm <00:06:38.822>going <00:06:38.977>to <00:06:39.133>start <00:06:39.288>with <00:06:39.444>what <00:06:39.599>I

136
00:06:41.800 --> 00:06:41.900
think.

137
00:06:42.800 --> 00:06:45.400
<00:06:42.800>and <00:06:42.975>it <00:06:43.150>goes <00:06:43.325>back <00:06:43.500>to <00:06:43.675>what <00:06:43.850>clean <00:06:44.025>code <00:06:44.200>does

138
00:06:45.400 --> 00:06:48.900
<00:06:45.400>rather <00:06:45.599>than <00:06:45.799>what <00:06:46.000>it <00:06:46.200>looks <00:06:46.400>like <00:06:46.599>and <00:06:46.799>basically

139
00:06:52.100 --> 00:06:55.800
<00:06:52.100>It's <00:06:52.300>about <00:06:52.500>time. <00:06:52.700>Now <00:06:52.900>what <00:06:53.100>happens <00:06:53.300>we <00:06:53.500>write

140
00:06:55.800 --> 00:06:58.300
<00:06:55.800>code <00:06:56.033>now, <00:06:56.266>it <00:06:56.500>works <00:06:56.733>the <00:06:56.966>first <00:06:57.200>part.

141
00:06:59.300 --> 00:07:02.400
<00:06:59.300>When <00:06:59.440>we <00:06:59.580>go <00:06:59.720>back <00:06:59.860>into <00:07:00.000>that <00:07:00.140>code <00:07:00.280>again, <00:07:00.420>we <00:07:00.560>want <00:07:00.700>like

142
00:07:02.400 --> 00:07:05.700
<00:07:02.400>I <00:07:02.555>said <00:07:02.711>to <00:07:02.866>spend <00:07:03.022>much <00:07:03.177>as <00:07:03.333>we <00:07:03.488>can <00:07:03.644>on <00:07:03.799>new

143
00:07:05.700 --> 00:07:06.700
<00:07:05.700>stuff <00:07:06.000>new <00:07:06.300>exciting <00:07:06.599>stuff.

144
00:07:07.300 --> 00:07:10.400
<00:07:07.300>not <00:07:07.650>encode <00:07:08.000>maintenance <00:07:08.350>not <00:07:08.700>on

145
00:07:10.400 --> 00:07:12.600
<00:07:10.400>bug <00:07:10.679>fixes, <00:07:10.960>not <00:07:11.239>on <00:07:11.520>anything <00:07:11.799>that

146
00:07:13.300 --> 00:07:13.900
<00:07:13.300>is <00:07:13.840>boring

147
00:07:14.700 --> 00:07:17.800
<00:07:14.700>Even <00:07:14.840>writing <00:07:14.979>tests <00:07:15.120>get <00:07:15.260>me <00:07:15.400>boring. <00:07:15.539>We <00:07:15.680>don't <00:07:15.820>want <00:07:15.960>that <00:07:16.099>we

148
00:07:17.800 --> 00:07:18.300
<00:07:17.800>want <00:07:18.250>to

149
00:07:19.200 --> 00:07:22.500
<00:07:19.200>Work <00:07:19.355>on <00:07:19.511>the <00:07:19.666>interesting <00:07:19.822>stuff. <00:07:19.977>Whatever <00:07:20.133>interesting <00:07:20.288>is <00:07:20.444>for <00:07:20.599>us

150
00:07:22.500 --> 00:07:25.400
<00:07:22.500>for <00:07:22.700>developers. <00:07:22.900>It's <00:07:23.100>mostly <00:07:23.300>working <00:07:23.500>on <00:07:23.700>new <00:07:23.900>code.

151
00:07:26.300 --> 00:07:29.000
<00:07:26.300>For <00:07:26.416>testers <00:07:26.533>we <00:07:26.650>want <00:07:26.766>to <00:07:26.883>work <00:07:27.000>on <00:07:27.116>testing <00:07:27.233>the <00:07:27.350>new <00:07:27.466>code <00:07:27.583>as <00:07:27.700>well.

152
00:07:31.300 --> 00:07:31.400
So

153
00:07:32.700 --> 00:07:35.600
<00:07:32.700>the <00:07:32.933>more <00:07:33.166>we <00:07:33.400>invest <00:07:33.633>now <00:07:33.866>in <00:07:34.099>things

154
00:07:35.600 --> 00:07:38.600
<00:07:35.600>that <00:07:35.755>can <00:07:35.911>help <00:07:36.066>us <00:07:36.222>and <00:07:36.377>spend <00:07:36.533>less <00:07:36.688>time <00:07:36.844>later <00:07:37.000>maintenance.

155
00:07:39.300 --> 00:07:42.300
<00:07:39.300>Spot <00:07:39.475>it <00:07:39.650>was <00:07:39.825>for <00:07:40.000>us <00:07:40.175>and <00:07:40.350>clean <00:07:40.525>code <00:07:40.700>and

156
00:07:42.300 --> 00:07:43.900
<00:07:42.300>clear <00:07:42.580>tests <00:07:42.860>fall <00:07:43.140>into <00:07:43.420>this <00:07:43.700>bucket.

157
00:07:45.300 --> 00:07:47.600
<00:07:45.300>Now <00:07:45.500>you <00:07:45.700>you <00:07:45.900>probably <00:07:46.100>seen <00:07:46.300>this <00:07:46.500>kind <00:07:46.700>of.

158
00:07:48.500 --> 00:07:51.700
<00:07:48.500>Comic <00:07:48.733>before <00:07:48.966>about <00:07:49.200>what <00:07:49.433>makes <00:07:49.666>code <00:07:49.900>clean.

159
00:07:51.700 --> 00:07:52.200
No.

160
00:07:53.700 --> 00:07:55.900
<00:07:53.700>What <00:07:53.900>is <00:07:54.099>code <00:07:54.300>better <00:07:54.500>code <00:07:54.700>and <00:07:54.900>good <00:07:55.099>code?

161
00:07:56.900 --> 00:07:59.600
<00:07:56.900>And <00:07:57.599>the <00:07:58.299>truth

162
00:07:59.600 --> 00:08:02.100
<00:07:59.600>behind <00:07:59.775>this <00:07:59.950>comic <00:08:00.125>it's <00:08:00.300>really <00:08:00.475>in <00:08:00.650>the <00:08:00.825>eyes <00:08:01.000>of

163
00:08:02.100 --> 00:08:05.400
<00:08:02.100>the <00:08:02.275>beholder. <00:08:02.450>So <00:08:02.625>when <00:08:02.800>we're <00:08:02.975>finished <00:08:03.150>writing <00:08:03.325>our <00:08:03.500>code

164
00:08:05.400 --> 00:08:08.300
<00:08:05.400>at <00:08:05.539>the <00:08:05.679>beginning, <00:08:05.820>we're <00:08:05.960>sure <00:08:06.099>this <00:08:06.239>is <00:08:06.380>the <00:08:06.520>best <00:08:06.659>that <00:08:06.799>we

165
00:08:08.300 --> 00:08:11.000
<00:08:08.300>can <00:08:08.440>do <00:08:08.580>within <00:08:08.720>the <00:08:08.860>time <00:08:09.000>the <00:08:09.140>limited <00:08:09.280>time <00:08:09.420>what <00:08:09.560>we <00:08:09.700>can

166
00:08:11.100 --> 00:08:13.600
<00:08:11.100>do <00:08:11.333>because <00:08:11.566>otherwise <00:08:11.800>we <00:08:12.033>would <00:08:12.266>improve <00:08:12.500>it.

167
00:08:14.700 --> 00:08:17.500
<00:08:14.700>And <00:08:14.840>at <00:08:14.979>that <00:08:15.120>point <00:08:15.260>we <00:08:15.400>said <00:08:15.539>well, <00:08:15.680>it's <00:08:15.820>enough <00:08:15.960>Improvement. <00:08:16.099>It's

168
00:08:17.500 --> 00:08:18.000
<00:08:17.500>good <00:08:17.950>enough.

169
00:08:18.900 --> 00:08:21.100
<00:08:18.900>Obviously, <00:08:19.099>it's <00:08:19.299>going <00:08:19.500>to <00:08:19.700>be <00:08:19.900>good. <00:08:20.099>It's <00:08:20.299>good

170
00:08:21.100 --> 00:08:25.100
<00:08:21.100>enough <00:08:21.200>for <00:08:21.300>us <00:08:21.400>going <00:08:21.500>to <00:08:21.600>be <00:08:21.700>good <00:08:21.800>enough <00:08:21.900>for <00:08:22.000>other <00:08:22.100>people <00:08:22.200>as <00:08:22.300>well. <00:08:22.400>Even <00:08:22.500>our

171
00:08:24.100 --> 00:08:27.300
<00:08:24.100>with <00:08:24.300>the <00:08:24.500>other <00:08:24.700>people <00:08:24.900>are <00:08:25.100>us <00:08:25.300>in <00:08:25.500>three

172
00:08:27.300 --> 00:08:27.300
days.

173
00:08:28.300 --> 00:08:32.300
<00:08:28.300>but <00:08:28.475>we <00:08:28.650>need <00:08:28.825>to <00:08:29.000>get <00:08:29.175>other <00:08:29.350>people's <00:08:29.525>ideas <00:08:29.700>in

174
00:08:32.300 --> 00:08:35.000
<00:08:32.299>so <00:08:32.500>we <00:08:32.699>need <00:08:32.900>to <00:08:33.099>know <00:08:33.299>if <00:08:33.500>it <00:08:33.699>is

175
00:08:35.300 --> 00:08:36.400
<00:08:35.299>good <00:08:35.547>enough <00:08:35.794>for <00:08:36.042>them <00:08:36.289>and

176
00:08:37.300 --> 00:08:40.800
<00:08:37.299>There's <00:08:37.407>also <00:08:37.515>not <00:08:37.623>to <00:08:37.730>find <00:08:37.838>a <00:08:37.946>point <00:08:38.053>because <00:08:38.161>like <00:08:38.269>three <00:08:38.376>months <00:08:38.484>from <00:08:38.592>now <00:08:38.699>we

177
00:08:40.800 --> 00:08:43.300
<00:08:40.799>need <00:08:40.974>we <00:08:41.150>owe <00:08:41.324>them <00:08:41.500>need <00:08:41.674>to <00:08:41.849>go <00:08:42.025>into <00:08:42.199>that

178
00:08:43.300 --> 00:08:43.800
<00:08:43.299>code <00:08:43.750>again.

179
00:08:44.900 --> 00:08:47.000
<00:08:44.900>They're <00:08:45.055>going <00:08:45.211>to <00:08:45.366>look <00:08:45.522>at <00:08:45.677>the <00:08:45.833>code <00:08:45.988>and <00:08:46.144>say <00:08:46.300>well.

180
00:08:49.500 --> 00:08:52.300
<00:08:49.500>He's <00:08:49.627>that <00:08:49.754>what <00:08:49.881>I <00:08:50.009>get. <00:08:50.136>What <00:08:50.263>did <00:08:50.390>I <00:08:50.518>do <00:08:50.645>to <00:08:50.772>deserve <00:08:50.900>this?

181
00:08:53.300 --> 00:08:54.400
<00:08:53.300>So <00:08:53.547>it's <00:08:53.795>really <00:08:54.042>question <00:08:54.290>of

182
00:08:55.700 --> 00:08:57.900
<00:08:55.700>also <00:08:55.933>of <00:08:56.166>how <00:08:56.400>far <00:08:56.633>we <00:08:56.866>are <00:08:57.100>from

183
00:08:58.800 --> 00:09:01.100
<00:08:58.800>the <00:08:59.000>last <00:08:59.199>review <00:08:59.400>of <00:08:59.599>the <00:08:59.800>code <00:09:00.000>so <00:09:00.199>that

184
00:09:01.100 --> 00:09:02.400
<00:09:01.100>another <00:09:01.490>faces <00:09:01.880>in <00:09:02.270>that.

185
00:09:05.800 --> 00:09:08.300
<00:09:05.800>So <00:09:05.955>here <00:09:06.111>are <00:09:06.266>a <00:09:06.422>couple <00:09:06.577>of <00:09:06.733>quotes <00:09:06.888>of <00:09:07.044>what <00:09:07.199>makes

186
00:09:08.300 --> 00:09:11.400
<00:09:08.300>code <00:09:08.455>clean. <00:09:08.611>So <00:09:08.766>from <00:09:08.922>people <00:09:09.077>who <00:09:09.233>actually <00:09:09.388>know <00:09:09.544>about <00:09:09.699>software

187
00:09:11.400 --> 00:09:12.100
<00:09:11.400>a <00:09:11.557>lot <00:09:11.715>more <00:09:11.872>than <00:09:12.030>me.

188
00:09:13.100 --> 00:09:15.700
<00:09:13.100>So <00:09:13.380>Grady <00:09:13.660>Butch <00:09:13.940>one <00:09:14.220>of <00:09:14.500>the

189
00:09:16.500 --> 00:09:20.900
<00:09:16.500>Main <00:09:16.850>big <00:09:17.200>thinkers <00:09:17.550>behind <00:09:17.900>object's

190
00:09:19.900 --> 00:09:22.300
<00:09:19.900>orientation. <00:09:20.250>So <00:09:20.600>the <00:09:20.949>clinical <00:09:21.300>is

191
00:09:22.300 --> 00:09:25.800
<00:09:22.300>simple <00:09:22.439>and <00:09:22.579>direct <00:09:22.719>it <00:09:22.859>should <00:09:23.000>be <00:09:23.140>written <00:09:23.280>like <00:09:23.420>pros <00:09:23.560>and <00:09:23.699>that's

192
00:09:25.800 --> 00:09:27.200
<00:09:25.800>like <00:09:26.220>I <00:09:26.640>ask <00:09:27.060>everybody.

193
00:09:28.300 --> 00:09:29.500
<00:09:28.300>Clean <00:09:28.569>clothes <00:09:28.839>classes <00:09:29.110>like <00:09:29.380>this.

194
00:09:30.500 --> 00:09:31.400
<00:09:30.500>Look <00:09:30.770>at <00:09:31.040>your <00:09:31.310>code.

195
00:09:32.900 --> 00:09:35.400
<00:09:32.900>Is <00:09:33.027>it <00:09:33.154>written <00:09:33.281>like <00:09:33.409>a <00:09:33.536>book? <00:09:33.663>Is <00:09:33.790>it <00:09:33.918>written <00:09:34.045>like <00:09:34.172>a <00:09:34.300>story?

196
00:09:35.400 --> 00:09:39.300
<00:09:35.400>Can <00:09:35.540>you <00:09:35.680>read <00:09:35.819>a <00:09:35.959>story <00:09:36.100>from <00:09:36.240>that <00:09:36.380>and <00:09:36.520>understand <00:09:36.660>what's <00:09:36.800>going

197
00:09:39.300 --> 00:09:39.400
on?

198
00:09:40.500 --> 00:09:43.000
<00:09:40.500>Now <00:09:40.780>the <00:09:41.060>beginning <00:09:41.340>people <00:09:41.620>will <00:09:41.900>say

199
00:09:43.200 --> 00:09:44.400
<00:09:43.200>well, <00:09:43.380>of <00:09:43.560>course <00:09:43.740>like <00:09:43.920>I <00:09:44.100>wrote <00:09:44.280>it.

200
00:09:46.300 --> 00:09:49.900
<00:09:46.300>But <00:09:46.427>does <00:09:46.554>it <00:09:46.681>tell <00:09:46.809>the <00:09:46.936>story <00:09:47.063>of <00:09:47.190>the <00:09:47.318>system <00:09:47.445>of <00:09:47.572>the <00:09:47.699>workflow?

201
00:09:49.900 --> 00:09:51.400
<00:09:49.900>Does <00:09:50.574>it <00:09:51.250>use?

202
00:09:52.100 --> 00:09:56.000
<00:09:52.100>Domain <00:09:52.240>name <00:09:52.380>stuff <00:09:52.520>like <00:09:52.660>that <00:09:52.800>that <00:09:52.940>will <00:09:53.080>make <00:09:53.220>things <00:09:53.360>easier <00:09:53.500>to

203
00:09:55.400 --> 00:09:59.000
<00:09:55.400>understand <00:09:55.680>or <00:09:55.959>to <00:09:56.240>apply <00:09:56.520>remember <00:09:56.800>code.

204
00:10:00.100 --> 00:10:02.800
<00:10:00.100>Interest <00:10:00.300>code <00:10:00.500>it <00:10:00.700>doesn't <00:10:00.900>matter <00:10:01.100>is <00:10:01.300>a <00:10:01.500>model.

205
00:10:03.900 --> 00:10:06.300
<00:10:03.900>The <00:10:04.133>translation <00:10:04.366>of <00:10:04.600>a <00:10:04.833>design <00:10:05.066>model <00:10:05.300>which

206
00:10:06.300 --> 00:10:09.400
<00:10:06.300>is <00:10:06.439>a <00:10:06.579>translation <00:10:06.719>of <00:10:06.859>the <00:10:07.000>requirement <00:10:07.140>model <00:10:07.280>which <00:10:07.420>is <00:10:07.560>different <00:10:07.699>than

207
00:10:09.400 --> 00:10:12.400
<00:10:09.400>what <00:10:09.600>the <00:10:09.800>customer <00:10:10.000>actually <00:10:10.199>wants. <00:10:10.400>So <00:10:10.600>it's <00:10:10.800>already

208
00:10:12.400 --> 00:10:15.700
<00:10:12.400>translation <00:10:12.574>of <00:10:12.750>translation <00:10:12.925>of <00:10:13.100>translation. <00:10:13.275>The <00:10:13.449>less <00:10:13.625>translation <00:10:13.800>areas

209
00:10:15.700 --> 00:10:17.900
<00:10:15.700>we <00:10:15.933>do <00:10:16.166>in <00:10:16.400>the <00:10:16.633>middle <00:10:16.866>is <00:10:17.100>better.

210
00:10:18.800 --> 00:10:21.200
<00:10:18.800>The <00:10:18.974>more <00:10:19.150>we <00:10:19.324>use <00:10:19.500>the <00:10:19.675>same <00:10:19.849>language <00:10:20.025>in <00:10:20.199>the

211
00:10:21.200 --> 00:10:24.300
<00:10:21.200>code <00:10:21.400>and <00:10:21.600>in <00:10:21.800>a <00:10:22.000>design <00:10:22.200>in <00:10:22.400>the <00:10:22.600>real

212
00:10:24.300 --> 00:10:24.500
world.

213
00:10:25.300 --> 00:10:28.200
<00:10:25.300>Like <00:10:25.439>the <00:10:25.579>Mind <00:10:25.719>language, <00:10:25.859>it <00:10:26.000>will <00:10:26.140>tell <00:10:26.280>us <00:10:26.420>the <00:10:26.560>story <00:10:26.699>of

214
00:10:28.200 --> 00:10:29.300
<00:10:28.200>what <00:10:28.447>actually <00:10:28.695>is <00:10:28.942>happening <00:10:29.189>here.

215
00:10:31.900 --> 00:10:34.900
<00:10:31.900>And <00:10:32.027>we <00:10:32.154>want <00:10:32.281>to <00:10:32.409>test <00:10:32.536>by <00:10:32.663>the <00:10:32.790>way <00:10:32.918>to <00:10:33.045>take <00:10:33.172>to <00:10:33.300>speak

216
00:10:34.900 --> 00:10:35.400
<00:10:34.900>at <00:10:35.050>the <00:10:35.199>same <00:10:35.350>language.

217
00:10:36.400 --> 00:10:37.100
<00:10:36.400>as <00:10:36.715>the <00:10:37.030>code

218
00:10:38.500 --> 00:10:41.600
<00:10:38.500>Michael <00:10:38.675>feathers <00:10:38.850>wrote <00:10:39.025>a <00:10:39.200>very <00:10:39.375>good <00:10:39.550>book <00:10:39.725>on <00:10:39.900>unit

219
00:10:41.600 --> 00:10:43.800
<00:10:41.600>testing. <00:10:41.800>It's <00:10:42.000>called <00:10:42.200>working <00:10:42.400>effectively <00:10:42.600>with <00:10:42.800>Legacy <00:10:43.000>code.

220
00:10:45.500 --> 00:10:45.900
<00:10:45.500>label <00:10:45.860>of

221
00:10:46.500 --> 00:10:48.300
<00:10:46.500>unit <00:10:46.850>testing <00:10:47.200>for <00:10:47.550>me. <00:10:47.900>It's

222
00:10:49.300 --> 00:10:52.700
<00:10:49.300>code <00:10:49.416>always <00:10:49.533>look <00:10:49.650>like <00:10:49.766>it <00:10:49.883>was <00:10:50.000>written <00:10:50.116>by <00:10:50.233>someone <00:10:50.349>who <00:10:50.466>cares <00:10:50.583>like <00:10:50.699>cares

223
00:10:52.700 --> 00:10:53.000
<00:10:52.700>about <00:10:52.970>what?

224
00:10:54.800 --> 00:10:57.500
<00:10:54.800>Cares <00:10:54.974>about <00:10:55.150>other <00:10:55.324>people <00:10:55.500>because <00:10:55.675>about <00:10:55.849>other <00:10:56.025>people <00:10:56.199>time.

225
00:10:58.500 --> 00:11:01.400
<00:10:58.500>Again, <00:10:58.700>if <00:10:58.900>I <00:10:59.100>write <00:10:59.300>something <00:10:59.500>not <00:10:59.700>for <00:10:59.900>me,

226
00:11:01.400 --> 00:11:04.600
<00:11:01.400>I <00:11:01.516>know <00:11:01.633>so <00:11:01.750>if <00:11:01.866>I <00:11:01.983>know <00:11:02.100>that <00:11:02.216>somebody <00:11:02.333>else <00:11:02.449>will <00:11:02.566>use <00:11:02.683>my <00:11:02.800>code.

227
00:11:04.600 --> 00:11:07.400
<00:11:04.600>I <00:11:04.775>want <00:11:04.950>to <00:11:05.125>make <00:11:05.300>sure <00:11:05.475>that <00:11:05.650>the <00:11:05.825>benefits <00:11:06.000>from

228
00:11:07.400 --> 00:11:10.900
<00:11:07.400>this <00:11:07.574>and <00:11:07.750>does <00:11:07.925>not <00:11:08.100>waste <00:11:08.275>their <00:11:08.449>time <00:11:08.625>and <00:11:08.800>do

229
00:11:10.900 --> 00:11:11.900
<00:11:10.900>not <00:11:11.350>make <00:11:11.800>any

230
00:11:12.900 --> 00:11:15.800
<00:11:12.900>mistakes <00:11:13.250>wandering <00:11:13.600>around <00:11:13.949>this <00:11:14.300>code

231
00:11:16.500 --> 00:11:19.700
<00:11:16.500>because <00:11:16.675>I've <00:11:16.850>written <00:11:17.025>it <00:11:17.200>when <00:11:17.375>the <00:11:17.550>some <00:11:17.725>assumptions <00:11:17.900>and

232
00:11:19.700 --> 00:11:22.500
<00:11:19.700>in <00:11:19.900>some <00:11:20.100>language <00:11:20.300>and <00:11:20.500>so <00:11:20.700>on. <00:11:20.900>I <00:11:21.100>want

233
00:11:22.500 --> 00:11:25.400
<00:11:22.500>them <00:11:22.627>to <00:11:22.754>get <00:11:22.881>to <00:11:23.009>the <00:11:23.136>same <00:11:23.263>picture <00:11:23.390>because <00:11:23.518>I <00:11:23.645>care <00:11:23.772>about <00:11:23.900>their

234
00:11:25.400 --> 00:11:26.100
<00:11:25.400>time <00:11:25.715>as <00:11:26.030>well.

235
00:11:31.800 --> 00:11:34.200
<00:11:31.800>A <00:11:31.927>few <00:11:32.054>years <00:11:32.181>ago, <00:11:32.309>I <00:11:32.436>think <00:11:32.563>so. <00:11:32.690>It's <00:11:32.818>not <00:11:32.945>10 <00:11:33.072>years <00:11:33.199>now,

236
00:11:34.200 --> 00:11:34.600
<00:11:34.200>I <00:11:34.560>think.

237
00:11:35.100 --> 00:11:36.900
<00:11:35.100>I <00:11:35.450>was <00:11:35.800>in <00:11:36.150>a <00:11:36.500>workshop.

238
00:11:37.700 --> 00:11:40.600
<00:11:37.700>of <00:11:37.980>test-driven <00:11:38.260>development <00:11:38.540>in <00:11:38.820>assembler <00:11:39.100>language

239
00:11:42.200 --> 00:11:43.400
<00:11:42.200>like <00:11:42.470>zeros <00:11:42.740>and <00:11:43.010>ones <00:11:43.280>almost.

240
00:11:44.200 --> 00:11:46.800
<00:11:44.200>And <00:11:44.550>we <00:11:44.900>wrote <00:11:45.250>code <00:11:45.600>there.

241
00:11:47.800 --> 00:11:50.400
<00:11:47.800>And <00:11:47.939>I <00:11:48.079>think <00:11:48.219>like <00:11:48.359>an <00:11:48.500>hour <00:11:48.640>and <00:11:48.780>a <00:11:48.920>half <00:11:49.060>after <00:11:49.199>this.

242
00:11:50.400 --> 00:11:53.400
<00:11:50.400>I <00:11:50.600>looked <00:11:50.800>at <00:11:51.000>the <00:11:51.199>code <00:11:51.400>in <00:11:51.600>understand <00:11:51.800>what

243
00:11:53.400 --> 00:11:53.700
<00:11:53.400>it <00:11:53.535>was <00:11:53.670>doing.

244
00:11:54.600 --> 00:11:57.300
<00:11:54.600>So <00:11:54.950>computer <00:11:55.300>still <00:11:55.650>around <00:11:56.000>this

245
00:11:57.300 --> 00:12:00.600
<00:11:57.300>code <00:11:57.500>computer <00:11:57.699>doesn't <00:11:57.900>care. <00:11:58.099>He <00:11:58.300>doesn't <00:11:58.500>care <00:11:58.699>about

246
00:12:00.600 --> 00:12:01.400
how

247
00:12:02.600 --> 00:12:05.600
<00:12:02.600>The <00:12:02.833>code <00:12:03.066>which <00:12:03.300>translates <00:12:03.533>to <00:12:03.766>zeros <00:12:04.000>and

248
00:12:05.600 --> 00:12:07.400
<00:12:05.600>ones <00:12:05.775>look <00:12:05.950>for <00:12:06.125>and <00:12:06.300>who's <00:12:06.475>going <00:12:06.650>to <00:12:06.825>read <00:12:07.000>it.

249
00:12:08.200 --> 00:12:10.400
<00:12:08.200>It's <00:12:08.355>working. <00:12:08.511>It's <00:12:08.666>working. <00:12:08.822>It's <00:12:08.977>not <00:12:09.133>working. <00:12:09.288>It's <00:12:09.444>not <00:12:09.600>working.

250
00:12:11.200 --> 00:12:12.600
<00:12:11.200>Computers <00:12:11.452>are <00:12:11.704>very <00:12:11.956>oblivious <00:12:12.208>to <00:12:12.460>that.

251
00:12:14.300 --> 00:12:17.900
<00:12:14.300>But <00:12:14.500>programmers <00:12:14.699>write <00:12:14.900>code <00:12:15.099>for <00:12:15.300>other <00:12:15.500>programmers <00:12:15.699>and

252
00:12:17.900 --> 00:12:20.800
<00:12:17.900>that's <00:12:18.074>not <00:12:18.250>me <00:12:18.425>said <00:12:18.600>it <00:12:18.775>that's <00:12:18.949>Mountain <00:12:19.125>Fowler. <00:12:19.300>Martin

253
00:12:20.800 --> 00:12:23.800
<00:12:20.800>founder <00:12:21.000>is <00:12:21.199>one <00:12:21.400>of <00:12:21.599>the <00:12:21.800>people <00:12:22.000>behind <00:12:22.199>the

254
00:12:23.800 --> 00:12:25.100
<00:12:23.800>agile <00:12:24.970>Manifesto.

255
00:12:26.600 --> 00:12:26.900
is

256
00:12:28.600 --> 00:12:30.300
<00:12:28.600>had <00:12:29.066>a <00:12:29.533>whole <00:12:30.000>Wiki

257
00:12:31.100 --> 00:12:35.000
<00:12:31.100>The <00:12:31.450>devoted <00:12:31.800>to <00:12:32.150>code <00:12:32.500>smells

258
00:12:34.100 --> 00:12:37.300
<00:12:34.100>and <00:12:34.450>refactoring <00:12:34.800>and <00:12:35.150>wrote <00:12:35.500>books

259
00:12:37.300 --> 00:12:38.700
<00:12:37.300>about <00:12:37.510>it. <00:12:37.720>So <00:12:37.930>he <00:12:38.140>knows <00:12:38.350>what <00:12:38.560>is

260
00:12:39.900 --> 00:12:40.400
<00:12:39.900>so <00:12:40.350>basically

261
00:12:41.600 --> 00:12:44.400
<00:12:41.600>If <00:12:41.716>we're <00:12:41.833>doing <00:12:41.950>this, <00:12:42.066>we <00:12:42.183>want <00:12:42.300>to <00:12:42.416>apply <00:12:42.533>this <00:12:42.650>to <00:12:42.766>the <00:12:42.883>code <00:12:43.000>in

262
00:12:44.400 --> 00:12:45.400
<00:12:44.400>it. <00:12:44.850>It's <00:12:45.300>not.

263
00:12:46.500 --> 00:12:49.400
<00:12:46.500>Any <00:12:46.655>code <00:12:46.811>just <00:12:46.966>production <00:12:47.122>code <00:12:47.277>we <00:12:47.433>want <00:12:47.588>to <00:12:47.744>apply <00:12:47.900>these

264
00:12:49.400 --> 00:12:52.300
<00:12:49.400>things <00:12:49.574>the <00:12:49.750>idea <00:12:49.925>behind <00:12:50.100>these <00:12:50.275>things <00:12:50.449>to <00:12:50.625>the <00:12:50.800>tests

265
00:12:52.300 --> 00:12:52.700
<00:12:52.300>as <00:12:52.660>well.

266
00:12:53.400 --> 00:12:54.300
<00:12:53.400>And <00:12:53.602>what <00:12:53.805>does <00:12:54.007>it <00:12:54.209>mean?

267
00:12:57.300 --> 00:12:59.600
<00:12:57.300>So <00:12:57.500>I <00:12:57.699>chose <00:12:57.900>a <00:12:58.099>couple <00:12:58.300>of <00:12:58.500>things <00:12:58.699>here.

268
00:13:03.100 --> 00:13:08.700
<00:13:03.100>Then <00:13:03.255>you <00:13:03.411>probably <00:13:03.566>could <00:13:03.722>add <00:13:03.877>a <00:13:04.033>couple <00:13:04.188>more <00:13:04.344>but <00:13:04.500>the

269
00:13:07.700 --> 00:13:11.100
<00:13:07.700>things <00:13:07.980>that <00:13:08.260>are <00:13:08.540>like <00:13:08.820>relevant <00:13:09.100>to

270
00:13:11.100 --> 00:13:14.200
<00:13:11.100>test <00:13:11.240>a <00:13:11.380>bit <00:13:11.520>more <00:13:11.660>and <00:13:11.800>the <00:13:11.940>first <00:13:12.080>thing <00:13:12.220>that <00:13:12.360>they <00:13:12.500>show

271
00:13:14.200 --> 00:13:18.100
<00:13:14.200>intent <00:13:14.400>everybody <00:13:14.600>knows <00:13:14.800>automated <00:13:15.000>tests <00:13:15.200>are <00:13:15.400>basically <00:13:15.600>examples

272
00:13:17.100 --> 00:13:20.200
<00:13:17.100>of <00:13:17.275>how <00:13:17.450>to <00:13:17.625>use <00:13:17.800>the <00:13:17.975>code. <00:13:18.150>If <00:13:18.325>it's <00:13:18.500>in

273
00:13:20.200 --> 00:13:23.300
<00:13:20.200>the <00:13:20.433>unit <00:13:20.666>level <00:13:20.900>what <00:13:21.133>the <00:13:21.366>component <00:13:21.600>does

274
00:13:23.300 --> 00:13:26.600
<00:13:23.300>if <00:13:23.500>it's <00:13:23.699>the <00:13:23.900>end <00:13:24.099>to <00:13:24.300>end <00:13:24.500>level <00:13:24.699>what

275
00:13:26.600 --> 00:13:27.500
<00:13:26.600>the <00:13:27.005>system <00:13:27.410>does.

276
00:13:28.300 --> 00:13:31.600
<00:13:28.300>We <00:13:28.533>want <00:13:28.766>to <00:13:29.000>read <00:13:29.233>the <00:13:29.466>intent <00:13:29.699>of

277
00:13:31.600 --> 00:13:35.100
<00:13:31.600>this <00:13:31.800>test <00:13:32.000>because <00:13:32.200>we're <00:13:32.400>basically <00:13:32.600>running <00:13:32.800>their <00:13:33.000>system.

278
00:13:34.100 --> 00:13:36.100
<00:13:34.100>Whatever <00:13:34.566>the <00:13:35.033>system <00:13:35.500>is.

279
00:13:37.600 --> 00:13:40.000
<00:13:37.600>In <00:13:37.833>a <00:13:38.066>specific <00:13:38.300>scenario <00:13:38.533>and <00:13:38.766>we <00:13:39.000>want

280
00:13:40.100 --> 00:13:41.700
<00:13:40.100>to <00:13:40.275>know <00:13:40.450>what <00:13:40.625>the <00:13:40.800>end <00:13:40.975>of <00:13:41.150>the <00:13:41.325>scenario <00:13:41.500>is.

281
00:13:42.800 --> 00:13:46.300
<00:13:42.800>And <00:13:42.939>we <00:13:43.079>want <00:13:43.219>to <00:13:43.359>read <00:13:43.500>that <00:13:43.640>from <00:13:43.780>the <00:13:43.920>test. <00:13:44.060>We <00:13:44.199>obviously

282
00:13:45.300 --> 00:13:48.200
<00:13:45.300>want <00:13:45.474>to <00:13:45.650>run <00:13:45.824>the <00:13:46.000>test <00:13:46.175>and <00:13:46.349>if <00:13:46.525>it <00:13:46.699>works

283
00:13:48.200 --> 00:13:51.000
<00:13:48.200>or <00:13:48.327>not, <00:13:48.454>but <00:13:48.581>if <00:13:48.709>it <00:13:48.836>doesn't <00:13:48.963>what <00:13:49.090>will <00:13:49.218>go <00:13:49.345>first <00:13:49.472>look <00:13:49.600>at

284
00:13:51.200 --> 00:13:54.500
<00:13:51.200>the <00:13:51.375>test <00:13:51.550>itself <00:13:51.725>and <00:13:51.900>try <00:13:52.075>to <00:13:52.250>understand. <00:13:52.425>Why <00:13:52.600>is

285
00:13:54.500 --> 00:13:56.100
<00:13:54.500>it <00:13:54.733>not <00:13:54.966>working? <00:13:55.200>What <00:13:55.433>does <00:13:55.666>it <00:13:55.900>do?

286
00:13:56.700 --> 00:13:59.400
<00:13:56.700>What <00:13:56.875>is <00:13:57.050>it? <00:13:57.225>What <00:13:57.400>is <00:13:57.575>it <00:13:57.750>assume? <00:13:57.925>We <00:13:58.100>want

287
00:13:59.400 --> 00:14:01.600
<00:13:59.400>to <00:13:59.555>see <00:13:59.711>that <00:13:59.866>and <00:14:00.022>that's <00:14:00.177>the <00:14:00.333>intent <00:14:00.488>of <00:14:00.644>the <00:14:00.800>tests.

288
00:14:03.200 --> 00:14:06.400
<00:14:03.200>So <00:14:03.316>basically <00:14:03.433>it <00:14:03.550>tells <00:14:03.666>you <00:14:03.783>how <00:14:03.900>to <00:14:04.016>do <00:14:04.133>that <00:14:04.250>if <00:14:04.366>we <00:14:04.483>can't <00:14:04.600>get

289
00:14:06.400 --> 00:14:07.900
<00:14:06.400>that <00:14:06.850>from <00:14:07.300>our <00:14:07.750>tests.

290
00:14:08.400 --> 00:14:10.000
<00:14:08.400>Probably <00:14:08.680>the <00:14:08.959>test <00:14:09.240>can <00:14:09.520>be <00:14:09.800>proved.

291
00:14:12.500 --> 00:14:15.800
<00:14:12.500>Good <00:14:12.675>tests <00:14:12.850>or <00:14:13.025>cleaner <00:14:13.200>tests <00:14:13.375>are <00:14:13.550>focused. <00:14:13.725>And <00:14:13.900>usually

292
00:14:15.800 --> 00:14:18.900
<00:14:15.800>this <00:14:16.000>comes <00:14:16.199>from <00:14:16.400>a <00:14:16.599>unit <00:14:16.800>level <00:14:17.000>talking, <00:14:17.199>but

293
00:14:18.900 --> 00:14:21.400
<00:14:18.900>it's <00:14:19.133>not <00:14:19.366>just <00:14:19.600>that <00:14:19.833>so <00:14:20.066>let's <00:14:20.300>assume

294
00:14:21.400 --> 00:14:23.300
<00:14:21.400>that <00:14:21.555>we <00:14:21.711>have <00:14:21.866>a <00:14:22.022>class <00:14:22.177>with <00:14:22.333>unit <00:14:22.488>test <00:14:22.644>for <00:14:22.800>that.

295
00:14:25.500 --> 00:14:29.200
<00:14:25.500>So <00:14:25.733>that's <00:14:25.966>basically, <00:14:26.200>you <00:14:26.433>know, <00:14:26.666>you <00:14:26.900>see

296
00:14:28.200 --> 00:14:31.500
<00:14:28.200>the <00:14:28.666>interface <00:14:29.133>you <00:14:29.600>see

297
00:14:31.500 --> 00:14:36.000
<00:14:31.500>a <00:14:31.675>couple <00:14:31.850>of <00:14:32.025>methods <00:14:32.200>a <00:14:32.375>class. <00:14:32.550>Usually <00:14:32.725>hopefully <00:14:32.900>doesn't

298
00:14:35.400 --> 00:14:36.600
<00:14:35.400>do <00:14:36.480>much.

299
00:14:37.500 --> 00:14:40.700
<00:14:37.500>And <00:14:37.700>therefore <00:14:37.900>you'll <00:14:38.100>read <00:14:38.300>them <00:14:38.500>test <00:14:38.700>specifically <00:14:38.900>what

300
00:14:40.700 --> 00:14:43.300
<00:14:40.700>it's <00:14:40.840>doing <00:14:40.980>and <00:14:41.120>it's <00:14:41.260>very <00:14:41.400>focused. <00:14:41.540>And <00:14:41.680>if <00:14:41.820>it <00:14:41.960>fails, <00:14:42.100>you

301
00:14:43.300 --> 00:14:45.900
<00:14:43.300>know <00:14:43.439>what <00:14:43.579>the <00:14:43.719>problem <00:14:43.859>is, <00:14:44.000>but <00:14:44.140>it <00:14:44.280>doesn't <00:14:44.420>have <00:14:44.560>to <00:14:44.699>be

302
00:14:47.300 --> 00:14:50.300
<00:14:47.300>can <00:14:47.474>go <00:14:47.650>like <00:14:47.824>to <00:14:48.000>API <00:14:48.175>tests <00:14:48.349>and <00:14:48.525>to <00:14:48.699>end

303
00:14:50.300 --> 00:14:54.800
<00:14:50.300>tests <00:14:50.500>the <00:14:50.699>same <00:14:50.900>thing. <00:14:51.099>They <00:14:51.300>may <00:14:51.500>operate <00:14:51.699>bigger

304
00:14:54.800 --> 00:14:55.500
<00:14:54.800>systems <00:14:55.115>and <00:14:55.430>bigger.

305
00:14:56.200 --> 00:14:57.000
<00:14:56.200>pieces <00:14:56.560>of <00:14:56.920>code

306
00:14:57.600 --> 00:14:58.800
<00:14:57.600>But <00:14:57.960>they're <00:14:58.319>still <00:14:58.680>doing.

307
00:15:00.200 --> 00:15:00.500
something

308
00:15:01.500 --> 00:15:04.200
<00:15:01.500>and <00:15:01.640>if <00:15:01.780>they're <00:15:01.920>doing <00:15:02.060>a <00:15:02.200>lot <00:15:02.340>of <00:15:02.480>things <00:15:02.620>that's <00:15:02.760>a <00:15:02.900>problem

309
00:15:04.200 --> 00:15:08.100
<00:15:04.200>that <00:15:04.307>problem <00:15:04.415>is <00:15:04.523>that <00:15:04.630>for <00:15:04.738>us <00:15:04.846>again, <00:15:04.953>we're <00:15:05.061>reading <00:15:05.169>it. <00:15:05.276>We <00:15:05.384>don't <00:15:05.492>understand <00:15:05.600>what

310
00:15:07.100 --> 00:15:10.600
<00:15:07.100>it <00:15:07.300>failed <00:15:07.500>on. <00:15:07.700>What <00:15:07.900>was <00:15:08.100>the <00:15:08.300>Assumption <00:15:08.500>what

311
00:15:10.600 --> 00:15:13.600
<00:15:10.600>if <00:15:10.800>you <00:15:11.000>if <00:15:11.200>it <00:15:11.400>failed <00:15:11.600>on <00:15:11.800>step <00:15:12.000>4

312
00:15:13.600 --> 00:15:16.700
<00:15:13.600>in <00:15:13.775>the <00:15:13.950>workflow <00:15:14.125>that <00:15:14.300>we're <00:15:14.475>passing <00:15:14.650>like <00:15:14.825>the <00:15:15.000>fourth

313
00:15:16.700 --> 00:15:19.500
<00:15:16.700>API. <00:15:16.933>We <00:15:17.166>need <00:15:17.400>to <00:15:17.633>know <00:15:17.866>first <00:15:18.100>of

314
00:15:19.500 --> 00:15:22.300
<00:15:19.500>all <00:15:19.700>what <00:15:19.900>came <00:15:20.100>before <00:15:20.300>it? <00:15:20.500>What <00:15:20.700>was <00:15:20.900>the

315
00:15:22.300 --> 00:15:25.600
<00:15:22.300>state <00:15:22.474>after <00:15:22.650>stage <00:15:22.824>3 <00:15:23.000>and <00:15:23.175>so <00:15:23.349>on <00:15:23.525>so <00:15:23.699>the

316
00:15:25.600 --> 00:15:28.800
<00:15:25.600>more <00:15:25.775>we <00:15:25.950>focus <00:15:26.125>the <00:15:26.300>tests <00:15:26.475>on <00:15:26.650>smaller <00:15:26.825>stuff, <00:15:27.000>whatever

317
00:15:28.800 --> 00:15:29.600
<00:15:28.800>small <00:15:29.520>is

318
00:15:30.600 --> 00:15:33.700
<00:15:30.600>Uh, <00:15:30.800>we <00:15:31.000>understand <00:15:31.200>it <00:15:31.400>better <00:15:31.600>because <00:15:31.800>it <00:15:32.000>tells

319
00:15:33.700 --> 00:15:37.000
<00:15:33.700>a <00:15:33.900>small <00:15:34.100>smaller <00:15:34.300>more <00:15:34.500>focused <00:15:34.700>story <00:15:34.900>again. <00:15:35.100>It

320
00:15:36.400 --> 00:15:39.600
<00:15:36.400>fails <00:15:36.633>on <00:15:36.866>that <00:15:37.100>problem <00:15:37.333>with <00:15:37.566>that <00:15:37.800>story.

321
00:15:40.800 --> 00:15:41.300
<00:15:40.800>if <00:15:41.025>you <00:15:41.250>know

322
00:15:45.300 --> 00:15:45.600
there's

323
00:15:46.700 --> 00:15:49.900
<00:15:46.700>what <00:15:46.875>we're <00:15:47.050>calling <00:15:47.225>clean <00:15:47.400>code <00:15:47.575>solid <00:15:47.750>principle. <00:15:47.925>So <00:15:48.100>these

324
00:15:49.900 --> 00:15:52.200
<00:15:49.900>are <00:15:50.180>principles <00:15:50.459>from <00:15:50.740>object <00:15:51.020>orientation <00:15:51.300>that

325
00:15:53.300 --> 00:15:56.300
<00:15:53.300>could <00:15:53.500>be <00:15:53.699>good <00:15:53.900>practices <00:15:54.099>to <00:15:54.300>do <00:15:54.500>one <00:15:54.699>of

326
00:15:56.300 --> 00:15:59.900
<00:15:56.300>them <00:15:56.455>the <00:15:56.611>first <00:15:56.766>one <00:15:56.922>in <00:15:57.077>solids <00:15:57.233>the <00:15:57.388>SRP <00:15:57.544>solely <00:15:57.699>a

327
00:15:59.900 --> 00:16:01.400
<00:15:59.900>single <00:16:00.574>responsibility <00:16:01.250>principle.

328
00:16:02.700 --> 00:16:05.100
<00:16:02.700>Sop <00:16:02.816>tells <00:16:02.933>you <00:16:03.050>that <00:16:03.166>the <00:16:03.283>class <00:16:03.400>should <00:16:03.516>be <00:16:03.633>doing <00:16:03.750>one <00:16:03.866>thing <00:16:03.983>and <00:16:04.100>one

329
00:16:05.100 --> 00:16:05.500
<00:16:05.100>thing <00:16:05.460>only.

330
00:16:06.200 --> 00:16:08.000
<00:16:06.200>If <00:16:06.400>not, <00:16:06.600>you <00:16:06.800>should <00:16:07.000>separate <00:16:07.200>into <00:16:07.400>different <00:16:07.600>classes.

331
00:16:08.900 --> 00:16:11.300
<00:16:08.900>It's <00:16:09.040>basically <00:16:09.180>the <00:16:09.319>same <00:16:09.459>thing <00:16:09.600>but <00:16:09.740>on <00:16:09.880>it's <00:16:10.020>not <00:16:10.160>doesn't <00:16:10.300>have

332
00:16:11.300 --> 00:16:14.500
<00:16:11.300>to <00:16:11.416>be <00:16:11.533>in <00:16:11.650>the <00:16:11.766>unit <00:16:11.883>level <00:16:12.000>could <00:16:12.116>be <00:16:12.233>like <00:16:12.349>other <00:16:12.466>things <00:16:12.583>like <00:16:12.699>a

333
00:16:14.500 --> 00:16:16.700
<00:16:14.500>single <00:16:14.780>scenario <00:16:15.060>or <00:16:15.340>Scenic <00:16:15.620>single <00:16:15.900>workflow.

334
00:16:17.500 --> 00:16:20.200
<00:16:17.500>A <00:16:17.733>single <00:16:17.966>workflow <00:16:18.200>can <00:16:18.433>be <00:16:18.666>multiple <00:16:18.900>apis.

335
00:16:21.100 --> 00:16:22.400
<00:16:21.100>That's <00:16:21.392>okay, <00:16:21.685>but <00:16:21.977>it's <00:16:22.270>one.

336
00:16:23.200 --> 00:16:26.600
<00:16:23.200>Is <00:16:23.480>Brothers <00:16:23.760>brother <00:16:24.040>or <00:16:24.320>sister <00:16:24.600>test

337
00:16:26.600 --> 00:16:28.400
<00:16:26.600>will <00:16:27.066>take <00:16:27.533>another <00:16:28.000>scenario?

338
00:16:29.200 --> 00:16:32.600
<00:16:29.200>That's <00:16:29.307>one <00:16:29.415>of <00:16:29.523>the <00:16:29.630>things <00:16:29.738>that <00:16:29.846>we <00:16:29.953>want <00:16:30.061>to <00:16:30.169>see <00:16:30.276>when <00:16:30.384>things <00:16:30.492>fail <00:16:30.600>is

339
00:16:32.600 --> 00:16:35.400
<00:16:32.600>that <00:16:32.800>this <00:16:33.000>test <00:16:33.200>passes <00:16:33.400>but <00:16:33.600>this <00:16:33.800>one <00:16:34.000>doesn't

340
00:16:35.400 --> 00:16:38.400
<00:16:35.400>like <00:16:35.540>the <00:16:35.680>way <00:16:35.819>we <00:16:35.959>we <00:16:36.100>know <00:16:36.240>that <00:16:36.380>this <00:16:36.520>failed <00:16:36.660>but <00:16:36.800>how

341
00:16:38.400 --> 00:16:41.400
<00:16:38.400>is <00:16:38.507>it <00:16:38.615>different <00:16:38.723>than <00:16:38.830>this <00:16:38.938>one? <00:16:39.046>The <00:16:39.153>first <00:16:39.261>thing <00:16:39.369>we <00:16:39.476>do <00:16:39.584>is <00:16:39.692>we <00:16:39.800>try

342
00:16:41.400 --> 00:16:42.900
<00:16:41.400>to <00:16:41.625>look <00:16:41.850>at <00:16:42.074>the <00:16:42.300>tests <00:16:42.525>and <00:16:42.750>the

343
00:16:43.500 --> 00:16:46.200
<00:16:43.500>Quicker, <00:16:43.733>we <00:16:43.966>have <00:16:44.200>to <00:16:44.433>understand <00:16:44.666>what's <00:16:44.900>the

344
00:16:46.200 --> 00:16:49.700
<00:16:46.200>difference <00:16:46.375>between <00:16:46.550>those <00:16:46.725>things? <00:16:46.900>We'll <00:16:47.075>solve <00:16:47.250>the <00:16:47.425>problem <00:16:47.600>quickly.

345
00:16:50.400 --> 00:16:53.200
<00:16:50.400>Obviously <00:16:50.633>if <00:16:50.866>everything <00:16:51.100>fails <00:16:51.333>probably <00:16:51.566>there's <00:16:51.800>a

346
00:16:53.200 --> 00:16:56.500
<00:16:53.200>setup <00:16:53.307>of <00:16:53.415>things <00:16:53.523>or <00:16:53.630>something <00:16:53.738>like <00:16:53.846>that. <00:16:53.953>Usually <00:16:54.061>that's <00:16:54.169>not <00:16:54.276>a <00:16:54.384>problem. <00:16:54.492>Usually <00:16:54.600>that's

347
00:16:56.500 --> 00:16:57.900
<00:16:56.500>one <00:16:57.130>failure, <00:16:57.760>but

348
00:16:58.800 --> 00:17:01.200
<00:16:58.800>other <00:16:59.079>surroundings <00:16:59.359>scenarios <00:16:59.640>around <00:16:59.920>it <00:17:00.199>are

349
00:17:01.200 --> 00:17:04.100
<00:17:01.200>still <00:17:01.340>working <00:17:01.480>and <00:17:01.620>we'd <00:17:01.760>like <00:17:01.900>to <00:17:02.040>know <00:17:02.180>what <00:17:02.320>the <00:17:02.460>difference <00:17:02.600>is.

350
00:17:08.900 --> 00:17:11.800
<00:17:08.900>The <00:17:09.100>final <00:17:09.300>thing <00:17:09.500>kind <00:17:09.700>of <00:17:09.900>leads <00:17:10.100>to <00:17:10.300>how

351
00:17:11.800 --> 00:17:14.200
<00:17:11.800>code <00:17:12.033>is <00:17:12.266>rating <00:17:12.500>these <00:17:12.733>days <00:17:12.966>and <00:17:13.200>that's

352
00:17:14.200 --> 00:17:15.400
<00:17:14.200>for <00:17:14.740>all <00:17:15.280>code.

353
00:17:16.300 --> 00:17:19.000
<00:17:16.300>We <00:17:16.455>don't <00:17:16.611>write <00:17:16.766>everything <00:17:16.922>from <00:17:17.077>scratch. <00:17:17.233>We <00:17:17.388>use <00:17:17.544>a <00:17:17.700>lot

354
00:17:19.300 --> 00:17:21.500
<00:17:19.300>of <00:17:19.649>third-party <00:17:20.000>libraries <00:17:20.349>we <00:17:20.700>use.

355
00:17:22.200 --> 00:17:22.700
spring

356
00:17:23.600 --> 00:17:27.900
<00:17:23.599>I'm <00:17:23.740>going <00:17:23.879>to <00:17:24.020>show <00:17:24.159>you <00:17:24.300>an <00:17:24.439>example <00:17:24.579>in <00:17:24.719>Spring <00:17:24.859>and <00:17:25.000>add

357
00:17:26.900 --> 00:17:29.900
<00:17:26.900>a <00:17:27.366>Frameworks <00:17:27.833>at <00:17:28.300>libraries.

358
00:17:30.500 --> 00:17:33.900
<00:17:30.500>And <00:17:30.675>a <00:17:30.850>lot <00:17:31.025>of <00:17:31.200>the <00:17:31.375>code <00:17:31.550>we <00:17:31.725>write <00:17:31.900>has

359
00:17:33.900 --> 00:17:36.700
<00:17:33.900>different <00:17:34.250>levels <00:17:34.600>of <00:17:34.950>language <00:17:35.300>in

360
00:17:36.700 --> 00:17:36.700
it.

361
00:17:37.900 --> 00:17:40.300
<00:17:37.900>Let's <00:17:38.250>take <00:17:38.600>junit <00:17:38.950>or <00:17:39.300>spring

362
00:17:40.300 --> 00:17:41.200
<00:17:40.300>doesn't <00:17:40.705>really <00:17:41.110>matter.

363
00:17:42.200 --> 00:17:42.700
basically

364
00:17:44.300 --> 00:17:47.500
<00:17:44.300>Both <00:17:44.475>of <00:17:44.649>them <00:17:44.825>are <00:17:45.000>Frameworks <00:17:45.175>that <00:17:45.350>are <00:17:45.524>general <00:17:45.700>purpose.

365
00:17:47.500 --> 00:17:50.500
<00:17:47.500>They <00:17:47.640>did <00:17:47.780>what <00:17:47.920>they <00:17:48.060>do, <00:17:48.200>but <00:17:48.340>they <00:17:48.480>need <00:17:48.620>to <00:17:48.760>fight <00:17:48.900>to

366
00:17:50.500 --> 00:17:50.700
fit.

367
00:17:51.300 --> 00:17:55.600
<00:17:51.300>Everyone <00:17:51.475>writes <00:17:51.649>Java <00:17:51.825>on <00:17:52.000>the <00:17:52.175>planet, <00:17:52.350>right <00:17:52.524>so <00:17:52.700>it's

368
00:17:54.600 --> 00:17:56.800
<00:17:54.600>could <00:17:55.300>be <00:17:56.000>for.

369
00:17:57.700 --> 00:18:00.400
<00:17:57.700>finance <00:17:58.050>application <00:17:58.400>developers <00:17:58.750>and <00:17:59.100>it

370
00:18:00.400 --> 00:18:03.500
<00:18:00.400>could <00:18:00.680>be <00:18:00.960>medical <00:18:01.240>application <00:18:01.520>developers <00:18:01.800>and

371
00:18:03.500 --> 00:18:04.000
<00:18:03.500>it <00:18:03.725>could <00:18:03.950>be

372
00:18:06.700 --> 00:18:07.200
<00:18:06.700>I <00:18:06.925>don't <00:18:07.150>know.

373
00:18:09.700 --> 00:18:11.000
<00:18:09.700>Twitter <00:18:10.090>application <00:18:10.480>developers, <00:18:10.870>so

374
00:18:13.100 --> 00:18:16.500
<00:18:13.100>They <00:18:13.255>don't <00:18:13.411>know <00:18:13.566>who <00:18:13.722>the <00:18:13.877>target <00:18:14.033>audience <00:18:14.188>is. <00:18:14.344>They <00:18:14.500>speak

375
00:18:16.500 --> 00:18:19.300
<00:18:16.500>that <00:18:16.733>language. <00:18:16.966>However, <00:18:17.200>when <00:18:17.433>either <00:18:17.666>Finance <00:18:17.900>or

376
00:18:19.300 --> 00:18:22.400
<00:18:19.300>medical <00:18:19.580>or <00:18:19.860>Twitter <00:18:20.139>application <00:18:20.419>developers <00:18:20.700>write

377
00:18:22.400 --> 00:18:25.800
<00:18:22.400>things <00:18:22.600>they <00:18:22.800>have <00:18:23.000>language <00:18:23.200>in <00:18:23.400>their <00:18:23.600>domain. <00:18:23.800>They're

378
00:18:25.800 --> 00:18:28.300
<00:18:25.800>using <00:18:26.033>in <00:18:26.266>Twitter <00:18:26.500>tweets <00:18:26.733>and <00:18:26.966>replies <00:18:27.200>and

379
00:18:28.300 --> 00:18:32.200
<00:18:28.300>stuff <00:18:28.399>like <00:18:28.500>that <00:18:28.600>and <00:18:28.700>we'd <00:18:28.800>like <00:18:28.899>to <00:18:29.000>see <00:18:29.100>those <00:18:29.200>in <00:18:29.300>the <00:18:29.399>code, <00:18:29.500>but <00:18:29.600>we're <00:18:29.700>using

380
00:18:32.200 --> 00:18:34.200
<00:18:32.200>other <00:18:32.400>Frameworks, <00:18:32.600>right? <00:18:32.800>So <00:18:33.000>what <00:18:33.200>happens <00:18:33.400>is <00:18:33.600>that

381
00:18:35.100 --> 00:18:37.900
<00:18:35.100>We <00:18:35.379>have <00:18:35.659>different <00:18:35.939>kinds <00:18:36.219>of <00:18:36.500>languages.

382
00:18:38.900 --> 00:18:40.400
<00:18:38.900>inside <00:18:39.575>our <00:18:40.250>code

383
00:18:41.200 --> 00:18:44.100
<00:18:41.200>remember <00:18:41.375>Grady, <00:18:41.550>but <00:18:41.725>you <00:18:41.900>said <00:18:42.075>it <00:18:42.250>should <00:18:42.425>be <00:18:42.600>written

384
00:18:44.100 --> 00:18:45.500
<00:18:44.100>like <00:18:44.351>pros. <00:18:44.604>Have <00:18:44.856>you <00:18:45.108>seen <00:18:45.360>a

385
00:18:45.900 --> 00:18:48.000
<00:18:45.900>Book <00:18:46.133>that's <00:18:46.366>written <00:18:46.600>in <00:18:46.833>two <00:18:47.066>different <00:18:47.300>languages.

386
00:18:49.700 --> 00:18:51.700
<00:18:49.700>Interlaved <00:18:49.933>it's <00:18:50.166>kind <00:18:50.400>of <00:18:50.633>hard <00:18:50.866>to <00:18:51.100>read.

387
00:18:53.200 --> 00:18:53.300
so

388
00:18:54.500 --> 00:18:57.400
<00:18:54.500>we <00:18:54.675>want <00:18:54.850>them <00:18:55.025>to <00:18:55.200>speak <00:18:55.375>the <00:18:55.550>same <00:18:55.725>languages <00:18:55.900>and

389
00:18:57.400 --> 00:19:01.200
<00:18:57.400>one <00:18:57.575>way <00:18:57.750>to <00:18:57.925>do <00:18:58.100>that <00:18:58.275>is <00:18:58.450>abstraction <00:18:58.625>when <00:18:58.800>we

390
00:19:01.200 --> 00:19:04.500
<00:19:01.200>obstruct <00:19:01.480>details <00:19:01.760>of <00:19:02.040>implementation <00:19:02.320>or <00:19:02.600>details

391
00:19:04.500 --> 00:19:07.300
<00:19:04.500>of <00:19:04.675>use <00:19:04.850>we <00:19:05.025>behind <00:19:05.200>adapters <00:19:05.375>something <00:19:05.550>like <00:19:05.725>that <00:19:05.900>that

392
00:19:07.300 --> 00:19:08.500
<00:19:07.300>talks <00:19:07.516>to <00:19:07.732>speak <00:19:07.947>the <00:19:08.164>same <00:19:08.380>language.

393
00:19:09.300 --> 00:19:12.400
<00:19:09.300>So <00:19:09.455>when <00:19:09.611>we <00:19:09.766>have <00:19:09.922>this <00:19:10.077>kind <00:19:10.233>of <00:19:10.388>attributes <00:19:10.544>to <00:19:10.700>tests,

394
00:19:12.400 --> 00:19:14.000
<00:19:12.400>they <00:19:12.633>become <00:19:12.866>a <00:19:13.100>lot <00:19:13.333>easier <00:19:13.566>to <00:19:13.800>understand.

395
00:19:15.000 --> 00:19:15.900
unless

396
00:19:16.500 --> 00:19:18.600
<00:19:16.500>prone <00:19:16.733>to <00:19:16.966>ours <00:19:17.200>and <00:19:17.433>we'd <00:19:17.666>like <00:19:17.900>that.

397
00:19:22.100 --> 00:19:25.700
<00:19:22.100>Now <00:19:22.300>we <00:19:22.500>have <00:19:22.699>what <00:19:22.899>we <00:19:23.100>say <00:19:23.300>code <00:19:23.500>smells.

398
00:19:28.100 --> 00:19:31.100
<00:19:28.100>And <00:19:28.240>like <00:19:28.379>I <00:19:28.520>said, <00:19:28.659>Martin <00:19:28.800>father <00:19:28.939>has <00:19:29.080>a <00:19:29.219>big <00:19:29.360>bunch <00:19:29.500>of

399
00:19:31.100 --> 00:19:32.600
<00:19:31.100>list <00:19:31.774>of <00:19:32.449>them.

400
00:19:33.600 --> 00:19:35.300
<00:19:33.600>Because <00:19:34.066>that's <00:19:34.533>basically <00:19:35.000>are.

401
00:19:36.400 --> 00:19:39.600
<00:19:36.400>patterns <00:19:36.680>in <00:19:36.960>code <00:19:37.240>or <00:19:37.520>antipartans <00:19:37.800>that

402
00:19:40.400 --> 00:19:43.500
<00:19:40.400>Tell <00:19:40.680>you <00:19:40.960>that <00:19:41.240>maintenance <00:19:41.520>maintaining <00:19:41.800>the

403
00:19:43.500 --> 00:19:44.300
<00:19:43.500>code <00:19:43.680>is <00:19:43.860>going <00:19:44.040>to <00:19:44.220>be.

404
00:19:45.200 --> 00:19:48.500
<00:19:45.200>Problematic, <00:19:45.375>it's <00:19:45.550>not <00:19:45.725>telling <00:19:45.900>you <00:19:46.075>anything <00:19:46.250>about <00:19:46.425>whether <00:19:46.600>the

405
00:19:48.500 --> 00:19:49.700
<00:19:48.500>code <00:19:48.860>works <00:19:49.220>or <00:19:49.580>not.

406
00:19:50.300 --> 00:19:52.300
<00:19:50.300>so <00:19:50.455>we <00:19:50.611>have <00:19:50.766>things <00:19:50.922>like <00:19:51.077>that, <00:19:51.233>and <00:19:51.388>I'm <00:19:51.544>going <00:19:51.700>to

407
00:19:53.200 --> 00:19:56.600
<00:19:53.200>Go <00:19:53.400>couple <00:19:53.600>of <00:19:53.800>those <00:19:54.000>in <00:19:54.200>this <00:19:54.400>session <00:19:54.600>that

408
00:19:56.600 --> 00:19:58.000
<00:19:56.600>I <00:19:56.851>applied <00:19:57.104>to <00:19:57.356>test <00:19:57.608>as <00:19:57.860>well.

409
00:19:59.300 --> 00:20:02.900
<00:19:59.300>So <00:19:59.455>the <00:19:59.611>first <00:19:59.766>ones <00:19:59.922>are <00:20:00.077>good <00:20:00.233>classes <00:20:00.388>methods <00:20:00.544>God <00:20:00.700>classes.

410
00:20:02.900 --> 00:20:06.200
<00:20:02.900>Basically <00:20:03.250>very <00:20:03.600>big <00:20:03.950>classes <00:20:04.300>got

411
00:20:05.200 --> 00:20:07.800
<00:20:05.200>methods <00:20:05.550>very <00:20:05.900>big <00:20:06.250>methods <00:20:06.600>now.

412
00:20:08.900 --> 00:20:10.300
<00:20:08.900>In <00:20:09.320>tests <00:20:09.740>we <00:20:10.159>have.

413
00:20:11.100 --> 00:20:15.000
<00:20:11.100>A <00:20:11.274>separate <00:20:11.449>case <00:20:11.625>of <00:20:11.800>God <00:20:11.975>classes <00:20:12.149>because <00:20:12.324>test <00:20:12.500>classes

414
00:20:14.100 --> 00:20:17.300
<00:20:14.100>are <00:20:14.449>containers <00:20:14.800>which <00:20:15.149>kind <00:20:15.500>of

415
00:20:17.300 --> 00:20:18.600
<00:20:17.300>gather <00:20:18.469>around.

416
00:20:19.400 --> 00:20:20.900
<00:20:19.400>a <00:20:19.737>different <00:20:20.075>setup <00:20:20.412>and <00:20:20.750>cleanup

417
00:20:22.200 --> 00:20:25.600
<00:20:22.200>But <00:20:22.480>we <00:20:22.760>can <00:20:23.040>whatever. <00:20:23.320>Basically <00:20:23.600>we

418
00:20:25.600 --> 00:20:28.200
<00:20:25.600>think <00:20:25.727>if <00:20:25.854>they <00:20:25.981>have <00:20:26.109>the <00:20:26.236>same <00:20:26.363>setup, <00:20:26.490>let's <00:20:26.618>just <00:20:26.745>fit <00:20:26.872>them <00:20:27.000>inside

419
00:20:28.200 --> 00:20:30.200
<00:20:28.200>the <00:20:28.400>test <00:20:28.600>container <00:20:28.800>and <00:20:29.000>everything <00:20:29.200>will <00:20:29.400>be <00:20:29.600>okay.

420
00:20:31.400 --> 00:20:32.300
<00:20:31.400>but <00:20:31.805>we <00:20:32.210>can

421
00:20:33.200 --> 00:20:36.800
<00:20:33.200>create <00:20:33.340>giant <00:20:33.480>test <00:20:33.620>classes <00:20:33.760>that <00:20:33.900>we <00:20:34.040>don't <00:20:34.180>know. <00:20:34.320>Well, <00:20:34.460>what <00:20:34.600>should

422
00:20:36.800 --> 00:20:37.100
<00:20:36.800>go <00:20:36.935>in <00:20:37.070>there?

423
00:20:37.900 --> 00:20:40.400
<00:20:37.900>And <00:20:38.100>whether <00:20:38.300>my <00:20:38.500>test <00:20:38.700>fits <00:20:38.900>in <00:20:39.100>there <00:20:39.300>or

424
00:20:40.400 --> 00:20:43.000
<00:20:40.400>not, <00:20:40.575>and <00:20:40.750>again, <00:20:40.925>this <00:20:41.100>is <00:20:41.275>about <00:20:41.450>time. <00:20:41.625>If <00:20:41.800>I

425
00:20:43.400 --> 00:20:47.000
<00:20:43.400>now <00:20:43.516>have <00:20:43.633>to <00:20:43.750>add <00:20:43.866>another <00:20:43.983>test <00:20:44.100>I <00:20:44.216>will <00:20:44.333>spend <00:20:44.450>more <00:20:44.566>time <00:20:44.683>understanding. <00:20:44.800>Well,

426
00:20:46.400 --> 00:20:50.000
<00:20:46.400>where <00:20:46.633>does <00:20:46.866>this <00:20:47.100>go? <00:20:47.333>Whether <00:20:47.566>if <00:20:47.800>there

427
00:20:49.000 --> 00:20:52.300
<00:20:49.000>were <00:20:49.466>smaller <00:20:49.933>test <00:20:50.400>classes.

428
00:20:52.300 --> 00:20:56.200
<00:20:52.300>They <00:20:52.533>were <00:20:52.766>more <00:20:53.000>separated <00:20:53.233>by <00:20:53.466>functionality <00:20:53.700>workflow.

429
00:20:55.200 --> 00:20:58.300
<00:20:55.200>Whatever <00:20:55.666>rules <00:20:56.133>we <00:20:56.600>decide

430
00:20:58.300 --> 00:21:00.800
<00:20:58.300>it <00:20:58.440>would <00:20:58.580>be <00:20:58.720>easier <00:20:58.860>as <00:20:59.000>people <00:20:59.139>spend <00:20:59.280>less <00:20:59.419>time <00:20:59.560>with <00:20:59.700>that.

431
00:21:01.800 --> 00:21:04.500
<00:21:01.800>God <00:21:02.080>methods <00:21:02.360>big <00:21:02.639>tests, <00:21:02.919>we've <00:21:03.200>seen

432
00:21:04.500 --> 00:21:05.500
<00:21:04.500>them. <00:21:04.725>We <00:21:04.950>don't <00:21:05.175>like <00:21:05.400>them.

433
00:21:06.200 --> 00:21:08.800
<00:21:06.200>It's <00:21:06.433>hard <00:21:06.666>to <00:21:06.900>understand <00:21:07.133>what <00:21:07.366>they're <00:21:07.600>doing.

434
00:21:09.700 --> 00:21:12.300
<00:21:09.700>Comments <00:21:09.933>are <00:21:10.166>very <00:21:10.400>interesting <00:21:10.633>because <00:21:10.866>you <00:21:11.100>think

435
00:21:12.300 --> 00:21:12.600
well.

436
00:21:13.700 --> 00:21:16.300
<00:21:13.700>I <00:21:13.827>may <00:21:13.954>not <00:21:14.081>have <00:21:14.209>seen <00:21:14.336>a <00:21:14.463>lot <00:21:14.590>of <00:21:14.718>comments <00:21:14.845>in <00:21:14.972>tests. <00:21:15.100>Well,

437
00:21:16.300 --> 00:21:17.600
<00:21:16.300>first <00:21:16.467>of <00:21:16.634>all, <00:21:16.801>they <00:21:16.968>are <00:21:17.135>used <00:21:17.302>in <00:21:17.469>tests.

438
00:21:18.400 --> 00:21:19.700
<00:21:18.400>But <00:21:18.595>we <00:21:18.790>have <00:21:18.985>other <00:21:19.180>kind <00:21:19.375>of <00:21:19.570>comments.

439
00:21:20.500 --> 00:21:21.500
<00:21:20.500>called <00:21:20.950>test <00:21:21.400>names

440
00:21:22.800 --> 00:21:25.200
<00:21:22.800>comments <00:21:22.975>the <00:21:23.149>problem <00:21:23.325>with <00:21:23.500>them <00:21:23.675>as <00:21:23.850>a <00:21:24.024>smell <00:21:24.200>is

441
00:21:25.200 --> 00:21:28.100
<00:21:25.200>that <00:21:25.355>sometimes <00:21:25.511>we <00:21:25.666>just <00:21:25.822>change <00:21:25.977>the <00:21:26.133>code <00:21:26.288>and <00:21:26.444>forget <00:21:26.600>to

442
00:21:28.100 --> 00:21:28.700
<00:21:28.100>change <00:21:28.370>the <00:21:28.640>comments?

443
00:21:29.500 --> 00:21:30.700
<00:21:29.500>Sometimes <00:21:29.860>they're <00:21:30.220>not <00:21:30.580>useful.

444
00:21:31.400 --> 00:21:34.700
<00:21:31.400>It's <00:21:31.750>a <00:21:32.100>and <00:21:32.450>basically <00:21:32.800>the

445
00:21:34.700 --> 00:21:37.500
<00:21:34.700>same <00:21:34.900>thing <00:21:35.100>with <00:21:35.300>tests <00:21:35.500>as <00:21:35.700>well, <00:21:35.900>and <00:21:36.100>we

446
00:21:37.500 --> 00:21:38.200
<00:21:37.500>want <00:21:37.626>to <00:21:37.752>get <00:21:37.878>rid <00:21:38.004>of <00:21:38.130>them.

447
00:21:39.900 --> 00:21:42.600
<00:21:39.900>I'm <00:21:40.250>communicative <00:21:40.600>names. <00:21:40.950>You'll <00:21:41.300>see

448
00:21:42.600 --> 00:21:44.700
<00:21:42.600>sorry <00:21:42.949>because <00:21:43.300>examples <00:21:43.649>of <00:21:44.000>how

449
00:21:46.600 --> 00:21:47.500
<00:21:46.600>test <00:21:46.870>names <00:21:47.139>can <00:21:47.410>be

450
00:21:49.100 --> 00:21:49.800
problematic

451
00:21:50.700 --> 00:21:53.300
<00:21:50.700>remember <00:21:51.166>that <00:21:51.633>when <00:21:52.100>a

452
00:21:53.300 --> 00:21:56.300
<00:21:53.300>test <00:21:53.416>fails <00:21:53.533>the <00:21:53.649>first <00:21:53.766>thing <00:21:53.883>you <00:21:54.000>see <00:21:54.116>is <00:21:54.233>the <00:21:54.350>test <00:21:54.466>name <00:21:54.583>if <00:21:54.700>he

453
00:21:56.300 --> 00:21:59.600
<00:21:56.300>doesn't <00:21:56.427>tell <00:21:56.554>you <00:21:56.681>how <00:21:56.809>it's <00:21:56.936>different <00:21:57.063>and <00:21:57.190>like <00:21:57.318>I <00:21:57.445>said <00:21:57.572>that <00:21:57.700>by

454
00:21:59.600 --> 00:22:02.100
<00:21:59.600>itself, <00:21:59.755>how <00:21:59.911>is <00:22:00.066>it <00:22:00.222>different <00:22:00.377>from <00:22:00.533>other <00:22:00.688>tests <00:22:00.844>to <00:22:01.000>pass?

455
00:22:04.600 --> 00:22:05.300
<00:22:04.600>They <00:22:04.810>can <00:22:05.020>be <00:22:05.230>better.

456
00:22:06.700 --> 00:22:09.500
<00:22:06.700>Final <00:22:06.900>thing <00:22:07.100>is <00:22:07.300>how <00:22:07.500>we <00:22:07.700>use <00:22:07.900>constants <00:22:08.100>and

457
00:22:09.500 --> 00:22:10.800
<00:22:09.500>literals <00:22:09.889>in <00:22:10.280>the <00:22:10.670>code.

458
00:22:15.300 --> 00:22:18.500
<00:22:15.300>I'll <00:22:15.416>show <00:22:15.533>you <00:22:15.649>what <00:22:15.766>a <00:22:15.883>couple <00:22:16.000>of <00:22:16.116>examples <00:22:16.233>of <00:22:16.350>that <00:22:16.466>but <00:22:16.583>keep <00:22:16.700>in

459
00:22:18.500 --> 00:22:21.400
<00:22:18.500>mind <00:22:18.627>that <00:22:18.754>if <00:22:18.881>you've <00:22:19.009>seen <00:22:19.136>like <00:22:19.263>a <00:22:19.390>test <00:22:19.518>uses <00:22:19.645>a <00:22:19.772>user <00:22:19.900>ID

460
00:22:21.400 --> 00:22:22.300
<00:22:21.400>equals <00:22:22.210>17

461
00:22:23.900 --> 00:22:26.200
<00:22:23.900>That's <00:22:24.027>all <00:22:24.154>you <00:22:24.281>know <00:22:24.409>that <00:22:24.536>user <00:22:24.663>ID <00:22:24.790>is <00:22:24.918>equal <00:22:25.045>to <00:22:25.172>equal <00:22:25.300>17.

462
00:22:27.400 --> 00:22:28.500
<00:22:27.400>Did <00:22:27.598>you <00:22:27.796>ever <00:22:27.994>think <00:22:28.192>about <00:22:28.390>well?

463
00:22:29.500 --> 00:22:30.600
<00:22:29.500>What's <00:22:29.830>special <00:22:30.159>about <00:22:30.490>17?

464
00:22:31.600 --> 00:22:33.000
<00:22:31.600>Is <00:22:31.851>it <00:22:32.104>the <00:22:32.356>same <00:22:32.608>as <00:22:32.860>18?

465
00:22:33.800 --> 00:22:35.200
<00:22:33.800>Or <00:22:34.052>is <00:22:34.304>it <00:22:34.556>different <00:22:34.808>than <00:22:35.060>18?

466
00:22:36.200 --> 00:22:39.300
<00:22:36.200>How <00:22:36.327>do <00:22:36.454>I <00:22:36.581>know <00:22:36.709>this <00:22:36.836>info <00:22:36.963>kind <00:22:37.090>of <00:22:37.218>information <00:22:37.345>from <00:22:37.472>the <00:22:37.600>test

467
00:22:39.300 --> 00:22:39.600
because

468
00:22:40.700 --> 00:22:43.300
<00:22:40.700>otherwise, <00:22:40.855>I'll <00:22:41.011>need <00:22:41.166>to <00:22:41.322>run <00:22:41.477>in <00:22:41.633>debug <00:22:41.788>the <00:22:41.944>test <00:22:42.100>and

469
00:22:43.300 --> 00:22:45.900
<00:22:43.300>understand <00:22:43.440>what's <00:22:43.580>the <00:22:43.720>difference <00:22:43.860>so <00:22:44.000>I <00:22:44.139>don't <00:22:44.280>want <00:22:44.419>to <00:22:44.560>see <00:22:44.700>like

470
00:22:46.600 --> 00:22:49.600
<00:22:46.600>Different <00:22:46.949>numbers <00:22:47.300>of <00:22:47.649>magic <00:22:48.000>numbers

471
00:22:49.600 --> 00:22:52.300
<00:22:49.600>we <00:22:49.800>call <00:22:50.000>them <00:22:50.199>in <00:22:50.399>the <00:22:50.600>test <00:22:50.800>specifically <00:22:51.000>because

472
00:22:52.300 --> 00:22:56.100
<00:22:52.300>tests <00:22:52.475>are <00:22:52.649>about <00:22:52.825>different <00:22:53.000>a <00:22:53.175>certain <00:22:53.350>scenarios <00:22:53.524>and <00:22:53.700>this

473
00:22:55.100 --> 00:22:58.000
<00:22:55.100>17 <00:22:55.800>means <00:22:56.500>something.

474
00:22:59.100 --> 00:23:00.900
<00:22:59.100>So <00:22:59.255>we <00:22:59.411>need <00:22:59.566>to <00:22:59.722>know <00:22:59.877>and <00:23:00.033>at <00:23:00.188>least <00:23:00.344>we <00:23:00.500>can.

475
00:23:01.800 --> 00:23:04.300
<00:23:01.800>Give <00:23:02.000>a <00:23:02.200>lot <00:23:02.399>a <00:23:02.600>lot <00:23:02.800>of <00:23:03.000>Clues <00:23:03.200>around

476
00:23:04.300 --> 00:23:06.900
<00:23:04.300>this <00:23:04.475>thing <00:23:04.649>to <00:23:04.825>the <00:23:05.000>reader <00:23:05.175>about <00:23:05.350>what's <00:23:05.524>going <00:23:05.700>on.

477
00:23:07.900 --> 00:23:10.200
<00:23:07.900>Okay, <00:23:08.100>so <00:23:08.300>I've <00:23:08.500>talked <00:23:08.700>enough <00:23:08.900>probably <00:23:09.100>want <00:23:09.300>to

478
00:23:10.200 --> 00:23:10.600
<00:23:10.200>see <00:23:10.379>some <00:23:10.560>code.

479
00:23:11.500 --> 00:23:15.200
<00:23:11.500>Crashing <00:23:11.850>code <00:23:12.200>maybe <00:23:12.550>so <00:23:12.900>let's

480
00:23:14.200 --> 00:23:17.400
<00:23:14.200>jump <00:23:14.666>into <00:23:15.133>IntelliJ <00:23:15.600>and

481
00:23:17.400 --> 00:23:18.200
<00:23:17.400>I'll <00:23:17.520>show <00:23:17.640>you <00:23:17.760>a <00:23:17.880>couple <00:23:18.000>of <00:23:18.120>class.

482
00:23:19.200 --> 00:23:20.100
examples

483
00:23:21.400 --> 00:23:22.000
<00:23:21.400>les <00:23:21.670>Okay, <00:23:21.940>so

484
00:23:23.700 --> 00:23:26.500
<00:23:23.700>I'm <00:23:23.933>going <00:23:24.166>to <00:23:24.400>show <00:23:24.633>you <00:23:24.866>API <00:23:25.100>tests

485
00:23:26.500 --> 00:23:29.500
<00:23:26.500>and <00:23:26.733>these <00:23:26.966>are <00:23:27.200>spring <00:23:27.433>tests <00:23:27.666>and <00:23:27.900>basically

486
00:23:29.500 --> 00:23:31.700
<00:23:29.500>you <00:23:29.675>what <00:23:29.850>you <00:23:30.025>see <00:23:30.200>on <00:23:30.375>the <00:23:30.550>screen <00:23:30.725>right <00:23:30.900>now.

487
00:23:33.400 --> 00:23:36.500
<00:23:33.400>Is <00:23:33.600>calculator <00:23:33.800>controller <00:23:34.000>because <00:23:34.200>I'll <00:23:34.400>Google <00:23:34.600>examples <00:23:34.800>go

488
00:23:36.500 --> 00:23:39.700
<00:23:36.500>to <00:23:36.655>Country. <00:23:36.811>There <00:23:36.966>are <00:23:37.122>calculators, <00:23:37.277>of <00:23:37.433>course, <00:23:37.588>but <00:23:37.744>really <00:23:37.900>what

489
00:23:39.700 --> 00:23:42.500
<00:23:39.700>the <00:23:39.875>code <00:23:40.050>itself <00:23:40.225>does <00:23:40.400>is <00:23:40.575>not <00:23:40.750>really <00:23:40.925>important. <00:23:41.100>Well,

490
00:23:42.500 --> 00:23:44.200
<00:23:42.500>it's <00:23:42.850>interesting <00:23:43.200>that <00:23:43.550>it <00:23:43.900>does.

491
00:23:45.200 --> 00:23:47.900
<00:23:45.200>How <00:23:45.375>it <00:23:45.550>works, <00:23:45.725>so <00:23:45.900>it <00:23:46.075>has <00:23:46.250>like <00:23:46.425>a <00:23:46.600>root.

492
00:23:50.700 --> 00:23:54.000
<00:23:50.700>For <00:23:51.050>the <00:23:51.400>request <00:23:51.750>has <00:23:52.100>a

493
00:23:53.100 --> 00:23:56.100
<00:23:53.100>post <00:23:53.333>mapping <00:23:53.566>with <00:23:53.800>called <00:23:54.033>calculate <00:23:54.266>you <00:23:54.500>can

494
00:23:56.100 --> 00:23:56.200
see.

495
00:23:57.500 --> 00:23:59.600
<00:23:57.500>the <00:23:57.966>the <00:23:58.433>roads <00:23:58.900>here

496
00:24:01.600 --> 00:24:05.500
<00:24:01.600>what <00:24:01.740>you <00:24:01.879>also <00:24:02.020>can <00:24:02.159>see <00:24:02.300>that <00:24:02.439>has <00:24:02.580>a <00:24:02.719>post <00:24:02.860>method <00:24:03.000>called

497
00:24:05.500 --> 00:24:08.500
<00:24:05.500>calculate <00:24:05.780>and <00:24:06.060>it <00:24:06.340>gets <00:24:06.620>a <00:24:06.900>calculated

498
00:24:08.500 --> 00:24:11.600
<00:24:08.500>problems <00:24:08.655>in <00:24:08.811>the <00:24:08.966>body <00:24:09.122>and <00:24:09.277>calculate <00:24:09.433>the <00:24:09.588>problems. <00:24:09.744>Basically <00:24:09.900>the

499
00:24:11.600 --> 00:24:12.100
<00:24:11.600>data <00:24:12.050>object.

500
00:24:13.500 --> 00:24:16.700
<00:24:13.500>First <00:24:13.675>second <00:24:13.850>in <00:24:14.025>the <00:24:14.200>operator. <00:24:14.375>That's <00:24:14.550>basically <00:24:14.725>it <00:24:14.900>and

501
00:24:16.700 --> 00:24:19.700
<00:24:16.700>after <00:24:16.855>that <00:24:17.011>it <00:24:17.166>does <00:24:17.322>something <00:24:17.477>with <00:24:17.633>it <00:24:17.788>like <00:24:17.944>plus <00:24:18.100>and

502
00:24:19.700 --> 00:24:22.400
<00:24:19.700>minus <00:24:19.980>doesn't <00:24:20.260>really <00:24:20.540>matter <00:24:20.820>because <00:24:21.100>we're

503
00:24:22.400 --> 00:24:25.400
<00:24:22.400>not <00:24:22.516>going <00:24:22.633>to <00:24:22.750>look <00:24:22.866>at <00:24:22.983>that <00:24:23.100>anymore <00:24:23.216>because <00:24:23.333>we're <00:24:23.450>interested <00:24:23.566>in <00:24:23.683>the <00:24:23.800>tests.

504
00:24:26.300 --> 00:24:27.200
<00:24:26.300>So <00:24:26.570>let's <00:24:26.840>close <00:24:27.110>that.

505
00:24:32.400 --> 00:24:33.300
<00:24:32.400>I'm <00:24:32.602>going <00:24:32.805>to <00:24:33.007>start <00:24:33.210>here.

506
00:24:34.100 --> 00:24:35.200
<00:24:34.100>So <00:24:34.298>this <00:24:34.495>is <00:24:34.694>my <00:24:34.892>dirty <00:24:35.090>test.

507
00:24:38.100 --> 00:24:41.700
<00:24:38.100>So <00:24:38.182>what <00:24:38.264>do <00:24:38.347>I <00:24:38.429>have <00:24:38.511>here? <00:24:38.594>So <00:24:38.676>I <00:24:38.758>first <00:24:38.841>of <00:24:38.923>all <00:24:39.005>I <00:24:39.088>have <00:24:39.170>a <00:24:39.252>test <00:24:39.335>ad <00:24:39.417>which <00:24:39.500>is

508
00:24:41.700 --> 00:24:44.100
<00:24:41.700>a <00:24:41.840>very <00:24:41.980>good, <00:24:42.120>you <00:24:42.260>know, <00:24:42.400>I <00:24:42.540>walked <00:24:42.680>very <00:24:42.820>hard <00:24:42.960>at <00:24:43.100>it

509
00:24:44.100 --> 00:24:47.100
<00:24:44.100>and <00:24:44.207>you <00:24:44.315>can <00:24:44.423>see <00:24:44.530>what <00:24:44.638>what's <00:24:44.746>happening. <00:24:44.853>First <00:24:44.961>of <00:24:45.069>all, <00:24:45.176>this <00:24:45.284>is <00:24:45.392>a <00:24:45.500>comment

510
00:24:47.100 --> 00:24:50.100
<00:24:47.100>that <00:24:47.227>sounds <00:24:47.354>exactly <00:24:47.481>what's <00:24:47.609>going <00:24:47.736>to <00:24:47.863>be <00:24:47.990>happen <00:24:48.118>here <00:24:48.245>check <00:24:48.372>that <00:24:48.500>we

511
00:24:50.100 --> 00:24:53.000
<00:24:50.100>can <00:24:50.227>add <00:24:50.354>two <00:24:50.481>numbers <00:24:50.609>and <00:24:50.736>return <00:24:50.863>the <00:24:50.990>right <00:24:51.118>results <00:24:51.245>as <00:24:51.372>a <00:24:51.500>string.

512
00:24:54.300 --> 00:24:57.300
<00:24:54.300>A <00:24:54.500>lot <00:24:54.700>of <00:24:54.899>information <00:24:55.100>there. <00:24:55.300>Okay, <00:24:55.500>what <00:24:55.700>else

513
00:24:57.300 --> 00:24:58.500
<00:24:57.300>so <00:24:57.516>we <00:24:57.732>have <00:24:57.947>a <00:24:58.164>test <00:24:58.380>ad?

514
00:24:59.300 --> 00:25:02.600
<00:24:59.300>We <00:24:59.500>have <00:24:59.700>something <00:24:59.899>that <00:25:00.100>builds <00:25:00.300>the <00:25:00.500>calculator <00:25:00.700>programs

515
00:25:02.600 --> 00:25:03.400
<00:25:02.600>three <00:25:02.960>plus <00:25:03.320>four.

516
00:25:04.300 --> 00:25:07.600
<00:25:04.300>And <00:25:04.475>then <00:25:04.649>a <00:25:04.825>bunch <00:25:05.000>of <00:25:05.175>code <00:25:05.350>here <00:25:05.524>that <00:25:05.700>creates

517
00:25:07.600 --> 00:25:10.900
<00:25:07.600>the <00:25:07.949>request <00:25:08.300>headers <00:25:08.649>and <00:25:09.000>take

518
00:25:10.900 --> 00:25:13.300
<00:25:10.900>the <00:25:11.180>calculator <00:25:11.460>problems <00:25:11.740>and <00:25:12.020>it <00:25:12.300>turns

519
00:25:13.300 --> 00:25:16.300
<00:25:13.300>that <00:25:13.500>into <00:25:13.700>a <00:25:13.899>Json <00:25:14.100>and <00:25:14.300>creates <00:25:14.500>the <00:25:14.700>request.

520
00:25:16.300 --> 00:25:19.500
<00:25:16.300>It <00:25:16.475>uses <00:25:16.649>rest <00:25:16.825>template <00:25:17.000>because <00:25:17.175>this <00:25:17.350>is <00:25:17.524>old <00:25:17.700>code

521
00:25:19.500 --> 00:25:22.400
<00:25:19.500>and <00:25:19.675>then <00:25:19.850>does <00:25:20.025>the <00:25:20.200>post <00:25:20.375>and <00:25:20.550>gets <00:25:20.725>the <00:25:20.900>result

522
00:25:22.400 --> 00:25:24.500
<00:25:22.400>and <00:25:22.555>then <00:25:22.711>I <00:25:22.866>checked <00:25:23.022>it <00:25:23.177>checks. <00:25:23.333>The <00:25:23.488>result <00:25:23.644>is <00:25:23.800>7

523
00:25:26.200 --> 00:25:29.400
<00:25:26.200>excellent. <00:25:26.400>So <00:25:26.600>good <00:25:26.800>that <00:25:27.000>I <00:25:27.200>decided <00:25:27.400>that <00:25:27.600>this

524
00:25:29.400 --> 00:25:32.600
<00:25:29.400>is <00:25:29.507>good <00:25:29.615>enough <00:25:29.723>for <00:25:29.830>a <00:25:29.938>second <00:25:30.046>test <00:25:30.153>and <00:25:30.261>the <00:25:30.369>second <00:25:30.476>test <00:25:30.584>can <00:25:30.692>copy <00:25:30.800>it

525
00:25:32.600 --> 00:25:35.500
<00:25:32.600>because <00:25:32.774>that's <00:25:32.949>what <00:25:33.125>we <00:25:33.300>do. <00:25:33.475>I <00:25:33.649>couldn't <00:25:33.824>call <00:25:34.000>it

526
00:25:35.500 --> 00:25:38.100
<00:25:35.500>tested <00:25:35.700>call <00:25:35.900>it <00:25:36.100>test <00:25:36.300>and <00:25:36.500>minus <00:25:36.700>and <00:25:36.900>you

527
00:25:38.100 --> 00:25:41.300
<00:25:38.100>can <00:25:38.207>see <00:25:38.315>that <00:25:38.423>the <00:25:38.530>only <00:25:38.638>difference <00:25:38.746>is <00:25:38.853>that <00:25:38.961>I'm <00:25:39.069>changing <00:25:39.176>they're <00:25:39.284>sending <00:25:39.392>negative <00:25:39.500>numbers

528
00:25:41.300 --> 00:25:44.500
<00:25:41.300>here <00:25:41.500>and <00:25:41.700>checking <00:25:41.899>the <00:25:42.100>result <00:25:42.300>here. <00:25:42.500>But <00:25:42.700>this

529
00:25:44.500 --> 00:25:48.100
<00:25:44.500>is <00:25:44.627>how <00:25:44.754>we <00:25:44.881>do <00:25:45.009>stuff. <00:25:45.136>We <00:25:45.263>copy <00:25:45.390>stuff <00:25:45.518>and <00:25:45.645>modify <00:25:45.772>what's <00:25:45.900>different

530
00:25:47.100 --> 00:25:51.000
<00:25:47.100>only <00:25:47.274>with <00:25:47.449>duplicate <00:25:47.625>a <00:25:47.800>lot <00:25:47.975>of <00:25:48.149>code <00:25:48.324>including <00:25:48.500>this

531
00:25:50.000 --> 00:25:51.500
comment.

532
00:25:52.800 --> 00:25:56.000
<00:25:52.800>Which <00:25:52.955>is <00:25:53.111>still <00:25:53.266>true, <00:25:53.422>by <00:25:53.577>the <00:25:53.733>way, <00:25:53.888>but <00:25:54.044>that <00:25:54.200>gives

533
00:25:55.400 --> 00:25:58.300
<00:25:55.400>you <00:25:55.575>a <00:25:55.750>hint <00:25:55.925>that <00:25:56.100>probably <00:25:56.275>not <00:25:56.450>how <00:25:56.625>that <00:25:56.800>helpful.

534
00:25:58.300 --> 00:26:00.100
<00:25:58.300>Now <00:25:58.580>the <00:25:58.860>third <00:25:59.139>test <00:25:59.419>I <00:25:59.700>had.

535
00:26:00.800 --> 00:26:03.800
<00:26:00.800>Copied <00:26:00.940>and <00:26:01.080>pasted <00:26:01.220>of <00:26:01.360>course <00:26:01.500>and <00:26:01.639>modified <00:26:01.780>a <00:26:01.919>bit <00:26:02.060>this <00:26:02.200>does

536
00:26:03.800 --> 00:26:07.100
<00:26:03.800>something <00:26:03.940>with <00:26:04.080>the <00:26:04.220>minus. <00:26:04.360>I <00:26:04.500>call <00:26:04.639>it <00:26:04.780>test <00:26:04.919>minus <00:26:05.060>and <00:26:05.200>I've

537
00:26:06.100 --> 00:26:09.300
<00:26:06.100>had <00:26:06.274>enough <00:26:06.449>of <00:26:06.625>the <00:26:06.800>old <00:26:06.975>comments <00:26:07.149>got <00:26:07.324>it <00:26:07.500>subtract

538
00:26:09.300 --> 00:26:09.600
numbers.

539
00:26:10.600 --> 00:26:12.200
<00:26:10.600>and <00:26:10.879>that's <00:26:11.159>this <00:26:11.439>is <00:26:11.719>a <00:26:12.000>very

540
00:26:14.900 --> 00:26:15.400
good.

541
00:26:16.400 --> 00:26:17.200
<00:26:16.400>starting <00:26:17.120>point

542
00:26:18.100 --> 00:26:21.600
<00:26:18.100>to <00:26:18.207>an <00:26:18.315>example <00:26:18.423>that <00:26:18.530>we <00:26:18.638>see <00:26:18.746>a <00:26:18.853>lot <00:26:18.961>right? <00:26:19.069>A <00:26:19.176>lot <00:26:19.284>of <00:26:19.392>tests <00:26:19.500>look

543
00:26:21.600 --> 00:26:24.600
<00:26:21.600>basically <00:26:21.774>the <00:26:21.949>same <00:26:22.125>because <00:26:22.300>we're <00:26:22.475>starting <00:26:22.649>with <00:26:22.824>one <00:26:23.000>in

544
00:26:24.600 --> 00:26:27.700
<00:26:24.600>coping <00:26:24.800>the <00:26:25.000>another <00:26:25.199>the <00:26:25.399>others <00:26:25.600>without <00:26:25.800>refactoring <00:26:26.000>them

545
00:26:27.700 --> 00:26:30.900
<00:26:27.700>on <00:26:27.816>the <00:26:27.933>way. <00:26:28.050>So <00:26:28.166>what <00:26:28.283>we're <00:26:28.400>going <00:26:28.516>to <00:26:28.633>do <00:26:28.750>is <00:26:28.866>take <00:26:28.983>this <00:26:29.100>start.

546
00:26:31.600 --> 00:26:34.200
<00:26:31.600>As <00:26:31.800>a <00:26:32.000>starting <00:26:32.199>point <00:26:32.399>and <00:26:32.600>then <00:26:32.800>refactor <00:26:33.000>those

547
00:26:34.200 --> 00:26:35.200
<00:26:34.200>to <00:26:34.650>better <00:26:35.100>tests.

548
00:26:36.100 --> 00:26:39.300
<00:26:36.100>The <00:26:36.227>first <00:26:36.354>one <00:26:36.481>obviously <00:26:36.609>is <00:26:36.736>the <00:26:36.863>application. <00:26:36.990>But <00:26:37.118>first <00:26:37.245>I'm <00:26:37.372>going <00:26:37.500>to

549
00:26:39.300 --> 00:26:42.700
<00:26:39.300>I'm <00:26:39.440>going <00:26:39.580>to <00:26:39.720>talk <00:26:39.860>about <00:26:40.000>application <00:26:40.139>in <00:26:40.280>different <00:26:40.419>ways. <00:26:40.560>And <00:26:40.700>the

550
00:26:42.700 --> 00:26:43.300
<00:26:42.700>first <00:26:43.240>one.

551
00:26:44.200 --> 00:26:44.800
<00:26:44.200>Is <00:26:44.335>you <00:26:44.470>can <00:26:44.605>see <00:26:44.740>that?

552
00:26:45.700 --> 00:26:48.500
<00:26:45.700>All <00:26:45.933>the <00:26:46.166>variables <00:26:46.400>because <00:26:46.633>I <00:26:46.866>copied <00:26:47.100>them.

553
00:26:49.400 --> 00:26:53.200
<00:26:49.400>Our <00:26:49.750>created <00:26:50.100>and <00:26:50.450>recreated <00:26:50.800>and

554
00:26:52.200 --> 00:26:55.400
<00:26:52.200>recreated <00:26:52.550>here <00:26:52.900>so <00:26:53.250>we <00:26:53.600>can

555
00:26:55.400 --> 00:26:57.600
<00:26:55.400>create <00:26:55.866>a <00:26:56.333>common <00:26:56.800>setup.

556
00:26:58.300 --> 00:26:58.800
like

557
00:26:59.900 --> 00:27:00.300
this

558
00:27:01.900 --> 00:27:04.700
<00:27:01.900>so <00:27:02.100>in <00:27:02.300>a <00:27:02.500>common <00:27:02.700>setup <00:27:02.900>with <00:27:03.100>these <00:27:03.300>things

559
00:27:04.700 --> 00:27:06.100
<00:27:04.700>as <00:27:05.960>fields.

560
00:27:07.800 --> 00:27:10.300
<00:27:07.800>There's <00:27:08.000>a <00:27:08.200>pattern <00:27:08.399>called <00:27:08.600>extract <00:27:08.800>field. <00:27:09.000>That's <00:27:09.200>what

561
00:27:10.300 --> 00:27:13.400
<00:27:10.300>we <00:27:10.533>do <00:27:10.766>here <00:27:11.000>and <00:27:11.233>these <00:27:11.466>fields <00:27:11.700>are.

562
00:27:14.200 --> 00:27:17.400
<00:27:14.200>initialized <00:27:14.355>in <00:27:14.511>the <00:27:14.666>setup <00:27:14.822>itself <00:27:14.977>in <00:27:15.133>the <00:27:15.288>before <00:27:15.444>each <00:27:15.600>method

563
00:27:18.200 --> 00:27:21.200
<00:27:18.200>and <00:27:18.375>already <00:27:18.550>things <00:27:18.725>are <00:27:18.900>getting <00:27:19.075>smaller <00:27:19.250>and <00:27:19.425>that's <00:27:19.600>good.

564
00:27:21.200 --> 00:27:24.500
<00:27:21.200>There's <00:27:21.400>something <00:27:21.600>else <00:27:21.800>about <00:27:22.000>the <00:27:22.200>setup <00:27:22.400>the <00:27:22.600>common

565
00:27:24.500 --> 00:27:25.000
setup.

566
00:27:26.600 --> 00:27:29.200
<00:27:26.600>If <00:27:26.879>everything <00:27:27.159>is <00:27:27.439>happening <00:27:27.719>the <00:27:28.000>same

567
00:27:29.200 --> 00:27:30.500
<00:27:29.200>over <00:27:30.370>tests.

568
00:27:31.300 --> 00:27:34.200
<00:27:31.300>And <00:27:31.455>one <00:27:31.611>of <00:27:31.766>the <00:27:31.922>test <00:27:32.077>is <00:27:32.233>failing. <00:27:32.388>The <00:27:32.544>problem <00:27:32.700>is

569
00:27:34.200 --> 00:27:35.600
<00:27:34.200>probably <00:27:34.515>not <00:27:34.830>in <00:27:35.145>the <00:27:35.460>setup.

570
00:27:36.700 --> 00:27:39.400
<00:27:36.700>The <00:27:36.855>other <00:27:37.011>hand <00:27:37.166>if <00:27:37.322>all <00:27:37.477>the <00:27:37.633>tests <00:27:37.788>are <00:27:37.944>failing <00:27:38.100>chances

571
00:27:39.400 --> 00:27:43.000
<00:27:39.400>are <00:27:39.555>the <00:27:39.711>problem <00:27:39.866>are <00:27:40.022>in <00:27:40.177>the <00:27:40.333>setup. <00:27:40.488>So <00:27:40.644>it <00:27:40.800>kind

572
00:27:42.300 --> 00:27:45.300
<00:27:42.300>of <00:27:42.533>help <00:27:42.766>us <00:27:43.000>by <00:27:43.233>separating <00:27:43.466>this <00:27:43.700>stuff

573
00:27:45.300 --> 00:27:48.100
<00:27:45.300>to <00:27:45.533>putting <00:27:45.766>common <00:27:46.000>stuff <00:27:46.233>in <00:27:46.466>a <00:27:46.700>separate

574
00:27:48.100 --> 00:27:49.300
<00:27:48.100>place <00:27:49.179>to

575
00:27:50.500 --> 00:27:53.400
<00:27:50.500>again, <00:27:50.700>when <00:27:50.900>something <00:27:51.100>fails <00:27:51.300>solve <00:27:51.500>the <00:27:51.700>problem <00:27:51.900>more

576
00:27:53.400 --> 00:27:57.300
<00:27:53.400>quickly <00:27:53.555>because <00:27:53.711>we <00:27:53.866>can <00:27:54.022>do <00:27:54.177>some <00:27:54.333>kind <00:27:54.488>of <00:27:54.644>Sherlock <00:27:54.800>Holmes

577
00:27:56.300 --> 00:27:59.500
<00:27:56.300>thing <00:27:56.500>in <00:27:56.700>our <00:27:56.899>mind <00:27:57.100>saying <00:27:57.300>well <00:27:57.500>where <00:27:57.700>the

578
00:27:59.500 --> 00:28:02.500
<00:27:59.500>problem <00:27:59.700>was <00:27:59.900>some <00:28:00.100>kind <00:28:00.300>of <00:28:00.500>a <00:28:00.700>divide <00:28:00.900>and

579
00:28:02.500 --> 00:28:02.900
conquer

580
00:28:03.500 --> 00:28:06.400
<00:28:03.500>Of <00:28:03.733>what <00:28:03.966>the <00:28:04.200>problem <00:28:04.433>is? <00:28:04.666>Okay. <00:28:04.900>So

581
00:28:06.400 --> 00:28:09.900
<00:28:06.400>that's <00:28:06.600>the <00:28:06.800>first <00:28:07.000>step. <00:28:07.200>It's <00:28:07.400>cooler <00:28:07.600>tests <00:28:07.800>already

582
00:28:09.900 --> 00:28:11.300
smaller.

583
00:28:12.100 --> 00:28:15.300
<00:28:12.100>Which <00:28:12.227>is <00:28:12.354>good <00:28:12.481>remember <00:28:12.609>that's <00:28:12.736>fails <00:28:12.863>we <00:28:12.990>look <00:28:13.118>at <00:28:13.245>them. <00:28:13.372>We <00:28:13.500>try

584
00:28:15.300 --> 00:28:18.900
<00:28:15.300>to <00:28:15.407>see <00:28:15.515>what <00:28:15.623>the <00:28:15.730>what <00:28:15.838>the <00:28:15.946>difference <00:28:16.053>is. <00:28:16.161>Remove <00:28:16.269>the <00:28:16.376>common <00:28:16.484>stuff. <00:28:16.592>Everything's <00:28:16.700>good.

585
00:28:19.800 --> 00:28:21.700
<00:28:19.800>But <00:28:20.000>obviously <00:28:20.200>still <00:28:20.399>a <00:28:20.600>lot <00:28:20.800>of <00:28:21.000>the <00:28:21.200>application.

586
00:28:24.100 --> 00:28:27.400
<00:28:24.100>But <00:28:24.379>again <00:28:24.659>when <00:28:24.939>it's <00:28:25.219>smaller <00:28:25.500>you

587
00:28:27.400 --> 00:28:27.900
<00:28:27.400>can <00:28:27.550>see <00:28:27.700>the <00:28:27.850>comments.

588
00:28:28.800 --> 00:28:31.900
<00:28:28.800>actually <00:28:29.080>comments <00:28:29.360>are <00:28:29.639>duplicated <00:28:29.919>and <00:28:30.200>let's

589
00:28:31.900 --> 00:28:33.800
<00:28:31.900>speak <00:28:32.250>better <00:28:32.600>names <00:28:32.950>Okay, <00:28:33.300>so

590
00:28:35.700 --> 00:28:38.100
<00:28:35.700>Better <00:28:35.980>names <00:28:36.260>so <00:28:36.540>I <00:28:36.820>removed <00:28:37.100>the

591
00:28:38.100 --> 00:28:42.000
<00:28:38.100>comments <00:28:38.216>and <00:28:38.333>call <00:28:38.449>the <00:28:38.566>first <00:28:38.683>one <00:28:38.800>add <00:28:38.916>two <00:28:39.033>numbers <00:28:39.149>in <00:28:39.266>calculate <00:28:39.383>result <00:28:39.500>the

592
00:28:41.100 --> 00:28:44.800
<00:28:41.100>second <00:28:41.274>one <00:28:41.449>and <00:28:41.625>two <00:28:41.800>negative <00:28:41.975>numbers <00:28:42.149>and <00:28:42.324>calculate <00:28:42.500>result

593
00:28:44.800 --> 00:28:47.300
<00:28:44.800>and <00:28:45.000>the <00:28:45.200>third <00:28:45.399>one <00:28:45.600>subtract <00:28:45.800>two <00:28:46.000>numbers <00:28:46.200>and

594
00:28:47.300 --> 00:28:48.200
<00:28:47.300>calculate <00:28:48.110>results.

595
00:28:48.900 --> 00:28:51.200
<00:28:48.900>You <00:28:49.133>already <00:28:49.366>see <00:28:49.600>this <00:28:49.833>duplication <00:28:50.066>in <00:28:50.300>the

596
00:28:51.200 --> 00:28:54.300
<00:28:51.200>names <00:28:51.316>as <00:28:51.433>well <00:28:51.550>and <00:28:51.666>try <00:28:51.783>to <00:28:51.900>get <00:28:52.016>rid <00:28:52.133>of <00:28:52.250>that <00:28:52.366>in <00:28:52.483>a <00:28:52.600>moment,

597
00:28:54.300 --> 00:28:57.300
<00:28:54.300>but <00:28:54.416>we <00:28:54.533>can <00:28:54.649>a <00:28:54.766>lot <00:28:54.883>of <00:28:55.000>the <00:28:55.116>times <00:28:55.233>we <00:28:55.350>kind <00:28:55.466>of <00:28:55.583>have <00:28:55.700>this

598
00:28:57.300 --> 00:29:00.300
<00:28:57.300>do <00:28:57.475>this <00:28:57.649>and <00:28:57.825>this <00:28:58.000>and <00:28:58.175>we'll <00:28:58.350>get <00:28:58.524>the <00:28:58.700>correct

599
00:29:00.300 --> 00:29:03.600
<00:29:00.300>result <00:29:00.427>do <00:29:00.554>this <00:29:00.681>and <00:29:00.809>this <00:29:00.936>and <00:29:01.063>get <00:29:01.190>the <00:29:01.318>correct <00:29:01.445>result. <00:29:01.572>There's <00:29:01.700>no

600
00:29:03.600 --> 00:29:06.300
<00:29:03.600>need <00:29:03.755>in <00:29:03.911>saying <00:29:04.066>we're <00:29:04.222>going <00:29:04.377>to <00:29:04.533>get <00:29:04.688>their <00:29:04.844>collect <00:29:05.000>result.

601
00:29:07.100 --> 00:29:10.900
<00:29:07.100>Unless <00:29:07.227>we've <00:29:07.354>been <00:29:07.481>a <00:29:07.609>bit <00:29:07.736>more <00:29:07.863>specific <00:29:07.990>than <00:29:08.118>other <00:29:08.245>testing <00:29:08.372>differentiate <00:29:08.500>these

602
00:29:10.900 --> 00:29:11.000
things.

603
00:29:11.800 --> 00:29:14.700
<00:29:11.800>Get <00:29:12.033>rid <00:29:12.266>of <00:29:12.500>noise. <00:29:12.733>Every <00:29:12.966>piece <00:29:13.200>of

604
00:29:14.700 --> 00:29:17.300
<00:29:14.700>noise <00:29:14.875>doesn't <00:29:15.050>help <00:29:15.225>us <00:29:15.400>really <00:29:15.575>hurts <00:29:15.750>us <00:29:15.925>in <00:29:16.100>the

605
00:29:17.300 --> 00:29:18.000
<00:29:17.300>time. <00:29:17.510>We're <00:29:17.720>spending <00:29:17.930>them.

606
00:29:19.400 --> 00:29:20.200
<00:29:19.400>Okay, <00:29:19.760>that's <00:29:20.120>cool.

607
00:29:22.600 --> 00:29:25.200
<00:29:22.600>Yeah, <00:29:22.774>we <00:29:22.949>can <00:29:23.125>still <00:29:23.300>see <00:29:23.475>that <00:29:23.649>application <00:29:23.824>right <00:29:24.000>this.

608
00:29:26.100 --> 00:29:29.400
<00:29:26.100>Calling <00:29:26.274>the <00:29:26.449>request <00:29:26.625>part <00:29:26.800>is <00:29:26.975>really <00:29:27.149>something <00:29:27.324>that <00:29:27.500>we're

609
00:29:29.400 --> 00:29:32.000
<00:29:29.400>doing <00:29:29.600>over <00:29:29.800>and <00:29:30.000>over <00:29:30.200>again. <00:29:30.400>Don't <00:29:30.600>need <00:29:30.800>that.

610
00:29:34.800 --> 00:29:37.900
<00:29:34.800>It's <00:29:35.000>extracted <00:29:35.200>to <00:29:35.399>a <00:29:35.600>method <00:29:35.800>and <00:29:36.000>now <00:29:36.200>our

611
00:29:37.900 --> 00:29:39.900
<00:29:37.900>tests <00:29:38.133>are <00:29:38.366>becoming <00:29:38.600>very <00:29:38.833>thin <00:29:39.066>they <00:29:39.300>have.

612
00:29:41.500 --> 00:29:44.400
<00:29:41.500>Really <00:29:41.675>what <00:29:41.850>they <00:29:42.025>have <00:29:42.200>in <00:29:42.375>the <00:29:42.550>difference <00:29:42.725>between <00:29:42.900>them

613
00:29:44.400 --> 00:29:47.400
<00:29:44.400>that <00:29:44.540>that's <00:29:44.680>very <00:29:44.820>cool. <00:29:44.960>You <00:29:45.100>can <00:29:45.240>see <00:29:45.380>the <00:29:45.520>method <00:29:45.660>here <00:29:45.800>called

614
00:29:47.400 --> 00:29:50.800
<00:29:47.400>it <00:29:47.575>called <00:29:47.750>calculate <00:29:47.925>and <00:29:48.100>it <00:29:48.275>gets <00:29:48.450>the <00:29:48.625>URL <00:29:48.800>which

615
00:29:50.800 --> 00:29:53.300
<00:29:50.800>at <00:29:50.927>this <00:29:51.054>point <00:29:51.181>I <00:29:51.309>said, <00:29:51.436>well, <00:29:51.563>this <00:29:51.690>is <00:29:51.818>the <00:29:51.945>same <00:29:52.072>URL <00:29:52.200>for

616
00:29:53.300 --> 00:29:57.300
<00:29:53.300>everything. <00:29:53.427>So <00:29:53.554>we'll <00:29:53.681>take <00:29:53.809>care <00:29:53.936>of <00:29:54.063>that <00:29:54.190>in <00:29:54.318>a <00:29:54.445>minute. <00:29:54.572>But <00:29:54.700>before

617
00:29:56.300 --> 00:29:59.200
<00:29:56.300>that <00:29:56.580>want <00:29:56.860>to <00:29:57.139>mention <00:29:57.419>something <00:29:57.700>else.

618
00:30:01.900 --> 00:30:04.600
<00:30:01.900>What <00:30:02.040>was <00:30:02.180>that <00:30:02.320>something <00:30:02.460>that <00:30:02.600>I <00:30:02.740>wanted <00:30:02.880>to <00:30:03.020>mention? <00:30:03.160>Okay, <00:30:03.300>we'll

619
00:30:04.600 --> 00:30:05.400
<00:30:04.600>get <00:30:04.744>to <00:30:04.888>that <00:30:05.032>in <00:30:05.176>a <00:30:05.320>minute.

620
00:30:07.400 --> 00:30:10.100
<00:30:07.400>The <00:30:07.680>thing <00:30:07.960>is <00:30:08.240>that <00:30:08.520>when <00:30:08.800>we

621
00:30:10.100 --> 00:30:11.700
<00:30:10.100>have <00:30:10.449>this <00:30:10.800>kind <00:30:11.149>of <00:30:11.500>application.

622
00:30:13.800 --> 00:30:16.100
<00:30:13.800>We <00:30:13.975>want <00:30:14.149>to <00:30:14.325>make <00:30:14.500>sure <00:30:14.675>that <00:30:14.850>what <00:30:15.024>we <00:30:15.200>see.

623
00:30:17.000 --> 00:30:17.600
already

624
00:30:18.400 --> 00:30:20.200
<00:30:18.400>The <00:30:18.680>different <00:30:18.960>parts <00:30:19.240>and <00:30:19.520>that's <00:30:19.800>cool.

625
00:30:23.400 --> 00:30:25.500
<00:30:23.400>That's <00:30:24.100>okay. <00:30:24.800>That's

626
00:30:26.400 --> 00:30:29.000
<00:30:26.400>remember <00:30:26.680>this <00:30:26.960>thing <00:30:27.240>here <00:30:27.520>specifically <00:30:27.800>the

627
00:30:29.200 --> 00:30:32.200
<00:30:29.200>same <00:30:29.375>thing <00:30:29.550>so <00:30:29.725>I <00:30:29.900>can <00:30:30.075>extract <00:30:30.250>a <00:30:30.425>constant <00:30:30.600>out

628
00:30:32.200 --> 00:30:32.400
<00:30:32.200>of <00:30:32.380>it.

629
00:30:33.600 --> 00:30:36.300
<00:30:33.600>But <00:30:33.755>let's <00:30:33.911>see <00:30:34.066>if <00:30:34.222>we <00:30:34.377>can <00:30:34.533>do <00:30:34.688>something <00:30:34.844>more. <00:30:35.000>So

630
00:30:36.300 --> 00:30:40.500
<00:30:36.300>first <00:30:36.399>of <00:30:36.500>all, <00:30:36.600>I <00:30:36.700>can <00:30:36.800>I <00:30:36.899>don't <00:30:37.000>need <00:30:37.100>to <00:30:37.200>pass <00:30:37.300>this <00:30:37.399>as <00:30:37.500>an <00:30:37.600>argument. <00:30:37.700>I

631
00:30:39.500 --> 00:30:42.100
<00:30:39.500>can <00:30:39.700>just <00:30:39.900>use <00:30:40.100>it <00:30:40.300>as <00:30:40.500>a <00:30:40.700>constant. <00:30:40.900>So

632
00:30:43.100 --> 00:30:44.500
<00:30:43.100>certain <00:30:43.520>in <00:30:43.940>two <00:30:44.360>steps

633
00:30:45.300 --> 00:30:48.900
<00:30:45.300>First <00:30:45.455>of <00:30:45.611>all, <00:30:45.766>I <00:30:45.922>extracted <00:30:46.077>the <00:30:46.233>constant <00:30:46.388>called <00:30:46.544>local <00:30:46.700>URL

634
00:30:48.900 --> 00:30:51.900
<00:30:48.900>and <00:30:49.100>they <00:30:49.300>use <00:30:49.500>it <00:30:49.700>here <00:30:49.900>and <00:30:50.100>I <00:30:50.300>don't

635
00:30:51.900 --> 00:30:55.500
<00:30:51.900>pass <00:30:52.100>it <00:30:52.300>as <00:30:52.500>an <00:30:52.700>argument <00:30:52.900>anymore. <00:30:53.100>Why <00:30:53.300>get

636
00:30:54.500 --> 00:30:56.400
<00:30:54.500>noise? <00:30:54.850>I <00:30:55.200>don't <00:30:55.550>need <00:30:55.900>it.

637
00:30:57.300 --> 00:31:00.500
<00:30:57.300>So <00:30:57.580>it's <00:30:57.860>used <00:30:58.139>very <00:30:58.419>cool <00:30:58.700>here.

638
00:31:02.200 --> 00:31:02.900
<00:31:02.200>This <00:31:02.410>is <00:31:02.620>very <00:31:02.830>good.

639
00:31:04.400 --> 00:31:07.600
<00:31:04.400>But <00:31:04.527>we <00:31:04.654>can <00:31:04.781>do <00:31:04.909>something <00:31:05.036>more <00:31:05.163>about <00:31:05.290>it. <00:31:05.418>See <00:31:05.545>that <00:31:05.672>locally <00:31:05.800>URL

640
00:31:07.600 --> 00:31:10.600
<00:31:07.600>it <00:31:07.800>can <00:31:08.000>it <00:31:08.199>is <00:31:08.399>composed <00:31:08.600>to <00:31:08.800>things <00:31:09.000>this.

641
00:31:12.100 --> 00:31:14.500
<00:31:12.100>Is <00:31:12.449>basically <00:31:12.800>something <00:31:13.149>that <00:31:13.500>is.

642
00:31:15.400 --> 00:31:18.500
<00:31:15.400>Test <00:31:15.600>related <00:31:15.800>it <00:31:16.000>runs <00:31:16.200>on <00:31:16.400>localhost <00:31:16.600>right <00:31:16.800>my

643
00:31:18.500 --> 00:31:18.800
machine.

644
00:31:20.700 --> 00:31:23.500
<00:31:20.700>I <00:31:20.900>know <00:31:21.100>that <00:31:21.300>in <00:31:21.500>staging <00:31:21.700>on <00:31:21.900>pre-production <00:31:22.100>something

645
00:31:23.500 --> 00:31:26.600
<00:31:23.500>like <00:31:23.655>that. <00:31:23.811>We <00:31:23.966>will <00:31:24.122>use <00:31:24.277>different <00:31:24.433>URL <00:31:24.588>while <00:31:24.744>these <00:31:24.900>things.

646
00:31:27.400 --> 00:31:30.400
<00:31:27.400>The <00:31:27.527>root <00:31:27.654>and <00:31:27.781>the <00:31:27.909>calculate <00:31:28.036>this <00:31:28.163>come <00:31:28.290>from <00:31:28.418>the <00:31:28.545>production. <00:31:28.672>Remember <00:31:28.800>I

647
00:31:30.400 --> 00:31:30.600
<00:31:30.400>showed <00:31:30.580>you.

648
00:31:32.300 --> 00:31:33.200
<00:31:32.300>early <00:31:33.110>on

649
00:31:35.600 --> 00:31:37.600
<00:31:35.600>this <00:31:35.879>come <00:31:36.159>from <00:31:36.439>the <00:31:36.719>production <00:31:37.000>code.

650
00:31:38.200 --> 00:31:41.400
<00:31:38.200>And <00:31:38.355>if <00:31:38.511>somebody <00:31:38.666>changes <00:31:38.822>them <00:31:38.977>there <00:31:39.133>I <00:31:39.288>want <00:31:39.444>my <00:31:39.600>tests

651
00:31:41.400 --> 00:31:44.700
<00:31:41.400>to <00:31:41.575>be <00:31:41.750>robust <00:31:41.925>and <00:31:42.100>change <00:31:42.275>with <00:31:42.450>them. <00:31:42.625>So <00:31:42.800>instead.

652
00:31:47.100 --> 00:31:49.200
<00:31:47.100>Of <00:31:47.379>this <00:31:47.659>I <00:31:47.939>can <00:31:48.219>do <00:31:48.500>something.

653
00:31:50.100 --> 00:31:53.200
<00:31:50.100>Like <00:31:50.300>this, <00:31:50.500>so <00:31:50.699>I'll <00:31:50.899>call <00:31:51.100>this <00:31:51.300>the <00:31:51.500>test

654
00:31:53.200 --> 00:31:56.700
<00:31:53.200>locally <00:31:53.327>URL <00:31:53.454>which <00:31:53.581>is <00:31:53.709>okay <00:31:53.836>because <00:31:53.963>it <00:31:54.090>can <00:31:54.218>stay <00:31:54.345>here <00:31:54.472>and <00:31:54.600>it's

655
00:31:56.700 --> 00:31:58.000
<00:31:56.700>going <00:31:56.895>to <00:31:57.090>be <00:31:57.285>at <00:31:57.480>the <00:31:57.675>test <00:31:57.870>level.

656
00:31:58.700 --> 00:32:00.600
<00:31:58.700>And <00:31:58.933>then <00:31:59.166>at <00:31:59.400>the <00:31:59.633>setup, <00:31:59.866>I'll <00:32:00.100>create.

657
00:32:01.200 --> 00:32:04.400
<00:32:01.200>a <00:32:01.400>concatenate <00:32:01.600>the <00:32:01.800>strings <00:32:02.000>test <00:32:02.200>local <00:32:02.400>URL <00:32:02.600>Plus

658
00:32:05.600 --> 00:32:07.400
<00:32:05.600>the <00:32:05.949>root <00:32:06.300>and <00:32:06.649>the <00:32:07.000>calculate

659
00:32:08.900 --> 00:32:10.600
<00:32:08.900>and <00:32:09.133>now <00:32:09.366>I'm <00:32:09.600>using <00:32:09.833>the <00:32:10.066>URL <00:32:10.300>here.

660
00:32:12.000 --> 00:32:12.100
and

661
00:32:13.400 --> 00:32:16.500
<00:32:13.400>my <00:32:13.555>tests <00:32:13.711>became <00:32:13.866>two <00:32:14.022>things <00:32:14.177>first <00:32:14.333>of <00:32:14.488>all, <00:32:14.644>it <00:32:14.800>contains

662
00:32:16.500 --> 00:32:19.100
<00:32:16.500>the <00:32:16.966>constants <00:32:17.433>only <00:32:17.900>of

663
00:32:20.200 --> 00:32:21.700
<00:32:20.200>Those <00:32:20.470>that <00:32:20.740>relate <00:32:21.010>to <00:32:21.280>the <00:32:21.550>tests.

664
00:32:22.400 --> 00:32:25.100
<00:32:22.400>And <00:32:22.555>it <00:32:22.711>takes <00:32:22.866>things <00:32:23.022>from <00:32:23.177>the <00:32:23.333>production <00:32:23.488>and <00:32:23.644>makes <00:32:23.800>them

665
00:32:25.100 --> 00:32:25.400
less.

666
00:32:27.300 --> 00:32:27.900
fragile

667
00:32:28.400 --> 00:32:29.000
<00:32:28.400>She's <00:32:28.940>okay.

668
00:32:31.000 --> 00:32:31.200
Okay.

669
00:32:32.300 --> 00:32:32.900
<00:32:32.300>next <00:32:32.840>thing

670
00:32:35.600 --> 00:32:36.500
<00:32:35.600>these <00:32:36.004>are <00:32:36.410>okay.

671
00:32:40.200 --> 00:32:43.300
<00:32:40.200>Now <00:32:40.375>I <00:32:40.550>showed <00:32:40.725>you <00:32:40.900>the <00:32:41.075>calculator <00:32:41.250>problems. <00:32:41.425>Basically, <00:32:41.600>that's

672
00:32:43.300 --> 00:32:46.400
<00:32:43.300>the <00:32:43.533>calculated <00:32:43.766>promises <00:32:44.000>here. <00:32:44.233>Remember <00:32:44.466>this <00:32:44.700>is

673
00:32:46.400 --> 00:32:46.600
like

674
00:32:48.400 --> 00:32:51.100
<00:32:48.400>Yeah, <00:32:48.633>it's <00:32:48.866>three <00:32:49.100>Fields <00:32:49.333>as <00:32:49.566>Setters <00:32:49.800>and

675
00:32:51.100 --> 00:32:52.600
<00:32:51.100>Getters <00:32:51.550>and <00:32:52.000>blah <00:32:52.449>blah.

676
00:32:53.300 --> 00:32:56.200
<00:32:53.300>Which <00:32:53.455>is <00:32:53.611>okay <00:32:53.766>for <00:32:53.922>something <00:32:54.077>with <00:32:54.233>three <00:32:54.388>arguments, <00:32:54.544>but <00:32:54.700>if

677
00:32:56.200 --> 00:32:59.800
<00:32:56.200>you <00:32:56.355>had <00:32:56.511>like <00:32:56.666>a <00:32:56.822>giant <00:32:56.977>Json <00:32:57.133>file <00:32:57.288>or <00:32:57.444>giant <00:32:57.600>data

678
00:32:59.800 --> 00:33:02.300
<00:32:59.800>object, <00:32:59.955>it <00:33:00.111>will <00:33:00.266>be <00:33:00.422>a <00:33:00.577>lot <00:33:00.733>of <00:33:00.888>not <00:33:01.044>a <00:33:01.200>lot

679
00:33:02.300 --> 00:33:03.600
<00:33:02.300>of <00:33:02.690>lines <00:33:03.080>of <00:33:03.469>setup.

680
00:33:04.600 --> 00:33:07.400
<00:33:04.600>And <00:33:04.755>a <00:33:04.911>lot <00:33:05.066>of <00:33:05.222>flies <00:33:05.377>that <00:33:05.533>lines <00:33:05.688>of <00:33:05.844>setup, <00:33:06.000>it's

681
00:33:07.400 --> 00:33:10.300
<00:33:07.400>hard <00:33:07.680>to <00:33:07.960>see <00:33:08.240>what's <00:33:08.520>different <00:33:08.800>between

682
00:33:10.300 --> 00:33:10.900
tests.

683
00:33:11.800 --> 00:33:14.400
<00:33:11.800>And <00:33:11.975>again, <00:33:12.149>it <00:33:12.325>makes <00:33:12.500>things <00:33:12.675>like <00:33:12.850>very <00:33:13.024>unreadable. <00:33:13.200>So

684
00:33:14.400 --> 00:33:18.100
<00:33:14.400>what <00:33:14.555>we <00:33:14.711>usually <00:33:14.866>do <00:33:15.022>is <00:33:15.177>we <00:33:15.333>try <00:33:15.488>to <00:33:15.644>create <00:33:15.800>the

685
00:33:17.100 --> 00:33:20.800
<00:33:17.100>data <00:33:17.379>objects <00:33:17.659>somewhere <00:33:17.939>else <00:33:18.219>and <00:33:18.500>one

686
00:33:20.800 --> 00:33:22.900
<00:33:20.800>of <00:33:20.940>the <00:33:21.080>way <00:33:21.220>to <00:33:21.360>do <00:33:21.500>this <00:33:21.639>is <00:33:21.780>to <00:33:21.919>use <00:33:22.060>a <00:33:22.200>builder.

687
00:33:24.600 --> 00:33:27.200
<00:33:24.600>The <00:33:24.833>Builder <00:33:25.066>is <00:33:25.300>short <00:33:25.533>for <00:33:25.766>a <00:33:26.000>build

688
00:33:27.200 --> 00:33:30.200
<00:33:27.200>Builder <00:33:27.355>object <00:33:27.511>using <00:33:27.666>the <00:33:27.822>Builder <00:33:27.977>pattern. <00:33:28.133>Usually <00:33:28.288>what <00:33:28.444>it <00:33:28.600>says

689
00:33:30.200 --> 00:33:33.600
<00:33:30.200>is <00:33:30.340>something <00:33:30.480>like <00:33:30.620>that <00:33:30.760>well <00:33:30.900>with <00:33:31.040>first <00:33:31.180>or <00:33:31.320>second <00:33:31.460>kind <00:33:31.600>of

690
00:33:33.600 --> 00:33:36.700
<00:33:33.600>way <00:33:33.879>of <00:33:34.159>fluent <00:33:34.439>interface <00:33:34.719>to <00:33:35.000>set

691
00:33:36.700 --> 00:33:39.500
<00:33:36.700>up <00:33:37.050>things <00:33:37.400>and <00:33:37.750>then <00:33:38.100>call

692
00:33:39.500 --> 00:33:41.700
<00:33:39.500>the <00:33:39.700>build <00:33:39.900>and <00:33:40.100>then <00:33:40.300>you <00:33:40.500>get <00:33:40.700>something <00:33:40.900>else.

693
00:33:44.900 --> 00:33:47.600
<00:33:44.900>Now <00:33:45.055>I <00:33:45.211>know <00:33:45.366>this <00:33:45.522>is <00:33:45.677>not <00:33:45.833>very <00:33:45.988>impressive. <00:33:46.144>But <00:33:46.300>think

694
00:33:47.600 --> 00:33:50.500
<00:33:47.600>about <00:33:47.879>this <00:33:48.159>with <00:33:48.439>a <00:33:48.719>giant <00:33:49.000>Json

695
00:33:50.500 --> 00:33:54.000
<00:33:50.500>files <00:33:50.733>with <00:33:50.966>a <00:33:51.200>lot <00:33:51.433>of <00:33:51.666>sub <00:33:51.900>branches

696
00:33:53.700 --> 00:33:56.300
<00:33:53.700>that <00:33:53.980>you <00:33:54.260>can <00:33:54.540>set <00:33:54.820>up <00:33:55.100>differently.

697
00:33:56.900 --> 00:33:59.300
<00:33:56.900>In <00:33:57.100>and <00:33:57.300>you <00:33:57.500>the <00:33:57.700>difference <00:33:57.900>the <00:33:58.100>only <00:33:58.300>difference

698
00:33:59.300 --> 00:34:02.500
<00:33:59.300>between <00:33:59.427>this <00:33:59.554>test <00:33:59.681>and <00:33:59.809>another <00:33:59.936>is <00:34:00.063>one <00:34:00.190>of <00:34:00.318>the <00:34:00.445>branches <00:34:00.572>down <00:34:00.700>the

699
00:34:02.500 --> 00:34:05.400
<00:34:02.500>line <00:34:02.640>with <00:34:02.780>one <00:34:02.920>argument, <00:34:03.060>but <00:34:03.200>you <00:34:03.340>need <00:34:03.480>to <00:34:03.620>build <00:34:03.760>everything <00:34:03.900>else.

700
00:34:05.400 --> 00:34:06.100
So

701
00:34:07.300 --> 00:34:09.000
<00:34:07.300>one <00:34:07.500>of <00:34:07.700>the <00:34:07.899>cool <00:34:08.100>things <00:34:08.299>that <00:34:08.500>Builders <00:34:08.699>do

702
00:34:10.200 --> 00:34:12.700
<00:34:10.199>We <00:34:10.355>don't <00:34:10.511>give <00:34:10.666>them <00:34:10.822>enough <00:34:10.977>credit <00:34:11.133>for <00:34:11.288>that <00:34:11.444>is <00:34:11.600>this.

703
00:34:14.100 --> 00:34:17.600
<00:34:14.100>They <00:34:14.380>initialize <00:34:14.659>things <00:34:14.940>as <00:34:15.219>default <00:34:15.500>and

704
00:34:17.600 --> 00:34:20.000
<00:34:17.600>what <00:34:17.739>that <00:34:17.880>is <00:34:18.020>what <00:34:18.159>that <00:34:18.299>means <00:34:18.440>and <00:34:18.580>it's <00:34:18.719>not <00:34:18.860>going <00:34:19.000>to

705
00:34:20.100 --> 00:34:20.500
<00:34:20.100>be <00:34:20.460>this.

706
00:34:21.800 --> 00:34:24.600
<00:34:21.800>Flashy <00:34:22.500>in <00:34:23.200>these

707
00:34:24.600 --> 00:34:27.400
<00:34:24.600>tests, <00:34:24.775>but <00:34:24.949>again <00:34:25.125>apply <00:34:25.299>this <00:34:25.475>for <00:34:25.650>giant <00:34:25.824>data <00:34:26.000>object.

708
00:34:27.400 --> 00:34:30.600
<00:34:27.400>We <00:34:27.555>can <00:34:27.711>drop <00:34:27.866>a <00:34:28.022>lot <00:34:28.177>of <00:34:28.333>the <00:34:28.488>setup <00:34:28.644>the <00:34:28.800>common

709
00:34:30.600 --> 00:34:32.200
<00:34:30.600>setup <00:34:30.833>and <00:34:31.066>leave <00:34:31.299>it <00:34:31.533>to <00:34:31.766>the <00:34:32.000>Builder.

710
00:34:32.800 --> 00:34:33.400
<00:34:32.800>and <00:34:33.340>then

711
00:34:35.200 --> 00:34:38.400
<00:34:35.199>only <00:34:35.355>having <00:34:35.511>the <00:34:35.666>test <00:34:35.822>but <00:34:35.977>it <00:34:36.133>really <00:34:36.288>matters <00:34:36.444>to <00:34:36.600>this

712
00:34:38.400 --> 00:34:41.700
<00:34:38.400>specific <00:34:38.527>test. <00:34:38.654>So <00:34:38.781>again, <00:34:38.909>we'll <00:34:39.036>see <00:34:39.163>the <00:34:39.290>differences <00:34:39.418>between <00:34:39.545>the <00:34:39.672>test. <00:34:39.800>So

713
00:34:41.700 --> 00:34:44.300
<00:34:41.699>tests <00:34:41.875>will <00:34:42.049>look <00:34:42.225>like <00:34:42.399>this <00:34:42.574>in <00:34:42.750>my <00:34:42.924>case. <00:34:43.100>The

714
00:34:44.300 --> 00:34:48.600
<00:34:44.300>builder <00:34:44.650>takes <00:34:45.000>a <00:34:45.350>show <00:34:45.700>it

715
00:34:48.600 --> 00:34:51.000
<00:34:48.600>the <00:34:48.880>Builder's <00:34:49.159>default <00:34:49.440>is <00:34:49.719>the <00:34:50.000>Plus.

716
00:34:52.300 --> 00:34:53.100
<00:34:52.300>that <00:34:53.020>means

717
00:34:54.300 --> 00:34:57.600
<00:34:54.300>in <00:34:54.500>this <00:34:54.700>example <00:34:54.900>instead <00:34:55.100>of <00:34:55.300>having <00:34:55.500>a <00:34:55.700>parameters.

718
00:34:59.700 --> 00:35:02.700
<00:34:59.700>Called <00:34:59.855>it <00:35:00.011>with <00:35:00.166>first <00:35:00.322>and <00:35:00.477>second <00:35:00.633>but <00:35:00.788>not <00:35:00.944>with <00:35:01.100>Ops.

719
00:35:02.700 --> 00:35:04.900
<00:35:02.700>I <00:35:02.875>do <00:35:03.049>not <00:35:03.225>send <00:35:03.399>the <00:35:03.575>Ops <00:35:03.750>now <00:35:03.924>you <00:35:04.100>may

720
00:35:05.900 --> 00:35:09.400
<00:35:05.900>Tell <00:35:06.133>me <00:35:06.366>and <00:35:06.600>that <00:35:06.833>is <00:35:07.066>sometimes <00:35:07.300>true.

721
00:35:10.200 --> 00:35:13.500
<00:35:10.200>If <00:35:10.307>I <00:35:10.415>want <00:35:10.523>to <00:35:10.630>make <00:35:10.738>things <00:35:10.846>more <00:35:10.953>readable, <00:35:11.061>I <00:35:11.169>will <00:35:11.276>put <00:35:11.384>the <00:35:11.492>things <00:35:11.600>there

722
00:35:13.500 --> 00:35:18.200
<00:35:13.500>because <00:35:13.655>kind <00:35:13.811>of <00:35:13.966>hit <00:35:14.122>it <00:35:14.277>that <00:35:14.433>the <00:35:14.588>plus <00:35:14.744>is <00:35:14.900>the

723
00:35:16.200 --> 00:35:19.400
<00:35:16.200>default <00:35:16.666>here, <00:35:17.133>but <00:35:17.600>we

724
00:35:19.400 --> 00:35:22.300
<00:35:19.400>can <00:35:19.540>play <00:35:19.680>with <00:35:19.820>that <00:35:19.960>like <00:35:20.100>call <00:35:20.240>it <00:35:20.380>a <00:35:20.520>param <00:35:20.660>builder <00:35:20.800>plus

725
00:35:22.300 --> 00:35:26.900
<00:35:22.300>something <00:35:22.416>like <00:35:22.533>that <00:35:22.650>something <00:35:22.766>that <00:35:22.883>will <00:35:23.000>tell <00:35:23.116>us <00:35:23.233>a <00:35:23.350>lot <00:35:23.466>of <00:35:23.583>information <00:35:23.700>about

726
00:35:26.900 --> 00:35:28.300
<00:35:26.900>what's <00:35:27.080>going <00:35:27.260>in <00:35:27.440>and <00:35:27.620>what <00:35:27.800>are <00:35:27.980>the <00:35:28.160>defaults?

727
00:35:29.100 --> 00:35:29.400
but

728
00:35:30.600 --> 00:35:34.300
<00:35:30.600>this <00:35:30.775>is <00:35:30.950>an <00:35:31.125>example <00:35:31.299>take <00:35:31.475>it <00:35:31.650>to <00:35:31.825>it. <00:35:32.000>It's

729
00:35:33.300 --> 00:35:36.300
<00:35:33.300>in <00:35:33.533>it's <00:35:33.766>the <00:35:34.000>value <00:35:34.233>is <00:35:34.466>not <00:35:34.700>coming

730
00:35:36.300 --> 00:35:39.400
<00:35:36.300>with <00:35:36.475>a <00:35:36.650>very <00:35:36.825>small <00:35:37.000>number <00:35:37.175>of <00:35:37.350>parameters. <00:35:37.525>It's <00:35:37.700>with

731
00:35:39.400 --> 00:35:42.300
<00:35:39.400>a <00:35:39.527>lot <00:35:39.654>and <00:35:39.781>I <00:35:39.909>worked <00:35:40.036>with <00:35:40.163>very <00:35:40.290>big <00:35:40.418>Json <00:35:40.545>object <00:35:40.672>that <00:35:40.800>I

732
00:35:42.300 --> 00:35:45.100
<00:35:42.300>loaded <00:35:42.650>templates <00:35:43.000>from <00:35:43.350>files <00:35:43.700>and

733
00:35:45.100 --> 00:35:46.900
<00:35:45.100>edit <00:35:45.380>to <00:35:45.660>them <00:35:45.940>instead <00:35:46.220>of <00:35:46.500>like

734
00:35:47.900 --> 00:35:49.600
<00:35:47.900>creating <00:35:49.300>like

735
00:35:50.300 --> 00:35:53.600
<00:35:50.300>dozens <00:35:50.533>of <00:35:50.766>test <00:35:51.000>lines <00:35:51.233>to <00:35:51.466>set <00:35:51.700>up

736
00:35:53.600 --> 00:35:54.100
objects

737
00:35:54.800 --> 00:35:57.100
<00:35:54.800>So <00:35:55.000>the <00:35:55.200>difference <00:35:55.400>is <00:35:55.600>this <00:35:55.800>one <00:35:56.000>once <00:35:56.200>it's

738
00:35:57.100 --> 00:36:00.400
<00:35:57.100>plus <00:35:57.227>I <00:35:57.354>don't <00:35:57.481>tell <00:35:57.609>it <00:35:57.736>it's <00:35:57.863>plus <00:35:57.990>but <00:35:58.118>when <00:35:58.245>it's <00:35:58.372>different <00:35:58.500>than

739
00:36:00.400 --> 00:36:03.100
<00:36:00.400>the <00:36:00.633>default <00:36:00.866>call <00:36:01.100>it <00:36:01.333>with <00:36:01.566>Ops <00:36:01.800>minus

740
00:36:03.100 --> 00:36:04.700
<00:36:03.100>so <00:36:03.450>you <00:36:03.799>can <00:36:04.150>see <00:36:04.500>that.

741
00:36:05.600 --> 00:36:08.200
<00:36:05.600>This <00:36:05.833>differentiates <00:36:06.066>that <00:36:06.299>in <00:36:06.533>the <00:36:06.766>other <00:36:07.000>two

742
00:36:08.200 --> 00:36:11.500
<00:36:08.200>again. <00:36:08.327>This <00:36:08.454>is <00:36:08.581>a <00:36:08.709>good <00:36:08.836>hints <00:36:08.963>for <00:36:09.090>us <00:36:09.218>about <00:36:09.345>the <00:36:09.472>difference <00:36:09.600>between

743
00:36:11.500 --> 00:36:11.900
them.

744
00:36:14.100 --> 00:36:15.800
<00:36:14.100>Okay, <00:36:14.450>so <00:36:14.799>well <00:36:15.150>we <00:36:15.500>done.

745
00:36:17.100 --> 00:36:20.300
<00:36:17.100>Not <00:36:17.299>really. <00:36:17.500>You <00:36:17.700>still <00:36:17.900>have <00:36:18.100>to <00:36:18.299>things <00:36:18.500>there.

746
00:36:22.100 --> 00:36:24.000
<00:36:22.100>So <00:36:23.500>next.

747
00:36:24.900 --> 00:36:27.100
<00:36:24.900>Remember, <00:36:25.100>I <00:36:25.300>talked <00:36:25.500>about <00:36:25.700>different <00:36:25.900>languages <00:36:26.100>in <00:36:26.300>the

748
00:36:27.100 --> 00:36:30.700
<00:36:27.100>test. <00:36:27.255>We <00:36:27.411>kind <00:36:27.566>of <00:36:27.722>separate <00:36:27.877>things. <00:36:28.033>But <00:36:28.188>this <00:36:28.344>file <00:36:28.500>already

749
00:36:30.700 --> 00:36:33.300
<00:36:30.700>talks <00:36:31.049>to <00:36:31.399>languages <00:36:31.750>at <00:36:32.100>least

750
00:36:33.300 --> 00:36:35.300
<00:36:33.300>one <00:36:33.766>is <00:36:34.233>these <00:36:34.700>tests?

751
00:36:35.900 --> 00:36:39.000
<00:36:35.900>They <00:36:36.250>speak <00:36:36.600>with <00:36:36.950>calculator <00:36:37.300>level.

752
00:36:39.900 --> 00:36:42.800
<00:36:39.900>And <00:36:40.180>first <00:36:40.460>and <00:36:40.740>second <00:36:41.020>and <00:36:41.300>Ops,

753
00:36:42.800 --> 00:36:44.400
<00:36:42.800>these <00:36:43.080>are <00:36:43.360>like <00:36:43.640>the <00:36:43.920>domain <00:36:44.200>language.

754
00:36:45.200 --> 00:36:49.000
<00:36:45.200>But <00:36:45.339>it <00:36:45.480>has <00:36:45.620>other <00:36:45.759>stuff <00:36:45.899>as <00:36:46.040>well. <00:36:46.180>It <00:36:46.319>has <00:36:46.460>Json <00:36:46.600>and

755
00:36:48.700 --> 00:36:51.500
<00:36:48.700>HTTP <00:36:49.166>in <00:36:49.633>rest <00:36:50.100>time

756
00:36:51.500 --> 00:36:53.800
<00:36:51.500>that <00:36:51.733>which <00:36:51.966>are <00:36:52.200>from <00:36:52.433>another <00:36:52.666>world. <00:36:52.900>Really.

757
00:36:55.300 --> 00:36:58.600
<00:36:55.300>So <00:36:55.416>we <00:36:55.533>did <00:36:55.650>we <00:36:55.766>do <00:36:55.883>one <00:36:56.000>step. <00:36:56.116>We <00:36:56.233>kind <00:36:56.350>of <00:36:56.466>separate <00:36:56.583>these <00:36:56.700>things.

758
00:36:58.600 --> 00:37:01.500
<00:36:58.600>So <00:36:58.880>now <00:36:59.160>these <00:36:59.440>things <00:36:59.720>sit <00:37:00.000>in

759
00:37:01.500 --> 00:37:02.200
<00:37:01.500>a <00:37:01.815>separate <00:37:02.129>function.

760
00:37:04.800 --> 00:37:07.500
<00:37:04.800>However, <00:37:05.266>the <00:37:05.733>variables <00:37:06.200>still

761
00:37:07.500 --> 00:37:10.700
<00:37:07.500>stay <00:37:07.966>together <00:37:08.433>kind <00:37:08.900>of

762
00:37:10.700 --> 00:37:10.700
mix.

763
00:37:11.500 --> 00:37:12.400
<00:37:11.500>Let's <00:37:11.905>operate <00:37:12.310>them.

764
00:37:13.700 --> 00:37:16.800
<00:37:13.700>So <00:37:13.875>what <00:37:14.049>I <00:37:14.225>did <00:37:14.399>is <00:37:14.575>I <00:37:14.750>took <00:37:14.924>this <00:37:15.100>method.

765
00:37:17.600 --> 00:37:20.200
<00:37:17.600>Called <00:37:17.799>calculate <00:37:18.000>which <00:37:18.200>by <00:37:18.400>the <00:37:18.600>way <00:37:18.799>the <00:37:19.000>name

766
00:37:20.200 --> 00:37:20.800
<00:37:20.200>of <00:37:20.740>it.

767
00:37:22.100 --> 00:37:25.300
<00:37:22.100>Is <00:37:22.275>part <00:37:22.450>of <00:37:22.625>the <00:37:22.799>domain <00:37:22.975>language, <00:37:23.150>right? <00:37:23.325>It's <00:37:23.500>called

768
00:37:25.300 --> 00:37:28.400
<00:37:25.300>calculate. <00:37:25.533>However, <00:37:25.766>what's <00:37:26.000>going <00:37:26.233>on <00:37:26.466>inside? <00:37:26.700>It

769
00:37:28.400 --> 00:37:31.500
<00:37:28.400>is <00:37:28.555>really <00:37:28.711>general <00:37:28.866>purpose. <00:37:29.022>So <00:37:29.177>I <00:37:29.333>took <00:37:29.488>this <00:37:29.644>body <00:37:29.800>and

770
00:37:31.500 --> 00:37:34.400
<00:37:31.500>took <00:37:31.640>it <00:37:31.780>to <00:37:31.920>another <00:37:32.060>class. <00:37:32.200>I <00:37:32.340>called <00:37:32.480>it <00:37:32.620>API <00:37:32.760>call <00:37:32.900>wrapper.

771
00:37:35.500 --> 00:37:37.000
<00:37:35.500>And <00:37:35.725>I <00:37:35.950>moved <00:37:36.175>here <00:37:36.400>everything <00:37:36.625>that <00:37:36.850>is.

772
00:37:38.400 --> 00:37:39.600
<00:37:38.400>HTTP <00:37:38.940>and <00:37:39.480>Json

773
00:37:40.200 --> 00:37:42.500
<00:37:40.200>so <00:37:40.399>I <00:37:40.600>called <00:37:40.799>the <00:37:41.000>method <00:37:41.200>post <00:37:41.399>with <00:37:41.600>body.

774
00:37:43.800 --> 00:37:46.700
<00:37:43.800>Because <00:37:44.033>it <00:37:44.266>does <00:37:44.500>phosphor <00:37:44.733>object <00:37:44.966>and <00:37:45.200>it

775
00:37:46.700 --> 00:37:49.800
<00:37:46.700>gets <00:37:46.875>the <00:37:47.049>URL <00:37:47.225>whatever <00:37:47.399>URL <00:37:47.575>it <00:37:47.750>is. <00:37:47.924>It <00:37:48.100>gets

776
00:37:49.800 --> 00:37:52.200
<00:37:49.800>everybody <00:37:50.033>whatever <00:37:50.266>the <00:37:50.500>body <00:37:50.733>is <00:37:50.966>because <00:37:51.200>it

777
00:37:52.200 --> 00:37:54.400
<00:37:52.200>will <00:37:52.480>just <00:37:52.759>squash <00:37:53.040>anything <00:37:53.319>to <00:37:53.600>adjacent.

778
00:37:55.600 --> 00:37:58.700
<00:37:55.600>And <00:37:55.775>now <00:37:55.950>I <00:37:56.125>have <00:37:56.299>a <00:37:56.475>general <00:37:56.650>purpose <00:37:56.825>API <00:37:57.000>call

779
00:37:58.700 --> 00:37:59.000
wrapper.

780
00:38:00.100 --> 00:38:01.100
<00:38:00.100>And <00:38:00.549>what's <00:38:01.000>left?

781
00:38:02.400 --> 00:38:02.800
here

782
00:38:04.500 --> 00:38:05.400
<00:38:04.500>let's <00:38:05.310>sorry.

783
00:38:07.200 --> 00:38:10.700
<00:38:07.200>That's <00:38:07.339>the <00:38:07.480>API <00:38:07.620>call <00:38:07.759>Rapid. <00:38:07.899>This <00:38:08.040>is <00:38:08.180>before <00:38:08.319>what <00:38:08.460>I've <00:38:08.600>left

784
00:38:10.700 --> 00:38:11.000
with.

785
00:38:11.900 --> 00:38:15.200
<00:38:11.900>Is <00:38:12.100>first <00:38:12.300>of <00:38:12.500>all, <00:38:12.700>I <00:38:12.900>removed <00:38:13.100>everything <00:38:13.300>with

786
00:38:14.200 --> 00:38:17.200
<00:38:14.200>the <00:38:14.549>from <00:38:14.899>HTTP <00:38:15.250>and <00:38:15.600>Json

787
00:38:17.200 --> 00:38:20.900
<00:38:17.200>to <00:38:17.327>that <00:38:17.454>class <00:38:17.581>so <00:38:17.709>I <00:38:17.836>don't <00:38:17.963>have <00:38:18.090>it <00:38:18.218>here <00:38:18.345>less <00:38:18.472>variables <00:38:18.600>what

788
00:38:20.900 --> 00:38:23.200
<00:38:20.900>I'm <00:38:21.100>left <00:38:21.300>with <00:38:21.500>something <00:38:21.700>only <00:38:21.900>from <00:38:22.100>the <00:38:22.300>domain

789
00:38:23.200 --> 00:38:26.100
<00:38:23.200>setup <00:38:23.666>is <00:38:24.133>already <00:38:24.600>smaller.

790
00:38:27.800 --> 00:38:28.000
and

791
00:38:30.200 --> 00:38:32.800
<00:38:30.200>well <00:38:30.355>I <00:38:30.511>have <00:38:30.666>is <00:38:30.822>the <00:38:30.977>call <00:38:31.133>calculating <00:38:31.288>which <00:38:31.444>is <00:38:31.600>again.

792
00:38:33.700 --> 00:38:34.700
<00:38:33.700>something <00:38:34.149>that <00:38:34.600>is

793
00:38:35.600 --> 00:38:38.800
<00:38:35.600>where <00:38:35.833>we <00:38:36.066>responds <00:38:36.299>only <00:38:36.533>for <00:38:36.766>calculate <00:38:37.000>calculator

794
00:38:38.800 --> 00:38:41.500
<00:38:38.800>and <00:38:39.000>the <00:38:39.200>test <00:38:39.400>called <00:38:39.600>the <00:38:39.800>general <00:38:40.000>purpose <00:38:40.200>with

795
00:38:41.500 --> 00:38:44.600
<00:38:41.500>the <00:38:41.780>URL <00:38:42.060>and <00:38:42.340>calc <00:38:42.620>programs, <00:38:42.900>which

796
00:38:44.600 --> 00:38:45.400
<00:38:44.600>is <00:38:45.320>nice.

797
00:38:46.700 --> 00:38:49.100
<00:38:46.700>Now <00:38:46.933>I <00:38:47.166>would <00:38:47.399>probably <00:38:47.633>stop <00:38:47.866>here <00:38:48.100>but

798
00:38:49.100 --> 00:38:51.200
<00:38:49.100>have <00:38:49.240>something <00:38:49.380>else <00:38:49.520>to <00:38:49.660>show <00:38:49.799>you <00:38:49.940>remember <00:38:50.080>I <00:38:50.220>told <00:38:50.360>you <00:38:50.500>about.

799
00:38:52.600 --> 00:38:55.200
<00:38:52.600>User <00:38:52.833>ID <00:38:53.066>equals <00:38:53.299>17, <00:38:53.533>so <00:38:53.766>I'm <00:38:54.000>going

800
00:38:55.200 --> 00:38:56.200
<00:38:55.200>to <00:38:55.424>show <00:38:55.649>you <00:38:55.875>an <00:38:56.100>example.

801
00:38:59.500 --> 00:39:03.100
<00:38:59.500>Apply <00:38:59.640>to <00:38:59.780>user <00:38:59.920>to <00:39:00.060>17. <00:39:00.200>It <00:39:00.340>just <00:39:00.480>wanted <00:39:00.620>to <00:39:00.760>show <00:39:00.900>something

802
00:39:02.100 --> 00:39:05.500
<00:39:02.100>that <00:39:02.275>goes <00:39:02.450>along <00:39:02.625>with <00:39:02.799>this <00:39:02.975>line. <00:39:03.150>So <00:39:03.325>you <00:39:03.500>can

803
00:39:05.500 --> 00:39:08.000
<00:39:05.500>see <00:39:05.700>in <00:39:05.900>a <00:39:06.100>calculator <00:39:06.300>all <00:39:06.500>numbers <00:39:06.700>We <00:39:06.900>have

804
00:39:08.400 --> 00:39:11.300
<00:39:08.400>basically <00:39:08.600>the <00:39:08.800>same <00:39:09.000>value <00:39:09.200>right? <00:39:09.400>So <00:39:09.600>you <00:39:09.800>have

805
00:39:11.300 --> 00:39:14.500
<00:39:11.300>the <00:39:11.580>three <00:39:11.860>and <00:39:12.140>four <00:39:12.420>and <00:39:12.700>seven

806
00:39:14.500 --> 00:39:17.600
<00:39:14.500>here <00:39:14.700>have <00:39:14.900>the <00:39:15.100>same <00:39:15.300>kind <00:39:15.500>of <00:39:15.700>importance <00:39:15.900>as

807
00:39:17.600 --> 00:39:20.300
<00:39:17.600>the <00:39:17.799>minus <00:39:18.000>5 <00:39:18.200>minus <00:39:18.400>4 <00:39:18.600>and <00:39:18.799>minus <00:39:19.000>9

808
00:39:20.300 --> 00:39:20.600
here.

809
00:39:21.600 --> 00:39:24.200
<00:39:21.600>Same <00:39:21.740>for <00:39:21.880>the <00:39:22.020>20 <00:39:22.160>and <00:39:22.299>4 <00:39:22.440>and <00:39:22.580>16 <00:39:22.720>because <00:39:22.860>this <00:39:23.000>is

810
00:39:24.200 --> 00:39:28.100
<00:39:24.200>a <00:39:24.355>calculator <00:39:24.511>when <00:39:24.666>it <00:39:24.822>deals <00:39:24.977>with <00:39:25.133>numbers, <00:39:25.288>but <00:39:25.444>let's <00:39:25.600>assume.

811
00:39:29.600 --> 00:39:29.900
that

812
00:39:30.800 --> 00:39:32.100
<00:39:30.800>this <00:39:31.190>4 <00:39:31.580>is <00:39:31.970>special.

813
00:39:33.700 --> 00:39:36.400
<00:39:33.700>All <00:39:33.899>the <00:39:34.100>numbers <00:39:34.299>out. <00:39:34.500>There <00:39:34.700>are <00:39:34.899>the <00:39:35.100>same

814
00:39:36.400 --> 00:39:36.700
thing.

815
00:39:38.400 --> 00:39:40.100
<00:39:38.400>Can <00:39:38.680>use <00:39:38.960>any <00:39:39.240>number <00:39:39.520>any <00:39:39.800>time?

816
00:39:40.800 --> 00:39:43.300
<00:39:40.800>But <00:39:40.955>these <00:39:41.111>four <00:39:41.266>is <00:39:41.422>special. <00:39:41.577>How <00:39:41.733>would <00:39:41.888>I <00:39:42.044>tell <00:39:42.200>it

817
00:39:43.300 --> 00:39:44.400
<00:39:43.300>from <00:39:43.630>the <00:39:43.960>tests? <00:39:44.290>Well?

818
00:39:46.500 --> 00:39:49.300
<00:39:46.500>You <00:39:46.655>can <00:39:46.811>do <00:39:46.966>this. <00:39:47.122>So <00:39:47.277>I <00:39:47.433>left <00:39:47.588>the <00:39:47.744>plastic <00:39:47.900>thing

819
00:39:49.300 --> 00:39:51.900
<00:39:49.300>the <00:39:49.440>same <00:39:49.580>just <00:39:49.720>for <00:39:49.860>reference. <00:39:50.000>But <00:39:50.140>look <00:39:50.280>what <00:39:50.420>I <00:39:50.560>did <00:39:50.700>here.

820
00:39:52.800 --> 00:39:55.200
<00:39:52.800>So <00:39:53.000>for <00:39:53.200>the <00:39:53.400>first <00:39:53.600>number, <00:39:53.800>which <00:39:54.000>I <00:39:54.200>could

821
00:39:55.200 --> 00:39:58.600
<00:39:55.200>say, <00:39:55.327>it <00:39:55.454>could <00:39:55.581>be <00:39:55.709>any <00:39:55.836>number. <00:39:55.963>I <00:39:56.090>create <00:39:56.218>I <00:39:56.345>created <00:39:56.472>a <00:39:56.600>constant

822
00:39:58.600 --> 00:40:01.100
<00:39:58.600>called <00:39:58.880>any <00:39:59.160>number <00:39:59.440>and <00:39:59.720>I <00:40:00.000>use

823
00:40:01.100 --> 00:40:04.300
<00:40:01.100>a <00:40:01.255>lot <00:40:01.411>of <00:40:01.566>any <00:40:01.722>as <00:40:01.877>a <00:40:02.033>prefix <00:40:02.188>for <00:40:02.344>things <00:40:02.500>that

824
00:40:04.300 --> 00:40:05.900
<00:40:04.300>can <00:40:04.580>be <00:40:04.860>replaced <00:40:05.140>with <00:40:05.420>other <00:40:05.700>stuff.

825
00:40:06.800 --> 00:40:08.800
<00:40:06.800>but <00:40:07.150>then <00:40:07.500>a <00:40:07.850>news <00:40:08.200>they

826
00:40:09.900 --> 00:40:11.500
<00:40:09.900>when <00:40:10.250>something <00:40:10.600>is <00:40:10.950>more <00:40:11.300>specific.

827
00:40:12.400 --> 00:40:13.200
<00:40:12.400>imagine <00:40:13.120>yourself

828
00:40:14.900 --> 00:40:17.500
<00:40:14.900>Any <00:40:15.250>user <00:40:15.600>and <00:40:15.950>the <00:40:16.300>admin?

829
00:40:18.400 --> 00:40:21.500
<00:40:18.400>So <00:40:18.575>you <00:40:18.750>can <00:40:18.925>specify <00:40:19.100>different <00:40:19.275>values <00:40:19.450>that <00:40:19.625>have <00:40:19.800>some

830
00:40:21.500 --> 00:40:22.400
<00:40:21.500>kind <00:40:21.905>of <00:40:22.310>meaning.

831
00:40:23.400 --> 00:40:25.000
<00:40:23.400>Not <00:40:23.680>just <00:40:23.960>by <00:40:24.240>giving <00:40:24.520>them <00:40:24.800>names.

832
00:40:25.800 --> 00:40:28.600
<00:40:25.800>But <00:40:26.000>given <00:40:26.200>them <00:40:26.400>some <00:40:26.600>kind <00:40:26.800>of <00:40:27.000>other <00:40:27.200>special

833
00:40:28.600 --> 00:40:32.300
<00:40:28.600>are <00:40:28.799>they <00:40:29.000>specific <00:40:29.200>or <00:40:29.400>other <00:40:29.600>like <00:40:29.799>general <00:40:30.000>public

834
00:40:31.300 --> 00:40:33.000
<00:40:31.300>news <00:40:32.700>anything?

835
00:40:34.300 --> 00:40:37.200
<00:40:34.300>And <00:40:34.440>you <00:40:34.580>can <00:40:34.720>use <00:40:34.860>this <00:40:35.000>as <00:40:35.140>part <00:40:35.280>of <00:40:35.420>the <00:40:35.560>code <00:40:35.700>and

836
00:40:37.200 --> 00:40:40.300
<00:40:37.200>you <00:40:37.375>read <00:40:37.549>that <00:40:37.725>and <00:40:37.899>you <00:40:38.075>understand. <00:40:38.250>Well, <00:40:38.424>this <00:40:38.600>could

837
00:40:40.300 --> 00:40:43.400
<00:40:40.300>I <00:40:40.455>could <00:40:40.611>replace <00:40:40.766>the <00:40:40.922>any <00:40:41.077>number <00:40:41.233>with <00:40:41.388>any <00:40:41.544>other <00:40:41.700>number

838
00:40:43.400 --> 00:40:47.300
<00:40:43.400>and <00:40:43.633>I <00:40:43.866>expect <00:40:44.100>the <00:40:44.333>same <00:40:44.566>effect <00:40:44.800>or

839
00:40:46.300 --> 00:40:49.300
<00:40:46.300>behavior. <00:40:46.500>Nothing <00:40:46.700>than <00:40:46.900>that <00:40:47.100>at <00:40:47.300>the <00:40:47.500>same <00:40:47.700>result.

840
00:40:49.300 --> 00:40:52.900
<00:40:49.300>But <00:40:49.533>this <00:40:49.766>one <00:40:50.000>before <00:40:50.233>is <00:40:50.466>the <00:40:50.700>subtractor

841
00:40:52.900 --> 00:40:55.700
<00:40:52.900>is <00:40:53.250>important <00:40:53.600>in <00:40:53.950>important. <00:40:54.300>Look

842
00:40:55.700 --> 00:40:58.000
<00:40:55.700>at <00:40:55.899>that <00:40:56.100>and <00:40:56.299>it <00:40:56.500>has <00:40:56.700>kind <00:40:56.899>of <00:40:57.100>meaning

843
00:40:58.500 --> 00:41:00.400
<00:40:58.500>Kind <00:40:58.733>of <00:40:58.966>signal <00:40:59.200>up. <00:40:59.433>What <00:40:59.666>is <00:40:59.900>important?

844
00:41:02.800 --> 00:41:05.300
<00:41:02.800>Okay <00:41:02.940>done <00:41:03.080>with <00:41:03.220>the <00:41:03.360>code. <00:41:03.500>Let's <00:41:03.640>go <00:41:03.780>back <00:41:03.920>to <00:41:04.060>the <00:41:04.200>presentation.

845
00:41:11.000 --> 00:41:11.300
Okay.

846
00:41:13.500 --> 00:41:14.300
<00:41:13.500>So, <00:41:13.680>what <00:41:13.860>did <00:41:14.040>we <00:41:14.220>do?

847
00:41:15.200 --> 00:41:16.400
<00:41:15.200>We <00:41:15.560>refactor <00:41:15.920>the <00:41:16.280>tests.

848
00:41:17.800 --> 00:41:20.700
<00:41:17.800>And <00:41:18.150>obviously <00:41:18.500>did <00:41:18.850>the <00:41:19.200>daughter

849
00:41:20.700 --> 00:41:22.300
<00:41:20.700>factoring <00:41:21.049>with <00:41:21.399>everything <00:41:21.750>works, <00:41:22.100>right?

850
00:41:23.600 --> 00:41:27.500
<00:41:23.600>Yeah, <00:41:23.880>we <00:41:24.160>took <00:41:24.440>big <00:41:24.720>containers <00:41:25.000>of

851
00:41:27.500 --> 00:41:30.300
<00:41:27.500>tests <00:41:27.675>and <00:41:27.850>squish <00:41:28.025>them. <00:41:28.200>You <00:41:28.375>kind <00:41:28.550>of <00:41:28.725>separate <00:41:28.900>them

852
00:41:30.300 --> 00:41:34.300
<00:41:30.300>to <00:41:30.580>their <00:41:30.860>own <00:41:31.140>responsibilities <00:41:31.420>one <00:41:31.700>acts

853
00:41:33.300 --> 00:41:37.200
<00:41:33.300>as <00:41:33.475>part <00:41:33.650>of <00:41:33.825>the <00:41:34.000>test <00:41:34.175>class <00:41:34.350>other <00:41:34.525>are <00:41:34.700>service

854
00:41:36.200 --> 00:41:38.100
<00:41:36.200>classes <00:41:36.666>that <00:41:37.133>help <00:41:37.600>us.

855
00:41:39.100 --> 00:41:40.200
<00:41:39.100>as <00:41:39.430>a <00:41:39.759>general <00:41:40.089>purpose

856
00:41:41.300 --> 00:41:41.900
<00:41:41.300>more <00:41:41.570>or <00:41:41.840>less

857
00:41:42.800 --> 00:41:45.200
<00:41:42.800>Tests <00:41:43.150>are <00:41:43.500>smaller. <00:41:43.850>We <00:41:44.200>can

858
00:41:45.200 --> 00:41:48.800
<00:41:45.200>see <00:41:45.399>like <00:41:45.600>this <00:41:45.799>test <00:41:46.000>does <00:41:46.200>this <00:41:46.399>which <00:41:46.600>is

859
00:41:48.800 --> 00:41:50.000
<00:41:48.800>supposed <00:41:49.340>to <00:41:49.880>distance.

860
00:41:50.800 --> 00:41:51.700
<00:41:50.800>Can <00:41:51.205>compare <00:41:51.609>them?

861
00:41:52.600 --> 00:41:55.600
<00:41:52.600>Removed <00:41:52.799>the <00:41:53.000>comments <00:41:53.200>that <00:41:53.400>didn't <00:41:53.600>help <00:41:53.799>us <00:41:54.000>stay

862
00:41:55.600 --> 00:41:56.800
<00:41:55.600>anything <00:41:56.680>interesting.

863
00:41:57.700 --> 00:42:00.300
<00:41:57.700>Removed <00:41:58.166>duplicate <00:41:58.633>the <00:41:59.100>application

864
00:42:00.300 --> 00:42:03.600
<00:42:00.300>from <00:42:00.455>the <00:42:00.611>names <00:42:00.766>and <00:42:00.922>just <00:42:01.077>left <00:42:01.233>their <00:42:01.388>what <00:42:01.544>is <00:42:01.700>again

865
00:42:03.600 --> 00:42:06.500
<00:42:03.600>the <00:42:03.880>differentiating <00:42:04.160>the <00:42:04.440>differentiating <00:42:04.720>factor <00:42:05.000>between

866
00:42:06.500 --> 00:42:09.600
<00:42:06.500>the <00:42:06.675>tests <00:42:06.850>and <00:42:07.025>if <00:42:07.200>it's <00:42:07.375>not <00:42:07.550>differentiated <00:42:07.725>enough, <00:42:07.900>we'll

867
00:42:09.600 --> 00:42:11.700
<00:42:09.600>put <00:42:10.066>more <00:42:10.533>differentiation <00:42:11.000>there.

868
00:42:12.200 --> 00:42:15.300
<00:42:12.200>And <00:42:12.433>we <00:42:12.666>played <00:42:12.899>with <00:42:13.133>the <00:42:13.366>constants <00:42:13.600>the

869
00:42:15.300 --> 00:42:15.900
literals.

870
00:42:16.500 --> 00:42:18.700
<00:42:16.500>And <00:42:16.850>gave <00:42:17.200>them <00:42:17.550>good <00:42:17.900>names.

871
00:42:19.900 --> 00:42:22.100
<00:42:19.900>But <00:42:20.055>not <00:42:20.211>just <00:42:20.366>that <00:42:20.522>we <00:42:20.677>kind <00:42:20.833>of <00:42:20.988>separate <00:42:21.144>them <00:42:21.300>to

872
00:42:22.100 --> 00:42:25.300
<00:42:22.100>what <00:42:22.299>belongs <00:42:22.500>to <00:42:22.700>the <00:42:22.900>test <00:42:23.100>what <00:42:23.299>belongs <00:42:23.500>to

873
00:42:25.300 --> 00:42:28.900
<00:42:25.300>production <00:42:25.500>code <00:42:25.700>and <00:42:25.900>gave <00:42:26.100>them <00:42:26.300>names <00:42:26.500>that <00:42:26.700>signal

874
00:42:28.900 --> 00:42:31.500
<00:42:28.900>something <00:42:29.600>rather <00:42:30.300>than

875
00:42:31.500 --> 00:42:33.400
<00:42:31.500>just <00:42:31.850>a <00:42:32.200>regular <00:42:32.550>user <00:42:32.900>ID.

876
00:42:33.900 --> 00:42:36.700
<00:42:33.900>Because <00:42:34.100>we <00:42:34.300>can <00:42:34.500>add <00:42:34.700>more <00:42:34.900>information <00:42:35.100>by <00:42:35.300>using

877
00:42:36.700 --> 00:42:38.800
<00:42:36.700>differentiation <00:42:37.049>in <00:42:37.399>the <00:42:37.750>names <00:42:38.100>themselves.

878
00:42:44.800 --> 00:42:48.200
<00:42:44.800>Is <00:42:45.000>this <00:42:45.200>special <00:42:45.400>to <00:42:45.600>test <00:42:45.800>code? <00:42:46.000>Not <00:42:46.200>really?

879
00:42:47.200 --> 00:42:50.400
<00:42:47.200>You <00:42:47.399>can <00:42:47.600>do <00:42:47.799>these <00:42:48.000>things <00:42:48.200>in <00:42:48.399>the <00:42:48.600>in

880
00:42:50.400 --> 00:42:54.000
<00:42:50.400>production <00:42:50.575>code <00:42:50.750>as <00:42:50.925>well. <00:42:51.100>The <00:42:51.275>thinking <00:42:51.450>about <00:42:51.625>tests <00:42:51.800>come

881
00:42:53.200 --> 00:42:56.300
<00:42:53.200>from <00:42:53.549>a <00:42:53.899>specific <00:42:54.250>way <00:42:54.600>of

882
00:42:56.300 --> 00:42:59.400
<00:42:56.300>how <00:42:56.475>we <00:42:56.650>write <00:42:56.825>and <00:42:57.000>use <00:42:57.175>tests <00:42:57.350>one <00:42:57.525>these <00:42:57.700>once

883
00:42:59.400 --> 00:43:02.100
<00:42:59.400>they <00:42:59.680>fail <00:42:59.960>but <00:43:00.240>cutting <00:43:00.520>that <00:43:00.800>down

884
00:43:02.100 --> 00:43:05.700
<00:43:02.100>code <00:43:02.275>to <00:43:02.450>smaller <00:43:02.625>pieces. <00:43:02.799>We <00:43:02.975>like <00:43:03.150>that <00:43:03.325>note <00:43:03.500>application.

885
00:43:06.600 --> 00:43:07.300
<00:43:06.600>That's <00:43:07.230>like

886
00:43:08.300 --> 00:43:11.600
<00:43:08.300>programming <00:43:08.580>101 <00:43:08.860>don't <00:43:09.140>duplicate <00:43:09.420>code <00:43:09.700>and

887
00:43:11.600 --> 00:43:15.000
<00:43:11.600>then <00:43:11.775>we <00:43:11.950>go <00:43:12.125>and <00:43:12.299>do <00:43:12.475>it <00:43:12.650>like <00:43:12.825>better <00:43:13.000>names.

888
00:43:14.800 --> 00:43:18.500
<00:43:14.800>We <00:43:15.150>like <00:43:15.500>that <00:43:15.850>abstractions. <00:43:16.200>We

889
00:43:18.500 --> 00:43:22.000
<00:43:18.500>like <00:43:18.655>that <00:43:18.811>as <00:43:18.966>well. <00:43:19.122>Same <00:43:19.277>thing. <00:43:19.433>We <00:43:19.588>like <00:43:19.744>about <00:43:19.900>these

890
00:43:21.300 --> 00:43:25.400
<00:43:21.300>things <00:43:21.533>in <00:43:21.766>production <00:43:22.000>codes <00:43:22.233>have <00:43:22.466>same <00:43:22.700>meaning

891
00:43:24.400 --> 00:43:27.400
<00:43:24.400>basically <00:43:24.866>the <00:43:25.333>same <00:43:25.800>effect

892
00:43:27.400 --> 00:43:29.500
<00:43:27.400>in <00:43:27.633>test <00:43:27.866>code. <00:43:28.100>We <00:43:28.333>need <00:43:28.566>to <00:43:28.800>apply.

893
00:43:30.300 --> 00:43:32.200
<00:43:30.300>the <00:43:30.650>same <00:43:31.000>standard <00:43:31.350>to <00:43:31.700>both

894
00:43:34.600 --> 00:43:37.200
<00:43:34.600>once <00:43:34.755>we <00:43:34.911>have <00:43:35.066>that <00:43:35.222>we <00:43:35.377>have <00:43:35.533>like <00:43:35.688>very <00:43:35.844>clean <00:43:36.000>tests.

895
00:43:37.800 --> 00:43:39.900
<00:43:37.800>And <00:43:37.955>basically <00:43:38.111>that's <00:43:38.266>what <00:43:38.422>I <00:43:38.577>want <00:43:38.733>to <00:43:38.888>show <00:43:39.044>you <00:43:39.200>today.

896
00:43:41.100 --> 00:43:41.100
So

897
00:43:42.400 --> 00:43:44.100
<00:43:42.400>thank <00:43:42.633>you <00:43:42.866>very <00:43:43.100>much <00:43:43.333>for <00:43:43.566>listening <00:43:43.800>and

898
00:43:45.600 --> 00:43:45.900
staying

899
00:43:46.600 --> 00:43:49.200
<00:43:46.600>and <00:43:46.833>you <00:43:47.066>can <00:43:47.299>ask <00:43:47.533>questions <00:43:47.766>now <00:43:48.000>and

900
00:43:50.400 --> 00:43:53.500
<00:43:50.400>I <00:43:50.575>will <00:43:50.750>try <00:43:50.925>to <00:43:51.100>answer <00:43:51.275>them. <00:43:51.450>Either <00:43:51.625>way <00:43:51.800>get

901
00:43:53.500 --> 00:43:56.900
<00:43:53.500>in <00:43:53.655>touch <00:43:53.811>with <00:43:53.966>me <00:43:54.122>through <00:43:54.277>all <00:43:54.433>these <00:43:54.588>ways <00:43:54.744>and <00:43:54.900>on

902
00:43:56.900 --> 00:43:57.700
<00:43:56.900>Twitter <00:43:57.620>and

903
00:43:58.900 --> 00:44:01.200
<00:43:58.900>whatever <00:43:59.075>there <00:43:59.250>is <00:43:59.425>even <00:43:59.600>in <00:43:59.775>the <00:43:59.950>middle <00:44:00.125>of <00:44:00.300>the

904
00:44:01.200 --> 00:44:03.600
<00:44:01.200>night, <00:44:01.327>although <00:44:01.454>I <00:44:01.581>probably <00:44:01.709>won't <00:44:01.836>answer <00:44:01.963>in <00:44:02.090>the <00:44:02.218>middle <00:44:02.345>of <00:44:02.472>the <00:44:02.600>day.

905
00:44:05.100 --> 00:44:05.800
<00:44:05.100>Thank <00:44:05.310>you <00:44:05.520>very <00:44:05.730>much.

906
00:44:11.700 --> 00:44:14.900
<00:44:11.700>Hello <00:44:11.899>kids, <00:44:12.100>welcome <00:44:12.299>back <00:44:12.500>online <00:44:12.700>stage. <00:44:12.899>Thanks <00:44:13.100>for

907
00:44:14.900 --> 00:44:17.600
<00:44:14.900>the <00:44:15.180>talk <00:44:15.460>and <00:44:15.740>awesome <00:44:16.020>presentation. <00:44:16.300>I

908
00:44:17.600 --> 00:44:20.200
<00:44:17.600>always <00:44:17.727>like <00:44:17.854>it <00:44:17.981>when <00:44:18.109>people <00:44:18.236>spice <00:44:18.363>them <00:44:18.490>up <00:44:18.618>with <00:44:18.745>it <00:44:18.872>with <00:44:19.000>memes.

909
00:44:22.200 --> 00:44:23.500
<00:44:22.200>So <00:44:22.433>you <00:44:22.667>ready <00:44:22.902>for <00:44:23.136>some <00:44:23.370>questions?

910
00:44:25.800 --> 00:44:28.300
<00:44:25.800>Picked <00:44:26.150>and <00:44:26.500>first <00:44:26.850>one <00:44:27.200>would

911
00:44:28.300 --> 00:44:32.600
<00:44:28.300>be <00:44:28.475>what <00:44:28.650>do <00:44:28.825>you <00:44:29.000>think <00:44:29.175>about <00:44:29.350>hierarchic <00:44:29.525>hierarchical <00:44:29.700>test

912
00:44:32.600 --> 00:44:33.300
classes?

913
00:44:34.700 --> 00:44:36.200
<00:44:34.700>Well, <00:44:35.037>that's <00:44:35.375>a <00:44:35.712>very <00:44:36.049>good.

914
00:44:37.500 --> 00:44:40.300
<00:44:37.500>I <00:44:37.607>won't <00:44:37.715>even <00:44:37.823>say <00:44:37.930>question. <00:44:38.038>It <00:44:38.146>could <00:44:38.253>be <00:44:38.361>like <00:44:38.469>a <00:44:38.576>whole <00:44:38.684>lot <00:44:38.792>of <00:44:38.900>discussion.

915
00:44:41.100 --> 00:44:45.000
<00:44:41.100>The <00:44:41.380>whole <00:44:41.660>thing <00:44:41.940>about <00:44:42.220>test <00:44:42.500>organization.

916
00:44:44.900 --> 00:44:47.300
<00:44:44.900>How <00:44:45.180>do <00:44:45.460>you <00:44:45.740>organize <00:44:46.020>your <00:44:46.300>test

917
00:44:47.300 --> 00:44:50.600
<00:44:47.300>in <00:44:47.500>classes <00:44:47.700>in <00:44:47.900>sweets? <00:44:48.100>It's <00:44:48.300>a <00:44:48.500>very <00:44:48.700>big

918
00:44:50.600 --> 00:44:53.700
<00:44:50.600>way <00:44:50.755>to <00:44:50.911>do <00:44:51.066>it. <00:44:51.222>It <00:44:51.377>could <00:44:51.533>be <00:44:51.688>like <00:44:51.844>something <00:44:52.000>like

919
00:44:53.700 --> 00:44:56.800
<00:44:53.700>base <00:44:54.049>classes <00:44:54.399>and <00:44:54.750>derived <00:44:55.100>classes

920
00:44:56.800 --> 00:44:58.100
<00:44:56.800>and <00:44:57.970>which

921
00:44:58.800 --> 00:45:01.500
<00:44:58.800>maybe <00:44:59.000>very <00:44:59.200>useful <00:44:59.400>in <00:44:59.600>terms <00:44:59.800>of <00:45:00.000>one <00:45:00.200>time.

922
00:45:01.500 --> 00:45:04.200
<00:45:01.500>I <00:45:01.675>set <00:45:01.850>up <00:45:02.025>and <00:45:02.200>clean <00:45:02.375>up <00:45:02.550>and <00:45:02.725>stuff <00:45:02.900>like

923
00:45:04.200 --> 00:45:04.400
that.

924
00:45:05.800 --> 00:45:07.800
<00:45:05.800>in <00:45:06.266>clean <00:45:06.733>code <00:45:07.200>basically

925
00:45:08.600 --> 00:45:11.300
<00:45:08.600>one <00:45:08.755>of <00:45:08.911>the <00:45:09.066>things <00:45:09.222>that <00:45:09.377>we <00:45:09.533>like <00:45:09.688>to <00:45:09.844>say <00:45:10.000>is

926
00:45:11.300 --> 00:45:13.600
<00:45:11.300>we'd <00:45:11.580>like <00:45:11.860>composition <00:45:12.140>of <00:45:12.420>our <00:45:12.700>inheritance.

927
00:45:14.200 --> 00:45:17.700
<00:45:14.200>And <00:45:14.339>that <00:45:14.480>means <00:45:14.620>you <00:45:14.759>separate <00:45:14.899>the <00:45:15.040>common <00:45:15.180>stuff <00:45:15.319>into <00:45:15.460>something <00:45:15.600>that

928
00:45:17.700 --> 00:45:19.500
<00:45:17.700>use <00:45:18.166>rather <00:45:18.633>than <00:45:19.100>inherit.

929
00:45:20.400 --> 00:45:23.600
<00:45:20.400>But <00:45:21.100>I <00:45:21.800>saw

930
00:45:23.600 --> 00:45:27.300
<00:45:23.600>a <00:45:23.755>lot <00:45:23.911>of <00:45:24.066>when <00:45:24.222>I'm <00:45:24.377>seeing <00:45:24.533>a <00:45:24.688>lot <00:45:24.844>of <00:45:25.000>way.

931
00:45:28.200 --> 00:45:31.500
<00:45:28.200>That <00:45:28.433>derive <00:45:28.666>classes <00:45:28.899>from <00:45:29.133>bigger <00:45:29.366>base <00:45:29.600>classes.

932
00:45:32.300 --> 00:45:34.100
<00:45:32.300>That's <00:45:32.580>usually <00:45:32.860>not <00:45:33.140>a <00:45:33.420>bad <00:45:33.700>idea.

933
00:45:34.900 --> 00:45:37.600
<00:45:34.900>Usually <00:45:35.133>the <00:45:35.366>problem <00:45:35.600>with <00:45:35.833>her <00:45:36.066>hierarchy <00:45:36.300>of

934
00:45:37.600 --> 00:45:40.600
<00:45:37.600>classes <00:45:38.066>in <00:45:38.533>general <00:45:39.000>not

935
00:45:40.600 --> 00:45:43.800
<00:45:40.600>in <00:45:40.740>test <00:45:40.880>classes <00:45:41.020>is <00:45:41.160>that <00:45:41.299>if <00:45:41.440>you <00:45:41.580>build <00:45:41.720>a <00:45:41.860>bigger <00:45:42.000>hierarchy

936
00:45:43.800 --> 00:45:46.900
<00:45:43.800>then <00:45:43.975>try <00:45:44.150>to <00:45:44.325>stick <00:45:44.500>something <00:45:44.675>in <00:45:44.850>the <00:45:45.025>in <00:45:45.200>the

937
00:45:46.900 --> 00:45:46.900
middle.

938
00:45:47.700 --> 00:45:50.700
<00:45:47.700>There's <00:45:47.899>a <00:45:48.100>lot <00:45:48.299>of <00:45:48.500>classes <00:45:48.700>that <00:45:48.899>inherit <00:45:49.100>that

939
00:45:50.700 --> 00:45:53.200
<00:45:50.700>kind <00:45:50.980>of <00:45:51.259>behavior <00:45:51.540>which <00:45:51.819>leads <00:45:52.100>to

940
00:45:53.200 --> 00:45:53.500
some.

941
00:45:54.200 --> 00:45:57.400
<00:45:54.200>Let's <00:45:54.399>say <00:45:54.600>surprises. <00:45:54.799>Usually <00:45:55.000>I <00:45:55.200>haven't <00:45:55.399>seen <00:45:55.600>these

942
00:45:57.400 --> 00:46:00.600
<00:45:57.400>kind <00:45:57.575>of <00:45:57.750>problems <00:45:57.925>in <00:45:58.100>that <00:45:58.275>scale <00:45:58.450>on <00:45:58.625>test <00:45:58.800>classes.

943
00:46:01.400 --> 00:46:04.200
<00:46:01.400>So <00:46:01.680>either <00:46:01.960>people <00:46:02.240>don't <00:46:02.520>play <00:46:02.800>with

944
00:46:04.200 --> 00:46:08.500
<00:46:04.200>that <00:46:04.375>as <00:46:04.549>well <00:46:04.725>as <00:46:04.899>with <00:46:05.075>production <00:46:05.250>code <00:46:05.424>or <00:46:05.600>the

945
00:46:07.500 --> 00:46:10.300
<00:46:07.500>understand <00:46:07.780>a <00:46:08.060>lot <00:46:08.340>better <00:46:08.620>the <00:46:08.900>the

946
00:46:10.300 --> 00:46:14.100
<00:46:10.300>problems <00:46:10.580>around <00:46:10.860>this <00:46:11.140>so <00:46:11.420>testmen <00:46:11.700>test.

947
00:46:15.500 --> 00:46:19.000
<00:46:15.500>not <00:46:15.733>test <00:46:15.966>management <00:46:16.200>test <00:46:16.433>hierarchy <00:46:16.666>test <00:46:16.900>organization

948
00:46:18.800 --> 00:46:20.800
<00:46:18.800>is <00:46:19.266>something <00:46:19.733>that <00:46:20.200>is

949
00:46:22.500 --> 00:46:23.500
<00:46:22.500>not <00:46:22.950>discussed <00:46:23.400>enough

950
00:46:24.800 --> 00:46:27.700
<00:46:24.800>and <00:46:25.033>not <00:46:25.266>discussed <00:46:25.500>enough <00:46:25.733>over <00:46:25.966>time. <00:46:26.200>So

951
00:46:27.700 --> 00:46:30.100
<00:46:27.700>the <00:46:27.899>only <00:46:28.100>thing <00:46:28.299>I <00:46:28.500>think <00:46:28.700>I <00:46:28.899>can <00:46:29.100>answer.

952
00:46:31.100 --> 00:46:35.300
<00:46:31.100>With <00:46:31.227>a <00:46:31.354>kind <00:46:31.481>of <00:46:31.609>direction <00:46:31.736>is <00:46:31.863>it <00:46:31.990>is <00:46:32.118>very <00:46:32.245>important <00:46:32.372>and <00:46:32.500>it

953
00:46:34.300 --> 00:46:37.400
<00:46:34.300>should <00:46:34.500>be <00:46:34.700>reviewed <00:46:34.900>and <00:46:35.100>not <00:46:35.300>once <00:46:35.500>should <00:46:35.700>be

954
00:46:37.400 --> 00:46:40.800
<00:46:37.400>something <00:46:37.540>like <00:46:37.680>like <00:46:37.820>code <00:46:37.960>that <00:46:38.100>you <00:46:38.240>review <00:46:38.380>over <00:46:38.520>time. <00:46:38.660>This <00:46:38.800>is

955
00:46:40.800 --> 00:46:43.300
<00:46:40.800>something <00:46:40.975>that <00:46:41.150>you <00:46:41.325>should <00:46:41.500>review <00:46:41.675>and <00:46:41.850>develop <00:46:42.025>as <00:46:42.200>well

956
00:46:43.300 --> 00:46:46.300
<00:46:43.300>because <00:46:43.475>these <00:46:43.650>changes <00:46:43.825>as <00:46:44.000>well <00:46:44.175>as <00:46:44.350>the <00:46:44.525>code <00:46:44.700>changes

957
00:46:46.300 --> 00:46:47.500
<00:46:46.300>and <00:46:46.516>the <00:46:46.732>test <00:46:46.948>change <00:46:47.164>as <00:46:47.380>well.

958
00:46:48.900 --> 00:46:52.300
<00:46:48.900>So <00:46:49.027>it's <00:46:49.154>a <00:46:49.281>very <00:46:49.409>good <00:46:49.536>question <00:46:49.663>and <00:46:49.790>very <00:46:49.918>good <00:46:50.045>that <00:46:50.172>people <00:46:50.300>pay

959
00:46:51.300 --> 00:46:52.700
<00:46:51.300>attention <00:46:51.930>to <00:46:52.560>that.

960
00:46:53.600 --> 00:46:56.100
<00:46:53.600>Okay, <00:46:54.066>perfect. <00:46:54.533>Thank <00:46:55.000>you.

961
00:46:56.100 --> 00:46:59.700
<00:46:56.100>Next <00:46:56.380>question <00:46:56.660>would <00:46:56.940>be <00:46:57.220>total <00:46:57.500>beginner

962
00:46:59.700 --> 00:47:02.700
<00:46:59.700>here. <00:46:59.875>Is <00:47:00.049>it <00:47:00.225>a <00:47:00.399>good <00:47:00.575>idea <00:47:00.750>to <00:47:00.924>start <00:47:01.100>working

963
00:47:02.700 --> 00:47:04.800
<00:47:02.700>in <00:47:02.933>testing <00:47:03.166>as <00:47:03.399>my <00:47:03.633>first <00:47:03.866>step <00:47:04.100>drop?

964
00:47:06.400 --> 00:47:10.700
<00:47:06.400>yes, <00:47:07.100>it's <00:47:07.800>not

965
00:47:10.700 --> 00:47:11.100
<00:47:10.700>the <00:47:11.060>only

966
00:47:14.400 --> 00:47:15.800
<00:47:14.400>I <00:47:14.820>think <00:47:15.240>testing <00:47:15.660>gives

967
00:47:17.400 --> 00:47:18.200
<00:47:17.400>a <00:47:17.580>start <00:47:17.759>from <00:47:17.940>the <00:47:18.120>beginning

968
00:47:19.200 --> 00:47:20.100
<00:47:19.200>as <00:47:20.009>Developers

969
00:47:21.300 --> 00:47:22.700
<00:47:21.300>we <00:47:21.720>come <00:47:22.140>to <00:47:22.560>testing.

970
00:47:24.700 --> 00:47:27.200
<00:47:24.700>Very <00:47:25.049>late <00:47:25.399>in <00:47:25.750>our <00:47:26.100>development.

971
00:47:28.300 --> 00:47:28.700
stages

972
00:47:30.900 --> 00:47:34.000
<00:47:30.900>I <00:47:31.055>haven't <00:47:31.211>seen <00:47:31.366>a <00:47:31.522>lot <00:47:31.677>of <00:47:31.833>people <00:47:31.988>who <00:47:32.144>are <00:47:32.300>on

973
00:47:33.100 --> 00:47:37.100
<00:47:33.100>the <00:47:33.299>first <00:47:33.500>Jay <00:47:33.700>the <00:47:33.900>first <00:47:34.100>job <00:47:34.299>as <00:47:34.500>developers

974
00:47:36.100 --> 00:47:39.500
<00:47:36.100>wrote <00:47:36.566>tests. <00:47:37.033>I <00:47:37.500>thought

975
00:47:39.500 --> 00:47:40.900
<00:47:39.500>Juniors <00:47:40.130>like <00:47:40.760>that.

976
00:47:41.600 --> 00:47:44.300
<00:47:41.600>But <00:47:41.833>when <00:47:42.066>I <00:47:42.299>worked <00:47:42.533>in <00:47:42.766>a <00:47:43.000>company,

977
00:47:44.300 --> 00:47:48.500
<00:47:44.300>but <00:47:44.475>usually <00:47:44.650>that's <00:47:44.825>not <00:47:45.000>the <00:47:45.175>first <00:47:45.350>thing <00:47:45.525>and <00:47:45.700>we

978
00:47:47.500 --> 00:47:50.000
<00:47:47.500>usually <00:47:48.200>as <00:47:48.900>Developers.

979
00:47:51.400 --> 00:47:54.100
<00:47:51.400>What <00:47:51.633>we've <00:47:51.866>been <00:47:52.100>taught <00:47:52.333>is <00:47:52.566>to <00:47:52.800>build

980
00:47:54.100 --> 00:47:57.600
<00:47:54.100>stuff <00:47:54.299>and <00:47:54.500>it <00:47:54.700>will <00:47:54.900>work <00:47:55.100>because <00:47:55.299>we <00:47:55.500>build

981
00:47:57.600 --> 00:47:59.700
<00:47:57.600>it. <00:47:57.775>Why <00:47:57.950>would <00:47:58.125>we <00:47:58.299>build <00:47:58.475>something? <00:47:58.650>That <00:47:58.825>doesn't <00:47:59.000>work?

982
00:48:00.500 --> 00:48:03.700
<00:48:00.500>We <00:48:00.780>later <00:48:01.060>realized <00:48:01.340>that <00:48:01.620>it <00:48:01.900>needs

983
00:48:03.700 --> 00:48:04.400
testing.

984
00:48:05.600 --> 00:48:08.700
<00:48:05.600>So <00:48:05.833>testing <00:48:06.066>requires <00:48:06.299>like <00:48:06.533>a <00:48:06.766>bit <00:48:07.000>of

985
00:48:08.700 --> 00:48:09.200
<00:48:08.700>a <00:48:08.924>mind <00:48:09.149>shift.

986
00:48:09.800 --> 00:48:12.400
<00:48:09.800>You <00:48:10.000>need <00:48:10.200>to <00:48:10.400>say <00:48:10.600>well <00:48:10.800>it <00:48:11.000>works <00:48:11.200>if

987
00:48:12.400 --> 00:48:13.700
<00:48:12.400>I <00:48:12.790>see <00:48:13.180>this <00:48:13.569>this.

988
00:48:15.300 --> 00:48:18.600
<00:48:15.300>And <00:48:15.475>people <00:48:15.650>who <00:48:15.825>do <00:48:16.000>tdd <00:48:16.175>test <00:48:16.350>driven <00:48:16.525>development <00:48:16.700>actually

989
00:48:18.600 --> 00:48:21.700
<00:48:18.600>start <00:48:18.755>with <00:48:18.911>this. <00:48:19.066>How <00:48:19.222>do <00:48:19.377>I <00:48:19.533>know <00:48:19.688>that <00:48:19.844>this <00:48:20.000>will

990
00:48:21.700 --> 00:48:23.200
<00:48:21.700>work <00:48:21.970>even <00:48:22.240>before <00:48:22.509>I <00:48:22.779>write <00:48:23.049>this?

991
00:48:23.900 --> 00:48:24.000
so

992
00:48:25.300 --> 00:48:28.400
<00:48:25.300>Thinking <00:48:25.475>like <00:48:25.650>this. <00:48:25.825>What <00:48:26.000>should <00:48:26.175>this <00:48:26.350>this <00:48:26.525>looks <00:48:26.700>like

993
00:48:28.400 --> 00:48:31.500
<00:48:28.400>success <00:48:28.600>and <00:48:28.800>this <00:48:29.000>looks <00:48:29.200>like <00:48:29.400>failure <00:48:29.600>in <00:48:29.800>something

994
00:48:31.500 --> 00:48:34.500
<00:48:31.500>that <00:48:31.850>very <00:48:32.200>very <00:48:32.550>important <00:48:32.900>very

995
00:48:34.500 --> 00:48:37.700
<00:48:34.500>important <00:48:34.700>to <00:48:34.900>writing <00:48:35.100>by <00:48:35.300>the <00:48:35.500>way <00:48:35.700>clean <00:48:35.900>code

996
00:48:37.700 --> 00:48:40.600
<00:48:37.700>because <00:48:37.933>instead <00:48:38.166>of <00:48:38.399>generalizing <00:48:38.633>and <00:48:38.866>putting <00:48:39.100>all

997
00:48:40.600 --> 00:48:43.600
<00:48:40.600>kinds <00:48:40.950>of <00:48:41.299>what <00:48:41.650>if <00:48:42.000>cases

998
00:48:43.600 --> 00:48:46.000
<00:48:43.600>into <00:48:43.775>the <00:48:43.950>code <00:48:44.125>you <00:48:44.299>start <00:48:44.475>with. <00:48:44.650>Well, <00:48:44.825>this <00:48:45.000>is

999
00:48:46.300 --> 00:48:49.400
<00:48:46.300>how <00:48:46.475>success <00:48:46.650>looks <00:48:46.825>like <00:48:47.000>this. <00:48:47.175>This <00:48:47.350>is <00:48:47.525>what <00:48:47.700>it

1000
00:48:49.400 --> 00:48:52.700
<00:48:49.400>needs <00:48:49.575>to <00:48:49.750>do. <00:48:49.925>Let's <00:48:50.100>build <00:48:50.275>only <00:48:50.450>this <00:48:50.625>and <00:48:50.800>then

1001
00:48:52.700 --> 00:48:54.000
<00:48:52.700>we <00:48:52.895>move <00:48:53.089>on <00:48:53.285>to <00:48:53.480>the <00:48:53.675>next <00:48:53.870>thing.

1002
00:48:54.800 --> 00:48:57.700
<00:48:54.800>So <00:48:55.000>I <00:48:55.200>think <00:48:55.400>it <00:48:55.600>kind <00:48:55.800>of <00:48:56.000>changes <00:48:56.200>your

1003
00:48:57.700 --> 00:49:00.000
<00:48:57.700>mind <00:48:57.980>of <00:48:58.259>how <00:48:58.540>to <00:48:58.819>build <00:48:59.100>software.

1004
00:49:00.900 --> 00:49:01.200
and

1005
00:49:02.400 --> 00:49:04.300
<00:49:02.400>it's <00:49:02.633>not <00:49:02.866>the <00:49:03.100>only <00:49:03.333>way <00:49:03.566>to <00:49:03.800>start.

1006
00:49:05.100 --> 00:49:08.600
<00:49:05.100>But <00:49:05.275>I <00:49:05.450>think <00:49:05.625>a <00:49:05.799>lot <00:49:05.975>of <00:49:06.150>people <00:49:06.325>miss <00:49:06.500>that

1007
00:49:08.600 --> 00:49:10.400
<00:49:08.600>when <00:49:08.950>they're <00:49:09.299>introduced <00:49:09.650>to <00:49:10.000>testing.

1008
00:49:11.200 --> 00:49:14.500
<00:49:11.200>and <00:49:11.375>they <00:49:11.549>have <00:49:11.725>to <00:49:11.899>relearn <00:49:12.075>things <00:49:12.250>and <00:49:12.424>sometimes <00:49:12.600>they

1009
00:49:14.500 --> 00:49:15.400
<00:49:14.500>don't <00:49:14.662>get <00:49:14.824>to <00:49:14.986>the <00:49:15.148>point <00:49:15.310>of

1010
00:49:16.100 --> 00:49:18.200
<00:49:16.100>okay <00:49:16.450>tests <00:49:16.799>maybe <00:49:17.150>affecting <00:49:17.500>my

1011
00:49:19.700 --> 00:49:20.800
<00:49:19.700>way <00:49:20.195>of <00:49:20.690>coding

1012
00:49:22.100 --> 00:49:25.600
<00:49:22.100>because <00:49:22.227>when <00:49:22.354>it <00:49:22.481>does <00:49:22.609>happen <00:49:22.736>you <00:49:22.863>you <00:49:22.990>write <00:49:23.118>better <00:49:23.245>code <00:49:23.372>and <00:49:23.500>safer

1013
00:49:25.600 --> 00:49:25.700
code.

1014
00:49:26.300 --> 00:49:29.400
<00:49:26.300>And <00:49:26.500>more <00:49:26.700>quality <00:49:26.900>code, <00:49:27.100>but <00:49:27.300>it <00:49:27.500>takes <00:49:27.700>a

1015
00:49:29.400 --> 00:49:32.600
<00:49:29.400>while <00:49:29.575>and <00:49:29.750>and <00:49:29.925>some <00:49:30.100>people <00:49:30.275>don't <00:49:30.450>get <00:49:30.625>that <00:49:30.800>the

1016
00:49:32.600 --> 00:49:36.100
<00:49:32.600>continue <00:49:32.775>to <00:49:32.950>write <00:49:33.125>code <00:49:33.299>just <00:49:33.475>as <00:49:33.650>before <00:49:33.825>and <00:49:34.000>somebody

1017
00:49:35.100 --> 00:49:37.700
<00:49:35.100>else <00:49:35.450>will <00:49:35.799>test <00:49:36.150>it <00:49:36.500>somehow.

1018
00:49:38.200 --> 00:49:41.000
<00:49:38.200>And <00:49:38.433>I <00:49:38.666>think <00:49:38.899>that's <00:49:39.133>bad <00:49:39.366>for <00:49:39.600>Developers.

1019
00:49:44.700 --> 00:49:45.300
<00:49:44.700>Thank <00:49:44.880>you <00:49:45.060>so <00:49:45.240>much.

1020
00:49:46.500 --> 00:49:47.500
<00:49:46.500>next <00:49:47.400>question

1021
00:49:49.100 --> 00:49:52.400
<00:49:49.100>very <00:49:49.299>general <00:49:49.500>one. <00:49:49.700>Where <00:49:49.900>do <00:49:50.100>you <00:49:50.299>find <00:49:50.500>all

1022
00:49:52.400 --> 00:49:53.000
<00:49:52.400>your <00:49:52.940>knowledge?

1023
00:49:54.400 --> 00:49:55.400
<00:49:54.400>Oh, <00:49:54.550>I <00:49:54.700>keep <00:49:54.850>it <00:49:55.000>in <00:49:55.150>a <00:49:55.300>box.

1024
00:49:56.100 --> 00:49:58.500
<00:49:56.100>and <00:49:56.566>on <00:49:57.033>the <00:49:57.500>internet

1025
00:50:03.400 --> 00:50:06.600
<00:50:03.400>Uh <00:50:03.600>mostly <00:50:03.800>through <00:50:04.000>experience. <00:50:04.200>I <00:50:04.400>was <00:50:04.600>fortunate <00:50:04.800>enough

1026
00:50:06.600 --> 00:50:08.700
<00:50:06.600>to <00:50:06.950>work <00:50:07.299>in <00:50:07.650>a <00:50:08.000>company.

1027
00:50:09.900 --> 00:50:10.200
that

1028
00:50:11.600 --> 00:50:14.900
<00:50:11.600>the <00:50:11.880>the <00:50:12.160>day <00:50:12.440>job <00:50:12.720>as <00:50:13.000>Developers

1029
00:50:15.900 --> 00:50:16.400
was

1030
00:50:18.400 --> 00:50:19.800
<00:50:18.400>writing <00:50:19.030>in <00:50:19.660>tdd

1031
00:50:20.800 --> 00:50:24.100
<00:50:20.800>which <00:50:20.955>gave <00:50:21.111>me <00:50:21.266>a <00:50:21.422>lot <00:50:21.577>of <00:50:21.733>perspective <00:50:21.888>of <00:50:22.044>how <00:50:22.200>different

1032
00:50:23.100 --> 00:50:26.600
<00:50:23.100>it <00:50:23.380>was <00:50:23.660>on <00:50:23.940>a <00:50:24.220>day-to-day <00:50:24.500>basis

1033
00:50:26.600 --> 00:50:29.500
<00:50:26.600>not <00:50:26.950>like <00:50:27.299>calculator <00:50:27.650>examples <00:50:28.000>from

1034
00:50:29.500 --> 00:50:34.000
<00:50:29.500>the <00:50:29.700>Internet <00:50:29.900>or <00:50:30.100>sessions <00:50:30.300>like <00:50:30.500>this <00:50:30.700>how <00:50:30.900>it

1035
00:50:33.400 --> 00:50:36.700
<00:50:33.400>how <00:50:33.680>things <00:50:33.960>apply <00:50:34.240>to <00:50:34.520>real <00:50:34.800>code

1036
00:50:36.700 --> 00:50:40.100
<00:50:36.700>in <00:50:37.049>production <00:50:37.399>and <00:50:37.750>doing <00:50:38.100>that

1037
00:50:39.100 --> 00:50:41.400
<00:50:39.100>and <00:50:39.799>doing <00:50:40.500>wearing.

1038
00:50:42.100 --> 00:50:45.300
<00:50:42.100>If <00:50:42.299>you <00:50:42.500>had <00:50:42.700>from <00:50:42.900>development <00:50:43.100>and <00:50:43.299>testing <00:50:43.500>and

1039
00:50:45.300 --> 00:50:47.400
<00:50:45.300>support <00:50:46.000>and <00:50:46.700>product.

1040
00:50:48.300 --> 00:50:51.800
<00:50:48.300>And <00:50:48.500>all <00:50:48.700>kinds <00:50:48.900>of <00:50:49.100>stuff <00:50:49.300>and <00:50:49.500>speaking <00:50:49.700>at

1041
00:50:51.800 --> 00:50:54.100
<00:50:51.800>conferences <00:50:51.975>like <00:50:52.150>this <00:50:52.325>and <00:50:52.500>getting <00:50:52.675>great <00:50:52.850>questions <00:50:53.025>like <00:50:53.200>this.

1042
00:50:56.400 --> 00:50:57.800
<00:50:56.400>you <00:50:56.820>you <00:50:57.240>kind <00:50:57.660>of

1043
00:50:59.200 --> 00:51:00.900
<00:50:59.200>touch <00:50:59.549>a <00:50:59.899>lot <00:51:00.250>of <00:51:00.600>different

1044
00:51:02.300 --> 00:51:05.400
<00:51:02.300>ways <00:51:02.440>of <00:51:02.580>how <00:51:02.720>people <00:51:02.860>write <00:51:03.000>software <00:51:03.140>and <00:51:03.280>look <00:51:03.420>at <00:51:03.560>software <00:51:03.700>and

1045
00:51:05.400 --> 00:51:08.300
<00:51:05.400>discuss <00:51:05.750>software. <00:51:06.100>So <00:51:06.450>it <00:51:06.800>has

1046
00:51:08.300 --> 00:51:10.700
<00:51:08.300>to <00:51:08.533>be <00:51:08.766>the <00:51:09.000>answer <00:51:09.233>would <00:51:09.466>be <00:51:09.700>experience.

1047
00:51:11.800 --> 00:51:14.100
<00:51:11.800>But <00:51:11.955>it <00:51:12.111>takes <00:51:12.266>a <00:51:12.422>lot <00:51:12.577>of <00:51:12.733>time <00:51:12.888>and <00:51:13.044>this <00:51:13.200>is

1048
00:51:14.100 --> 00:51:14.700
<00:51:14.100>why <00:51:14.370>I'm <00:51:14.640>old.

1049
00:51:17.200 --> 00:51:21.200
<00:51:17.200>It <00:51:17.375>talking <00:51:17.549>about <00:51:17.725>your <00:51:17.899>knowledge <00:51:18.075>in <00:51:18.250>your <00:51:18.424>experience. <00:51:18.600>You

1050
00:51:20.200 --> 00:51:23.200
<00:51:20.200>are <00:51:20.549>self <00:51:20.899>employed <00:51:21.250>now <00:51:21.600>for

1051
00:51:23.200 --> 00:51:26.600
<00:51:23.200>quite <00:51:23.355>some <00:51:23.511>time. <00:51:23.666>Maybe <00:51:23.822>you <00:51:23.977>want <00:51:24.133>to <00:51:24.288>share <00:51:24.444>some <00:51:24.600>insights

1052
00:51:26.600 --> 00:51:28.900
<00:51:26.600>on <00:51:26.880>some <00:51:27.160>pros <00:51:27.440>and <00:51:27.720>cons <00:51:28.000>Maybe.

1053
00:51:29.700 --> 00:51:32.500
<00:51:29.700>on <00:51:29.899>being <00:51:30.100>self-employed <00:51:30.299>as <00:51:30.500>a <00:51:30.700>developer <00:51:30.899>Okay, <00:51:31.100>so

1054
00:51:35.800 --> 00:51:38.200
<00:51:35.800>The <00:51:36.033>pros <00:51:36.266>is <00:51:36.500>I <00:51:36.733>don't <00:51:36.966>have <00:51:37.200>any

1055
00:51:38.200 --> 00:51:38.900
bosses.

1056
00:51:40.600 --> 00:51:43.400
<00:51:40.600>But <00:51:40.950>that's <00:51:41.299>not <00:51:41.650>really <00:51:42.000>true

1057
00:51:43.400 --> 00:51:46.500
<00:51:43.400>because <00:51:43.575>I <00:51:43.750>have <00:51:43.925>bosses. <00:51:44.100>First <00:51:44.275>of <00:51:44.450>all, <00:51:44.625>I'm <00:51:44.800>My

1058
00:51:46.500 --> 00:51:50.700
<00:51:46.500>Own <00:51:46.700>Boss <00:51:46.900>and <00:51:47.100>I'm <00:51:47.300>very <00:51:47.500>strict. <00:51:47.700>The <00:51:47.900>second

1059
00:51:50.700 --> 00:51:54.000
<00:51:50.700>is <00:51:50.839>that <00:51:50.980>you <00:51:51.120>need <00:51:51.259>to <00:51:51.399>go <00:51:51.540>out <00:51:51.680>and <00:51:51.819>find <00:51:51.960>customers. <00:51:52.100>So

1060
00:51:53.600 --> 00:51:56.000
<00:51:53.600>it's <00:51:54.299>part <00:51:55.000>of

1061
00:51:56.100 --> 00:51:59.500
<00:51:56.100>the <00:51:56.299>job <00:51:56.500>and <00:51:56.700>it <00:51:56.900>really <00:51:57.100>depends <00:51:57.299>what <00:51:57.500>kind

1062
00:51:59.500 --> 00:52:02.100
<00:51:59.500>of <00:51:59.640>person <00:51:59.780>you <00:51:59.920>are. <00:52:00.060>I <00:52:00.200>was <00:52:00.340>very <00:52:00.480>it <00:52:00.620>may <00:52:00.760>not <00:52:00.900>seem

1063
00:52:02.100 --> 00:52:02.200
<00:52:02.100>like <00:52:02.189>that.

1064
00:52:03.000 --> 00:52:03.700
but

1065
00:52:05.300 --> 00:52:07.800
<00:52:05.300>I <00:52:05.533>was <00:52:05.766>a <00:52:06.000>very <00:52:06.233>shy <00:52:06.466>person <00:52:06.700>I

1066
00:52:09.200 --> 00:52:11.200
<00:52:09.200>I <00:52:09.549>started <00:52:09.899>talking <00:52:10.250>in <00:52:10.600>conferences.

1067
00:52:12.200 --> 00:52:15.900
<00:52:12.200>Because <00:52:12.375>I <00:52:12.549>knew <00:52:12.725>this <00:52:12.899>is <00:52:13.075>kind <00:52:13.250>of <00:52:13.424>one <00:52:13.600>way

1068
00:52:15.900 --> 00:52:16.500
<00:52:15.900>to <00:52:16.170>make <00:52:16.440>me.

1069
00:52:17.700 --> 00:52:20.700
<00:52:17.700>Make <00:52:17.875>a <00:52:18.049>lot <00:52:18.225>of <00:52:18.399>contact <00:52:18.575>with <00:52:18.750>people <00:52:18.924>which <00:52:19.100>I

1070
00:52:20.700 --> 00:52:23.900
<00:52:20.700>didn't <00:52:20.839>before <00:52:20.980>because <00:52:21.120>I <00:52:21.259>was <00:52:21.399>developer. <00:52:21.540>Just <00:52:21.680>sitting <00:52:21.819>my <00:52:21.960>cubicle <00:52:22.100>writing

1071
00:52:23.900 --> 00:52:25.300
<00:52:23.900>code. <00:52:24.110>You <00:52:24.320>need <00:52:24.530>to <00:52:24.740>talk <00:52:24.950>to <00:52:25.160>anyone.

1072
00:52:26.300 --> 00:52:30.300
<00:52:26.300>But <00:52:26.440>I <00:52:26.580>had <00:52:26.720>to <00:52:26.860>cut <00:52:27.000>get <00:52:27.140>out <00:52:27.280>of <00:52:27.420>my <00:52:27.560>comfort <00:52:27.700>zone

1073
00:52:30.300 --> 00:52:33.300
<00:52:30.300>because <00:52:30.440>I <00:52:30.580>knew <00:52:30.720>that <00:52:30.860>if <00:52:31.000>I <00:52:31.140>wanted <00:52:31.280>to <00:52:31.420>to <00:52:31.560>own <00:52:31.700>my

1074
00:52:33.300 --> 00:52:36.100
<00:52:33.300>own <00:52:33.455>business, <00:52:33.611>I'm <00:52:33.766>going <00:52:33.922>to <00:52:34.077>need <00:52:34.233>to <00:52:34.388>do <00:52:34.544>discussions <00:52:34.700>on

1075
00:52:36.100 --> 00:52:37.600
<00:52:36.100>different <00:52:36.437>levels <00:52:36.775>other <00:52:37.112>than <00:52:37.450>Developers.

1076
00:52:38.400 --> 00:52:41.300
<00:52:38.400>So <00:52:38.540>it's <00:52:38.680>a <00:52:38.820>lot <00:52:38.960>of <00:52:39.100>pushing <00:52:39.240>yourself <00:52:39.380>to <00:52:39.520>do <00:52:39.660>all <00:52:39.800>kinds

1077
00:52:41.300 --> 00:52:44.300
<00:52:41.300>of <00:52:41.427>things <00:52:41.554>that <00:52:41.681>you <00:52:41.809>probably <00:52:41.936>don't <00:52:42.063>like. <00:52:42.190>I <00:52:42.318>still <00:52:42.445>don't <00:52:42.572>do <00:52:42.700>a

1078
00:52:44.300 --> 00:52:49.000
<00:52:44.300>lot <00:52:44.400>of <00:52:44.500>things. <00:52:44.600>I <00:52:44.700>don't <00:52:44.800>I <00:52:44.900>don't <00:52:45.000>like <00:52:45.100>because <00:52:45.200>that's <00:52:45.300>part <00:52:45.400>of <00:52:45.500>the <00:52:45.600>business <00:52:45.700>but

1079
00:52:51.700 --> 00:52:54.200
<00:52:51.700>on <00:52:51.875>the <00:52:52.049>other <00:52:52.225>hand, <00:52:52.399>it's <00:52:52.575>more <00:52:52.750>flexible. <00:52:52.924>I <00:52:53.100>can

1080
00:52:54.200 --> 00:52:57.300
<00:52:54.200>decide <00:52:54.433>what <00:52:54.666>I <00:52:54.899>do. <00:52:55.133>I <00:52:55.366>can <00:52:55.600>decide

1081
00:52:57.300 --> 00:52:57.800
<00:52:57.300>what <00:52:57.450>not <00:52:57.600>to <00:52:57.750>do.

1082
00:52:58.900 --> 00:53:01.100
<00:52:58.900>But <00:52:59.250>sometimes <00:52:59.600>I <00:52:59.950>have <00:53:00.300>to

1083
00:53:01.100 --> 00:53:01.700
<00:53:01.100>do <00:53:01.279>stuff <00:53:01.460>like <00:53:01.640>I

1084
00:53:02.900 --> 00:53:05.000
<00:53:02.900>I <00:53:03.133>give <00:53:03.366>you <00:53:03.600>an <00:53:03.833>example <00:53:04.066>I <00:53:04.300>gave.

1085
00:53:09.200 --> 00:53:12.400
<00:53:09.200>What <00:53:09.399>was <00:53:09.600>it? <00:53:09.799>I <00:53:10.000>usually <00:53:10.200>do <00:53:10.399>courses <00:53:10.600>and

1086
00:53:12.400 --> 00:53:15.200
<00:53:12.400>workshops <00:53:12.555>Around <00:53:12.711>clean <00:53:12.866>code <00:53:13.022>and <00:53:13.177>testing <00:53:13.333>automation <00:53:13.488>stuff <00:53:13.644>like <00:53:13.800>that.

1087
00:53:15.200 --> 00:53:18.800
<00:53:15.200>And <00:53:15.480>I <00:53:15.759>gave <00:53:16.040>a <00:53:16.319>course <00:53:16.600>about

1088
00:53:18.800 --> 00:53:20.900
<00:53:18.800>embedded <00:53:19.500>c++? <00:53:20.200>Now.

1089
00:53:23.200 --> 00:53:26.700
<00:53:23.200>I <00:53:23.339>think <00:53:23.480>that <00:53:23.620>the <00:53:23.759>C++ <00:53:23.899>for <00:53:24.040>the <00:53:24.180>first <00:53:24.319>language <00:53:24.460>actually <00:53:24.600>programmed

1090
00:53:26.700 --> 00:53:29.200
<00:53:26.700>in <00:53:26.899>but <00:53:27.100>it <00:53:27.299>was <00:53:27.500>like <00:53:27.700>a <00:53:27.899>while <00:53:28.100>ago.

1091
00:53:30.300 --> 00:53:31.100
<00:53:30.300>but <00:53:30.540>this <00:53:30.780>is <00:53:31.020>not

1092
00:53:32.200 --> 00:53:33.200
<00:53:32.200>what <00:53:32.500>I <00:53:32.799>do <00:53:33.100>usually

1093
00:53:34.100 --> 00:53:37.200
<00:53:34.100>and <00:53:34.240>this <00:53:34.380>is <00:53:34.520>what <00:53:34.660>I <00:53:34.799>don't <00:53:34.940>something <00:53:35.080>that <00:53:35.220>I <00:53:35.360>didn't <00:53:35.500>like

1094
00:53:37.200 --> 00:53:40.600
<00:53:37.200>to <00:53:37.399>teach <00:53:37.600>and <00:53:37.799>something <00:53:38.000>that <00:53:38.200>as <00:53:38.399>I <00:53:38.600>taught

1095
00:53:40.600 --> 00:53:43.500
<00:53:40.600>it <00:53:40.755>because <00:53:40.911>I <00:53:41.066>don't <00:53:41.222>do <00:53:41.377>it <00:53:41.533>a <00:53:41.688>lot. <00:53:41.844>I <00:53:42.000>felt

1096
00:53:43.500 --> 00:53:46.900
<00:53:43.500>a <00:53:43.733>bit <00:53:43.966>not <00:53:44.200>confident <00:53:44.433>enough <00:53:44.666>to <00:53:44.900>pass

1097
00:53:46.900 --> 00:53:48.200
<00:53:46.900>it <00:53:47.134>like <00:53:47.368>I <00:53:47.602>do <00:53:47.836>regular <00:53:48.069>stuff.

1098
00:53:49.100 --> 00:53:52.000
<00:53:49.100>So <00:53:49.240>it's <00:53:49.380>a <00:53:49.520>lot <00:53:49.660>here <00:53:49.799>in <00:53:49.940>your <00:53:50.080>mind <00:53:50.220>of <00:53:50.360>what <00:53:50.500>you

1099
00:53:53.600 --> 00:53:54.800
<00:53:53.600>want <00:53:53.816>to <00:53:54.032>do <00:53:54.248>capable <00:53:54.464>of <00:53:54.680>doing

1100
00:53:55.500 --> 00:53:58.400
<00:53:55.500>And <00:53:55.700>what <00:53:55.900>you <00:53:56.100>can <00:53:56.300>do <00:53:56.500>and <00:53:56.700>I'm <00:53:56.900>just

1101
00:53:58.400 --> 00:54:00.600
<00:53:58.400>pros <00:53:58.633>and <00:53:58.866>cons <00:53:59.100>is <00:53:59.333>everything <00:53:59.566>else <00:53:59.800>really?

1102
00:54:02.700 --> 00:54:04.200
<00:54:02.700>It's <00:54:03.037>a <00:54:03.375>higher <00:54:03.712>risk, <00:54:04.049>though.

1103
00:54:05.200 --> 00:54:08.700
<00:54:05.200>Yeah, <00:54:05.316>I <00:54:05.433>get <00:54:05.549>a <00:54:05.666>pandemic <00:54:05.783>meant <00:54:05.899>work. <00:54:06.016>A <00:54:06.133>lot <00:54:06.250>of <00:54:06.366>people <00:54:06.483>didn't <00:54:06.600>meet

1104
00:54:08.700 --> 00:54:11.300
<00:54:08.700>so <00:54:08.933>no <00:54:09.166>more <00:54:09.399>workshops. <00:54:09.633>What <00:54:09.866>do <00:54:10.100>I

1105
00:54:11.300 --> 00:54:12.100
<00:54:11.300>do <00:54:11.660>now? <00:54:12.020>So

1106
00:54:13.700 --> 00:54:16.400
<00:54:13.700>it <00:54:14.049>can <00:54:14.399>impact <00:54:14.750>anyone <00:54:15.100>differently.

1107
00:54:17.400 --> 00:54:18.200
and

1108
00:54:20.500 --> 00:54:22.800
<00:54:20.500>like <00:54:20.700>someone <00:54:20.900>told <00:54:21.100>me <00:54:21.300>like <00:54:21.500>before <00:54:21.700>I <00:54:21.900>became.

1109
00:54:23.600 --> 00:54:25.000
<00:54:23.600>a <00:54:24.860>consultant

1110
00:54:26.100 --> 00:54:27.100
<00:54:26.100>Shamus <00:54:26.549>at <00:54:27.000>least

1111
00:54:28.200 --> 00:54:31.300
<00:54:28.200>Try <00:54:28.316>it <00:54:28.433>once <00:54:28.549>in <00:54:28.666>your <00:54:28.783>life. <00:54:28.899>Maybe <00:54:29.016>you'll <00:54:29.133>like <00:54:29.250>it. <00:54:29.366>Maybe <00:54:29.483>we <00:54:29.600>won't

1112
00:54:31.300 --> 00:54:31.600
<00:54:31.300>like <00:54:31.569>it.

1113
00:54:32.400 --> 00:54:33.900
<00:54:32.400>But <00:54:32.737>it's <00:54:33.075>something <00:54:33.412>to <00:54:33.750>try.

1114
00:54:34.700 --> 00:54:35.000
<00:54:34.700>and <00:54:34.835>I <00:54:34.970>think

1115
00:54:35.800 --> 00:54:37.200
<00:54:35.800>everything <00:54:36.115>is <00:54:36.430>worth <00:54:36.745>trying <00:54:37.060>once.

1116
00:54:38.800 --> 00:54:41.400
<00:54:38.800>Every <00:54:39.033>experience <00:54:39.266>is <00:54:39.500>worth <00:54:39.733>something. <00:54:39.966>I <00:54:40.200>would

1117
00:54:41.400 --> 00:54:41.500
say.

1118
00:54:43.300 --> 00:54:46.600
<00:54:43.300>Kill, <00:54:43.416>thank <00:54:43.533>you <00:54:43.650>so <00:54:43.766>much <00:54:43.883>for <00:54:44.000>the <00:54:44.116>talk <00:54:44.233>and <00:54:44.350>also <00:54:44.466>for <00:54:44.583>sharing <00:54:44.700>your

1119
00:54:46.600 --> 00:54:49.200
<00:54:46.600>personal <00:54:46.799>experiences <00:54:47.000>with <00:54:47.200>us. <00:54:47.400>Hope <00:54:47.600>you <00:54:47.799>have <00:54:48.000>a

1120
00:54:49.200 --> 00:54:52.200
<00:54:49.200>nice <00:54:49.399>rest <00:54:49.600>of <00:54:49.799>the <00:54:50.000>day. <00:54:50.200>Bye <00:54:50.399>bye-bye. <00:54:50.600>Thank

1121
00:54:52.200 --> 00:54:52.800
<00:54:52.200>you <00:54:52.470>very <00:54:52.740>much.