Simple Made Easy - Rich Hickey (С Русским Переводом)

Всем привет! Я перевел и добавил субтитры к знаменитому докладу Рича Хики — Simple Made Easy. Впервые на русском языке.

Впервые доклад был представлен в 2011 году на конференции Strange Loop.

Simple Made Easy - Rich Hickey (с русским переводом)




Об отчете: Простота является ключевым моментом, и ее понимание имеет решающее значение для разработки надежного и гибкого программного обеспечения.

Мы должны упростить предметную область и создавать решения, составляя простые части.

Вместо этого мы терпим сложность и гордимся своей способностью справиться с ней.

Мы можем добиться большего.

В этом докладе мы обсудим простоту, почему она важна, как добиться ее в ваших проектах и как распознать ее отсутствие в инструментах, языковых конструкциях и библиотеках, которые мы используем.




Рич Хики — создатель языка программирования Clojure, независимый разработчик программного обеспечения и консультант с 20-летним опытом работы в различных областях разработки программного обеспечения.

Я работал только над Clojure около 2,5 лет, прежде чем показал его кому-либо.

УПД от 03.09.2021: К десятому юбилею доклада выпущено новое издание с лучшим качеством видео и правильными слайдами.

Мои субтитры включены в новое официальное видео.

, ниже ссылка на него.

Частично обновлено - исправлены неточности перевода.

УПД от 18.06.2020: Субтитры частично обновлены - исправлены неточности перевода.




Посмотреть на YouTube youtu.be/SxdOUGdseq4 Полный текст субтитров 1 00:00:04,323 --> 00:00:09,302 Привет! Кто готов услышать о теории категорий? 2 00:00:09,902 --> 00:00:15,009 Вы все ошиблись дверью.

3 00:00:16,127 --> 00:00:23,339 Этот разговор, я надеюсь, кажется обманчиво очевидным.

4 00:00:24,732 --> 00:00:29,195 Одна из замечательных особенностей этой конференции: что публика здесь достаточно продвинутая.

5 00:00:29,195 --> 00:00:32,498 Многие из вас используют передовые технологии.

Многие из вас используют функциональное программирование.

6 00:00:32,598 --> 00:00:40,780 И вы, вероятно, киваете «да-да-да», когда я говорю это.

И если что-то из этого вам знакомо, то отлично.

7 00:00:40,880 --> 00:00:47,075 С другой стороны, я надеюсь, что ты уйдешь из этой встречи с некоторыми инструментами, 8 00:00:48,271 --> 00:00:55,668 которые вы можете использовать в разговорах с другими людьми, убедить их поступить правильно.

9 00:00:58,787 --> 00:01:05,730 Итак, начну с обращения к властям.

Простота – необходимое условие надежности.

10 00:01:06,095 --> 00:01:12,748 Я не согласен со всем, что сказал Дийкстра.

Я думаю, что он очень ошибся в своем доказательстве.

11 00:01:13,483 --> 00:01:15,642 Но я думаю, что в этом он прав.

12 00:01:15,742 --> 00:01:20,726 Нам нужно создавать простые системы если мы хотим создать хорошие системы.

13 00:01:20,826 --> 00:01:23,649 Я не думаю, что мы уделяем этому достаточно внимания.

14 00:01:23,749 --> 00:01:25,269 Происхождение слова 15 00:01:25,369 --> 00:01:27,634 Мне нравится происхождение слов.

Они ужасно интересны.

16 00:01:27,734 --> 00:01:30,165 Одной из причин, почему это интересно, является 17 00:01:30,165 --> 00:01:35,181 потому что слова начинают что-то означать мы согласны, что они означают. 18 00:01:35,281 --> 00:01:37,773 Под значением слова обычно понимают, вот что это значит. 19 00:01:37,873 --> 00:01:41,834 И часто интересно сказать: «Ну, мне бы хотелось; 20 00:01:41,934 --> 00:01:44,157 Я хотел бы вернуться к этому что они означают и используют это значение.

21 00:01:44,257 --> 00:01:47,186 И я думаю, есть пара слов который я собираюсь использовать в этой речи, 22 00:01:47,286 --> 00:01:51,530 и я бы хотел, чтобы ты ушел, зная происхождение этих слов 23 00:01:51,630 --> 00:01:55,164 и постарался использовать их точнее, особенно когда дело касается программ.

