1 00:00:06,080 --> 00:00:08,930 The key to solving complex design problems is to break them down into 2 00:00:08,930 --> 00:00:13,093 smaller pieces. Now, the recipes already do that of 3 00:00:13,093 --> 00:00:16,704 course. The data recipe breaks data design down 4 00:00:16,704 --> 00:00:20,576 into individual steps. The function recipe does the same, and 5 00:00:20,576 --> 00:00:25,870 so, does the world recipe. But sometimes we need more decomposition 6 00:00:25,870 --> 00:00:28,959 than that. Sometimes we need to break a data 7 00:00:28,959 --> 00:00:32,493 representation into multiple types, or a function design in the multiple 8 00:00:32,493 --> 00:00:37,628 functions. Now, we've seen a couple examples of that 9 00:00:37,628 --> 00:00:41,147 already of course. Whenever we have the reference rule, then 10 00:00:41,147 --> 00:00:47,440 we end up with a natural helper function. And the world's recipe also breaks the 11 00:00:47,440 --> 00:00:52,215 design down into multiple handlers. But this week, we're going to look at 12 00:00:52,215 --> 00:00:56,765 more examples of how we break types and functions down into multiple types and 13 00:00:56,765 --> 00:01:03,650 multiple functions. The week is broken into two parts. 14 00:01:03,650 --> 00:01:07,160 In the first part, we're going to look at rules for helper functions operating on 15 00:01:07,160 --> 00:01:12,698 the kinds of data we've already seen. In the second part, we're going to 16 00:01:12,698 --> 00:01:16,310 introduce a new kind of arbitrary size data. 17 00:01:16,310 --> 00:01:20,370 And that kind of data definition itself automatically introduces helpers into the 18 00:01:20,370 --> 00:01:23,180 functions that operate on the data.