24 00:01:57,136 --> 00:01:59,289 Итак, первое слово – простота.

25 00:02:00,256 --> 00:02:07,809 А корни этого слова сим и плекс, означает ограждение, плетение или скручивание.

26 00:02:07,909 --> 00:02:15,945 И это качество бытия однажды скручен или сложен.

27 00:02:16,045 --> 00:02:21,388 Как выглядит один поворот? Фактически это означает ни одного поворота.

28 00:02:21,488 --> 00:02:25,740 А противоположностью этого слова является сложность.

29 00:02:25,840 --> 00:02:29,627 что означает переплетение или сложены вместе.

30 00:02:31,802 --> 00:02:36,746 Думая о разработке программного обеспечения с точки зрения вложенность, это основная мысль нашего разговора.

31 00:02:36,846 --> 00:02:43,010 Еще одно слово, которое мы часто используем заменить простоту легкостью.

32 00:02:43,726 --> 00:02:46,424 И происхождение этого слова французское.

33 00:02:46,524 --> 00:02:50,824 и последняя ветка от этого происхождения довольно умозрительно, но я использую его сегодня 34 00:02:50,924 --> 00:02:53,238 это очень хорошо сочетается с сегодняшней речью 35 00:02:53,338 --> 00:02:57,513 это пришло из Латинское корневое слово соседний 36 00:02:57,613 --> 00:03:02,191 что значит лежать рядом, расположен неподалеку.

37 00:03:02,291 --> 00:03:04,380 И противоположное слово — сложность (трудно).

38 00:03:04,480 --> 00:03:06,689 Конечно корень слова жесткий не имеет ничего общего с «лежанием рядом».

39 00:03:06,789 --> 00:03:08,261 Это не значит лежать далеко.

40 00:03:08,361 --> 00:03:16,778 На самом деле это означает сильный или извилистый.

41 00:03:16,878 --> 00:03:18,378 Простота 42 00:03:18,478 --> 00:03:20,557 Если мы попытаемся применить простота вашей работы 43 00:03:20,657 --> 00:03:24,764 нам нужно начать из концепции одного переплетения 44 00:03:24,864 --> 00:03:28,685 И посмотреть на это с нескольких сторон 45 00:03:28,785 --> 00:03:30,862 Я думаю разговор идет о разных сторонах было интересно в выступлении Рика Мейера 46 00:03:30,962 --> 00:03:33,532 это определенно важная часть работа по проектированию программного обеспечения.

47 00:03:33,632 --> 00:03:35,995 Если мы хотим смотреть на простые вещи 48 00:03:36,095 --> 00:03:38,925 мы хотим посмотреть на определенные вещи.

49 00:03:39,025 --> 00:03:40,774 У них есть одна функция.

50 00:03:40,874 --> 00:03:44,090 Они направлены на достижение одной цели.

51 00:03:44,190 --> 00:03:52,523 Они могут быть примерно в одной и той же концепции, такие как безопасность.

52 00:03:55,208 --> 00:03:58,704 И что-то в этом роде они могут иметь отношение к 53 00:03:58,804 --> 00:04:01,595 конкретный аспект проблемы, который вы пытаетесь решить 54 00:04:01,695 --> 00:04:05,143 И важная идея заключается в том, что когда ты ищешь что-то простое 55 00:04:05,596 --> 00:04:08,271 ты хочешь это сосредоточился на этих областях 56 00:04:09,519 --> 00:04:12,032 Ты этого не хочешь совмещал разные вещи.

57 00:04:12,132 --> 00:04:15,617 С другой стороны, мы не можем слишком зацикливаться на чем-то одном 58 00:04:15,717 --> 00:04:21,554 В частности, простота не означает только что-то одно.

Верно? 59 00:04:21,654 --> 00:04:26,084 Это не интерфейс с одной операции.

60 00:04:26,184 --> 00:04:32,772 Поэтому важно различать мощность множества 61 00:04:32,872 --> 00:04:36,458 то есть количество вещей от фактического чередования этих вещей.

62 00:04:36,558 --> 00:04:40,459 Важно то, что простота – это не чередование, 63 00:04:40,559 --> 00:04:45,637 это не что-то одно Важно помнить об этом.

64 00:04:48,431 --> 00:04:51,456 Хорошо, еще одна важная вещь о простоте.

65 00:04:51,556 --> 00:04:55,833 то, о чем мы только что говорили, вещи перемежаются или нет? 66 00:04:57,360 --> 00:04:59,808 это объективная характеристика.

67 00:04:59,908 --> 00:05:04,314 Вы можете пойти и посмотреть сами.

Я не вижу никаких связей.

68 00:05:04,414 --> 00:05:06,141 Я нигде не вижу, где этот изгиб было что-то еще 69 00:05:06,241 --> 00:05:10,384 действительно простота это объективное понятие.

70 00:05:11,870 --> 00:05:15,247 Это также очень важно при определении разница между простым и легким.

71 00:05:15,347 --> 00:05:16,396 Простота 72 00:05:16,496 --> 00:05:19,010 Давайте посмотрим спокойно.

73 00:05:19,110 --> 00:05:22,346 Я думаю, что это концепция близости.

очень, очень круто.

74 00:05:22,446 --> 00:05:26,492 В частности, очевидно, что существует множество примеров.

когда что-то может быть рядом.

75 00:05:26,592 --> 00:05:34,240 В этом есть что-то вроде физической концепции.

Это что-то рядом.

76 00:05:34,340 --> 00:05:36,203 И я думаю, отсюда и корень.

это слово бывает. 77 00:05:36,303 --> 00:05:39,342 Знаешь, когда что-то легко получить, потому что это рядом.

78 00:05:39,342 --> 00:05:40,277 Это не в соседнем городе.

79 00:05:40,359 --> 00:05:43,252 Мне не нужно садиться на лошадь чтобы добраться до этой вещи.

80 00:05:43,352 --> 00:05:46,232 У нас разные понятия о физической близости.

в нашем программном обеспечении 81 00:05:46,332 --> 00:05:48,103 но есть что-то подобное, ты знаешь 82 00:05:48,203 --> 00:05:50,974 наш собственный жесткий диск или набор инструментов 83 00:05:51,074 --> 00:05:58,131 или способность приближать вещи, их установка и тому подобное.

84 00:05:58,231 --> 00:06:05,889 Второе понятие близости – это нечто близкое нашему пониманию или нашему уровню навыков.

85 00:06:05,989 --> 00:06:12,287 И я не имею в виду в данном случае близкое в смысле нашего понимания слова «способность».

86 00:06:12,387 --> 00:06:15,075 Я имею в виду буквально близко к этому то, что мы уже знаем.

87 00:06:15,175 --> 00:06:19,216 Правильное слово в данном случае быть знакомым.

88 00:06:21,866 --> 00:06:27,216 Я верю, что мы все вместе, увлечен этими двумя концепциями легкости.

89 00:06:27,316 --> 00:06:34,089 Мы так глубоко вовлечены в эти два аспекта, Это действительно ранит нас.

90 00:06:34,189 --> 00:06:36,881 Все, о чем мы беспокоимся, это могу ли я получи это немедленно 91 00:06:36,881 --> 00:06:38,766 и запустить через пять секунд? 92 00:06:38,745 --> 00:06:43,701 Это может быть что-то бесполезное, но это всё.

вас волнует, сможете ли вы это получить.

93 00:06:43,801 --> 00:06:48,947 К тому же мы зацикливаемся на этом: ох Я не могу, я не могу это читать.

94 00:06:51,071 --> 00:06:52,479 Я не умею читать по-немецки.

95 00:06:52,579 --> 00:06:55,259 Означает ли это, что немецкий язык нечитабелен? Нет. 96 00:06:55,359 --> 00:06:57,513 Я не говорю по-немецки.

97 00:06:59,167 --> 00:07:03,108 Понимаете, этот подход определенно не помогает. 98 00:07:03,208 --> 00:07:07,673 В частности, если вы хотите, чтобы все было знакомо, никогда не узнаешь что-то новое, 99 00:07:07,673 --> 00:07:10,177 потому что у тебя не будет что-то особенное 100 00:07:10,277 --> 00:07:13,170 из того, что ты уже знаешь и ничем не отличается от уже знакомого.

101 00:07:14,580 --> 00:07:19,303 Есть третий аспект простоты: о чем мы особо не думаем 102 00:07:19,403 --> 00:07:25,594 это станет спорным, речь идет о что сейчас близко к нашим возможностям.

103 00:07:25,694 --> 00:07:29,838 И мы не любим об этом говорить потому что мы чувствуем себя неловко 104 00:07:29,938 --> 00:07:31,811 из-за каких способностей речь? 105 00:07:31,911 --> 00:07:35,915 Если мы говорим о простоте в плане игры на скрипке или фортепиано 106 00:07:36,015 --> 00:07:38,490 или про скалолазание или что-то в этом роде, 107 00:07:38,590 --> 00:07:43,489 лично меня это не расстраивает что я не умею хорошо играть на скрипке, 108 00:07:43,589 --> 00:07:45,374 потому что я не знаю, как играть вообще на скрипке.

109 00:07:47,178 --> 00:07:48,276 Но работа, которую мы делаем 110 00:07:48,376 --> 00:07:51,668 Это умозрительная работа, поэтому когда мы начинаем о чем-то говорить 111 00:07:51,768 --> 00:07:54,789 то, что находится за пределами наших возможностей, Ну ты знаешь 112 00:07:54,889 --> 00:07:57,095 это правда начинает давить на наше эго.

113 00:07:58,283 --> 00:08:05,205 Итак, вы знаете, из-за сочетания высокомерия и неуверенность, мы никогда не говорим об этом 114 00:08:05,305 --> 00:08:07,644 не находится ли что-то за пределами наших возможностей.

115 00:08:07,744 --> 00:08:17,320 Это не так стыдно, потому что у нас нет совершенно разные способности в этой области.

116 00:08:17,420 --> 00:08:20,332 Последнее, что Я хочу поговорить о легкости 117 00:08:20,432 --> 00:08:26,447 легкость, в отличие от простоты, это относительное понятие.

Верно? 118 00:08:26,547 --> 00:08:29,510 Играй на скрипке и читай по-немецки.

Для меня это действительно сложно.

119 00:08:29,610 --> 00:08:32,887 Это легко для других некоторые другие люди.

120 00:08:32,987 --> 00:08:38,110 В отличие от простоты, где мы можем см.

переплетение и чередование 121 00:08:38,210 --> 00:08:44,695 Кому-то всегда легко, кому-то трудно.

Это относительное понятие.

122 00:08:44,795 --> 00:08:46,815 Правда в том, что мы разбрасываем эти концепции повсюду.

123 00:08:46,915 --> 00:08:50,044 говоря, что мне нравится использовать эту технологию, потому что это просто 124 00:08:50,144 --> 00:08:52,113 под простотой я подразумеваю легкость.

125 00:08:52,213 --> 00:08:56,378 И когда я говорю «легкость», я имею в виду что я уже знаком с чем-то подобным.

126 00:08:56,478 --> 00:08:58,892 В этом случае все понятия размываются и мы никогда 127 00:08:58,892 --> 00:09:04,924 мы не сможем объективно обсуждать качество наших программ.

128 00:09:05,024 --> 00:09:06,370 Дизайн против Артефакта 129 00:09:06,470 --> 00:09:19,472 В какой области нужно различать Являются ли эти два понятия легкостью и простотой? 130 00:09:19,572 --> 00:09:22,607 Когда дело доходит до структур и артефактов.

131 00:09:22,707 --> 00:09:25,226 Мы программируем с использованием конструкций.

У нас есть языки программирования.

132 00:09:25,326 --> 00:09:26,966 Мы используем определенные библиотеки и все такое 133 00:09:27,066 --> 00:09:32,453 которые сами по себе, когда мы смотрим на них, например, 134 00:09:32,553 --> 00:09:34,099 когда мы смотрим на код, который пишем, 135 00:09:34,199 --> 00:09:36,499 иметь определенные характеристики самостоятельно.

136 00:09:36,599 --> 00:09:39,688 Но мы занимаемся бизнесом артефактов.

137 00:09:39,788 --> 00:09:42,444 Мы не предоставляем исходный код 138 00:09:42,544 --> 00:09:45,870 и пользователи не смотрят на наш код и не говорите: «О, это так круто».

139 00:09:47,121 --> 00:09:47,459 Нет. 140 00:09:47,559 --> 00:09:51,891 Они запускают наши программы и работают долго.

141 00:09:51,991 --> 00:09:55,621 И на протяжении всего времени мы продолжаем работать над нашим программным обеспечением.

142 00:09:55,721 --> 00:10:00,514 И всё об этом ПО - запуск, производительность, 143 00:10:00,614 --> 00:10:06,620 возможность изменения - атрибуты артефактов, и не оригинальные конструкции.

144 00:10:06,720 --> 00:10:14,201 Но опять же, мы все еще так сосредоточены на основе нашего опыта использования структур.

145 00:10:14,301 --> 00:10:18,467 Смотри: мне пришлось написать всего 16 символов.

Ух ты! Большой.

146 00:10:18,567 --> 00:10:20,656 Никаких точек с запятой и прочего.

147 00:10:20,756 --> 00:10:29,004 Вся эта концепция — удобство программиста, мы увлечены этим, а не той пользой, которую мы приносим.

148 00:10:29,104 --> 00:10:31,703 С другой стороны, дела обстоят еще хуже.

149 00:10:31,803 --> 00:10:34,977 Наши работодатели тоже заинтересованы в этом.

Верно? 150 00:10:35,077 --> 00:10:38,724 «Эти два значения легкости, что они означаютЭ» 151 00:10:38,824 --> 00:10:41,874 Могу ли я нанять другого программиста? 152 00:10:43,852 --> 00:10:47,313 И они смотрят на ваш исходный код, и думаю, что он выглядит знакомым.

153 00:10:49,853 --> 00:10:53,674 И они уже знают все инструменты.

Это под рукой.

154 00:10:53,774 --> 00:10:56,928 У них уже есть этот инструмент в наборе инструментов.

Они могут это прочитать.

155 00:10:57,158 --> 00:10:58,304 Я могу заменить тебя.

156 00:10:58,392 --> 00:11:01,906 Это простая задача, особенно если Я игнорирую третью концепцию легкости 157 00:11:03,483 --> 00:11:08,021 а именно, может ли кто-нибудь понять ваш код, потому что им все равно.

158 00:11:08,121 --> 00:11:10,883 Их просто волнует, что кто-то мог бы сесть на свое место и начать печатать.

159 00:11:12,939 --> 00:11:19,588 Еще раз, многие владельцы бизнеса сосредоточьтесь на первых двух аспектах легкости 160 00:11:19,821 --> 00:11:21,388 потому что это так программаторы взаимозаменяемы.

161 00:11:21,488 --> 00:11:26,026 Мы собираемся соответствовать этому с последствиями длительного использования.

162 00:11:28,271 --> 00:11:30,190 Что значит придерживаться такие принципы в долгосрочной перспективе? 163 00:11:32,585 --> 00:11:35,842 А что там? Вся суть в этом.

Верно? 164 00:11:35,942 --> 00:11:41,432 Программа делает то, что должна делать? Это высокое качество? 165 00:11:41,532 --> 00:11:43,172 Можем ли мы положиться на нее, делать то, что было задумано? 166 00:11:43,272 --> 00:11:46,766 Можем ли мы решить проблемы, когда они появляются? 167 00:11:46,866 --> 00:11:49,669 А если возникнут новые требования, можем ли мы изменить программу? 168 00:11:49,769 --> 00:11:54,626 Эти вещи не имеют ничего общего с к дизайнам, как мы их описали здесь 169 00:11:54,726 --> 00:12:00,880 или очень малы и имеют большое отношение к атрибутам артефакта.

170 00:12:00,980 --> 00:12:06,692 Мы должны начать оценивать наши проекты, на основе артефактов 171 00:12:06,792 --> 00:12:13,188 не о том, как они выглядят или чувствовались во время их создания.

172 00:12:14,155 --> 00:12:15,345 Ограничения 173 00:12:15,530 --> 00:12:17,052 Поговорим немного об ограничениях.

174 00:12:17,152 --> 00:12:17,916 Ой, смотри, оно движется.

175 00:12:19,760 --> 00:12:24,755 Это просто должно привести вас в это состояние, когда все, что я говорю, кажется правдой.

176 00:12:27,802 --> 00:12:31,579 Потому что не могу используйте для этого монады.

177 00:12:35,578 --> 00:12:37,630 Это довольно логично, не так ли? 178 00:12:37,730 --> 00:12:41,689 Как мы можем сделать что-то надежное? что, если мы этого не понимаем? 179 00:12:43,304 --> 00:12:44,910 Это очень, очень сложно.

180 00:12:45,984 --> 00:12:50,917 Я думаю, что профессор Суссман дал превосходную оценку.

аргумент, что придется пойти на компромисс.

181 00:12:51,017 --> 00:12:51,648 В будущем для некоторых систем 182 00:12:51,748 --> 00:12:54,912 за счет того, что мы делаем их более гибкими расширяемый и динамичный, 183 00:12:55,012 --> 00:13:05,907 нам придется пойти на компромисс в понимании своего поведения и уверенности в своей правоте.

184 00:13:06,731 --> 00:13:11,056 Но что касается вещей, которые мы хотим понять, и в правильности которого мы должны быть уверены, 185 00:13:11,156 --> 00:13:14,339 мы будем ограничены.

Мы будем ограничены в своем понимании.

186 00:13:14,439 --> 00:13:16,151 И наше понимание очень ограничено, не так ли? 187 00:13:16,251 --> 00:13:19,764 Есть идея, что сколькими шариками ты можешь жонглировать, 188 00:13:19,864 --> 00:13:21,556 или сколько вещей вы можете иметь в виду в то же время.

189 00:13:21,656 --> 00:13:24,250 Это конечное число, и оно очень маленькое, верно? 190 00:13:24,350 --> 00:13:28,689 Есть только несколько вещей, которые мы можем рассмотреть, и когда все переплетается воедино, 191 00:13:28,789 --> 00:13:31,866 мы теряем способность воспринимать их изолированно.

192 00:13:31,966 --> 00:13:35,767 Каждый раз, когда я выхожу из дома новая часть программы 193 00:13:35,867 --> 00:13:38,848 мне нужно это понять и он прикреплен к другой части 194 00:13:38,948 --> 00:13:40,654 Я должен вставить эту другую часть в свою голову 195 00:13:40,754 --> 00:13:43,183 потому что я не могу думать об одной части в отрыве от другой.

196 00:13:43,283 --> 00:13:45,171 Вот как ведут себя дела когда они переплетаются.

197 00:13:45,271 --> 00:13:48,620 Каждое плетение добавляет эту ношу, 198 00:13:48,720 --> 00:13:52,973 и это бремя является своего рода комбинаторикой относительно количества вещей 199 00:13:53,073 --> 00:13:54,723 которые мы можем принять во внимание.

200 00:13:54,823 --> 00:13:59,773 По существу эта сложность, и под сложностью Я понимаю это переплетение вещей воедино, 201 00:13:59,873 --> 00:14:03,621 ограничивает наши возможности в понимании наших систем.

202 00:14:07,271 --> 00:14:08,376 Изменять 203 00:14:09,164 --> 00:14:10,597 Как мы меняем наше программное обеспечение? 204 00:14:10,697 --> 00:14:15,699 Кажется, я услышал сегодня в одной речи, что такое гибкое и экстремальное программирование 205 00:14:15,799 --> 00:14:23,656 показал, что рефакторинг и тесты позволяют нам вносить изменения с нулевым воздействием.

206 00:14:23,756 --> 00:14:28,736 Я никогда этого не знал.

Я до сих пор не знаю.

207 00:14:28,836 --> 00:14:33,091 Это не совсем то, что вам нужно знать.

Это чушь.

208 00:14:33,191 --> 00:14:39,290 Верно? Если ты собираешься изменить программу, которую необходимо проанализировать, 209 00:14:39,390 --> 00:14:41,828 что она делает и принять решение о том, что ей следует делать.

210 00:14:41,928 --> 00:14:46,605 Понимаете, как минимум нужно сказать: «Каково влияние потенциальных измененийЭ» 211 00:14:47,432 --> 00:14:52,763 И для каких частей программы мне нужно двигаться, чтобы внести изменения? 212 00:14:53,898 --> 00:14:59,188 Знаешь, я не волнуюсь, если ты используешь XP. или маневренный или что-то в этом роде.

213 00:14:59,288 --> 00:15:02,843 Вы не можете обойти тот факт, что если вы не могу говорить о вашей программе 214 00:15:02,943 --> 00:15:04,078 вы не сможете принимать эти решения.

215 00:15:05,186 --> 00:15:09,378 Но я хочу внести ясность, потому что многие люди как только они услышат слова, 216 00:15:09,478 --> 00:15:10,708 о необходимости рассуждения говорят: 217 00:15:10,808 --> 00:15:13,796 «О Боже мой! Ты говоришь, что мы должны доказать программы? 218 00:15:13,896 --> 00:15:16,875 Я не верю в это.

Я не думаю, что это объективно.

219 00:15:16,975 --> 00:15:20,438 Я просто говорю о неформальных рассуждениях, те же самые, которыми мы пользуемся каждый день, 220 00:15:20,538 --> 00:15:22,116 когда мы решим, что делать.

221 00:15:22,216 --> 00:15:26,261 Мы не принимаем теорию категорий и не говори «Оооо» 222 00:15:26,361 --> 00:15:31,854 Ты знаешь.

Мы действительно мы можем рассуждать и без этого.

Бог благословил.

223 00:15:32,372 --> 00:15:32,859 Отладка 224 00:15:32,959 --> 00:15:36,200 А что насчет другой стороны? Есть две вещи что вы делаете со своей программой.

225 00:15:36,300 --> 00:15:37,815 Во-первых, вы добавляете новые функции.

226 00:15:37,915 --> 00:15:42,510 Другой - ты поправь те что у тебя получилось не очень хорошо.

227 00:15:43,078 --> 00:15:48,446 И мне нравится задавать этот вопрос: что правда за каждую ошибку, обнаруженную в производстве? 228 00:15:49,156 --> 00:15:50,596 Реакция аудитории: Это кто-то написал.

229 00:15:50,696 --> 00:15:51,859 Это кто-то написал.

Да.

230 00:15:52,958 --> 00:15:58,092 Что еще интереснее: он прошел проверку типа.

231 00:15:58,192 --> 00:16:00,029 Что еще она сделала? 232 00:16:01,023 --> 00:16:05,962 Она прошла все испытания.

Да.

Что вам нужно сделать сейчас? 233 00:16:08,838 --> 00:16:13,232 Я верю, что мы находимся в мире, как я это называю защитное программирование.

234 00:16:14,747 --> 00:16:17,334 Грустно это говорить.

235 00:16:17,434 --> 00:16:19,360 Мы такие: я могу внести изменения, потому что у меня есть тесты.

236 00:16:20,141 --> 00:16:21,032 Кто это делает? 237 00:16:21,132 --> 00:16:23,724 Кто водит машину стучал в заборы и говорил: 238 00:16:23,824 --> 00:16:32,768 «Ух ты! Я рада, что у меня есть эти заборы.

Иначе я бы никогда не приехал вовремя».

239 00:16:33,974 --> 00:16:39,517 И установили заборы помочь тебе добраться туда? 240 00:16:40,014 --> 00:16:41,745 Мол, вас направляют ограждения? 241 00:16:41,845 --> 00:16:43,957 Нет. Заборы повсюду.

242 00:16:44,057 --> 00:16:47,554 Они не ведут вашу машину в каком-то конкретном направлении.

243 00:16:48,645 --> 00:16:52,281 Еще раз нам нужно иметь возможность подумайте о нашей программе.

244 00:16:52,381 --> 00:16:53,148 Это становится критически важным.

245 00:16:53,248 --> 00:16:56,684 Все наши заборы подводят нас.

У нас будет эта проблема.

246 00:16:56,784 --> 00:16:59,188 Нам нужно уметь рассуждать о нашей программе.

247 00:16:59,288 --> 00:17:03,154 Скажем примерно так: Ну, знаешь что? Я думаю, потому что, может быть, 248 00:17:03,254 --> 00:17:04,901 Если не сложно, могу сказать: 249 00:17:05,001 --> 00:17:09,940 «Я знаю, с помощью обычной логики, в этой части программы этого произойти не может. 250 00:17:10,040 --> 00:17:13,491 Это должно быть в другой части программы, и позвольте мне сначала посмотреть там.

251 00:17:14,415 --> 00:17:15,162 Скорость разработки 252 00:17:15,262 --> 00:17:20,275 Сейчас все, конечно, начнут стонать: " Но у меня есть скорость.

Я использую Agile. 253 00:17:21,353 --> 00:17:26,212 Видишь ли, эти простые вещи делают меня жизнь хороша, потому что у меня высокая скорость.

254 00:17:27,135 --> 00:17:33,545 Какой бегун сможет бежать так быстро, как он? скорость с самого начала гонки? 255 00:17:34,853 --> 00:17:35,752 Реакция аудитории: Спринтер.

256 00:17:35,755 --> 00:17:40,216 Правильно, только тот, кто бежит Теги: #Рич Хикки #конференция #дизайн #разработка #java #Анализ и проектирование систем #Lisp #проектирование и рефакторинг #Конференции

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.