1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:01,560 >> DAVID Маланом: Хорошо, мы вернулись. 3 00:00:01,560 --> 00:00:03,830 Так что для возбуждающая заключение, наш последний раздел 4 00:00:03,830 --> 00:00:06,900 на веб-программирования, который я думали, что мы используем в качестве общего термина 5 00:00:06,900 --> 00:00:08,440 чтобы захватить несколько оставшихся тем. 6 00:00:08,440 --> 00:00:10,390 Так что в конце день, мы на самом деле делаем 7 00:00:10,390 --> 00:00:14,830 немного практический веб-программирование с языком называется JavaScript. 8 00:00:14,830 --> 00:00:17,510 И я думаю, что мы будем смотреть на что-то связано с изображениями 9 00:00:17,510 --> 00:00:20,040 и открывать что-то тайно спрятаны в изображении, 10 00:00:20,040 --> 00:00:23,230 а также взглянуть на Google API Карт, прикладного программирования 11 00:00:23,230 --> 00:00:26,040 Интерфейс, как что-то представитель от типа программного обеспечения 12 00:00:26,040 --> 00:00:28,800 это все более и свободно доступных сегодня. 13 00:00:28,800 --> 00:00:32,029 >> Но почему не мы посмотрим в качестве ингредиента в этом мире 14 00:00:32,029 --> 00:00:34,070 что мы отчасти было принимая как должное существует 15 00:00:34,070 --> 00:00:36,720 в течение некоторого времени, база данных. 16 00:00:36,720 --> 00:00:39,150 За прошедшие сутки и полтора мы предполагали 17 00:00:39,150 --> 00:00:42,910 что у нас есть доступ к базе данных, но Какую проблему решить базы данных? 18 00:00:42,910 --> 00:00:45,540 Что это делает для нас? 19 00:00:45,540 --> 00:00:47,030 Что это? 20 00:00:47,030 --> 00:00:48,679 >> ЗРИТЕЛИ: [неразборчиво] 21 00:00:48,679 --> 00:00:51,720 DAVID Маланом: содержит всю информацию, ОК, а какие виды информации 22 00:00:51,720 --> 00:00:53,186 вы могли бы положить в него? 23 00:00:53,186 --> 00:00:54,590 >> ЗРИТЕЛИ: [неразборчиво] 24 00:00:54,590 --> 00:00:56,450 >> DAVID Маланом: Любая информация вы положили в него, вы получите обратно. 25 00:00:56,450 --> 00:00:57,070 Это правда. 26 00:00:57,070 --> 00:01:01,900 А на типичного веб-сайта или веб приложение, какие виды информации, 27 00:01:01,900 --> 00:01:03,385 в частности, могли бы вы положили в? 28 00:01:03,385 --> 00:01:04,260 ЗРИТЕЛИ: [неразборчиво] 29 00:01:04,260 --> 00:01:05,051 DAVID Маланом: Пользователи. 30 00:01:05,051 --> 00:01:07,000 Так что пользователь? 31 00:01:07,000 --> 00:01:09,765 >> ЗРИТЕЛИ: [неразборчиво] 32 00:01:09,765 --> 00:01:11,640 DAVID Маланом: OK, зарегистрировано Пользователь сайта. 33 00:01:11,640 --> 00:01:15,100 А что это значит Хранить информацию пользователей? 34 00:01:15,100 --> 00:01:17,260 Что сочиняет пользователя? 35 00:01:17,260 --> 00:01:18,331 Пользователь имеет то, что? 36 00:01:18,331 --> 00:01:19,206 ЗРИТЕЛИ: [неразборчиво] 37 00:01:19,206 --> 00:01:21,040 DAVID Маланом: Да, личный данные, и мне это нравится. 38 00:01:21,040 --> 00:01:21,970 Давайте быть более точным. 39 00:01:21,970 --> 00:01:25,275 Таким образом, пользователь, как правило, имеет имя, что еще может иметь пользователь? 40 00:01:25,275 --> 00:01:26,150 ЗРИТЕЛИ: [неразборчиво] 41 00:01:26,150 --> 00:01:29,130 DAVID Маланом: addr-- ОК, поэтому сначала имя, фамилия. 42 00:01:29,130 --> 00:01:29,630 Это хорошо. 43 00:01:29,630 --> 00:01:31,463 На самом деле, давайте исправим что, так как это будет 44 00:01:31,463 --> 00:01:35,010 чтобы открыть возможность для обсуждение, по-прежнему, в дальнейшем. 45 00:01:35,010 --> 00:01:39,090 Имя, фамилия, пол. 46 00:01:39,090 --> 00:01:41,820 47 00:01:41,820 --> 00:01:43,481 ID какой-то. 48 00:01:43,481 --> 00:01:43,980 Что еще? 49 00:01:43,980 --> 00:01:45,438 Я слышал кое-что еще раньше, тоже. 50 00:01:45,438 --> 00:01:51,600 Электронная почта, почтовый адрес. 51 00:01:51,600 --> 00:01:58,170 >> Так что давайте остановимся там и теперь рассмотрим не то, что мы сохраняем в базе данных, 52 00:01:58,170 --> 00:02:01,980 но--, а не почему, так как это, возможно, Очевидно, что после регистрации пользователя, 53 00:02:01,980 --> 00:02:03,730 Вы хотите, чтобы помнить о них в течение некоторого времени. 54 00:02:03,730 --> 00:02:05,480 Вы не хотите его просто хранить в ОЗУ 55 00:02:05,480 --> 00:02:08,690 и быть forgotten-- так давайте сосредоточимся на как. 56 00:02:08,690 --> 00:02:11,700 >> Оказывается, что в мир баз данных, 57 00:02:11,700 --> 00:02:14,410 есть по крайней мере два типа в эти дни. 58 00:02:14,410 --> 00:02:20,010 То, что называется базой данных SQL, Structured Query Language, 59 00:02:20,010 --> 00:02:24,770 или, симпатично по имени, NoSQL, который не является SQL. 60 00:02:24,770 --> 00:02:26,980 И последняя является пример того, что может 61 00:02:26,980 --> 00:02:30,660 можно назвать объектно-ориентированным, или объект магазин, база данных 62 00:02:30,660 --> 00:02:36,010 который хранит объекты, а не, извините мне, как мы вскоре увидим, строки. 63 00:02:36,010 --> 00:02:41,800 >> Таким образом, мы сосредоточимся на мгновение на первый из них, а именно, SQL 64 00:02:41,800 --> 00:02:46,850 базы данных, если только потому, что так хорошо знакомы уже, кому-либо 65 00:02:46,850 --> 00:02:51,070 который использовал Excel или Таблицы Google или Apple, 66 00:02:51,070 --> 00:02:53,740 Числа или любой стандартный программы электронных таблиц, 67 00:02:53,740 --> 00:02:56,040 или, что то же самое, или более изощренно, 68 00:02:56,040 --> 00:02:58,610 что-то вроде Microsoft Доступ или Oracle 69 00:02:58,610 --> 00:03:03,890 или MySQL или PostgreSQL, все из которых являются названия продуктов для реализаций 70 00:03:03,890 --> 00:03:04,865 в следующей идее. 71 00:03:04,865 --> 00:03:10,350 >> Реляционная база данных просто то, что есть строки и столбцы. 72 00:03:10,350 --> 00:03:12,850 И по строкам и столбцам, Я буквально имею в виду что-то 73 00:03:12,850 --> 00:03:21,860 как это, так, где мы могли бы иметь имя поля и его тип здесь. 74 00:03:21,860 --> 00:03:25,800 И на самом деле, позвольте мне Теперь начинают отобразить их. 75 00:03:25,800 --> 00:03:29,420 Так что на самом деле, я не знаю, почему я обратил отдельную диаграмму. 76 00:03:29,420 --> 00:03:30,780 Давайте держать это просто. 77 00:03:30,780 --> 00:03:34,830 >> Мы имеем право здесь Начало нашего стола, где 78 00:03:34,830 --> 00:03:40,150 это имя поля и это тип данных, 79 00:03:40,150 --> 00:03:41,660 а также по типу Я имею в виду следующее. 80 00:03:41,660 --> 00:03:45,510 Является ли это число, действительно ли это строка, короткая строка, как слово, 81 00:03:45,510 --> 00:03:49,340 это абзац, это двоичные данные, такие как изображения? 82 00:03:49,340 --> 00:03:51,980 И давайте просто дразнить это друг от друга на мгновение. 83 00:03:51,980 --> 00:03:57,575 Итак, первое имя, номер, Строка, большой кусок text-- 84 00:03:57,575 --> 00:03:58,450 ЗРИТЕЛИ: [неразборчиво] 85 00:03:58,450 --> 00:03:59,616 DAVID Маланом: Да, поэтому строка. 86 00:03:59,616 --> 00:04:04,744 И в контексте базы данных, мы будем обычно называем это поле CHAR. 87 00:04:04,744 --> 00:04:07,660 Скажу только полукокса сейчас, но мы собирается уточнить это в один момент. 88 00:04:07,660 --> 00:04:09,180 Характер поля. 89 00:04:09,180 --> 00:04:11,365 Фамилия, вероятно, то же самое. 90 00:04:11,365 --> 00:04:11,865 Пол? 91 00:04:11,865 --> 00:04:16,230 92 00:04:16,230 --> 00:04:18,310 >> Мужчина или женщина, так это то, может быть полем символ. 93 00:04:18,310 --> 00:04:21,380 Это может быть либо цитата, конец цитаты "Мужской" или цитата, конец цитаты "женский" 94 00:04:21,380 --> 00:04:23,650 или это может быть м или п. 95 00:04:23,650 --> 00:04:26,540 Если вы хотите быть более широким, вам может понадобиться третье значение 96 00:04:26,540 --> 00:04:28,640 или какой-то другой области в целом. 97 00:04:28,640 --> 00:04:31,350 И таким образом вы могли бы использовать верно неверно. 98 00:04:31,350 --> 00:04:35,036 Поле можно назвать мужчиной, и то можно сказать, что истинным или ложным. 99 00:04:35,036 --> 00:04:38,160 Но это не обязательно захватывать всю информацию, вы можете захотеть. 100 00:04:38,160 --> 00:04:41,118 >> Так получается, что есть другой тип поля, которые могут быть полезными здесь 101 00:04:41,118 --> 00:04:46,040 в типичной базе данных, называется перечисление, где это поле характер, 102 00:04:46,040 --> 00:04:50,480 но вы, дизайнер, добраться до перечислить возможные значения, 103 00:04:50,480 --> 00:04:54,630 как цитата, Unquote "мужской", цитата, Unquote "женский" и так далее. 104 00:04:54,630 --> 00:04:57,620 Так что любое значение находится в вашей базе данных, 105 00:04:57,620 --> 00:05:00,670 на самом деле характер на основе, но он должен быть одним из этих значений. 106 00:05:00,670 --> 00:05:03,520 Мы, вероятно, не желали бы иметь перечисление для имени или фамилии. 107 00:05:03,520 --> 00:05:05,630 В противном случае мы имели бы перечислить, как имя 108 00:05:05,630 --> 00:05:09,570 происходит от, буквально каждый возможно первое имя и фамилия. 109 00:05:09,570 --> 00:05:13,960 >> ОК, так что ID должен быть идентификатор? 110 00:05:13,960 --> 00:05:15,200 Да, так, может быть несколько. 111 00:05:15,200 --> 00:05:17,870 Так давайте придерживаться что на данный момент число. 112 00:05:17,870 --> 00:05:22,010 И по количеству, число это немного слишком широк в настоящее время. 113 00:05:22,010 --> 00:05:23,900 На конец второго день, я чувствую, что мы 114 00:05:23,900 --> 00:05:25,280 должен быть немного более точным. 115 00:05:25,280 --> 00:05:29,280 Номер может означать, как, это может быть что-то вроде 1.236. 116 00:05:29,280 --> 00:05:31,500 И это, вероятно, не что мы подразумеваем под идентификатором. 117 00:05:31,500 --> 00:05:34,635 Что мы, вероятно, подразумеваем под идентификатором? 118 00:05:34,635 --> 00:05:36,382 >> ЗРИТЕЛИ: [неразборчиво] 119 00:05:36,382 --> 00:05:38,590 DAVID Маланом: О, хорошо, так что может быть, это даже не число. 120 00:05:38,590 --> 00:05:42,840 Может быть, это на самом деле уникальный идентификатор это строка, как имя пользователя. 121 00:05:42,840 --> 00:05:44,580 Так что совершенно, может быть. 122 00:05:44,580 --> 00:05:46,730 Я думаю, что кто-то, вероятно, имел в виду числовые, хотя. 123 00:05:46,730 --> 00:05:48,460 Так что давайте останемся с этим. 124 00:05:48,460 --> 00:05:49,320 Что это за номер? 125 00:05:49,320 --> 00:05:51,960 Что более precise-- целое число. 126 00:05:51,960 --> 00:05:56,710 Так как число 0, 1, 2, 3, поэтому мы будем называть это целое число. 127 00:05:56,710 --> 00:05:58,909 И даже тогда, я мог быть придирки, это 128 00:05:58,909 --> 00:06:00,700 на самом деле не просто общее число вы хотите. 129 00:06:00,700 --> 00:06:04,340 Вы, вероятно, не хотят отрицательные значения, только потому, что он просто чувствует себя странно. 130 00:06:04,340 --> 00:06:06,070 Вы, вероятно, хотите положительные целые числа. 131 00:06:06,070 --> 00:06:07,920 Таким образом, вы можете также выразить что в базе данных, 132 00:06:07,920 --> 00:06:09,450 но сейчас мы будем говорить целое число. 133 00:06:09,450 --> 00:06:10,650 >> Эл. адрес? 134 00:06:10,650 --> 00:06:13,550 Это, вероятно, просто-- что? 135 00:06:13,550 --> 00:06:14,460 >> ЗРИТЕЛИ: [неразборчиво] 136 00:06:14,460 --> 00:06:16,980 >> DAVID Маланом: Это письмо, но это символы, не так ли? 137 00:06:16,980 --> 00:06:19,813 У него есть только трусливый характер, как ЭН "на символ" или что-то другое, 138 00:06:19,813 --> 00:06:21,580 но это по-прежнему символьное поле. 139 00:06:21,580 --> 00:06:23,900 И почтовый адрес? 140 00:06:23,900 --> 00:06:25,360 Характер поля. 141 00:06:25,360 --> 00:06:31,400 Так что это хорошее начало, но давайте быть немного более точным в настоящее время. 142 00:06:31,400 --> 00:06:34,540 >> Так получается, что в базы данных, вы часто 143 00:06:34,540 --> 00:06:39,120 есть выбор над более утонченной версии этих вещей. 144 00:06:39,120 --> 00:06:44,330 На самом деле, в типичной базе данных SQL, SQL, или в более общем плане, реляционная база данных, 145 00:06:44,330 --> 00:06:46,680 базы данных с рядами и колонны, часто 146 00:06:46,680 --> 00:06:53,610 получить указать не только от типа field-- позвольте мне сделать некоторую комнату here-- 147 00:06:53,610 --> 00:06:56,600 но и длину. 148 00:06:56,600 --> 00:06:59,900 >> Так как долго это имя? 149 00:06:59,900 --> 00:07:07,060 Я думаю, D-A-V-I-D. ОК, я получил его вероятно, просто оскорблены как половина 150 00:07:07,060 --> 00:07:11,260 людей в комнате, справа, так как ваши имена длиннее, чем пять 151 00:07:11,260 --> 00:07:16,608 письма, так что пять кажется немного эгоистично и наивные, так что лучшая ценность? 152 00:07:16,608 --> 00:07:19,320 153 00:07:19,320 --> 00:07:24,330 10, все в порядке, и я думаю, мы все в порядке в комнате. 154 00:07:24,330 --> 00:07:26,254 13? 155 00:07:26,254 --> 00:07:27,541 30? 156 00:07:27,541 --> 00:07:29,540 Почему бы мне не взять Подход ранее, когда мы 157 00:07:29,540 --> 00:07:31,081 говорили о массивах и памяти? 158 00:07:31,081 --> 00:07:32,450 Почему я не могу просто сказать, как 1000? 159 00:07:32,450 --> 00:07:35,260 Имя Никто не собирается чтобы быть больше, чем 1000. 160 00:07:35,260 --> 00:07:36,706 Отталкивать. 161 00:07:36,706 --> 00:07:38,005 >> ЗРИТЕЛИ: [неразборчиво] 162 00:07:38,005 --> 00:07:40,130 DAVID Маланом: Да, это расточительно, право, особенно 163 00:07:40,130 --> 00:07:44,630 если большинство имен только пять или 10 или 15 символов, это очень расточительно. 164 00:07:44,630 --> 00:07:45,810 Таким образом, вы знаете, что? 165 00:07:45,810 --> 00:07:48,020 Это своего рода сложный вопрос. 166 00:07:48,020 --> 00:07:51,721 Теперь мы можем, конечно, анализировать английский язык и названия любого другого языка в 167 00:07:51,721 --> 00:07:54,470 и выяснить, хорошо, что такое average-- среднем не реально 168 00:07:54,470 --> 00:07:57,150 помочь us-- что максимальная является вероятно, что мы действительно хотим. 169 00:07:57,150 --> 00:07:59,920 Но оказывается, у нас даже есть некоторый выбор по типу здесь. 170 00:07:59,920 --> 00:08:03,400 >> В типичной базе данных SQL, вы есть нечто, называемое голец поле 171 00:08:03,400 --> 00:08:07,505 а также VARCHAR, V-A-R, для переменного поля полукокса. 172 00:08:07,505 --> 00:08:08,630 А разница заключается в следующем. 173 00:08:08,630 --> 00:08:12,400 Поле голец, вы дизайнер, должны указать заранее 174 00:08:12,400 --> 00:08:14,900 точная длина поля. 175 00:08:14,900 --> 00:08:20,530 Так что, может быть, первое имя как 20 чувствует себя своего рода сейф. 176 00:08:20,530 --> 00:08:23,950 Возможно, придется сделать некоторые Googling к увидеть, если это на самом деле достаточно безопасно. 177 00:08:23,950 --> 00:08:26,910 Там, наверное, имя с 21 персонажи, но сейчас, предположим, 20 178 00:08:26,910 --> 00:08:27,620 безопасно. 179 00:08:27,620 --> 00:08:30,070 >> Поле символ будет означать, в базе данных, вам 180 00:08:30,070 --> 00:08:33,289 используют 20 и всегда 20 символов. 181 00:08:33,289 --> 00:08:37,419 Теперь, если это только D-A-V-I-D, 15 из них только собирается быть пустым символов, 182 00:08:37,419 --> 00:08:40,450 но вы все еще используете все 20 байт. 183 00:08:40,450 --> 00:08:46,302 Поле VARCHAR, наоборот, означает, Строка должна быть до 20 символов 184 00:08:46,302 --> 00:08:48,260 но если это только пять, вы только собираетесь использовать 185 00:08:48,260 --> 00:08:51,270 пять, шесть или, может быть, для особое значение в конце, 186 00:08:51,270 --> 00:08:54,980 как что 0 мы обсуждали, что означает конец символа 187 00:08:54,980 --> 00:08:56,790 Последовательность в памяти. 188 00:08:56,790 --> 00:08:59,950 >> Так что, когда вы думаете вы можете выбрать символ 189 00:08:59,950 --> 00:09:05,240 по сравнению с VARCHAR, учитывая, что компромисс? 190 00:09:05,240 --> 00:09:09,321 Char использует это много символов, VARCHAR использует не более, что многие персонажи. 191 00:09:09,321 --> 00:09:10,196 ЗРИТЕЛИ: [неразборчиво] 192 00:09:10,196 --> 00:09:13,859 193 00:09:13,859 --> 00:09:16,900 DAVID Маланом: Хорошо, когда вы знаете, длина строки довольно убедительным 194 00:09:16,900 --> 00:09:19,316 просто использовать символ, потому что, если вы это знаете, просто положить его вниз. 195 00:09:19,316 --> 00:09:23,390 А может быть, это верно для молнии код, в США, по крайней мере, 02138, 196 00:09:23,390 --> 00:09:26,660 это всегда будет пять символы, пока добавить тире четыре. 197 00:09:26,660 --> 00:09:29,750 Но вы могли бы иметь некоторые значения который вы всегда знаете длину. 198 00:09:29,750 --> 00:09:32,310 Или, может быть, государственные символы, как Нью-Йорк в Нью-Йорк, 199 00:09:32,310 --> 00:09:33,811 и MA для штата Массачусетс в США. 200 00:09:33,811 --> 00:09:36,560 Может быть, у вас есть какие-то ситуации, где это вполне разумно, 201 00:09:36,560 --> 00:09:39,520 но этой логике, почему мы даже overthinking это? 202 00:09:39,520 --> 00:09:41,800 Почему бы нам не использовать VARCHAR, а затем мы просто 203 00:09:41,800 --> 00:09:46,730 всегда используйте два символа в любом случае, или всегда использовать пять символов в любом случае? 204 00:09:46,730 --> 00:09:50,300 Почему бы не просто сохранить для VARCHAR все, по этой логике? 205 00:09:50,300 --> 00:09:51,677 Там должно быть подвох. 206 00:09:51,677 --> 00:09:52,552 ЗРИТЕЛИ: [неразборчиво] 207 00:09:52,552 --> 00:09:54,952 208 00:09:54,952 --> 00:09:56,660 DAVID Маланом: Могли написать что-то неправильно. 209 00:09:56,660 --> 00:09:58,090 Так что это правда. 210 00:09:58,090 --> 00:10:01,030 Но даже тогда, они не могут использовать больше памяти, чем я выделяю. 211 00:10:01,030 --> 00:10:03,340 Я до сих пор окончательное говорят по всей длине, 212 00:10:03,340 --> 00:10:06,780 поэтому они не могут случайно сделать эта ошибка, но хорошая мысль. 213 00:10:06,780 --> 00:10:10,510 Это более тонкий, но это очень родственный к нашей дискуссии, на самом деле, массивов 214 00:10:10,510 --> 00:10:12,390 и связанные списки ранее. 215 00:10:12,390 --> 00:10:16,290 >> Оказывается, что в базе данных, если он знает, что все значения являются 216 00:10:16,290 --> 00:10:19,250 фиксированной длины, даже если некоторые из этих значений являются пустыми, 217 00:10:19,250 --> 00:10:22,484 вид эстетически пустым, D-A-V-I-D, а затем 15 заготовок, 218 00:10:22,484 --> 00:10:24,650 получается, что если каждый Поле имеет ту же длину, 219 00:10:24,650 --> 00:10:28,670 так же, как массив были все его вещи спина к спине, чтобы спина к спине, так что 220 00:10:28,670 --> 00:10:33,480 вы могли бы просто плюс 1, чтобы добраться до следующего значение, та же идея в таблице базы данных. 221 00:10:33,480 --> 00:10:37,550 Если все вашего персонажа строки имеют одинаковую длину, 222 00:10:37,550 --> 00:10:39,390 у вас есть то, что называется произвольным доступом. 223 00:10:39,390 --> 00:10:41,850 Если все строки имеют длина 20, вы не просто 224 00:10:41,850 --> 00:10:45,230 сделать плюс 1 вы просто делаете плюс 20, плюс 20, плюс 20, плюс 20, 225 00:10:45,230 --> 00:10:48,775 и вы можете очень быстро прокрутить или поиск по всем данным. 226 00:10:48,775 --> 00:10:54,420 >> Поле переменной символ, напротив, не всегда имеет 20 символов. 227 00:10:54,420 --> 00:10:58,000 Это может иметь 20, а затем 15, а затем 19, а затем 10, 228 00:10:58,000 --> 00:11:00,720 и поэтому, если вы хотите найти через него, вы не можете просто слепо 229 00:11:00,720 --> 00:11:03,050 добавить 20 байт, чтобы добраться до следующей. 230 00:11:03,050 --> 00:11:07,280 Вы в буквальном смысле придется искать через так как край структуры данных, 231 00:11:07,280 --> 00:11:08,340 если вы будете, является неровным. 232 00:11:08,340 --> 00:11:11,480 Это отчасти входит и выходит на основе по фактической длине строки. 233 00:11:11,480 --> 00:11:14,460 Итак, когда вы знаете длину, как Карима говорит, используйте поле голец, 234 00:11:14,460 --> 00:11:16,460 потому что вы получаете, что Эффективность бытия 235 00:11:16,460 --> 00:11:19,170 умеет искать через него быстрее когда вы ищете данных, 236 00:11:19,170 --> 00:11:20,550 в противном случае использовать переменную. 237 00:11:20,550 --> 00:11:24,450 >> К сожалению, у меня нет хорошего ответа как долго название должно быть, 238 00:11:24,450 --> 00:11:26,360 но что-то вроде имя, я бы сказал, 239 00:11:26,360 --> 00:11:28,470 VARCHAR является общим потому что он не собирается 240 00:11:28,470 --> 00:11:30,430 быть фиксированной длины для всех. 241 00:11:30,430 --> 00:11:33,650 20, я не знаю, 20 чувствует себя немного жесткой. 242 00:11:33,650 --> 00:11:36,460 Давайте просто скажем, 50, 50. 243 00:11:36,460 --> 00:11:39,210 Это на самом деле не стоит вам, что гораздо больше, чтобы сказать 50 вместо 40, 244 00:11:39,210 --> 00:11:41,260 но в какой-то момент, что вам нужно чтобы сделать звонок суждения. 245 00:11:41,260 --> 00:11:43,090 >> Очень часто, если честно, для [? историческое?] 246 00:11:43,090 --> 00:11:47,670 причины, даже если это чрезмерным, есть 255, потому что некоторое время назад, 247 00:11:47,670 --> 00:11:51,440 в популярных системах баз данных, как MySQL, бесплатный инструмент с открытым исходным кодом 248 00:11:51,440 --> 00:11:53,790 что много компаний как даже Facebook используется, 249 00:11:53,790 --> 00:11:56,654 это был максимум по умолчанию так что люди просто пошли с ним. 250 00:11:56,654 --> 00:11:59,070 Так что не лишено смысла, но мы будем использовать немного больше интуиции 251 00:11:59,070 --> 00:12:02,970 и сказать, уверен 50, это вероятно, немного чрезмерным. 252 00:12:02,970 --> 00:12:05,720 >> Пол, я, как перечисление, и поэтому мы можем поэтому 253 00:12:05,720 --> 00:12:08,760 перечислить мужчины или женщины, или, может быть более эффективно, 254 00:12:08,760 --> 00:12:13,420 м или е или какой-либо другой символизм, но перечислимый чувствует, как хороший выбор там. 255 00:12:13,420 --> 00:12:16,740 Чтобы было ясно, пола может быть просто VARCHAR, 256 00:12:16,740 --> 00:12:19,090 и мы могли бы просто все согласен, как хорошие люди, 257 00:12:19,090 --> 00:12:21,010 всегда ставить одни и те же ценности там. 258 00:12:21,010 --> 00:12:22,720 Мужчина или женщина или этажерку. 259 00:12:22,720 --> 00:12:27,800 >> Но проблема то, что мы могли бы допущена ошибка, так как [неразборчиво] предложил 260 00:12:27,800 --> 00:12:29,140 ранее в другом контексте. 261 00:12:29,140 --> 00:12:32,780 Если мы делаем ошибку, мы могли бы получить неправильные значения в нашей базе. 262 00:12:32,780 --> 00:12:36,320 Так что приятно о базах данных как Oracle и MySQL и другие, 263 00:12:36,320 --> 00:12:39,280 является то, что у вас есть эта последняя уровень защиты где 264 00:12:39,280 --> 00:12:43,010 администратор АБД, базы данных, кто разрабатывает эту таблицу, как мы 265 00:12:43,010 --> 00:12:46,440 в устной форме, могли бы поставить на место перечисление, что 266 00:12:46,440 --> 00:12:51,250 защищает против этого, указав мужчина, женщина, и так никто не 267 00:12:51,250 --> 00:12:54,230 еще не программист может случайно вставить любое другое значение. 268 00:12:54,230 --> 00:12:55,480 Так что это было бы хорошо. 269 00:12:55,480 --> 00:12:56,660 Это особенность. 270 00:12:56,660 --> 00:13:00,760 >> Так идентификатор, предполагая, что числовой идентификатор, его вероятно, должен быть положительным целым числом. 271 00:13:00,760 --> 00:13:04,380 И иногда мы имеем возможность обсудить длину. 272 00:13:04,380 --> 00:13:06,830 Вы не обычно указать номер здесь, 273 00:13:06,830 --> 00:13:11,310 вы бы вместо того, чтобы указать это INT, или большой INT, 274 00:13:11,310 --> 00:13:12,980 так как они обычно называют. 275 00:13:12,980 --> 00:13:18,840 Но, как правило, целое число было бы, скажем, 4 байта. 276 00:13:18,840 --> 00:13:23,694 И если это 4 байта, это сколько бит? 277 00:13:23,694 --> 00:13:24,630 >> ЗРИТЕЛИ: [неразборчиво] 278 00:13:24,630 --> 00:13:26,610 >> DAVID Маланом: 32 бита. 279 00:13:26,610 --> 00:13:30,270 Так сколько пользователей мы можем иметь в в нашей базе данных, если все они имеют идентификатор 280 00:13:30,270 --> 00:13:33,320 и этот идентификатор должен быть уникальным? 281 00:13:33,320 --> 00:13:36,780 32 бита означает, что мы имеем шаблоны одного, два, три, четыре, five-- 282 00:13:36,780 --> 00:13:41,000 так как много различных моделей нулей и те, вы можете иметь, если есть 32? 283 00:13:41,000 --> 00:13:43,235 Это то же самое, спрашивая, что это от двух до 32? 284 00:13:43,235 --> 00:13:46,472 285 00:13:46,472 --> 00:13:48,430 Это большое число, Я совсем не могу получить право, 286 00:13:48,430 --> 00:13:50,270 но я знаю, что это примерно 4 млрд. 287 00:13:50,270 --> 00:13:53,970 Таким образом, это означает, что ваша таблица базы данных может четыре миллиарда пользователей, и это все. 288 00:13:53,970 --> 00:13:56,410 >> Так что это интересно дизайн подтекст. 289 00:13:56,410 --> 00:14:00,840 Приличное количество компаний решили, возможно, не так много 290 00:14:00,840 --> 00:14:04,860 для их пользователей таблицы, потому что наличие 4 миллиарда пользователей является редкой проблемой. 291 00:14:04,860 --> 00:14:08,410 Это своего рода Facebook-стиле проблема, а не типичная проблема компании. 292 00:14:08,410 --> 00:14:12,670 Но, может быть, если у вас есть журналы транзакций или какой-то данные, которые постоянно 293 00:14:12,670 --> 00:14:15,610 будет записано в вашу базу данных что абсолютно может иметь миллиарды 294 00:14:15,610 --> 00:14:18,900 и миллиарды строк, и Вы используете целое число для него, 295 00:14:18,900 --> 00:14:22,750 что произойдет, как только вы получаете номер строки 4 млрд 296 00:14:22,750 --> 00:14:26,210 а затем вы пытаетесь вставить Четырёхмилиардное и 1, так сказать? 297 00:14:26,210 --> 00:14:29,610 Я упростив число бит. 298 00:14:29,610 --> 00:14:33,740 >> Вы можете отрезать назад, я имею в виду вас должны справиться с этим так или иначе. 299 00:14:33,740 --> 00:14:37,910 И то, что компьютер, как правило, делают, думать об этом даже с утра, 300 00:14:37,910 --> 00:14:42,430 если у вас есть 4-битное значение как 1, 1, 1, 1, которая, 301 00:14:42,430 --> 00:14:44,920 просто, чтобы связать утро вместе во второй половине дня, то, 302 00:14:44,920 --> 00:14:48,369 делает это число представляют в двоичной системе? 303 00:14:48,369 --> 00:14:49,410 Хорошо, мы сделаем это проще. 304 00:14:49,410 --> 00:14:53,310 Что делает этот номер представляют в двоичной системе? 305 00:14:53,310 --> 00:14:56,794 Хорошо, мы сделаем это проще, чем это представляет в двоичной системе? 306 00:14:56,794 --> 00:14:57,460 ЗРИТЕЛИ: Три. 307 00:14:57,460 --> 00:14:59,670 DAVID Маланом: Три, потому что мы имеем те column-- 308 00:14:59,670 --> 00:15:00,450 [СМЕХ] 309 00:15:00,450 --> 00:15:01,350 Уф! 310 00:15:01,350 --> 00:15:03,980 Мы имели столбец из них и столбец двоек. 311 00:15:03,980 --> 00:15:07,250 Поэтому предположим, что, действительно, наш [? приусадебного участка?] не 32 бита, 312 00:15:07,250 --> 00:15:13,440 но это были два бита, мы можем считать от числа 0, 1, 2, 3 пользователя, 313 00:15:13,440 --> 00:15:18,040 а потом мы вроде обратно к пользователю 00 раз. 314 00:15:18,040 --> 00:15:19,739 Так что это то, что обычно происходит. 315 00:15:19,739 --> 00:15:22,780 Если вы когда-либо слышали expression-- вероятно, нет, но если вы have-- 316 00:15:22,780 --> 00:15:26,500 Целочисленное переполнение, где вы держать листать все ваши биты 317 00:15:26,500 --> 00:15:29,640 чтобы быть самыми большими возможными значениями, а потом вы из битов, 318 00:15:29,640 --> 00:15:30,850 что обычно происходит? 319 00:15:30,850 --> 00:15:32,280 Почему я говорю 00? 320 00:15:32,280 --> 00:15:33,220 Ну, это три. 321 00:15:33,220 --> 00:15:34,230 Как я представляю 4? 322 00:15:34,230 --> 00:15:36,890 323 00:15:36,890 --> 00:15:38,915 Как представляют для числа 4 в двоичной системе? 324 00:15:38,915 --> 00:15:39,790 ЗРИТЕЛИ: [неразборчиво] 325 00:15:39,790 --> 00:15:41,780 DAVID Маланом: одно-- да, не говорите, 100 само по себе, 326 00:15:41,780 --> 00:15:44,190 потому что он имеет неправильный коннотация, но 1-0-0. 327 00:15:44,190 --> 00:15:48,920 Так что номер 1-0-0 действительно правильно, но если у вас есть только два бита, 328 00:15:48,920 --> 00:15:50,820 что вы действительно сделали? 329 00:15:50,820 --> 00:15:53,219 Вы перевернулась 00. 330 00:15:53,219 --> 00:15:54,760 И в самом деле, это то, что будет происходить. 331 00:15:54,760 --> 00:15:56,884 На самом деле, вы можете думать об этом более фамильярно. 332 00:15:56,884 --> 00:15:59,350 Если вы помните, то, что, 16 лет назад, мир 333 00:15:59,350 --> 00:16:03,380 должна была закончиться, когда проблема Y2K случилось. 334 00:16:03,380 --> 00:16:04,330 Почему это было? 335 00:16:04,330 --> 00:16:08,170 Ну большинство компьютеров, для разумные решения, 336 00:16:08,170 --> 00:16:15,320 хранили номера Понравился 1975 год или 1999 год 337 00:16:15,320 --> 00:16:19,010 только с помощью двух цифр в памяти компьютера. 338 00:16:19,010 --> 00:16:21,950 Так что, конечно, что происходит, когда вы получаете до 2000 года, 339 00:16:21,950 --> 00:16:25,790 вы идете к этому, или, вернее, да. 340 00:16:25,790 --> 00:16:30,120 Таким образом, вы идете к 2000 году, но если вы используете только две цифры это выглядит 341 00:16:30,120 --> 00:16:32,660 как год 00 и так что вы перевернулась. 342 00:16:32,660 --> 00:16:36,820 И вот почему много систем необходимо обновить в то время. 343 00:16:36,820 --> 00:16:42,500 >> Так с этим сказал, такие компании, как Facebook запустить против этого. 344 00:16:42,500 --> 00:16:46,147 Таким образом, единственный способ справиться с Ситуация, откровенно говоря, предвидеть его. 345 00:16:46,147 --> 00:16:47,980 Или чистый способ справиться с этой ситуацией 346 00:16:47,980 --> 00:16:50,330 это предвидеть его, так что вы не должны внести изменения позднее. 347 00:16:50,330 --> 00:16:51,970 Таким образом, вместо 8 байт, вы знаете, что? 348 00:16:51,970 --> 00:16:54,261 Я собираюсь быть дальновидными здесь, даже если это 349 00:16:54,261 --> 00:16:56,760 немного оптимистично, что мы будем иметь 4 млрд 350 00:16:56,760 --> 00:16:58,850 и 1 пользователей на нашем сайте. 351 00:16:58,850 --> 00:17:01,790 Но давайте просто использовать 8 байт, или 64 бита, которые в целом будут 352 00:17:01,790 --> 00:17:05,640 называется большое целое число, очень технический. 353 00:17:05,640 --> 00:17:10,280 И это просто означает, что вы можете иметь еще больше цифр вашего номера. 354 00:17:10,280 --> 00:17:12,599 Но это важно проектное решение, 355 00:17:12,599 --> 00:17:16,400 потому что если вы выбираете номер, имеет слишком мало битов выразительности 356 00:17:16,400 --> 00:17:19,089 вы могли бы на самом деле создать ошибка в вашем программном обеспечении. 357 00:17:19,089 --> 00:17:21,750 >> Хорошо, так что давайте укутать с электронной почтой и почтовый адрес. 358 00:17:21,750 --> 00:17:26,369 Так электронная почта, как долго должен адрес электронной почты будет? 359 00:17:26,369 --> 00:17:26,869 50. 360 00:17:26,869 --> 00:17:29,220 Я действительно понятия не имею, но это вероятно, что-то подобное, 361 00:17:29,220 --> 00:17:32,261 потому что иначе никто не собирается написать вам, если он становится слишком долго, так что 50, 362 00:17:32,261 --> 00:17:33,360 давайте идти с ним на данный момент. 363 00:17:33,360 --> 00:17:35,770 Почтовый адрес, как долго это должно быть? 364 00:17:35,770 --> 00:17:38,325 365 00:17:38,325 --> 00:17:39,200 ЗРИТЕЛИ: [неразборчиво] 366 00:17:39,200 --> 00:17:41,900 367 00:17:41,900 --> 00:17:43,890 >> DAVID Маланом: Это не просто почтовый индекс, хотя. 368 00:17:43,890 --> 00:17:45,720 Почтовый адрес, я слышал. 369 00:17:45,720 --> 00:17:50,720 Так что это как 1 Brattle площади, запятая, Cambridge Mass., запятая, 02138. 370 00:17:50,720 --> 00:17:53,860 И в самом деле, позвольте мне просто тянуть до небольшого листа здесь. 371 00:17:53,860 --> 00:17:56,510 Это чувствует, как это упущенная возможность. 372 00:17:56,510 --> 00:18:01,480 Если у нас есть 1 Brattle площадь, запятая, Cambridge MA 02138, 373 00:18:01,480 --> 00:18:04,510 Я чувствую, что мы можем сделать лучше чем просто почтовый адрес. 374 00:18:04,510 --> 00:18:07,100 Почему мы не взрываются это немного? 375 00:18:07,100 --> 00:18:08,030 Что я клоню? 376 00:18:08,030 --> 00:18:10,970 Что мы должны вместо того, чтобы иметь для наших рядов здесь, возможно? 377 00:18:10,970 --> 00:18:12,260 >> ЗРИТЕЛИ: [неразборчиво] 378 00:18:12,260 --> 00:18:17,579 >> DAVID Маланом: Да, так что давайте называют его street_number, 379 00:18:17,579 --> 00:18:20,620 и подчеркивание просто общий способ иметь то, что выглядит как пространство, 380 00:18:20,620 --> 00:18:22,360 но это не так, на самом деле. 381 00:18:22,360 --> 00:18:26,240 Стрит, а затем city-- жаль? 382 00:18:26,240 --> 00:18:28,440 >> ЗРИТЕЛИ: [неразборчиво] 383 00:18:28,440 --> 00:18:29,690 DAVID Маланом: Мы могли бы сделать это. 384 00:18:29,690 --> 00:18:30,702 Линия одна, вторая строка. 385 00:18:30,702 --> 00:18:32,410 Почему бы нам не будет держать его просто на данный момент, 386 00:18:32,410 --> 00:18:34,840 но это абсолютно приемлемое решение. 387 00:18:34,840 --> 00:18:38,180 А потом состояние, а затем давайте быть немного американо-ориентированных сейчас 388 00:18:38,180 --> 00:18:42,040 и просто сделать почтовый индекс, только потому, что это приведет к интересной ошибке 389 00:18:42,040 --> 00:18:43,090 или проблема здесь. 390 00:18:43,090 --> 00:18:44,655 Поэтому предположим, что теперь наш адрес. 391 00:18:44,655 --> 00:18:47,280 Это немного больше раздражает, что у нас есть все эти дополнительные поля, 392 00:18:47,280 --> 00:18:49,200 но теперь мы можем пометить вещи немного лучше. 393 00:18:49,200 --> 00:18:53,210 >> Так что теперь номер улицы, вероятно, не должен быть символ, должен ли? 394 00:18:53,210 --> 00:18:54,835 Что это должно быть? 395 00:18:54,835 --> 00:18:55,710 ЗРИТЕЛИ: [неразборчиво] 396 00:18:55,710 --> 00:18:57,835 DAVID Маланом: Может быть, ряд как целое число раз? 397 00:18:57,835 --> 00:19:00,170 Большое число? 398 00:19:00,170 --> 00:19:02,170 Вы, наверное, не живут в 4 миллиарда Main Street 399 00:19:02,170 --> 00:19:03,490 или что-нибудь сумасшедший, как это. 400 00:19:03,490 --> 00:19:06,850 Так целое число, вероятно, хорошо, но кто-нибудь 401 00:19:06,850 --> 00:19:13,880 когда-либо жил по адресу, как 1A Brattle площади, или 1 и 1/2? 402 00:19:13,880 --> 00:19:17,030 Эти вещи существуют, к сожалению, даже если вы не жили там, 403 00:19:17,030 --> 00:19:21,240 Есть эти аномалии как квартира 1A, 1B, 1C. 404 00:19:21,240 --> 00:19:24,260 Таким образом, вы знаете, что мы, вероятно, не должны идти с целыми, 405 00:19:24,260 --> 00:19:27,440 в противном случае мы будем потерять некоторые продажи. 406 00:19:27,440 --> 00:19:29,920 >> Char поле, может быть? 407 00:19:29,920 --> 00:19:30,870 Я не знаю, как долго. 408 00:19:30,870 --> 00:19:33,370 Это, вероятно, не будет что долго, так что 10 или что-то. 409 00:19:33,370 --> 00:19:34,950 Никто не собирается писать более длинный номер, может быть. 410 00:19:34,950 --> 00:19:37,070 Но опять же, мы должны, вероятно, больше думать о том, что. 411 00:19:37,070 --> 00:19:39,900 Может быть, Google, сделать некоторые исследования, но мы пойдем с нашими потрохами на данный момент. 412 00:19:39,900 --> 00:19:44,565 Улицы, голец, 50, я не знаю. 413 00:19:44,565 --> 00:19:46,940 В какой-то момент, никто не собирается написать его на конверте, 414 00:19:46,940 --> 00:19:49,350 тоже, так что там, наверное, некоторые верхние границы там. 415 00:19:49,350 --> 00:19:54,200 Город, такой же, уверен, так что обугливается 50. 416 00:19:54,200 --> 00:19:59,120 >> Государство, может быть США, ориентированных на данный момент. 417 00:19:59,120 --> 00:20:01,850 Так что это может быть список, так что вид судебного решения вызова, государства. 418 00:20:01,850 --> 00:20:04,000 Это может быть как два символа. 419 00:20:04,000 --> 00:20:06,140 Так что на самом деле, может быть, я твердил полукокса. 420 00:20:06,140 --> 00:20:09,420 Я имею в виду, вероятно, VARCHAR, как раз для некоторой эффективности, 421 00:20:09,420 --> 00:20:12,240 но мы вернемся к что решение в данный момент. 422 00:20:12,240 --> 00:20:16,150 Может быть символ длины 2 для государства. 423 00:20:16,150 --> 00:20:20,670 Если в США они имеют, как MA, Массачусетс, Нью-Йорк, Нью-Йорк, штат Нью-Джерси, Нью- 424 00:20:20,670 --> 00:20:22,100 Джерси, и так далее. 425 00:20:22,100 --> 00:20:23,630 Так что это может быть исправлено в этом. 426 00:20:23,630 --> 00:20:25,900 DC для Вашингтона, округ Колумбия. 427 00:20:25,900 --> 00:20:29,915 >> Но я думаю, Оливье, ты предложил другой подход. 428 00:20:29,915 --> 00:20:30,790 ЗРИТЕЛИ: [неразборчиво] 429 00:20:30,790 --> 00:20:33,670 DAVID Маланом: Да, так что это немного раздражает ввести, 430 00:20:33,670 --> 00:20:37,890 но перечисление может иметь больше смысла, потому что таким образом, по крайней мере, в США, 431 00:20:37,890 --> 00:20:41,320 вы могли бы перечислить, если утомительно, но Вы делаете это только один раз в вашей базе данных 432 00:20:41,320 --> 00:20:47,480 и никогда больше не придется думать о это, все 50 кодов двух символов. 433 00:20:47,480 --> 00:20:48,660 Так что я люблю ENUM. 434 00:20:48,660 --> 00:20:51,720 Давайте придерживаться этого там, потому что это своего рода обеспечивает соблюдение более строгость. 435 00:20:51,720 --> 00:20:53,620 А потом почтовый индекс? 436 00:20:53,620 --> 00:20:55,306 Я думаю, что Эндрю была мысль о том, что 437 00:20:55,306 --> 00:20:56,180 ЗРИТЕЛИ: [неразборчиво] 438 00:20:56,180 --> 00:20:57,240 DAVID Маланом: Да, пять или девять. 439 00:20:57,240 --> 00:20:58,323 Давайте просто держать его просто. 440 00:20:58,323 --> 00:20:59,380 Просто сделайте пять сейчас. 441 00:20:59,380 --> 00:21:03,070 Но, возможно, я мог бы просто сделать целое число, не так ли? 442 00:21:03,070 --> 00:21:08,750 Я мог бы, но вы знаете, что я сделал эта ошибка однажды, в каком-то смысле. 443 00:21:08,750 --> 00:21:13,110 Несколько лет назад я был перенастройке из Microsoft Перспективы для Gmail, 444 00:21:13,110 --> 00:21:18,640 и перспективы есть способ экспорта все ваши контакты, в качестве файла Excel, 445 00:21:18,640 --> 00:21:21,280 файл CSV, значения, разделенные запятыми файл. 446 00:21:21,280 --> 00:21:23,950 И я сделал ошибку, я думаю, из двойного щелчка по нему, 447 00:21:23,950 --> 00:21:27,380 как только я скачал экспорт, чтобы убедитесь, что он выглядел, как я ожидал. 448 00:21:27,380 --> 00:21:31,320 Должно быть, я ударил Сохранить или позволить автосохранение удар в или что-то. 449 00:21:31,320 --> 00:21:35,100 Потому что, когда я затем импортировать это в Gmail, все это работало. 450 00:21:35,100 --> 00:21:39,910 Но в течение многих лет, и по сей день, и Я сделал это пять, 10 лет назад, 451 00:21:39,910 --> 00:21:44,380 Я до сих пор найти друзей, которые имеют адреса, которые выглядят, как это. 452 00:21:44,380 --> 00:21:45,700 Зачем? 453 00:21:45,700 --> 00:21:47,900 >> ЗРИТЕЛИ: [неразборчиво] 454 00:21:47,900 --> 00:21:50,650 >> DAVID Маланом: Потребовалось вперед 0, ну, это, скорее, 455 00:21:50,650 --> 00:21:53,810 взял весь почтовый индекс, как ряд, и, следовательно, это 456 00:21:53,810 --> 00:21:56,590 ведущий 0, что означает это не имеет никакого значения. 457 00:21:56,590 --> 00:21:59,470 И так 2138, кажется, мой почтовый индекс. 458 00:21:59,470 --> 00:22:07,100 И это, честно говоря, раздражает Excel особенность которой я думаю, что по умолчанию, 459 00:22:07,100 --> 00:22:10,980 даже если это означало просто быть текст, Microsoft Excel 460 00:22:10,980 --> 00:22:13,780 решает, позвольте мне быть полезным, и о, я вижу только цифры. 461 00:22:13,780 --> 00:22:15,290 Давайте рассматривать их как числа. 462 00:22:15,290 --> 00:22:16,790 И это усечение ведущие нули. 463 00:22:16,790 --> 00:22:19,165 >> Я клянусь перед Богом, каждая пара месяцев я найти адрес, 464 00:22:19,165 --> 00:22:22,300 и из своего рода обсессивно-компульсивного расстройства, я возвращаюсь в и добавить 0, хотя я никогда 465 00:22:22,300 --> 00:22:23,700 послать людей письма или что-нибудь. 466 00:22:23,700 --> 00:22:25,510 Но я до сих пор находят остатки этого. 467 00:22:25,510 --> 00:22:28,820 Так что это сказать, является ли это хорошей идеей? 468 00:22:28,820 --> 00:22:31,610 ОК, нет, потому что кто-то в Массачусетс, в этой области, 469 00:22:31,610 --> 00:22:33,270 будет иметь O ведущую их. 470 00:22:33,270 --> 00:22:38,070 Так что давайте идти с подобным голец, наверное, пять. 471 00:22:38,070 --> 00:22:41,450 >> И вот, мы понимаем, может использовать перечисление и мы 472 00:22:41,450 --> 00:22:44,600 может перечислить 10000 возможные коды ZIP, 473 00:22:44,600 --> 00:22:48,530 но это чувствует, как это, вероятно, пересекая линию, как, выгоды. 474 00:22:48,530 --> 00:22:51,350 Если вы должны ввести, что большой объем данных в вашу базу данных 475 00:22:51,350 --> 00:22:52,940 для защиты от чего-то. 476 00:22:52,940 --> 00:22:57,400 Так символ понял, что вы могли бы ввести в Н-Е-Л-Л-О, как ваш почтовый индекс, 477 00:22:57,400 --> 00:22:59,180 который, очевидно, не числовой. 478 00:22:59,180 --> 00:23:01,680 Так что нет никакого способа, в типичная база данных, 479 00:23:01,680 --> 00:23:05,561 указать только числовые и только пять символов, 480 00:23:05,561 --> 00:23:07,310 таким образом, мы будем иметь чтобы сделать это в коде. 481 00:23:07,310 --> 00:23:11,100 Мы собираемся сделать это в PHP или Java или любой другой язык мы 482 00:23:11,100 --> 00:23:14,230 используя на сервере для обеспечения такого рода ограничения. 483 00:23:14,230 --> 00:23:14,860 >> Ого! 484 00:23:14,860 --> 00:23:18,322 Хорошо, поэтому все вопросы только пока? 485 00:23:18,322 --> 00:23:19,780 Давайте сделаем еще одно проектное решение. 486 00:23:19,780 --> 00:23:22,500 Оказывается, что вам также можете выбрать, 487 00:23:22,500 --> 00:23:26,600 при проектировании базы данных SQL, или типичные реляционные database-- где 488 00:23:26,600 --> 00:23:28,790 опять же, реляционная просто означает строки и столбцы, 489 00:23:28,790 --> 00:23:35,500 вот как вы организовать ваши data-- и осознать, что это означает, 490 00:23:35,500 --> 00:23:37,740 Я вводит в заблуждение что, я это drawing-- 491 00:23:37,740 --> 00:23:40,190 то, что называется схема для таблицы базы данных. 492 00:23:40,190 --> 00:23:42,810 Это как спецификации для table-- 493 00:23:42,810 --> 00:23:48,040 но когда приходит время, на самом деле хранения данных, 494 00:23:48,040 --> 00:23:52,081 и мы будем делать это только пример здесь. 495 00:23:52,081 --> 00:23:55,080 Я собираюсь открыть Excel, потому что Excel даст мне строки и столбцы. 496 00:23:55,080 --> 00:23:58,050 И это именно то, что Oracle и MySQL и другие инструменты дадут мне. 497 00:23:58,050 --> 00:24:02,270 Так что я просто буду использовать это ради Обсуждение в. 498 00:24:02,270 --> 00:24:05,250 Позвольте мне идти вперед и открыть Представитель документ здесь, 499 00:24:05,250 --> 00:24:06,310 увеличить немного. 500 00:24:06,310 --> 00:24:15,200 Так, например, наши заголовки теперь фамилия, имя, пол, ID, 501 00:24:15,200 --> 00:24:20,980 адрес электронной почты, номер улицы, улица, возгласы. 502 00:24:20,980 --> 00:24:25,710 Улица, город, штат, просто о помещается на экране. 503 00:24:25,710 --> 00:24:29,080 >> Так что же это означает, что, когда Сначала пользователь регистрируется на моем сайте, 504 00:24:29,080 --> 00:24:32,880 это будет что-то вроде Давид, Малан, м, скажем, 1, 505 00:24:32,880 --> 00:24:42,910 malan@harvard.edu, улица номер будет быть как 1 Brattle площади, Кембридж, Массачусетс, 506 00:24:42,910 --> 00:24:44,780 02138, а затем так далее. 507 00:24:44,780 --> 00:24:48,290 Поэтому, когда я говорю, что реляционная база данных или базы данных SQL это строки и столбцы, 508 00:24:48,290 --> 00:24:49,350 Я имею в виду это. 509 00:24:49,350 --> 00:24:51,900 Что фактические данные хранятся в строках и столбцах. 510 00:24:51,900 --> 00:24:53,950 Это просто совпадение, что мы говорили, 511 00:24:53,950 --> 00:24:56,033 и я был просто рисунок его в строках и столбцах. 512 00:24:56,033 --> 00:24:58,320 Это просто схема, всеобъемлющая определение. 513 00:24:58,320 --> 00:25:01,640 >> Так что из этих полей здесь, или что то же, там, 514 00:25:01,640 --> 00:25:06,270 которые являются поля, которые вы думаете Я, вероятно, искать на, если я являюсь пользователем 515 00:25:06,270 --> 00:25:09,200 или если я являюсь администратором базы данных? 516 00:25:09,200 --> 00:25:12,426 Мол, какие поля я такой на самом деле будет искать дальше? 517 00:25:12,426 --> 00:25:13,830 >> ЗРИТЕЛИ: [неразборчиво] 518 00:25:13,830 --> 00:25:17,690 >> DAVID Маланом: Имя, да так Мне нравится тот факт, that-- да, 519 00:25:17,690 --> 00:25:19,750 электронная почта может быть довольно распространенным явлением. 520 00:25:19,750 --> 00:25:21,440 К сожалению, вы сказали имя. 521 00:25:21,440 --> 00:25:24,030 Так maybe-- и снова, мы вид говорить абстрактно. 522 00:25:24,030 --> 00:25:25,988 Я не знаю, почему вы бы искать для имени, 523 00:25:25,988 --> 00:25:29,340 но это чувствует себя разумным, если вы ищете пользователь. 524 00:25:29,340 --> 00:25:31,170 Может быть, утверждает, конечно, ID. 525 00:25:31,170 --> 00:25:34,100 526 00:25:34,100 --> 00:25:36,160 >> И это скользкий склон, потому что я мог 527 00:25:36,160 --> 00:25:38,890 изловчиться сценарий, при котором может быть, мой босс попросил меня, 528 00:25:38,890 --> 00:25:40,417 сколько мужчин у нас есть на нашем сайте? 529 00:25:40,417 --> 00:25:42,000 Сколько женщин у нас есть на нашем сайте? 530 00:25:42,000 --> 00:25:45,210 И вот в этот момент, вы можете захотеть искать по гендерной области, тоже, 531 00:25:45,210 --> 00:25:45,940 и ничего больше. 532 00:25:45,940 --> 00:25:47,350 Таким образом, есть компромисс здесь. 533 00:25:47,350 --> 00:25:49,180 Опять же, нет никаких правильный ответ, но есть 534 00:25:49,180 --> 00:25:53,760 это функция в большинстве баз данных SQL известный как индексации, в результате чего 535 00:25:53,760 --> 00:25:56,100 вы, дизайнер, администратор базы данных, 536 00:25:56,100 --> 00:26:01,730 можете решить заранее, какие Поля базы данных должны оптимизировать 537 00:26:01,730 --> 00:26:02,980 для поиска по. 538 00:26:02,980 --> 00:26:07,620 >> Вы могли бы очень наивно сказать, оптимизировать это, оптимизировать, что, оптимизировать это, 539 00:26:07,620 --> 00:26:10,300 оптимизации, что и в этом, и база данных будет 540 00:26:10,300 --> 00:26:14,882 сделать некоторые магические вещи под капот, и делать что-то таким образом, 541 00:26:14,882 --> 00:26:17,090 что в следующий раз вы будете искать на любом из этих полей, 542 00:26:17,090 --> 00:26:18,400 это, по сути, будет быстрее. 543 00:26:18,400 --> 00:26:19,110 Это возможно. 544 00:26:19,110 --> 00:26:20,530 Это не отменяет сам себя. 545 00:26:20,530 --> 00:26:22,500 Но должна быть расплата. 546 00:26:22,500 --> 00:26:27,220 >> Если вы по наивности, или с чрезмерным энтузиазмом скажем, индекс всех этих областях, 547 00:26:27,220 --> 00:26:29,810 так сказать, сделать их всех эффективного поиска, 548 00:26:29,810 --> 00:26:31,625 какую цену вы, вероятно, платить? 549 00:26:31,625 --> 00:26:32,500 ЗРИТЕЛИ: [неразборчиво] 550 00:26:32,500 --> 00:26:33,090 DAVID Маланом: Производительность. 551 00:26:33,090 --> 00:26:33,798 Что вы имеете в виду? 552 00:26:33,798 --> 00:26:37,380 Ну производительность, по крайней мере в Контекст я обсуждаю, это лучше сейчас. 553 00:26:37,380 --> 00:26:38,830 Это определение индексации. 554 00:26:38,830 --> 00:26:41,180 Это сделает поиск быстрее. 555 00:26:41,180 --> 00:26:43,366 Так что время уменьшается, так сказать. 556 00:26:43,366 --> 00:26:44,240 ЗРИТЕЛИ: [неразборчиво] 557 00:26:44,240 --> 00:26:45,031 DAVID Маланом: Space. 558 00:26:45,031 --> 00:26:46,520 Итак, еще раз, это общая торговля. 559 00:26:46,520 --> 00:26:50,820 Я могу ускорить поиск, но это будет стоить вам больше байт пространства. 560 00:26:50,820 --> 00:26:51,610 Зачем? 561 00:26:51,610 --> 00:26:55,230 Ну, по умолчанию, если у нас нет ни одного из эти красные звезды, ни один из этих показателей, 562 00:26:55,230 --> 00:26:58,797 как я говорю, как вы поиск имени в этой базе данных? 563 00:26:58,797 --> 00:27:00,630 Итак, давайте обратим Внимание к этому примеру. 564 00:27:00,630 --> 00:27:06,300 Если у нас есть Дэвид и Скалли и Kareem и Arwa и другие в этих строках, 565 00:27:06,300 --> 00:27:06,910 например. 566 00:27:06,910 --> 00:27:08,390 >> Так что давайте делать именно это. 567 00:27:08,390 --> 00:27:13,990 Скалли находится здесь, а затем мы имеем Карима и Arwa, 568 00:27:13,990 --> 00:27:18,390 и все остальные, если вы этого не сделаете имеют определенный индекс, так сказать, 569 00:27:18,390 --> 00:27:20,160 лучшее, что вы можете сделать, это линейный поиск. 570 00:27:20,160 --> 00:27:23,470 Если вы ищете Arwa, мы не будет иметь возможность перейти прямо к ней 571 00:27:23,470 --> 00:27:24,140 быстро. 572 00:27:24,140 --> 00:27:26,556 Мы собираемся начать вершину и пройти весь путь до дна, 573 00:27:26,556 --> 00:27:28,600 не в отличие от нашего оригинала Майк Смит пример. 574 00:27:28,600 --> 00:27:33,470 >> Однако, если я говорю, эй, базы данных, Индекс первое поле имя, 575 00:27:33,470 --> 00:27:37,000 то это будет что-то делать искуснее и поддерживать что-то 576 00:27:37,000 --> 00:27:38,130 как бинарный поиск. 577 00:27:38,130 --> 00:27:39,820 Это, вероятно, не бинарный поиск по себе. 578 00:27:39,820 --> 00:27:42,810 Базы данных, как правило, использовать другой Структура данных под названием B-деревья, 579 00:27:42,810 --> 00:27:46,540 не следует путать с бинарными деревьями, что просто сделать это быстрее искать 580 00:27:46,540 --> 00:27:48,500 что-то логарифмическая в природе. 581 00:27:48,500 --> 00:27:53,510 Но цена, которую вы платите, чтобы создать что особенность, что структура данных в памяти, 582 00:27:53,510 --> 00:27:54,570 это больше байт. 583 00:27:54,570 --> 00:27:57,170 Так что это может занять несколько мегабайт, некоторые гигабайты, кто знает? 584 00:27:57,170 --> 00:27:58,410 Это зависит от данных. 585 00:27:58,410 --> 00:28:02,640 >> Так что в какой-то момент, вы должны решить, это, вероятно, не является общим случаем. 586 00:28:02,640 --> 00:28:06,000 Так что же фактическая общая случаи, если вы действительно должны были выбрать, 587 00:28:06,000 --> 00:28:10,080 что ваши любимые поля могут быть? 588 00:28:10,080 --> 00:28:10,580 Эл. адрес. 589 00:28:10,580 --> 00:28:14,400 И мне нравится, потому что адрес электронной почты, в теории, должны быть уникальными. 590 00:28:14,400 --> 00:28:17,650 А так обычно, когда вы знаете, заранее, что один из ваших полей 591 00:28:17,650 --> 00:28:20,277 или будет уникальным, что как правило, хорошее поле 592 00:28:20,277 --> 00:28:22,860 искать дальше, потому что таким образом, когда вы ищете что-то, 593 00:28:22,860 --> 00:28:26,194 вы собираетесь получить обратно один или ноль ответов, а затем вы сделали. 594 00:28:26,194 --> 00:28:28,110 Вам не нужно держать ищет все же другие. 595 00:28:28,110 --> 00:28:31,992 >> И поэтому в данном случае здесь, электронная почта, до тех пор пока вы не можете дважды зарегистрироваться 596 00:28:31,992 --> 00:28:33,450 с той же электронной почты, является хорошим. 597 00:28:33,450 --> 00:28:36,710 ID по определению, в информатика мир, 598 00:28:36,710 --> 00:28:39,610 если вы говорите о ID, что лучше быть уникальным. 599 00:28:39,610 --> 00:28:42,970 Это своего рода коннотацией удостоверения личности или идентификатора. 600 00:28:42,970 --> 00:28:46,440 А остальные из них могут быть, давайте назовем их приятно имущими, 601 00:28:46,440 --> 00:28:47,860 но на самом деле не требуется. 602 00:28:47,860 --> 00:28:49,976 >> И поэтому в базе данных, Вы определяете индексы, 603 00:28:49,976 --> 00:28:51,350 но вы можете быть еще более точным. 604 00:28:51,350 --> 00:28:56,060 Вы можете сказать, эй, базы данных, убедитесь, что каждый идентификатор в этой таблице является уникальным. 605 00:28:56,060 --> 00:28:59,330 Даже не позволяйте программиста случайно положить в дубликате электронной почте 606 00:28:59,330 --> 00:29:00,740 или дублировать идентификационный номер. 607 00:29:00,740 --> 00:29:03,140 Так же, как перечислений защитить нас так же, вас 608 00:29:03,140 --> 00:29:04,881 может иметь такие возражения более низкого уровня. 609 00:29:04,881 --> 00:29:07,130 И поэтому проектирование баз данных, в каком-то смысле, это своего рода удовольствие, 610 00:29:07,130 --> 00:29:08,380 потому что вы делаете это защищаясь. 611 00:29:08,380 --> 00:29:11,460 Вы вроде предположить, что вы работаете с ужасный, ужасный программистов 612 00:29:11,460 --> 00:29:15,550 и вы хотите, чтобы положить в столько обороны как вы можете защитить ваши данные, 613 00:29:15,550 --> 00:29:18,940 но одновременно вы хотите чтобы помочь им работать лучше 614 00:29:18,940 --> 00:29:21,386 выбрав который поля для оптимизации. 615 00:29:21,386 --> 00:29:24,260 Но вы не можете обязательно делать это в вакуум, как мы вроде здесь. 616 00:29:24,260 --> 00:29:26,480 Вы должны знать, какие эти общие случаи бытия. 617 00:29:26,480 --> 00:29:29,397 Если разработчики осуществление адресной книги, 618 00:29:29,397 --> 00:29:32,230 вы можете очень хорошо хотите, чтобы иметь возможность искать почти на каждом поле, 619 00:29:32,230 --> 00:29:33,830 только по своей природе приложения. 620 00:29:33,830 --> 00:29:37,910 Так что, может быть, вы проводите что дополнительное пространство. 621 00:29:37,910 --> 00:29:39,090 >> Право, все вопросы? 622 00:29:39,090 --> 00:29:41,820 623 00:29:41,820 --> 00:29:42,486 Да. 624 00:29:42,486 --> 00:29:43,470 >> ЗРИТЕЛИ: [неразборчиво] 625 00:29:43,470 --> 00:29:44,404 >> DAVID Маланом: Нет 626 00:29:44,404 --> 00:29:45,279 >> ЗРИТЕЛИ: [неразборчиво] 627 00:29:45,279 --> 00:29:47,840 628 00:29:47,840 --> 00:29:48,826 >> DAVID Маланом: OK. 629 00:29:48,826 --> 00:29:49,701 >> ЗРИТЕЛИ: [неразборчиво] 630 00:29:49,701 --> 00:29:52,420 631 00:29:52,420 --> 00:29:54,850 >> DAVID Маланом: О, так что мы речь идет в пути 632 00:29:54,850 --> 00:29:57,940 Теперь это полностью зависит от конкретного языка. 633 00:29:57,940 --> 00:30:02,370 Таким образом, мы сейчас говорим о реляционных баз данных, в более общем плане 634 00:30:02,370 --> 00:30:04,760 или SQL базы данных в более общем плане. 635 00:30:04,760 --> 00:30:06,870 >> ЗРИТЕЛИ: [неразборчиво] 636 00:30:06,870 --> 00:30:10,030 >> DAVID Маланом: Лучшее слово, чтобы использовать это, может быть использован любой язык. 637 00:30:10,030 --> 00:30:15,280 Так что я могу писать код JavaScript, C код код, C ++, Java-код, Ruby код, 638 00:30:15,280 --> 00:30:19,010 все из которых говорят к базы данных и выполнять запросы. 639 00:30:19,010 --> 00:30:22,310 На самом деле, это не плохо непосредственно перейти к пример запроса. 640 00:30:22,310 --> 00:30:25,720 И опять же, мы не собираемся вдаваться в Java или C ++ или любой из этого больше, 641 00:30:25,720 --> 00:30:29,420 но в SQL, язык, к которому я продолжаю ссылаясь, Structured Query Language, 642 00:30:29,420 --> 00:30:32,790 это само по себе является языком программирования, но это означало быть использован для, нет 643 00:30:32,790 --> 00:30:37,330 удивление, структурированных запросов запросов. 644 00:30:37,330 --> 00:30:38,660 >> Под этим я имею в виду это. 645 00:30:38,660 --> 00:30:41,190 Способ выбора данных из базы данных MySQL 646 00:30:41,190 --> 00:30:49,330 это вы в буквальном смысле типа в вашей программе что-то вроде выберите звезду от пользователей. 647 00:30:49,330 --> 00:30:52,200 Я предполагаю, что эта таблица, отныне называется пользователей. 648 00:30:52,200 --> 00:30:54,860 Я мог бы назвать это все, что мы хотим, но это своего рода имеет смысл. 649 00:30:54,860 --> 00:30:57,240 И поэтому выбор очень общий глагол, если вы 650 00:30:57,240 --> 00:30:59,290 будет, в SQL, которая буквально делает это. 651 00:30:59,290 --> 00:31:02,730 Как вы думаете, звезда означает, что в данном контексте? 652 00:31:02,730 --> 00:31:04,410 >> ЗРИТЕЛИ: [неразборчиво] 653 00:31:04,410 --> 00:31:05,380 >> DAVID Маланом: Я сожалею? 654 00:31:05,380 --> 00:31:06,300 >> ЗРИТЕЛИ: [неразборчиво] 655 00:31:06,300 --> 00:31:09,580 >> DAVID Маланом: Не требуется, это более широким, чем это, на самом деле. 656 00:31:09,580 --> 00:31:11,700 Это дикий символ карты. 657 00:31:11,700 --> 00:31:14,740 Звезда почти всегда означает что-нибудь, так что это означает, что, в данном случае, 658 00:31:14,740 --> 00:31:16,510 выбрать все из базы данных. 659 00:31:16,510 --> 00:31:20,730 Поэтому, когда я говорю об этом, я имею в виду верни мне каждый столбец 660 00:31:20,730 --> 00:31:22,440 от моего стола называется пользователей. 661 00:31:22,440 --> 00:31:24,730 Так дайте мне набор результатов, как это называется. 662 00:31:24,730 --> 00:31:28,210 Другими словами, дайте мне копию электронными таблицами, является то, что я клоню. 663 00:31:28,210 --> 00:31:34,890 >> Но если бы я сказал, выберите звезда от пользователей где ID равно 1, насколько большой должна 664 00:31:34,890 --> 00:31:36,640 мой результирующий набор будет тогда? 665 00:31:36,640 --> 00:31:41,680 Или то же, сколько строк должно Я быть передан обратно из базы данных? 666 00:31:41,680 --> 00:31:45,860 Наверное, только один, если у меня есть на самом деле обрабатывают ID в качестве уникального идентификатора, 667 00:31:45,860 --> 00:31:50,710 и если Дэвид имеет тот уникальный идентификатор, я должны получить обратно одну и только одну строку 668 00:31:50,710 --> 00:31:53,220 содержащий всю информацию Давида. 669 00:31:53,220 --> 00:31:56,390 Если бы я сказал, что это где ID равна 99, я должен вернуться, 670 00:31:56,390 --> 00:32:00,320 В этом контексте, нулевые строки, по крайней мере на данный момент. 671 00:32:00,320 --> 00:32:03,620 >> Однако, если я на самом деле не волнует обо всей этой информации, 672 00:32:03,620 --> 00:32:06,970 Я мог бы просто сказать, где живет Дэвид? 673 00:32:06,970 --> 00:32:10,860 Выберите почтовый индекс из пользователей, где идентификатор 1. 674 00:32:10,860 --> 00:32:15,820 Это позволит выбрать для меня только почтовый Давида код, а не полнота этой строки. 675 00:32:15,820 --> 00:32:19,541 Почему я мог бы сделать это вместо того, звезда запроса, дикая карта? 676 00:32:19,541 --> 00:32:21,950 >> ЗРИТЕЛИ: [неразборчиво] 677 00:32:21,950 --> 00:32:24,590 >> DAVID Маланом: Да, я, возможно, потребуется только его. 678 00:32:24,590 --> 00:32:26,350 Так что производительность снова здесь ответ. 679 00:32:26,350 --> 00:32:28,540 Зачем просить больше информации, чем вам нужно, 680 00:32:28,540 --> 00:32:32,020 потому что даже если это все в порядке вместе, вы все равно должны скопировать эти данные, 681 00:32:32,020 --> 00:32:35,560 казалось бы, из базы данных в вашу программу так или иначе, 682 00:32:35,560 --> 00:32:38,490 и это просто глупо, если вам нужно только пять из этих цифр, 683 00:32:38,490 --> 00:32:40,340 не совокупность ряда. 684 00:32:40,340 --> 00:32:42,180 >> Так как же я вставляю пользователя? 685 00:32:42,180 --> 00:32:44,780 Предположим, что пользователь имеет только зарегистрирован в первый раз. 686 00:32:44,780 --> 00:32:46,560 Синтаксис обычно выглядит следующим образом. 687 00:32:46,560 --> 00:32:52,700 Вставить в пользователей, и то мы сказали бы значения, 688 00:32:52,700 --> 00:33:00,150 и тогда мы сказали бы значения как, скажем, Лорен Скалли, 689 00:33:00,150 --> 00:33:02,380 наш видеооператор прямо здесь. 690 00:33:02,380 --> 00:33:04,390 И следующее поле является пол. 691 00:33:04,390 --> 00:33:08,020 Так что мы будем говорить цитата, конец цитаты "Е", то есть идентификатор 692 00:33:08,020 --> 00:33:12,250 и я собираюсь say-- давайте делать вид, что она на самом деле не здесь, 693 00:33:12,250 --> 00:33:14,380 поэтому мы перемотать в истории. 694 00:33:14,380 --> 00:33:16,530 Так 2 будет ее ID. 695 00:33:16,530 --> 00:33:19,130 А потом следующее поле Вот ее электронная почта. 696 00:33:19,130 --> 00:33:22,140 Так что это будет похоже Лорен Скалли и так далее, 697 00:33:22,140 --> 00:33:24,360 и мы просто точка точка точка его отсюда на. 698 00:33:24,360 --> 00:33:26,890 Теперь он будет получать немного утомительно, но запрос вставки 699 00:33:26,890 --> 00:33:28,310 в конечном итоге выглядеть. 700 00:33:28,310 --> 00:33:30,970 >> Если я хочу, чтобы избавиться от Скалли, э-э-о, давайте дерегистрировать 701 00:33:30,970 --> 00:33:37,420 ее, она удаляет ее счет, удалить из пользователей, где ID равно 2, 702 00:33:37,420 --> 00:33:38,500 избавятся от Скалли. 703 00:33:38,500 --> 00:33:48,050 Или я могу сказать установить обновление пользователей, скажем, что мы можем изменить? 704 00:33:48,050 --> 00:33:49,430 Предположим, что она движется. 705 00:33:49,430 --> 00:33:53,730 Набор на молнии равна 021-- Нету, это ее ток молнии. 706 00:33:53,730 --> 00:33:54,487 90210. 707 00:33:54,487 --> 00:33:56,320 Единственный другой почтовый индекс Я знаю, что в мире. 708 00:33:56,320 --> 00:33:59,002 Так что изменится ее почтовый code-- на самом деле, 709 00:33:59,002 --> 00:34:00,460 это не изменило бы ее почтовый индекс. 710 00:34:00,460 --> 00:34:02,170 >> Что я только что делать? 711 00:34:02,170 --> 00:34:04,292 Несмотря на то, что синтаксис, вероятно, новый. 712 00:34:04,292 --> 00:34:05,302 >> ЗРИТЕЛИ: [неразборчиво] 713 00:34:05,302 --> 00:34:08,010 DAVID Маланом: Да, я переехал всех в Беверли-Хиллз, штат Калифорния. 714 00:34:08,010 --> 00:34:11,920 Так что я должен на самом деле сказать, где ID равно 2. 715 00:34:11,920 --> 00:34:12,820 И так далее. 716 00:34:12,820 --> 00:34:15,290 Так что SQL все о них виды инструкций. 717 00:34:15,290 --> 00:34:20,260 Выберите, вставлять, удалять, обновлять, с этими предикатами в конце 718 00:34:20,260 --> 00:34:22,139 эти пункты, где, так сказать. 719 00:34:22,139 --> 00:34:25,170 И есть намного больше, вы можете делать, но это на самом деле просто сводится 720 00:34:25,170 --> 00:34:29,750 просто, если arcanely, выражая что вы хотите сделать базу данных. 721 00:34:29,750 --> 00:34:31,580 >> А потом база данных будет выяснить, когда 722 00:34:31,580 --> 00:34:35,630 вставить Lauren Скалли в базы данных, куда поместить ее в памяти 723 00:34:35,630 --> 00:34:38,230 так что мы можем очень быстро получить она основана на ее адрес электронной почты 724 00:34:38,230 --> 00:34:42,610 или на основе ее идентификационный номер или тому подобное. 725 00:34:42,610 --> 00:34:43,391 Да, Дэн. 726 00:34:43,391 --> 00:34:44,266 ЗРИТЕЛИ: [неразборчиво] 727 00:34:44,266 --> 00:34:46,364 728 00:34:46,364 --> 00:34:47,780 DAVID Маланом: Действительно хороший вопрос. 729 00:34:47,780 --> 00:34:50,370 Будут ли эти сценарии перехода от Microsoft Access в Oracle 730 00:34:50,370 --> 00:34:52,290 к MySQL в PostgreSQL? 731 00:34:52,290 --> 00:34:53,790 Короткий ответ: это зависит. 732 00:34:53,790 --> 00:34:58,697 Теоретически существует очень значительное общее подмножество SQL 733 00:34:58,697 --> 00:35:00,780 который используется во всех из этих реализаций. 734 00:35:00,780 --> 00:35:03,340 Тем не менее, различные производители имеют дополнительные функции 735 00:35:03,340 --> 00:35:07,120 к их базам данных, чтобы делать определенные вещи выходит за рамки этих функций, 736 00:35:07,120 --> 00:35:08,720 которые могли бы, в самом деле, перерыв. 737 00:35:08,720 --> 00:35:11,210 >> Так что разработчики пути хеджировать против этого, 738 00:35:11,210 --> 00:35:14,350 является то, что вместо того, чтобы писать сырой SQL-код, как я пишу здесь, 739 00:35:14,350 --> 00:35:19,460 они вместо того, чтобы использовать библиотеку, общая библиотека, которая сама по себе 740 00:35:19,460 --> 00:35:23,650 является своего рода более высокого уровня и тезисы прочь, какой продукт вы используете. 741 00:35:23,650 --> 00:35:25,710 И это дает вам функции и процедуры 742 00:35:25,710 --> 00:35:28,810 чтобы позвонить, так что вы никогда на самом деле писать сырой SQL. 743 00:35:28,810 --> 00:35:32,609 >> В теории, то вы можете изменить продукты из Oracle в Microsoft 744 00:35:32,609 --> 00:35:34,650 или наоборот, или что-нибудь еще, и вы в буквальном смысле 745 00:35:34,650 --> 00:35:36,920 ничего не меняют о вашем коде. 746 00:35:36,920 --> 00:35:40,180 Реальность, однако, является то, вы иногда отказаться от функции в качестве результата. 747 00:35:40,180 --> 00:35:43,860 Вы могли бы выбрать продукт, потому что он получил эти функции с добавленной стоимостью, 748 00:35:43,860 --> 00:35:46,610 и вы только сейчас не используя их сознательно. 749 00:35:46,610 --> 00:35:51,630 >> И Занимательно, что большинство компаний, как правило, никогда не отходить от своей базы данных. 750 00:35:51,630 --> 00:35:54,002 Таким образом, в то время как это приятно есть особенность, реальность 751 00:35:54,002 --> 00:35:55,960 есть, если вы капитального ремонта ваша база данных, вы 752 00:35:55,960 --> 00:35:59,890 вероятно, что делает грозди других изменений во всяком случае, что вы не обязательно 753 00:35:59,890 --> 00:36:01,360 должны предвидеть, что. 754 00:36:01,360 --> 00:36:03,720 Так что, возможно, над-инженерные проблемы, 755 00:36:03,720 --> 00:36:05,670 но это действительно зависит от контекста. 756 00:36:05,670 --> 00:36:09,960 Но в теории, SQL совместно через эти различные продукты. 757 00:36:09,960 --> 00:36:11,560 Действительно хорошие вопросы. 758 00:36:11,560 --> 00:36:12,272 Да. 759 00:36:12,272 --> 00:36:13,147 >> ЗРИТЕЛИ: [неразборчиво] 760 00:36:13,147 --> 00:36:17,820 761 00:36:17,820 --> 00:36:21,480 >> DAVID Маланом: Да, так вы можете думать базу данных 762 00:36:21,480 --> 00:36:25,020 это просто сервер, в конце на следующий день, и внутри этого сервера 763 00:36:25,020 --> 00:36:28,670 это целая куча таблиц, строк и столбцов. 764 00:36:28,670 --> 00:36:33,410 И когда вы посылаете запрос, как это из вашей программы, ваш веб-сайт, 765 00:36:33,410 --> 00:36:39,340 написана на Java, Ruby, Python, независимо, сервер получает эту команду 766 00:36:39,340 --> 00:36:41,660 и интерпретации его в буквально так же, как 767 00:36:41,660 --> 00:36:43,660 мы обсуждали ранее с интерпретируемые языки, 768 00:36:43,660 --> 00:36:47,333 а затем выполняет какое-либо действие на ноль или больше строк в ноль или более таблиц. 769 00:36:47,333 --> 00:36:48,208 ЗРИТЕЛИ: [неразборчиво] 770 00:36:48,208 --> 00:36:53,540 771 00:36:53,540 --> 00:36:55,070 >> DAVID Маланом: Точно, точно. 772 00:36:55,070 --> 00:36:58,450 Так псевдокод для чего-то как это могло бы быть это. 773 00:36:58,450 --> 00:37:02,450 В файле PHP или ваши файл Python или файл Java, 774 00:37:02,450 --> 00:37:09,210 вы бы псевдокод код, или Скретч-подобные блоки, как, если пользователь посещает 775 00:37:09,210 --> 00:37:19,870 acme.com/register~~V впервые, затем вставить в пользователей и так далее. 776 00:37:19,870 --> 00:37:22,619 И мы бы перевести это более конкретный код в конце. 777 00:37:22,619 --> 00:37:24,660 Но на самом деле, у нас есть все строительные блоки здесь, 778 00:37:24,660 --> 00:37:27,680 несмотря на то, что мы пропуская некоторые из этапов реализации. 779 00:37:27,680 --> 00:37:31,560 >> Итак, позвольте мне придираться, что мы чудесно сделал только минуту назад. 780 00:37:31,560 --> 00:37:36,470 Вы создали довольно Полная таблица для пользователей. 781 00:37:36,470 --> 00:37:38,920 Следует признать, что мы могли бы реализовать это в несколько различных способов, 782 00:37:38,920 --> 00:37:43,030 но вы на самом деле привело нас вниз по path-- и я говорю вам, 783 00:37:43,030 --> 00:37:48,080 но это, вероятно, мой fault-- из довольно неэффективная реализация базы данных. 784 00:37:48,080 --> 00:37:49,950 Это не нормированы. 785 00:37:49,950 --> 00:37:52,320 >> И я имею в виду нормированная там будет, 786 00:37:52,320 --> 00:37:57,380 с течением времени, значительная избыточность, и, следовательно, неэффективность, 787 00:37:57,380 --> 00:38:00,210 что это пустая трата пространства. 788 00:38:00,210 --> 00:38:05,650 На основании только то, что вы видите здесь, может Вы видите, где это пустая трата пространства 789 00:38:05,650 --> 00:38:08,710 собирается прибыть с течением времени, , как зарегистрировать больше и больше пользователей 790 00:38:08,710 --> 00:38:10,860 для вашего сайта? 791 00:38:10,860 --> 00:38:13,047 Какие данные могут стать лишними? 792 00:38:13,047 --> 00:38:19,084 793 00:38:19,084 --> 00:38:20,940 >> ЗРИТЕЛИ: [неразборчиво] 794 00:38:20,940 --> 00:38:22,686 >> DAVID Маланом: Почему вы имеете в виду, что? 795 00:38:22,686 --> 00:38:23,561 ЗРИТЕЛИ: [неразборчиво] 796 00:38:23,561 --> 00:38:32,180 797 00:38:32,180 --> 00:38:32,930 DAVID Маланом: Да. 798 00:38:32,930 --> 00:38:35,622 И давайте предположим, что для целей На сегодняшний день, что это правда. 799 00:38:35,622 --> 00:38:38,330 Оказывается, и мы узнали это трудный путь, это не так. 800 00:38:38,330 --> 00:38:41,670 Как-то несколько городов есть, так или иначе, тот же почтовый индекс, 801 00:38:41,670 --> 00:38:43,390 который разрушает эту замечательную интуицию. 802 00:38:43,390 --> 00:38:46,180 Но давайте предположим, что это правда, потому что это почти всегда верно. 803 00:38:46,180 --> 00:38:51,390 Поэтому предположим, что почтовый индекс всегда связано с тем же городом 804 00:38:51,390 --> 00:38:53,600 и состояние, которое является своего рода разумного предположения, 805 00:38:53,600 --> 00:38:54,840 но неверно, получается. 806 00:38:54,840 --> 00:38:57,310 Но разумное предположение для сегодняшних целей. 807 00:38:57,310 --> 00:39:01,650 >> Теперь предположим, что я живу в Кембридже, MA, в соответствии с таблицей этого пользователя, 808 00:39:01,650 --> 00:39:04,100 и предположим, что Лорен Скалли живет в Кембридже, штат Массачусетс, 809 00:39:04,100 --> 00:39:06,120 и предположим, что Карима живет в Кембридже, штат Массачусетс, 810 00:39:06,120 --> 00:39:10,400 и Arwa живет в Кембридже, MA, все мы в 02138. 811 00:39:10,400 --> 00:39:15,890 Почему мы помнить, Кембридж, MA, 02138 для всех нас четверых? 812 00:39:15,890 --> 00:39:18,903 Что должно быть достаточно, чтобы вспомнить? 813 00:39:18,903 --> 00:39:20,249 >> ЗРИТЕЛИ: [неразборчиво] 814 00:39:20,249 --> 00:39:21,540 DAVID Маланом: Просто почтовый индекс. 815 00:39:21,540 --> 00:39:25,080 Только то, что 02138 существует, потому что Вы знаете, что мы можем сделать? 816 00:39:25,080 --> 00:39:32,650 Мы могли бы получить немного фантазии здесь и здесь, определить другую таблицу 817 00:39:32,650 --> 00:39:35,850 где это собирается быть имя, это будет тип, 818 00:39:35,850 --> 00:39:38,840 это собирается быть длина, и в дальнейшем, я 819 00:39:38,840 --> 00:39:42,900 буду называть это мой стол города. 820 00:39:42,900 --> 00:39:47,011 Это было названо, из Конечно, мои пользователи таблица. 821 00:39:47,011 --> 00:39:49,885 И так, что я должен поставить здесь для моей таблицы городов, как вы думаете? 822 00:39:49,885 --> 00:39:53,605 823 00:39:53,605 --> 00:39:54,535 >> ЗРИТЕЛИ: [неразборчиво] 824 00:39:54,535 --> 00:39:55,930 >> DAVID Маланом: Да. 825 00:39:55,930 --> 00:40:01,440 Так молнии и штат и город. 826 00:40:01,440 --> 00:40:05,350 И поэтому тип здесь, мы будем говорить это будет символ 5 раз, 827 00:40:05,350 --> 00:40:06,750 при условии дискуссии ранее. 828 00:40:06,750 --> 00:40:14,810 Это будет перечисление, возможно, как раньше, и город будет VARCHAR 50. 829 00:40:14,810 --> 00:40:17,960 Так что теперь я получаю чтобы стереть из этой таблицы 830 00:40:17,960 --> 00:40:21,995 чтобы устранить эту неэффективность? 831 00:40:21,995 --> 00:40:23,100 >> ЗРИТЕЛИ: [неразборчиво] 832 00:40:23,100 --> 00:40:23,850 DAVID Маланом: Ницца. 833 00:40:23,850 --> 00:40:30,239 Государство и город уйти, поэтому я прямо сейчас ликвидировали потенциальную неэффективность 834 00:40:30,239 --> 00:40:33,280 для избыточно запоминания, Кембридж, MA, Кембридж, Массачусетс, Кембридж, Массачусетс, 835 00:40:33,280 --> 00:40:35,712 Кембридж, штат Массачусетс, который, мы надеемся, никогда не изменится. 836 00:40:35,712 --> 00:40:37,670 И даже если это делает, это minorly раздражает, теперь 837 00:40:37,670 --> 00:40:39,750 что я должен изменить он в несколько строк, 838 00:40:39,750 --> 00:40:43,770 в то время как здесь, я мог бы просто изменить его в одном месте. 839 00:40:43,770 --> 00:40:46,890 >> Теперь то, что компромисс, возможно? 840 00:40:46,890 --> 00:40:48,020 Это было супер удобно. 841 00:40:48,020 --> 00:40:50,730 Если бы все мои данные хорошо вместе. 842 00:40:50,730 --> 00:40:53,644 Но то, что так обстоит дело сейчас? 843 00:40:53,644 --> 00:40:55,684 >> ЗРИТЕЛИ: [неразборчиво] 844 00:40:55,684 --> 00:40:58,100 DAVID Маланом: Совершенно верно, и я рад, что вы использовали слово присоединиться, 845 00:40:58,100 --> 00:41:01,320 потому что это на самом деле ключевое слово, в мире реляционных баз данных 846 00:41:01,320 --> 00:41:05,270 в SQL, это фактическое слово, которое вы может ввести или, по крайней мере, передать. 847 00:41:05,270 --> 00:41:09,280 И в самом деле, что мы теперь должны сделать чтобы выбрать полную информацию Дэвида 848 00:41:09,280 --> 00:41:19,700 что-то вроде выбора звезды из пользователи, присоединиться города, on-- и сейчас 849 00:41:19,700 --> 00:41:24,010 Я собираюсь просто перейти на второй линии так что эта fits-- users.zip равна 850 00:41:24,010 --> 00:41:34,570 cities.zip, где users.ID равен 1. 851 00:41:34,570 --> 00:41:35,550 >> Так, что происходит? 852 00:41:35,550 --> 00:41:38,970 Это некрасиво выглядит, но вы можете вид прочитать его слева направо, сверху вниз. 853 00:41:38,970 --> 00:41:41,030 Выбор звезд от пользователей такой же, как и раньше, 854 00:41:41,030 --> 00:41:42,930 но это не от пользователей, которые сами по себе. 855 00:41:42,930 --> 00:41:45,910 Это от пользователей присоединиться городов. 856 00:41:45,910 --> 00:41:48,520 Что я, соединяющая эти две таблицы на? 857 00:41:48,520 --> 00:41:51,820 Что ж, судя по всему, пользователей таблицы почтовый индекс поля, 858 00:41:51,820 --> 00:41:54,810 и этот период просто особенным синтаксис, чтобы выразить эту идею, 859 00:41:54,810 --> 00:41:58,130 и это таблицы городов почтовый индекс поля. 860 00:41:58,130 --> 00:42:01,580 Я хочу, чтобы эти двое быть равными, но я хочу, чтобы в конечном итоге выбрать 861 00:42:01,580 --> 00:42:06,280 только те строки, в которых ID в таблице пользователей 862 00:42:06,280 --> 00:42:08,730 равен 1, что случилось с моим. 863 00:42:08,730 --> 00:42:11,781 >> И просто чтобы быть ясно, А программист, как правило, когда 864 00:42:11,781 --> 00:42:14,780 жёстко что-то вроде числа 1, так как в противном случае только веб-сайт 865 00:42:14,780 --> 00:42:17,630 поддерживает Давида или тому Самый первый пользователь, вы 866 00:42:17,630 --> 00:42:20,720 вместо этого делать что-то вроде ID, где 867 00:42:20,720 --> 00:42:22,510 Это представляет собой переменная, то, что 868 00:42:22,510 --> 00:42:26,210 может меняться с течением времени, аналогично в духе того, что я уже говорил ранее 869 00:42:26,210 --> 00:42:28,080 с этими видами заполнителей. 870 00:42:28,080 --> 00:42:30,396 Но сейчас мы просто жёстко его как 1. 871 00:42:30,396 --> 00:42:31,520 Так что же это означает? 872 00:42:31,520 --> 00:42:35,100 Что ж, хороший способ визуализировать это что если эта рука таблица пользователей, 873 00:42:35,100 --> 00:42:38,090 и эта рука промелькивает стол, мы своего рода finding-- 874 00:42:38,090 --> 00:42:41,330 а кончики моих пальцев на молнии здесь, а кончики моих пальцев 875 00:42:41,330 --> 00:42:43,740 вот застежка-молния, вы вид блокировки его 876 00:42:43,740 --> 00:42:47,950 так что вы получите обратно полученный исходная таблица, по-настоящему присоединиться 877 00:42:47,950 --> 00:42:49,590 эти две таблицы по общему полю. 878 00:42:49,590 --> 00:42:50,840 И это не должно быть на молнии. 879 00:42:50,840 --> 00:42:54,460 Это может быть самое что-нибудь еще, но застежка-молния хороша, потому что один, это коротко, 880 00:42:54,460 --> 00:42:56,470 два, это всегда такой же длины, так что есть 881 00:42:56,470 --> 00:43:02,270 реальный коэффициент полезного действия к тому, что Оливье предложил здесь 882 00:43:02,270 --> 00:43:05,200 с факторизуя молнию, и [Неразборчиво] предлагает, чтобы мы избавляемся 883 00:43:05,200 --> 00:43:07,110 города и страны. 884 00:43:07,110 --> 00:43:11,370 >> Так что это процесс известный как нормализация. 885 00:43:11,370 --> 00:43:14,171 Есть вопросы по этому поводу? 886 00:43:14,171 --> 00:43:16,170 Ну позвольте мне отметить, это такие вещи, 887 00:43:16,170 --> 00:43:19,202 несмотря на то, что это довольно низкого уровня, это обсуждение, что вы могли бы подумать 888 00:43:19,202 --> 00:43:20,910 вы вроде получения потеряли в сорняках, 889 00:43:20,910 --> 00:43:26,690 это проявление достаточно возможность для разработчиков, чтобы быть плохим. 890 00:43:26,690 --> 00:43:29,600 И в самом деле, даже тогда, когда мы, в курсы я учил, когда у нас было, 891 00:43:29,600 --> 00:43:32,290 например, неопытный Бакалавриат программисты 892 00:43:32,290 --> 00:43:35,920 создавать веб-сайты, на первый взгляд, веб-сайты могут выглядеть потрясающе. 893 00:43:35,920 --> 00:43:38,280 И у них есть все из функциональность мы просили, 894 00:43:38,280 --> 00:43:40,650 разработчики проделали хорошую работу. 895 00:43:40,650 --> 00:43:43,370 >> Но они не обязательно знать достаточно о проектировании баз данных 896 00:43:43,370 --> 00:43:46,680 или они не думали, трудно достаточно о типах данных 897 00:43:46,680 --> 00:43:49,220 и типы пользователей: Сайт будет иметь, 898 00:43:49,220 --> 00:43:53,240 и мы находим, то, спустя шесть месяцев, после того, как они закончили или двинулись дальше, 899 00:43:53,240 --> 00:43:56,016 что, черт возьми, наш веб-сайт на самом деле, по-настоящему медленно. 900 00:43:56,016 --> 00:43:58,890 И я даже не говорю о том, миллионы или тысячи пользователей. 901 00:43:58,890 --> 00:44:02,580 Я имею в виду несколько сотен пользователей в университетском городке, все из которых любят, например, 902 00:44:02,580 --> 00:44:04,870 магазин для курсов в в то же время, они 903 00:44:04,870 --> 00:44:07,010 используя этот каталог курсов Применение я упомянул 904 00:44:07,010 --> 00:44:10,410 и вещь становится действительно замедлить, потому что не было никаких индексов. 905 00:44:10,410 --> 00:44:13,740 Там не было никаких красных звезд, так говорят, или у нас было не обязательно 906 00:44:13,740 --> 00:44:17,690 факторизовали общие данные получить некоторую экономию пространства. 907 00:44:17,690 --> 00:44:21,880 >> И поэтому, когда зондажами разработчик или базу данных лица или т.п., 908 00:44:21,880 --> 00:44:25,864 виды вопросов, продумывать даже при рассмотрении чей-то код, 909 00:44:25,864 --> 00:44:28,530 сказать, не обязательно искать через все их кода, но говорят, 910 00:44:28,530 --> 00:44:30,154 давайте посмотрим через таблицы базы данных. 911 00:44:30,154 --> 00:44:31,150 Что ты хранить? 912 00:44:31,150 --> 00:44:33,941 А потом сказать, ну, подождите минута, почему вы используете целое число? 913 00:44:33,941 --> 00:44:36,224 Что делать, если у нас есть 4 млрд и 1 из этих строк? 914 00:44:36,224 --> 00:44:38,140 И эти виды вопросов является возможность 915 00:44:38,140 --> 00:44:40,170 чтобы отчасти оттеснить и получить чувство, где 916 00:44:40,170 --> 00:44:42,300 если вы не удобно делать он, имея кого-то более технический 917 00:44:42,300 --> 00:44:45,425 задать эти вопросы, от того, или нет человек действительно знает свое дело. 918 00:44:45,425 --> 00:44:47,890 И это своего рода материал тоже, что люди 919 00:44:47,890 --> 00:44:50,540 в Интернете, который самоучки, может быть, 920 00:44:50,540 --> 00:44:53,920 узнать реже, потому что вы не обязательно попадался 921 00:44:53,920 --> 00:44:56,630 столько же, потому что вы можете получить база данных и работает, 922 00:44:56,630 --> 00:44:58,880 но если вы не читали на учебники или были 923 00:44:58,880 --> 00:45:01,880 рассказал о нормализации баз данных и индексации и производительность, 924 00:45:01,880 --> 00:45:04,255 эти виды вещей что собираются причинить вам вред. 925 00:45:04,255 --> 00:45:07,480 И вы могли бы подумать, или плохой инженер Можно сказать, ну, хорошо, мы лучше платить 926 00:45:07,480 --> 00:45:09,600 для большей базы данных или быстрее базы данных 927 00:45:09,600 --> 00:45:13,360 или просто выбросить деньги на это, вертикально масштаб, не обязательно так. 928 00:45:13,360 --> 00:45:16,920 Если вы идете in-- и вы можете пойти в после fact-- и добавить индексы, 929 00:45:16,920 --> 00:45:20,320 и это может занять несколько часов для базы данных, чтобы создать что новые данные 930 00:45:20,320 --> 00:45:24,100 Структура, что я упоминал ранее, вы все еще можете исправить это после того, как тот факт, 931 00:45:24,100 --> 00:45:26,180 что это, где вы начинают различать 932 00:45:26,180 --> 00:45:28,830 хорошие дизайнеры из плохо дизайнеры, а не только эстетически, 933 00:45:28,830 --> 00:45:32,972 но с точки зрения производительности, а также. 934 00:45:32,972 --> 00:45:33,555 Любые вопросы? 935 00:45:33,555 --> 00:45:36,420 936 00:45:36,420 --> 00:45:37,480 Нет? 937 00:45:37,480 --> 00:45:41,980 Так что для NoSQL, который был другой тип базы данных, к которой я упоминал ранее, 938 00:45:41,980 --> 00:45:43,490 у вас нет строки и столбцы. 939 00:45:43,490 --> 00:45:47,000 Вместо этого, вы бы что-то что выглядит немного больше, как это. 940 00:45:47,000 --> 00:45:48,630 Я собираюсь использовать общий синтаксис. 941 00:45:48,630 --> 00:45:51,270 Фигурные скобки, случается используется здесь довольно много. 942 00:45:51,270 --> 00:45:55,400 Вы могли бы иметь что-то как первое имя Давид, 943 00:45:55,400 --> 00:46:00,180 вы, возможно, в последний раз имя Малан, цитаты, 944 00:46:00,180 --> 00:46:07,530 Вы могли бы иметь ID is-- извините, whoops-- ID 1, 945 00:46:07,530 --> 00:46:13,410 электронная почта malan@harvard.edu, и я не буду заморачиваться печатала остальное, а потом 946 00:46:13,410 --> 00:46:14,380 некоторые другие вещи. 947 00:46:14,380 --> 00:46:17,380 >> Другими словами, это текстовое представление 948 00:46:17,380 --> 00:46:20,720 от того, что мы обычно называем объект в компьютерной программе. 949 00:46:20,720 --> 00:46:26,079 И объект, как правило, просто коллекция пар ключ-значение. 950 00:46:26,079 --> 00:46:27,370 Так опять же, это повторяющаяся тема. 951 00:46:27,370 --> 00:46:30,440 Мы видели пары ключ значение в HTML, мы увидели пары ключ-значение в настоящее время 952 00:46:30,440 --> 00:46:34,020 в контексте баз данных, и мы видел пары ключ-значение в контексте 953 00:46:34,020 --> 00:46:35,970 о, я думаю, язык ранее сегодня. 954 00:46:35,970 --> 00:46:36,890 Держит придумывают. 955 00:46:36,890 --> 00:46:39,620 И в самом деле, это действительно какие данные сводится к тому, 956 00:46:39,620 --> 00:46:44,240 данные и метаданные, или значения и ключи, соответственно. 957 00:46:44,240 --> 00:46:47,430 >> Поэтому нереляционная базы данных, что-то на основе 958 00:46:47,430 --> 00:46:50,680 на объектах, где вы просто комок все вместе и положить его 959 00:46:50,680 --> 00:46:55,640 в память, как правило, будет на фото, как, или думали, как это. 960 00:46:55,640 --> 00:47:00,500 И я оставлю, что теперь, как своего рода альтернативный подход. 961 00:47:00,500 --> 00:47:03,750 И одно не обязательно лучше, чем другие. 962 00:47:03,750 --> 00:47:07,310 На самом деле, очень в моде в эти дни системы управления базами данных 963 00:47:07,310 --> 00:47:11,942 как MongoDB и Redis и некоторые из них другие такие инструменты, в свободном доступе, 964 00:47:11,942 --> 00:47:13,400 но они все больше в моде. 965 00:47:13,400 --> 00:47:18,850 Отчасти потому, что они предлагают дополнительные особенности над этими табличными подходов, 966 00:47:18,850 --> 00:47:20,850 но и потому, что они немного проще в использовании, 967 00:47:20,850 --> 00:47:24,099 потому что вы не должны, как трудно думать, о многих из этих проектных решений. 968 00:47:24,099 --> 00:47:25,970 Так плюсы и минусы. 969 00:47:25,970 --> 00:47:29,740 Так понимаю, есть варианты сверх того, что мы только что потратили время на. 970 00:47:29,740 --> 00:47:32,310 >> Так давайте сделаем это. 971 00:47:32,310 --> 00:47:37,870 Давайте переход немного теперь назад к веб-программирования, 972 00:47:37,870 --> 00:47:40,470 так что мы как-то заключить сегодня с чем-то 973 00:47:40,470 --> 00:47:43,930 это немного практический, заполняя некоторые пробелы со вчерашнего дня. 974 00:47:43,930 --> 00:47:45,340 Позвольте мне перейти к этому в первую очередь. 975 00:47:45,340 --> 00:47:49,310 Так Напомним, что вчера мы имели некоторую каноническую HTML 976 00:47:49,310 --> 00:47:55,110 страницы, которые были изначально, только HTML, а затем во вторую очередь имел CSS, 977 00:47:55,110 --> 00:47:56,620 каскадные таблицы стилей. 978 00:47:56,620 --> 00:47:59,830 Это новый тег, который мы не сделали см вчера, или остановиться на, 979 00:47:59,830 --> 00:48:01,490 так называемый скрипт тегов. 980 00:48:01,490 --> 00:48:05,830 >> Оказывается, на самом деле вы можете встроить язык, называемый JavaScript в вашем веб 981 00:48:05,830 --> 00:48:08,310 страницы и сделать свой веб страницы сделать что-то. 982 00:48:08,310 --> 00:48:09,710 Так что же я имею в виду под этим? 983 00:48:09,710 --> 00:48:12,630 Что ж, позвольте мне идти вперед и просто заимствовать этот код на мгновение. 984 00:48:12,630 --> 00:48:15,860 Я не буду вдаваться в Cloud9, нет необходимости туда себя только все же, 985 00:48:15,860 --> 00:48:21,350 и я буду называть эту alert.HTML. 986 00:48:21,350 --> 00:48:23,650 Я собираюсь вставить в мой файл здесь. 987 00:48:23,650 --> 00:48:32,070 И только уточнить, что я сделал, пусть мне пойти на этот адрес и идти, чтобы предупредить, 988 00:48:32,070 --> 00:48:33,870 и вы увидите Hello World. 989 00:48:33,870 --> 00:48:35,440 >> Но это своего рода сокрушающей. 990 00:48:35,440 --> 00:48:37,410 Я хочу сделать что-то немного по-другому. 991 00:48:37,410 --> 00:48:40,610 Так что я собираюсь сделать это на самом деле. 992 00:48:40,610 --> 00:48:43,820 Я собираюсь идти в здесь е, и между моими тегами сценария, 993 00:48:43,820 --> 00:48:53,460 говорят предупреждение ( "Привет, мир"); поэтому уведомление это немного коряво, но у меня есть HTML, 994 00:48:53,460 --> 00:48:56,180 внутри которого находится язык называется JavaScript, 995 00:48:56,180 --> 00:48:59,420 и это то, что называется вызов функции или вызова процедуры. 996 00:48:59,420 --> 00:49:04,500 Это глагол, в буквальном смысле, в данном случае, и я вызова функции кода 997 00:49:04,500 --> 00:49:06,310 что кто-то написал. 998 00:49:06,310 --> 00:49:09,630 >> Так что функциональность является предупреждение, так что давайте пойдем на эту страницу 999 00:49:09,630 --> 00:49:14,046 сейчас и нажмите кнопку перезагрузки, и теперь вы увидеть немного интерактивности. 1000 00:49:14,046 --> 00:49:15,420 Это своего рода старой школы и некрасиво. 1001 00:49:15,420 --> 00:49:18,580 Этот вид напоминает вам о всплывающие окна, возможно, прошлых лет 1002 00:49:18,580 --> 00:49:22,030 но это действительно сделать что-то немного больше программной. 1003 00:49:22,030 --> 00:49:26,940 >> Так что больше, чем это, давайте сделаем что-то более интересное. 1004 00:49:26,940 --> 00:49:30,980 Пусти здесь и избавиться от этого. 1005 00:49:30,980 --> 00:49:33,840 И я собираюсь идти вперед и создать форму, как мы делали вчера. 1006 00:49:33,840 --> 00:49:34,840 На самом деле, вы знаете, что? 1007 00:49:34,840 --> 00:49:37,350 Я собираюсь идти в google.html, который мы 1008 00:49:37,350 --> 00:49:43,027 начал вчера, который выглядел это, с помощью которого мы искали кота 1009 00:49:43,027 --> 00:49:45,360 Но обратите внимание, что есть добро из ошибка в текущей версии. 1010 00:49:45,360 --> 00:49:49,770 Она работает для кошек, но предположим, что Я не сотрудничать, и я не вводить ничего, 1011 00:49:49,770 --> 00:49:53,290 и я просто нажмите кнопку. 1012 00:49:53,290 --> 00:49:54,540 Это вроде странного поведения. 1013 00:49:54,540 --> 00:49:57,300 Взял меня к реальному Google, не дал мне сообщение об ошибке. 1014 00:49:57,300 --> 00:50:00,590 Я хотел бы сказать пользователю Вы должны дать нам значение. 1015 00:50:00,590 --> 00:50:01,780 >> Итак, как мы могли бы это сделать? 1016 00:50:01,780 --> 00:50:06,790 Ну позвольте мне вернуться в Cloud9 и отпусти меня в верхней части моей страницы 1017 00:50:06,790 --> 00:50:11,980 и добавить тег сценария, как это, где Я собираюсь ввести некоторый код JavaScript. 1018 00:50:11,980 --> 00:50:15,420 И я собираюсь сделать следующее. 1019 00:50:15,420 --> 00:50:22,910 Если (document.getelementByID-- и отзыв что мы говорили о том, что ранее, 1020 00:50:22,910 --> 00:50:23,960 эта функция. 1021 00:50:23,960 --> 00:50:25,310 Что ID вы хотите получить? 1022 00:50:25,310 --> 00:50:33,050 Я хочу, чтобы получить д, и я собираюсь скажем не равно ничего, как this-- 1023 00:50:33,050 --> 00:50:38,220 на самом деле позволить мне использовать двойные кавычки только для consistency-- не равно ничего, 1024 00:50:38,220 --> 00:50:46,650 затем оповещение ( "Пожалуйста, введите запрос") здесь. 1025 00:50:46,650 --> 00:50:49,200 >> Так что у меня есть то, что, как представляется, что-то вроде состояния. 1026 00:50:49,200 --> 00:50:51,410 Мы уже видели эту общую идею в пустом месте. 1027 00:50:51,410 --> 00:50:54,240 Это как один из тех, головоломки части, которые выглядели как это. 1028 00:50:54,240 --> 00:50:55,780 И что я говорю? 1029 00:50:55,780 --> 00:50:59,520 Ну, здесь, я замечаю собирается сделать следующее. 1030 00:50:59,520 --> 00:51:02,790 Я собираюсь дать эту форму поле не только имя д, который 1031 00:51:02,790 --> 00:51:06,630 то, что получает передается в Google, но я собирается дать ему локальный идентификатор, 1032 00:51:06,630 --> 00:51:07,630 также называется д. 1033 00:51:07,630 --> 00:51:11,780 Но я мог бы назвать это все, что я хотите, я просто хочу, чтобы держать его просто 1034 00:51:11,780 --> 00:51:14,570 а также называют его д, только для простоты. 1035 00:51:14,570 --> 00:51:17,650 >> А теперь я собираюсь сделать что-то немного больше. 1036 00:51:17,650 --> 00:51:22,600 На поля формы здесь, я собираюсь добавить то, что называется обработчик события. 1037 00:51:22,600 --> 00:51:32,260 На представить, я хочу позвонить функция называется Validate. 1038 00:51:32,260 --> 00:51:35,520 Это еще не существует, это слово, или этот глагол Validate, 1039 00:51:35,520 --> 00:51:38,560 потому что я собираюсь сделать здесь теперь добавить некоторый код. 1040 00:51:38,560 --> 00:51:42,200 >> Я хочу сказать, функция Validate. 1041 00:51:42,200 --> 00:51:48,280 Я собираюсь отступа это и добавить еще фигурная скобка здесь и еще один здесь. 1042 00:51:48,280 --> 00:51:50,110 Подумайте, что это делает сейчас. 1043 00:51:50,110 --> 00:51:54,210 У меня есть now-- думать об этом как создал свой собственный кусок головоломки, которые ранее не 1044 00:51:54,210 --> 00:51:57,440 существуют, и я назвал эту головоломку кусочкам кусок головоломки Validate. 1045 00:51:57,440 --> 00:52:01,620 Его цель в жизни, чтобы выполнить четыре строки кода внутри него. 1046 00:52:01,620 --> 00:52:04,940 >> Если document.getElementById так концептуально, 1047 00:52:04,940 --> 00:52:09,380 что собирается идти в элемент, HTML-элемент, уникальный 1048 00:52:09,380 --> 00:52:12,930 идея просто д, а затем, даже если синтаксис выглядит немного странно, 1049 00:52:12,930 --> 00:52:16,430 что равное равно просто означает, что равных. 1050 00:52:16,430 --> 00:52:20,950 Таким образом, это означает, что если элемент с уникальный идентификатор д, когда получил, 1051 00:52:20,950 --> 00:52:25,700 не имеет значения, она просто равна цитата конец цитаты, ничего там, 1052 00:52:25,700 --> 00:52:27,170 то, что я хочу сделать? 1053 00:52:27,170 --> 00:52:29,360 Я хочу кричать на пользователя. 1054 00:52:29,360 --> 00:52:31,710 >> И мы не будем очень подробно здесь. 1055 00:52:31,710 --> 00:52:32,960 Я собираюсь вернуться ложным. 1056 00:52:32,960 --> 00:52:34,380 То есть ошибка. 1057 00:52:34,380 --> 00:52:38,746 В противном случае, я собираюсь вернуться правда. 1058 00:52:38,746 --> 00:52:40,120 Так что либо это сработало, либо нет. 1059 00:52:40,120 --> 00:52:41,800 Ложь или правда. 1060 00:52:41,800 --> 00:52:47,820 И теперь, если я не сделал ни одной ошибки, позвольте мне сохранить это и перезагрузить это. 1061 00:52:47,820 --> 00:52:50,940 И позвольте мне просто дважды проверить, что Я не, на самом деле, делать какие-либо опечатки, 1062 00:52:50,940 --> 00:52:52,690 так что я не опозориться. 1063 00:52:52,690 --> 00:52:54,240 Давайте посмотрим, если это работает. 1064 00:52:54,240 --> 00:52:56,930 >> Так что теперь я буду набирать кошек. 1065 00:52:56,930 --> 00:52:59,421 Он по-прежнему работает, или половина работает, по крайней мере. 1066 00:52:59,421 --> 00:53:02,170 Теперь позвольте мне перезагрузить его, а теперь давайте я попробую представить без ввода 1067 00:53:02,170 --> 00:53:05,860 anything-- черт побери, он сломался. 1068 00:53:05,860 --> 00:53:06,430 Один момент. 1069 00:53:06,430 --> 00:53:09,380 1070 00:53:09,380 --> 00:53:12,660 Позвольте мне открыть консоль, [Неразборчиво] журнал, перезагрузите страницу. 1071 00:53:12,660 --> 00:53:13,576 Позвольте мне попробовать это снова. 1072 00:53:13,576 --> 00:53:17,000 1073 00:53:17,000 --> 00:53:17,501 О, черт возьми. 1074 00:53:17,501 --> 00:53:18,000 Я забыл. 1075 00:53:18,000 --> 00:53:18,630 Я сделал опечатку. 1076 00:53:18,630 --> 00:53:20,760 Я помню, что это такое. 1077 00:53:20,760 --> 00:53:21,350 .стоимость. 1078 00:53:21,350 --> 00:53:27,060 Я имел в виду, если значение говорят элемента с идентификатором д 1079 00:53:27,060 --> 00:53:29,800 равно что, то орать на пользователя. 1080 00:53:29,800 --> 00:53:31,870 >> Так что теперь позвольте мне снова задержать дыхание. 1081 00:53:31,870 --> 00:53:33,480 Вот так. 1082 00:53:33,480 --> 00:53:34,130 Там мы идем. 1083 00:53:34,130 --> 00:53:35,010 Пожалуйста, введите запрос. 1084 00:53:35,010 --> 00:53:36,840 Так что это не давая мне до конца. 1085 00:53:36,840 --> 00:53:40,210 Я могу быть своего рода игривые с этим, и вместо того, чтобы проверка не имеют ценности, 1086 00:53:40,210 --> 00:53:46,720 Я могу сказать что-то подобное, Больше не придется искать для кошек, 1087 00:53:46,720 --> 00:53:51,150 и теперь мы можем только более игриво пусть поиск пользователя для собак, если он или она 1088 00:53:51,150 --> 00:53:57,490 хочет, или если я пойду сюда и искать кошек, теперь я не могу. 1089 00:53:57,490 --> 00:53:58,690 >> Так что вынос здесь? 1090 00:53:58,690 --> 00:54:03,010 Так что, мы ввели в наш мир HTML и CSS, 1091 00:54:03,010 --> 00:54:04,320 функциональные возможности программирования. 1092 00:54:04,320 --> 00:54:06,300 Я могу на самом деле в настоящее время принимать решения в коде. 1093 00:54:06,300 --> 00:54:10,570 Раньше все, что я мог сделать, это пометить текстовое содержание или графическое содержание 1094 00:54:10,570 --> 00:54:13,080 и сказать ему, что посмотреть как и где, чтобы отобразить. 1095 00:54:13,080 --> 00:54:16,650 Теперь я могу реально спросить вопросы веб-страницы 1096 00:54:16,650 --> 00:54:20,010 и принимать решения, основанные на нем, и предложит пользователю 1097 00:54:20,010 --> 00:54:22,780 если мне нужно кричать на него или нее. 1098 00:54:22,780 --> 00:54:28,740 >> Так давайте попробуем что-нибудь самостоятельно с этим. 1099 00:54:28,740 --> 00:54:33,350 Идите вперед, позвольте мне открыть следующий слайд здесь, и просто указать на одну вещь. 1100 00:54:33,350 --> 00:54:37,250 Так же, как с помощью CSS, мы можем вынести наш код JavaScript в отдельный файл, 1101 00:54:37,250 --> 00:54:40,660 вы можете сделать то же самое с JavaScript, как с помощью CSS. 1102 00:54:40,660 --> 00:54:44,520 И вы используете, что с помощью источника атрибут тега сценария. 1103 00:54:44,520 --> 00:54:46,540 Но мы не будем усложнять сейчас. 1104 00:54:46,540 --> 00:54:50,440 Вместо этого, если вы могли бы перейти на эту страницу не, 1105 00:54:50,440 --> 00:55:02,690 но-- позвольте мне переместить эту вокруг в order-- идти, если вы могли бы, эту страницу здесь. 1106 00:55:02,690 --> 00:55:03,592 Этот URL-адрес здесь. 1107 00:55:03,592 --> 00:55:04,550 Это в сегодняшних горками. 1108 00:55:04,550 --> 00:55:07,133 Вы, возможно, придется перезагрузить, потому что Я добавил пару вещь. 1109 00:55:07,133 --> 00:55:09,970 1110 00:55:09,970 --> 00:55:13,890 >> Но туда, где некоторые головоломки ждут. 1111 00:55:13,890 --> 00:55:16,670 И это даст нам шанс, в немного больше удовольствия контексте, 1112 00:55:16,670 --> 00:55:20,610 баловаться с некоторыми JavaScript. 1113 00:55:20,610 --> 00:55:25,505 И когда вы там, Я объясню, что ждет. 1114 00:55:25,505 --> 00:55:47,350 1115 00:55:47,350 --> 00:55:47,850 Получить зеленый. 1116 00:55:47,850 --> 00:56:03,063 1117 00:56:03,063 --> 00:56:03,562 Набор синий. 1118 00:56:03,562 --> 00:56:11,030 1119 00:56:11,030 --> 00:56:13,930 Устанавливает зеленый, устанавливает красный. 1120 00:56:13,930 --> 00:56:19,220 1121 00:56:19,220 --> 00:56:20,220 К сожалению. 1122 00:56:20,220 --> 00:56:22,330 Сожалею. 1123 00:56:22,330 --> 00:56:27,630 >> Это степень нашей документация для этой задачи. 1124 00:56:27,630 --> 00:56:29,920 И это будет работать следующим образом. 1125 00:56:29,920 --> 00:56:33,340 Так что у вас есть по этому вопросу страница представляет собой целый букет 1126 00:56:33,340 --> 00:56:38,024 головоломок изображения по приятелем в Стэнфордском университете. 1127 00:56:38,024 --> 00:56:41,190 Так что вы видите здесь почти вид одной из тех волшебных глаз головоломок, 1128 00:56:41,190 --> 00:56:43,815 но если вы просто смотреть на него, ничего не собирается выскочить на тебя. 1129 00:56:43,815 --> 00:56:46,000 Скорее всего, что-то скрытый в этом образе. 1130 00:56:46,000 --> 00:56:47,790 И он скрыт следующим образом. 1131 00:56:47,790 --> 00:56:51,740 Изображения, как вы знаете, может быть состоящий всего из трех цветов. 1132 00:56:51,740 --> 00:56:53,346 Некоторые красный, немного синего, а также некоторые зеленые. 1133 00:56:53,346 --> 00:56:55,220 И мы можем сделать все цветов в радуге 1134 00:56:55,220 --> 00:56:57,570 путем смешивания этих трех цветов так или иначе. 1135 00:56:57,570 --> 00:57:01,940 >> Так это выглядит в основном зеленый и синий, но, как говорит здесь Ник, 1136 00:57:01,940 --> 00:57:04,060 это железо-головоломка изображение головоломка. 1137 00:57:04,060 --> 00:57:06,780 Он содержит изображение что-то известным, однако, 1138 00:57:06,780 --> 00:57:08,310 изображение было искажено. 1139 00:57:08,310 --> 00:57:11,500 Знаменитый объект находится в красных значений. 1140 00:57:11,500 --> 00:57:13,810 Тем не менее, красные значения есть все были разделены на 10. 1141 00:57:13,810 --> 00:57:16,230 Таким образом, они слишком малы, на коэффициент 10. 1142 00:57:16,230 --> 00:57:18,280 Итак, другими словами, Ник принял исходное изображение, 1143 00:57:18,280 --> 00:57:21,500 и он ненасыщенный все красноты от него, 1144 00:57:21,500 --> 00:57:23,850 снижение количества красного чернила, если вы будете в нем. 1145 00:57:23,850 --> 00:57:26,060 >> Синие и зеленые значения все просто бессмысленно, 1146 00:57:26,060 --> 00:57:30,000 случайные величины, иначе шум разработан чтобы скрыть реальное изображение. 1147 00:57:30,000 --> 00:57:32,250 Так что Ник сделал он смягчил красный, а затем 1148 00:57:32,250 --> 00:57:34,380 он просто бросил случайный количество синего и зеленого 1149 00:57:34,380 --> 00:57:37,590 на изображении в виде неясными что на самом деле все еще там. 1150 00:57:37,590 --> 00:57:41,089 Необходимо отменить эти искажения чтобы раскрыть образ. 1151 00:57:41,089 --> 00:57:44,255 Во-первых, установить все синие и зеленые значения к нулю, чтобы получить их из пути, 1152 00:57:44,255 --> 00:57:48,700 и посмотреть на результат. затем Умножим каждое значение красного на 10, 1153 00:57:48,700 --> 00:57:51,720 сворачивают до приблизительно в его конечное значение. 1154 00:57:51,720 --> 00:57:53,035 Что такое знаменитый объект? 1155 00:57:53,035 --> 00:57:57,920 >> Так что все у вас есть этот прямоугольник в вашем браузере прямо сейчас. 1156 00:57:57,920 --> 00:58:00,830 И обратите внимание, что есть некоторые стартовый код, если можно так выразиться. 1157 00:58:00,830 --> 00:58:04,370 Это код JavaScript, который Ник написал для вас. 1158 00:58:04,370 --> 00:58:07,250 И обратите внимание, что есть линия в середине, что 1159 00:58:07,250 --> 00:58:10,380 начинается с косой черты косой черты, это что обычно называют комментарием. 1160 00:58:10,380 --> 00:58:14,660 Это означает, что это фраза для программиста что не имеет никакого функционального смысла. 1161 00:58:14,660 --> 00:58:16,520 Это просто визуальный сигнал к человеку. 1162 00:58:16,520 --> 00:58:18,670 >> Таким образом, вы можете пойти дальше и удалить только ту линию, 1163 00:58:18,670 --> 00:58:22,214 и быть супер осторожны, чтобы не удалить или изменить что-нибудь еще. 1164 00:58:22,214 --> 00:58:25,130 И позвольте мне вас через что делает этот код, и я оставлю его 1165 00:58:25,130 --> 00:58:28,580 для вас, чтобы выяснить секретное изображение. 1166 00:58:28,580 --> 00:58:32,226 Это первая линия здесь, что я просто выделенный дает вам следующее. 1167 00:58:32,226 --> 00:58:34,100 Слева, у вас есть то, что называется 1168 00:58:34,100 --> 00:58:39,140 переменная, Ник произвольно, но обоснованно называется IM для изображения. 1169 00:58:39,140 --> 00:58:41,660 На правой стороне этого знака равенства, 1170 00:58:41,660 --> 00:58:45,240 он говорит, дайте мне новый цитата, конец цитаты "простой образ". 1171 00:58:45,240 --> 00:58:49,680 >> Простое изображение, в этом контексте это то, что называется классом, ну, 1172 00:58:49,680 --> 00:58:53,910 это вроде как class-- технически prototype-- но на самом деле, 1173 00:58:53,910 --> 00:58:58,000 это дает мне новый объект, содержание которого являются файл, 1174 00:58:58,000 --> 00:58:59,610 железо-puzzle.png. 1175 00:58:59,610 --> 00:59:03,190 Другими словами, Ник создал это понятие простого изображения 1176 00:59:03,190 --> 00:59:05,920 так что мы можем, кроме педагогической цели, играть с изображением 1177 00:59:05,920 --> 00:59:09,790 и изменить его красный, зеленого и синего цветов. 1178 00:59:09,790 --> 00:59:11,750 >> И как мы делаем это? 1179 00:59:11,750 --> 00:59:15,360 Это зашифрованное синтаксис здесь вроде как повтора блока 1180 00:59:15,360 --> 00:59:19,140 что некоторые из вас видели в пустом месте раньше Сегодня, где вы можете повторить 10 раз. 1181 00:59:19,140 --> 00:59:22,220 В этом случае, Ник не жёстко число, например 10. 1182 00:59:22,220 --> 00:59:28,020 Вместо этого он говорит, инициализировать переменная с именем х 0, 1183 00:59:28,020 --> 00:59:33,180 проверить, если х меньше ширина изображения. 1184 00:59:33,180 --> 00:59:38,160 >> И так, чтобы быть более правильным, изображение является Переменная, точка означает идти внутри него 1185 00:59:38,160 --> 00:59:40,900 и получить его ширину, и затем открыть скобка, закрытый 1186 00:59:40,900 --> 00:59:43,687 скобка просто путь программиста сказать, что это функция. 1187 00:59:43,687 --> 00:59:44,520 Это процедура. 1188 00:59:44,520 --> 00:59:46,430 Это функциональность кто-то написал. 1189 00:59:46,430 --> 00:59:48,570 Используйте его и верни мне ответ. 1190 00:59:48,570 --> 00:59:53,610 И тогда х ++ является причудливым способом говоря, после того, как вы сделали это один раз, 1191 00:59:53,610 --> 00:59:55,850 приращение х на 1. 1192 00:59:55,850 --> 00:59:58,760 Другими словами, это это путь программиста 1193 00:59:58,760 --> 01:00:05,760 индуцировать петлю, что это собирается перебрать 1194 01:00:05,760 --> 01:00:10,410 все столбцы в изображении. 1195 01:00:10,410 --> 01:00:14,790 >> Изображение просто сетка точек, строк и столбцов точек. 1196 01:00:14,790 --> 01:00:18,270 Это способ итерирования над всеми этими колоннами. 1197 01:00:18,270 --> 01:00:20,770 А на внутренней стороне, В то же время, мы переборе 1198 01:00:20,770 --> 01:00:24,030 над высот, здесь и здесь и здесь. 1199 01:00:24,030 --> 01:00:29,442 Так что это просто способ тащась, почти как старый школьный машинке, 1200 01:00:29,442 --> 01:00:32,230 просто идти над Все изображение итеративно. 1201 01:00:32,230 --> 01:00:36,370 Даже это не совсем полностью ясно, просто принять на веру сейчас, 1202 01:00:36,370 --> 01:00:38,880 что эти три линии кода вместе, 1203 01:00:38,880 --> 01:00:43,090 собирается, чтобы позволить вам выглядеть итеративно на каждый пиксель, каждая точка в изображении. 1204 01:00:43,090 --> 01:00:43,790 >> Что такое пиксель? 1205 01:00:43,790 --> 01:00:46,250 Ну, чтобы быть ясным, если мы посмотрим в оригинале и увеличить масштаб, 1206 01:00:46,250 --> 01:00:49,060 если вы действительно положить ваши глаза на экран компьютера, это 1207 01:00:49,060 --> 01:00:53,510 просто целая куча точек, несколько тысячи точек упакованы вместе там. 1208 01:00:53,510 --> 01:00:56,180 И так, что вы собираетесь делать? 1209 01:00:56,180 --> 01:00:59,240 Каждый из этих точек, окончательное определение, 1210 01:00:59,240 --> 01:01:06,350 является результатом того, что это вообще называется RGB, красный, зеленый, синий, который 1211 01:01:06,350 --> 01:01:09,940 опять же, могут быть объединены в дать вам любое количество цветов. 1212 01:01:09,940 --> 01:01:13,200 >> На самом деле, если вы помните, от многих, много лет назад, 1213 01:01:13,200 --> 01:01:17,320 Экраны для проекторов, как эти вещи Раньше у меня не один объектив, а три. 1214 01:01:17,320 --> 01:01:20,700 Один из них выплюнуть красный свет, один из их выплюнуть зеленый свет, один из них 1215 01:01:20,700 --> 01:01:21,600 выплюнуть синий свет. 1216 01:01:21,600 --> 01:01:24,391 И если вы были в средней школе как я там, где они никогда не были 1217 01:01:24,391 --> 01:01:27,000 выровнены, вы были всегда смотреть исторические фильмы 1218 01:01:27,000 --> 01:01:29,770 которые были несколько искажены, потому что три цвета не были 1219 01:01:29,770 --> 01:01:30,970 комбинируя должным образом. 1220 01:01:30,970 --> 01:01:36,330 >> Но оказывается, что каждый из эти значения красного, зеленого и синего цветов, 1221 01:01:36,330 --> 01:01:37,980 может иметь ряд связанных с ними. 1222 01:01:37,980 --> 01:01:42,500 Например, 0 для красного означает отсутствие красный, 0 для зеленого означает не зеленый, 1223 01:01:42,500 --> 01:01:45,120 и 0 для синего означает отсутствие синего цвета. 1224 01:01:45,120 --> 01:01:49,403 Так что если у вас нет красного, нет зеленого, нет и не синий, какого цвета у вас есть? 1225 01:01:49,403 --> 01:01:51,009 >> ЗРИТЕЛИ: [неразборчиво] 1226 01:01:51,009 --> 01:01:52,800 DAVID Маланом: Вы бы надеюсь, это белый. 1227 01:01:52,800 --> 01:01:55,333 К сожалению, это operates-- жаль? 1228 01:01:55,333 --> 01:01:56,380 >> ЗРИТЕЛИ: [неразборчиво] 1229 01:01:56,380 --> 01:01:58,630 DAVID Маланом: Так что вы на самом деле имеют черную, в этом случае. 1230 01:01:58,630 --> 01:02:01,530 Так что если у вас нет ни одного из них цвета включен, у вас есть черный. 1231 01:02:01,530 --> 01:02:06,510 Тем не менее, если у вас есть, скажем, много из них, как много красного, 255 из него, 1232 01:02:06,510 --> 01:02:10,340 много зелени, и много синего, то есть белый. 1233 01:02:10,340 --> 01:02:12,230 Таким образом, эти две крайности. 1234 01:02:12,230 --> 01:02:17,460 Таким образом, по этой логике, если у меня есть много красного и зелёного и синего, 1235 01:02:17,460 --> 01:02:18,485 какой цвет является то, что? 1236 01:02:18,485 --> 01:02:19,360 ЗРИТЕЛИ: [неразборчиво] 1237 01:02:19,360 --> 01:02:20,610 DAVID Маланом: справа, очевидно. 1238 01:02:20,610 --> 01:02:25,940 И тогда нет красного, много зеленый, синий нет, а затем 1239 01:02:25,940 --> 01:02:29,590 если вы have-- хорошо, мы просто закончить это, просто потому, что, но это, конечно, 1240 01:02:29,590 --> 01:02:31,350 Теперь, синий. 1241 01:02:31,350 --> 01:02:33,030 И теперь вы можете комбинировать эти цвета. 1242 01:02:33,030 --> 01:02:36,430 Теперь, как и в сторону, если любой из вас есть когда-либо делал некоторые фактические дизайн веб-сайта, 1243 01:02:36,430 --> 01:02:38,360 Вы могли бы на самом деле см символы, как это. 1244 01:02:38,360 --> 01:02:42,030 FFF-- и на самом деле, это вероятно, даже это не так. 1245 01:02:42,030 --> 01:02:44,380 Это FFFFFF. 1246 01:02:44,380 --> 01:02:48,970 >> Кто-нибудь видел F-е и Э и А through-- так получается, 1247 01:02:48,970 --> 01:02:52,970 мы говорили вчера о десятичной системе, и сегодня, вроде о десятичной системе. 1248 01:02:52,970 --> 01:02:54,570 Сегодня мы говорили о двоичной системе. 1249 01:02:54,570 --> 01:02:59,010 Оказывается, шестнадцатеричное очень общая базовая система для использования в вычислениях. 1250 01:02:59,010 --> 01:03:04,960 Binary два, десятичное 10, шестнадцатеричное 16. 1251 01:03:04,960 --> 01:03:08,640 И получается, как сделать вы рассчитываете в шестнадцатеричном? 1252 01:03:08,640 --> 01:03:11,620 Ноль, один, два, три, четыре, пять, шесть, семь, восемь, 1253 01:03:11,620 --> 01:03:14,730 девять, что вы используете после девяти? 1254 01:03:14,730 --> 01:03:16,600 Какой следующий номер? 1255 01:03:16,600 --> 01:03:19,180 Мы уже привыкли к нулю. 1256 01:03:19,180 --> 01:03:20,570 Мне нужно 16 из них. 1257 01:03:20,570 --> 01:03:25,770 Ноль, один, два, три, четыре, пять, шесть, семь, восемь, девять, 1258 01:03:25,770 --> 01:03:27,520 Вы нуждаетесь в некоторой произвольной конвенции. 1259 01:03:27,520 --> 01:03:30,810 >> И то, что человечество решило какое-то время назад, что после того, как девять приходит письмо 1260 01:03:30,810 --> 01:03:34,450 А, а затем B, а затем С. Таким образом, как вы рассчитывать в шестнадцатеричном 1261 01:03:34,450 --> 01:03:37,040 равен нулю, один, два, три, четыре, пять, шесть, семь, восемь, девять, 1262 01:03:37,040 --> 01:03:42,880 A, B, C, D, E, F, и что будет рассчитывать вы все пути, оказывается, до 15. 1263 01:03:42,880 --> 01:03:47,850 Таким образом, от нуля до 15 равно нулю через F. Теперь почему это важно? 1264 01:03:47,850 --> 01:03:51,570 Хорошо, когда у вас есть два F-х, вот как вы выражаете 255. 1265 01:03:51,570 --> 01:03:54,350 >> Так Короче говоря, в мир Photoshop, 1266 01:03:54,350 --> 01:03:57,299 что графический дизайн программного обеспечения, в мире веб-разработки, 1267 01:03:57,299 --> 01:03:59,590 где у вас есть много цветов, конечно, играть, 1268 01:03:59,590 --> 01:04:02,350 часто программисты выразить те, в шестнадцатеричной системе, 1269 01:04:02,350 --> 01:04:05,260 только потому, что, как правило, чтобы быть немного проще. 1270 01:04:05,260 --> 01:04:07,850 Даже если на первый взгляд это гораздо сложнее. 1271 01:04:07,850 --> 01:04:11,590 >> Таким образом, в любом случае, это важно потому что Ник в Стэнфорде 1272 01:04:11,590 --> 01:04:15,100 дал нам шесть кусков функциональности что вы, начинающие программисты, 1273 01:04:15,100 --> 01:04:17,060 теперь будут иметь возможность использовать. 1274 01:04:17,060 --> 01:04:19,960 Встроенный в эту сеть страница шесть функций, 1275 01:04:19,960 --> 01:04:21,820 шесть процедур, которые Ник написал. 1276 01:04:21,820 --> 01:04:26,800 Трое из них получит Вас номер, красный, зеленый или синий значение. 1277 01:04:26,800 --> 01:04:28,787 Три из них будет установлено, что значение. 1278 01:04:28,787 --> 01:04:30,620 И эти символы подчеркивания просто заполнители, 1279 01:04:30,620 --> 01:04:32,600 так что вы должны знать, что это такое. 1280 01:04:32,600 --> 01:04:36,240 >> Так что с этими тремя функциями, первый из этих вещей 1281 01:04:36,240 --> 01:04:39,190 будет х-координат, и второй из этих вещей 1282 01:04:39,190 --> 01:04:40,700 будет у-координат. 1283 01:04:40,700 --> 01:04:44,650 Другими словами, которые Дот, которая пикселей вы хотите получить зеленый цвет, 1284 01:04:44,650 --> 01:04:46,480 получить синий цвет, получить красный цвет. 1285 01:04:46,480 --> 01:04:51,440 А потом здесь, это будет х, это будет иметь значение у, 1286 01:04:51,440 --> 01:04:55,379 и это будет номер. 1287 01:04:55,379 --> 01:04:57,170 Так давайте сделаем первый линия это вместе 1288 01:04:57,170 --> 01:05:00,220 а потом я оставлю его вам чтобы попытаться вывести все остальное. 1289 01:05:00,220 --> 01:05:03,100 Таким образом, в соответствии с инструкциями На этой странице, нам нужно 1290 01:05:03,100 --> 01:05:08,960 увеличить красный цвет с коэффициентом 10, и нам нужно удалить зеленый 1291 01:05:08,960 --> 01:05:09,930 и удалите синий цвет. 1292 01:05:09,930 --> 01:05:12,410 Давайте начнем с последних сценариев. 1293 01:05:12,410 --> 01:05:17,760 Так что, если я хочу, и я собираюсь для отступа с помощью некоторых пространств, 1294 01:05:17,760 --> 01:05:22,291 если я хочу, чтобы установить красный, зеленый или синий значение, 1295 01:05:22,291 --> 01:05:23,540 Я собираюсь сделать следующее. 1296 01:05:23,540 --> 01:05:31,280 >> Изображение, im.setBlue, а затем основанный на моих инструкций здесь, 1297 01:05:31,280 --> 01:05:36,700 какие три вещи я должен типа внутри скобок сейчас? 1298 01:05:36,700 --> 01:05:41,960 Мне нужен х значения, у значение, и какое число 1299 01:05:41,960 --> 01:05:48,770 я должен поставить здесь, если я хочу, чтобы избавиться от на ровном месте, на основе этой истории здесь? 1300 01:05:48,770 --> 01:05:49,630 Просто ноль. 1301 01:05:49,630 --> 01:05:52,420 Если я не хочу, не голубой, я просто собирается изменить его к нулю. 1302 01:05:52,420 --> 01:05:54,465 >> Теперь давайте просто резюмировать то, что это делает. 1303 01:05:54,465 --> 01:05:56,970 1304 01:05:56,970 --> 01:06:01,170 У меня есть здесь на вершине Вторая и третья строки, 1305 01:06:01,170 --> 01:06:04,080 Я утверждал, две петли, вложенные циклы, если вы 1306 01:06:04,080 --> 01:06:08,360 будет, что будем иметь эффект прогрессирующей слева направо, 1307 01:06:08,360 --> 01:06:11,590 сверху вниз по всем х ценности и все значения у. 1308 01:06:11,590 --> 01:06:15,167 Потому что опять же, картина просто сетку из строк и столбцов. 1309 01:06:15,167 --> 01:06:17,000 Так что это собирается получить избавиться от всех синего. 1310 01:06:17,000 --> 01:06:18,627 Позвольте мне оставить в следующей строке для вас. 1311 01:06:18,627 --> 01:06:20,043 Как избавиться от всех зеленых? 1312 01:06:20,043 --> 01:06:23,747 1313 01:06:23,747 --> 01:06:25,140 >> ЗРИТЕЛИ: [неразборчиво] 1314 01:06:25,140 --> 01:06:26,151 >> DAVID Маланом: Ницца. 1315 01:06:26,151 --> 01:06:28,260 >> ЗРИТЕЛИ: [неразборчиво] 1316 01:06:28,260 --> 01:06:30,850 >> DAVID Маланом: Ницца. 1317 01:06:30,850 --> 01:06:36,120 И я буду удалять, а просто взять заботиться о том, что вы не сделали никаких опечаток. 1318 01:06:36,120 --> 01:06:39,390 И если вы чувствуете себя комфортно с тем, что вы сделали, 1319 01:06:39,390 --> 01:06:42,936 идти вперед и нажмите на кнопку Выполнить / Сохранить и посмотрите, что получится. 1320 01:06:42,936 --> 01:06:46,982 1321 01:06:46,982 --> 01:06:48,690 И опять же, мы сделали всего три изменения. 1322 01:06:48,690 --> 01:06:52,130 Мы удалили, что первый комментарии и заменить его 1323 01:06:52,130 --> 01:06:53,575 с этими двумя строками кода. 1324 01:06:53,575 --> 01:06:55,742 1325 01:06:55,742 --> 01:06:58,450 И это нормально, если вам нужно попасть кнопку Выполнить / Сохранить пару раз 1326 01:06:58,450 --> 01:07:01,190 чтобы что-то исправить. 1327 01:07:01,190 --> 01:07:03,610 >> И позвольте мне также увеличить на мой код, так что вы можете транскрибировать. 1328 01:07:03,610 --> 01:07:04,110 Хорошо. 1329 01:07:04,110 --> 01:07:08,720 Так что я вижу Эндрю что кажется ошибкой. 1330 01:07:08,720 --> 01:07:11,110 Он только что получил большой черный прямоугольник на его экране. 1331 01:07:11,110 --> 01:07:13,120 Кто-нибудь еще есть большой черный прямоугольник? 1332 01:07:13,120 --> 01:07:13,390 >> ЗРИТЕЛИ: Да. 1333 01:07:13,390 --> 01:07:14,360 >> DAVID Маланом: Большой черный прямоугольник? 1334 01:07:14,360 --> 01:07:16,068 ОК, так что давайте думать о том, что это значит. 1335 01:07:16,068 --> 01:07:20,560 Мы сказали, что ноль, ноль, ноль, так что не зеленый, ни красный, ни синий, 1336 01:07:20,560 --> 01:07:21,980 собирается дать вам черный. 1337 01:07:21,980 --> 01:07:24,467 И получается, что большинство наших ноутбуков 1338 01:07:24,467 --> 01:07:25,800 просто не хватает верности. 1339 01:07:25,800 --> 01:07:27,750 Вы не можете точно сказать, есть на самом деле что-то есть. 1340 01:07:27,750 --> 01:07:30,340 И если вы вид, может быть, наклониться ваш экран вперед и назад, 1341 01:07:30,340 --> 01:07:32,850 может быть, вы видите кое-что там? 1342 01:07:32,850 --> 01:07:34,820 Может быть, своего рода, своего рода? 1343 01:07:34,820 --> 01:07:36,640 Это не совсем черный. 1344 01:07:36,640 --> 01:07:38,050 >> ЗРИТЕЛИ: [неразборчиво] 1345 01:07:38,050 --> 01:07:39,510 >> DAVID Маланом: Спойлер! 1346 01:07:39,510 --> 01:07:42,610 Существует некоторый красный есть, но помните из спецификаций 1347 01:07:42,610 --> 01:07:44,940 проблемы, Ник тонированное его вниз. 1348 01:07:44,940 --> 01:07:47,860 Он ненасыщенный его немного, но не все пути к нулю. 1349 01:07:47,860 --> 01:07:51,670 Так что, если мы хотим, чтобы увеличить количество красного цвета, позвольте мне предложить этот трюк. 1350 01:07:51,670 --> 01:07:53,750 Позвольте мне увеличить на моем экране. 1351 01:07:53,750 --> 01:07:58,678 И позвольте мне идти вперед и сказать, сумма равна im.getRed (х, у). 1352 01:07:58,678 --> 01:08:02,440 1353 01:08:02,440 --> 01:08:05,790 >> Эта строка кода дает мне то, что называется переменной. 1354 01:08:05,790 --> 01:08:09,643 У меня есть произвольно, но, возможно, обоснованно назвал свою переменную, что, 1355 01:08:09,643 --> 01:08:10,143 по всей видимости? 1356 01:08:10,143 --> 01:08:13,530 1357 01:08:13,530 --> 01:08:14,340 Количество. 1358 01:08:14,340 --> 01:08:14,980 Просто сумма. 1359 01:08:14,980 --> 01:08:16,960 Я мог бы назвать его все, что я хочу, но я 1360 01:08:16,960 --> 01:08:19,490 используя эту другую функцию что я описал ранее 1361 01:08:19,490 --> 01:08:25,359 чтобы получить количество красного цвета в точке х запятая у. 1362 01:08:25,359 --> 01:08:27,520 Почему я сделал это? 1363 01:08:27,520 --> 01:08:30,004 Что вы хотите здесь делать? 1364 01:08:30,004 --> 01:08:32,910 1365 01:08:32,910 --> 01:08:33,619 Вам нужно add-- 1366 01:08:33,619 --> 01:08:34,493 ЗРИТЕЛИ: [неразборчиво] 1367 01:08:34,493 --> 01:08:36,279 DAVID Маланом: Да, может быть, умножить его на 10. 1368 01:08:36,279 --> 01:08:38,862 И если вы не знаете этого, я идти вперед и делать это. 1369 01:08:38,862 --> 01:08:42,060 Я собираюсь идти вперед и скажем, я хочу количество красного цвета 1370 01:08:42,060 --> 01:08:46,550 Я хочу быть что угодно находится в минусе, раз 10, 1371 01:08:46,550 --> 01:08:50,330 и звезда, звездочка на вашем клавиатура the-- не используют х. 1372 01:08:50,330 --> 01:08:51,569 Используйте звезду. 1373 01:08:51,569 --> 01:08:55,350 Вот как вы умножаете вещи в большинстве языков программирования. 1374 01:08:55,350 --> 01:08:59,790 >> Так, по интуиции Kareem, в хранится в этой переменной называется сумма, 1375 01:08:59,790 --> 01:09:03,649 насколько красный Я хочу, чтобы в точке ху. 1376 01:09:03,649 --> 01:09:11,500 Как сейчас, я делаю что Пиксельные это число? 1377 01:09:11,500 --> 01:09:12,859 Вы уже сделали это раньше. 1378 01:09:12,859 --> 01:09:17,666 Вы устанавливаете зеленый и синего до никакого значения, к нулю. 1379 01:09:17,666 --> 01:09:18,540 ЗРИТЕЛИ: [неразборчиво] 1380 01:09:18,540 --> 01:09:20,040 DAVID Маланом: Да, хорошо вы не хотите его 10. 1381 01:09:20,040 --> 01:09:21,460 Вы уже сделали математику здесь. 1382 01:09:21,460 --> 01:09:24,779 Таким образом, мы получаем значение красного цвета, который представляет собой небольшое число, по-видимому. 1383 01:09:24,779 --> 01:09:26,180 Мы умножая до +10. 1384 01:09:26,180 --> 01:09:29,139 То, что вы хотите сделать с переменная величина в настоящее время? 1385 01:09:29,139 --> 01:09:30,130 >> ЗРИТЕЛИ: [неразборчиво] 1386 01:09:30,130 --> 01:09:30,880 >> DAVID Маланом: Ницца. 1387 01:09:30,880 --> 01:09:34,616 Так im.set-- что? 1388 01:09:34,616 --> 01:09:35,640 >> ЗРИТЕЛИ: setRed. 1389 01:09:35,640 --> 01:09:39,760 >> DAVID Маланом: setRed, в точке ху. 1390 01:09:39,760 --> 01:09:40,260 Да. 1391 01:09:40,260 --> 01:09:41,200 И только сумма. 1392 01:09:41,200 --> 01:09:44,257 Другими словами, переменная временный заполнитель 1393 01:09:44,257 --> 01:09:45,840 что вы можете положить все, что вы хотите в. 1394 01:09:45,840 --> 01:09:48,680 Мы, случается, полагая а количество в нем, в данный момент. 1395 01:09:48,680 --> 01:09:51,569 Мы умножив его на 10, чтобы сделать его больше. 1396 01:09:51,569 --> 01:09:56,480 И теперь я подставляя эту переменную как то третий аргумент, или введите 1397 01:09:56,480 --> 01:09:57,810 установить красный. 1398 01:09:57,810 --> 01:10:00,440 И так, что как только вы закончить это, и принять к сведению 1399 01:10:00,440 --> 01:10:02,330 из точки с запятой и в скобках. 1400 01:10:02,330 --> 01:10:06,290 >> Идите вперед и нажмите запустить / сохранить снова, и вы 1401 01:10:06,290 --> 01:10:10,690 должны видеть, волшебным образом, что было на самом деле там. [? Arwa,?], Что там? 1402 01:10:10,690 --> 01:10:16,412 Эйфелева башня в полноправных красный, не совсем темно. 1403 01:10:16,412 --> 01:10:17,870 она должна быть более очевидным сейчас, да? 1404 01:10:17,870 --> 01:10:18,840 ОК. 1405 01:10:18,840 --> 01:10:20,215 И Андрей, не более черный ящик? 1406 01:10:20,215 --> 01:10:21,090 ЗРИТЕЛИ: [неразборчиво] 1407 01:10:21,090 --> 01:10:22,180 DAVID Маланом: Хорошо. 1408 01:10:22,180 --> 01:10:23,610 Так что я буду держать это на экране. 1409 01:10:23,610 --> 01:10:27,010 Если вы хотите играть с этим позже, я воссоздать это для вас. 1410 01:10:27,010 --> 01:10:29,140 Но этот код здесь сделал именно это. 1411 01:10:29,140 --> 01:10:31,460 Почему мы не делаем друг друга. 1412 01:10:31,460 --> 01:10:33,880 Позвольте мне прокрутить вниз немного. 1413 01:10:33,880 --> 01:10:36,760 >> Так что в этом случае, проектор на самом деле не делают это справедливость. 1414 01:10:36,760 --> 01:10:40,486 Но на ваших экранах, вы, вероятно, имеют очень красный и очень черный ящик. 1415 01:10:40,486 --> 01:10:42,610 Это тоже загадка, что показывает что-то известный. 1416 01:10:42,610 --> 01:10:44,193 Тем не менее, изображение было искажено. 1417 01:10:44,193 --> 01:10:47,740 Истинное изображение, на этот раз, является в синих и зеленых ценностей. 1418 01:10:47,740 --> 01:10:51,820 Тем не менее, они все были разделены на 20 так что значения очень малы. 1419 01:10:51,820 --> 01:10:54,660 Красные значения просто случайные числа, шум. 1420 01:10:54,660 --> 01:10:57,190 Отменить эти искажения раскрыть истинный образ. 1421 01:10:57,190 --> 01:10:59,200 >> Так что Ник тогда говорит вам, что делать. 1422 01:10:59,200 --> 01:11:04,290 Установить красные значения до нуля, и то не испортит, что это такое. 1423 01:11:04,290 --> 01:11:07,110 Затем умножьте синий и зеленые значения на 20. 1424 01:11:07,110 --> 01:11:09,820 Так что это почти та же программа, как и раньше, 1425 01:11:09,820 --> 01:11:11,380 но вы задним ходом процесса. 1426 01:11:11,380 --> 01:11:13,780 И я поместит свой код из пока на экране в случае 1427 01:11:13,780 --> 01:11:16,650 Вы хотите, чтобы вернуться к нему или играть дальше с тем. 1428 01:11:16,650 --> 01:11:18,100 Позвольте мне увеличить на это. 1429 01:11:18,100 --> 01:11:21,450 Но решить медный изображение головоломка, номер два. 1430 01:11:21,450 --> 01:11:37,623 1431 01:11:37,623 --> 01:11:40,580 >> ЗРИТЕЛИ: [неразборчиво] 1432 01:11:40,580 --> 01:11:44,010 >> DAVID Маланом: Хорошо, так что это один я не собирается давать столько подсказок. 1433 01:11:44,010 --> 01:11:47,220 Так что я would-- ой, давайте Понимаете, у вас есть опечатка здесь. 1434 01:11:47,220 --> 01:11:49,621 Так что помните, это здесь на самом деле нужно идти туда. 1435 01:11:49,621 --> 01:11:52,870 Так что я хотел бы предложить, если вы хотите сосредоточить внимание на этом, есть ответ. 1436 01:11:52,870 --> 01:11:57,060 Если вы хотите записать, что, что должен получить первый один рабочий. 1437 01:11:57,060 --> 01:11:59,910 И тогда вы можете использовать его в качестве вдохновение для второй. 1438 01:11:59,910 --> 01:12:02,230 Ницца. 1439 01:12:02,230 --> 01:12:02,730 Хорошо. 1440 01:12:02,730 --> 01:12:05,430 1441 01:12:05,430 --> 01:12:08,180 >> И для любопытных, это простой пример 1442 01:12:08,180 --> 01:12:11,080 науки или искусства называется стеганография, 1443 01:12:11,080 --> 01:12:14,100 искусство сокрытия информации в изображениях. 1444 01:12:14,100 --> 01:12:16,890 Как правило, изображения могут быть водяными очень грубо 1445 01:12:16,890 --> 01:12:19,500 с логотипом в нижней части угол, но ясно, что вы 1446 01:12:19,500 --> 01:12:22,070 может быть намного более сложными об этом и на самом деле 1447 01:12:22,070 --> 01:12:25,050 скрыть другие изображения в изображениях как-то с этой техникой. 1448 01:12:25,050 --> 01:12:59,890 1449 01:12:59,890 --> 01:13:05,770 >> Возьмите еще 30 секунд, а затем мы по крайней мере, объявить, что вы должны увидеть. 1450 01:13:05,770 --> 01:13:08,330 И я оставлю третий один, как в домашних условиях упражнения, 1451 01:13:08,330 --> 01:13:11,353 если вы хотите больше из вызов в эти выходные. 1452 01:13:11,353 --> 01:13:18,240 1453 01:13:18,240 --> 01:13:20,390 И я думаю, что Андрей может получили его в первую очередь. 1454 01:13:20,390 --> 01:13:22,645 Что такое второе изображение, Эндрю? 1455 01:13:22,645 --> 01:13:23,920 >> ЗРИТЕЛИ: Статуя Свободы. 1456 01:13:23,920 --> 01:13:28,500 >> DAVID Маланом: Статуя Свободы будет ответом на этот раз. 1457 01:13:28,500 --> 01:13:31,140 Так опять же, просто некоторые простые примеры, цель которых 1458 01:13:31,140 --> 01:13:35,040 чтобы дать вам ощущение того, как мы перевели изобразительный Царапину 1459 01:13:35,040 --> 01:13:40,410 блоки к более раздражающим и многое другое сложный код, но все идеи 1460 01:13:40,410 --> 01:13:42,980 до сих пор точно так же, хотя и с введением 1461 01:13:42,980 --> 01:13:48,380 Теперь понятия переменной, будучи в состоянии хранить что-то временно. 1462 01:13:48,380 --> 01:13:51,750 >> Давайте сделаем еще один практический, только теперь соединяют точки 1463 01:13:51,750 --> 01:13:53,880 к чему-то немного больше реального мира. 1464 01:13:53,880 --> 01:13:56,610 Когда вы будете готовы, если вы могли бы перейти к этому URL на экране. 1465 01:13:56,610 --> 01:14:00,610 Это также в свою копию слайды, developers.google.com/maps~~V. 1466 01:14:00,610 --> 01:14:03,660 Давайте на самом деле сделать что-то реальный, так сказать, на веб-сайте 1467 01:14:03,660 --> 01:14:07,600 с помощью API Карт Google, или интерфейс прикладного программирования, 1468 01:14:07,600 --> 01:14:08,940 следующим образом. 1469 01:14:08,940 --> 01:14:12,341 >> Google, как и многие другие компании, обеспечивает много свободного функциональности 1470 01:14:12,341 --> 01:14:14,840 что вы можете использовать, чтобы построить свой собственные интересные приложения. 1471 01:14:14,840 --> 01:14:18,890 На самом деле, если вы когда-либо использовали Uber, чтобы получить такси или автомобиль, 1472 01:14:18,890 --> 01:14:21,640 Вы, наверное, знаете, что есть Uber карту, и это показывает автомобили на нем. 1473 01:14:21,640 --> 01:14:24,870 То есть, как лучше всего, как я могу скажите, Google Maps API. 1474 01:14:24,870 --> 01:14:28,884 Они на самом деле с помощью карт Google, но Uber не является отображением компании, 1475 01:14:28,884 --> 01:14:31,050 и не будет, что будет Особенно интересной проблемой 1476 01:14:31,050 --> 01:14:33,510 решить на вершине своей проблема автосервиса. 1477 01:14:33,510 --> 01:14:35,510 И вот они стоят, опять же, на плечах 1478 01:14:35,510 --> 01:14:37,520 других, Google в этом случае. 1479 01:14:37,520 --> 01:14:42,850 Таким образом, они используют карты Google, но их собственные автосервисы и другие подобные функции. 1480 01:14:42,850 --> 01:14:47,770 >> Итак, мы собираемся, чтобы воспользоваться это сделать следующее. 1481 01:14:47,770 --> 01:14:50,230 И если я зашел слишком быстро, просто позвоните меня в данный момент. 1482 01:14:50,230 --> 01:14:53,500 Счастливый резюмировать некоторые вещи изображения. 1483 01:14:53,500 --> 01:14:56,290 Вы должны видеть себя на странице, как это. 1484 01:14:56,290 --> 01:14:58,230 Так приятно Google, и они одними из лучших 1485 01:14:58,230 --> 01:15:01,364 обеспечить не только API-интерфейсы, но свободные API-интерфейсы, которые вы 1486 01:15:01,364 --> 01:15:02,780 может играть с или использовать в коммерческих целях. 1487 01:15:02,780 --> 01:15:06,450 Они начинают, если ваше использование взимании платы высока, но я пошел вперед, заранее 1488 01:15:06,450 --> 01:15:10,490 и подписал нас для бесплатной учетной записи что, надеюсь, 10 компьютеров 1489 01:15:10,490 --> 01:15:12,480 не будет дисквалифицировать нас за внезапно. 1490 01:15:12,480 --> 01:15:14,320 Таким образом, мы надеемся, это демонстрация будет работать. 1491 01:15:14,320 --> 01:15:18,840 >> И заметьте, что у них есть API-интерфейсы для Android, IOS, веб, и веб-сервисы, 1492 01:15:18,840 --> 01:15:19,620 что бы это ни. 1493 01:15:19,620 --> 01:15:20,700 Давайте сосредоточимся на Интернете. 1494 01:15:20,700 --> 01:15:26,560 Таким образом, нажмите на розовый ящик, веб-страниц, и что приведет вас, надеюсь, на страницу 1495 01:15:26,560 --> 01:15:27,630 Вот. 1496 01:15:27,630 --> 01:15:29,335 И у них есть целая куча API. 1497 01:15:29,335 --> 01:15:31,210 И это может быть немного подавляющим сначала, 1498 01:15:31,210 --> 01:15:33,000 но я буду направить нас через то, что мы хотим. 1499 01:15:33,000 --> 01:15:38,500 >> В левом верхнем углу находится Карт Google JavaScript API, то API JavaScript. 1500 01:15:38,500 --> 01:15:40,380 Так идти вперед и нажмите эту. 1501 01:15:40,380 --> 01:15:49,360 И это приведет вас теперь к следующая страница, демонстрационные и примеры кода. 1502 01:15:49,360 --> 01:15:51,190 Позвольте мне увеличить здесь. 1503 01:15:51,190 --> 01:15:56,300 И позвольте мне заставить нас прокрутить вниз, целью которых где он говорит, что быстрые шаги запуска. 1504 01:15:56,300 --> 01:15:57,970 Ваш экран должен выглядеть, как у меня. 1505 01:15:57,970 --> 01:16:01,130 >> И есть два шага, получить ключ и приступить к разработке. 1506 01:16:01,130 --> 01:16:04,190 Я уже сделал шаг один для нам, получая так называемую ключ. 1507 01:16:04,190 --> 01:16:05,320 И это общая идея. 1508 01:16:05,320 --> 01:16:09,210 Ключ API, как правило, только большое случайное число или строка 1509 01:16:09,210 --> 01:16:11,130 что вы должны вставить в код, 1510 01:16:11,130 --> 01:16:15,280 так что Google знает, кто ты, когда вы используете их службы, их API. 1511 01:16:15,280 --> 01:16:17,370 Это не значит, что мы заряжается ничего. 1512 01:16:17,370 --> 01:16:21,030 А сейчас, нажмите, вместо того, чтобы один, нажмите начать разработку. 1513 01:16:21,030 --> 01:16:25,990 Если бы вы могли просто помахать мне более, если не уверены, где мы находимся. 1514 01:16:25,990 --> 01:16:28,040 >> Таким образом, мы просто поцарапать поверхность, здесь, но то, что 1515 01:16:28,040 --> 01:16:31,000 Я думал, что было бы убедительным это на самом деле есть все мы, 1516 01:16:31,000 --> 01:16:34,240 используя Cloud9 в одном окне и этот учебник в другом окне, 1517 01:16:34,240 --> 01:16:37,120 позволяет фактически получить наши собственные приложений и работает 1518 01:16:37,120 --> 01:16:40,920 которая встраивает обычай Google карту в нашем собственном веб-странице, 1519 01:16:40,920 --> 01:16:43,010 а затем добавляет одну или две функции. 1520 01:16:43,010 --> 01:16:45,520 Но мы просто поцарапать поверхность того, что мы можем сделать. 1521 01:16:45,520 --> 01:16:47,020 >> Так просто быстрая проверка вменяемости. 1522 01:16:47,020 --> 01:16:49,740 Это все на этой странице, Google Maps JavaScript API? 1523 01:16:49,740 --> 01:16:50,872 Должен сказать, начать работу. 1524 01:16:50,872 --> 01:16:53,330 Мы не собираемся пройти через все это любыми средствами. 1525 01:16:53,330 --> 01:16:58,090 ОК, в другой вкладке, если вы этого не сделаете открыть его, не идут в Cloud9 1526 01:16:58,090 --> 01:17:03,500 и получить себя только новая вкладка, в конечном счете. 1527 01:17:03,500 --> 01:17:11,070 Так опять же, c9.io со вчерашнего дня, c9.io, и просто создать новый файл. 1528 01:17:11,070 --> 01:17:13,500 И идти вперед и вызов это все, что вы хотите. 1529 01:17:13,500 --> 01:17:16,495 Я назвал мое map.html. 1530 01:17:16,495 --> 01:17:17,870 Назовите это что-нибудь заканчивается на .html. 1531 01:17:17,870 --> 01:17:23,930 1532 01:17:23,930 --> 01:17:26,580 И вы должны быть примерно где я нахожусь в этом процессе 1533 01:17:26,580 --> 01:17:31,470 только с мигающей строки в пустой вкладка под названием что-то вроде map.html. 1534 01:17:31,470 --> 01:17:35,808 1535 01:17:35,808 --> 01:17:38,148 Или файл, новый файл на этот раз. 1536 01:17:38,148 --> 01:17:41,960 1537 01:17:41,960 --> 01:17:48,000 >> А теперь, на протяжении Google Maps JavaScript API, 1538 01:17:48,000 --> 01:17:50,010 мы пропустим чтение через весь этот текст. 1539 01:17:50,010 --> 01:17:53,760 Но заметьте, что это привет мир на самом деле везде, вы видите его сейчас. 1540 01:17:53,760 --> 01:17:58,020 Привет мир имеет такой большой красочный Пример целой кучей HTML. 1541 01:17:58,020 --> 01:18:03,590 Идем дальше и скопировать и вставить только что HTML, поэтому от типа документа в верхней 1542 01:18:03,590 --> 01:18:08,810 все пути к тесной HTML тега, перейдите вперед и скопировать все that-- снова, 1543 01:18:08,810 --> 01:18:14,430 это под привет мир example-- и вставьте его в вашу вкладку Cloud9, 1544 01:18:14,430 --> 01:18:17,996 так что теперь ваш экран должен выглядеть примерно как у меня. 1545 01:18:17,996 --> 01:18:22,280 1546 01:18:22,280 --> 01:18:24,520 >> И вы можете сохранить его, но не загружать его только пока. 1547 01:18:24,520 --> 01:18:26,290 Давайте сначала посмотрим на код и посмотреть, если мы 1548 01:18:26,290 --> 01:18:29,110 не может вывести или узнать от того, что это Google 1549 01:18:29,110 --> 01:18:30,860 была нам слепо копировать и вставлять. 1550 01:18:30,860 --> 01:18:33,334 Они просто хотят, чтобы помочь, в буквальном смысле, чтобы нас начали, 1551 01:18:33,334 --> 01:18:35,500 но там не так много сложность на самом деле есть. 1552 01:18:35,500 --> 01:18:40,100 1553 01:18:40,100 --> 01:18:42,210 Есть вопросы только пока? 1554 01:18:42,210 --> 01:18:43,790 Мы в безопасности, чтобы продвигаться вперед? 1555 01:18:43,790 --> 01:18:44,330 ОК. 1556 01:18:44,330 --> 01:18:46,800 >> Так быстро, давайте просто делать некоторые быстрые проверки здравомыслие. 1557 01:18:46,800 --> 01:18:48,800 Линия один из того, что я см, и, надеюсь, вам 1558 01:18:48,800 --> 01:18:51,710 Понимаете, что это значит, DOCTYPE HTML? 1559 01:18:51,710 --> 01:18:52,385 Карима, напомнить? 1560 01:18:52,385 --> 01:18:53,260 ЗРИТЕЛИ: [неразборчиво] 1561 01:18:53,260 --> 01:18:53,968 DAVID Маланом: Да. 1562 01:18:53,968 --> 01:18:54,870 Вот идет HTML 5. 1563 01:18:54,870 --> 01:18:57,950 В то же время, линия два на Экран здесь означает, эй браузер, 1564 01:18:57,950 --> 01:18:59,482 здесь приходит фактический HTML. 1565 01:18:59,482 --> 01:19:01,440 Линия три является эй-браузер, здесь идет голова. 1566 01:19:01,440 --> 01:19:04,260 Линия четыре, конечно же, эй браузер, здесь приходит название. 1567 01:19:04,260 --> 01:19:07,780 Что линия пять делать? 1568 01:19:07,780 --> 01:19:09,930 На самом деле, это не действительно сделать что-нибудь для нас. 1569 01:19:09,930 --> 01:19:13,340 В этом случае он просто изменяет размеры страница к дефолту. Линия шесть, 1570 01:19:13,340 --> 01:19:16,140 мы не говорили об этом, но это определяет кодировку. 1571 01:19:16,140 --> 01:19:19,181 Там в различные способы кодирования файлов, особенно для иностранных языков. 1572 01:19:19,181 --> 01:19:21,100 UTF-8 просто, как правило, по умолчанию. 1573 01:19:21,100 --> 01:19:26,580 >> Так что теперь мы увидим в строке семь через 16 лет, некоторые CSS. 1574 01:19:26,580 --> 01:19:29,260 И несмотря на то, что мы не видели все эти вещи раньше, 1575 01:19:29,260 --> 01:19:30,810 мы можем сделать вывод, своего рода. 1576 01:19:30,810 --> 01:19:37,075 Так линия восемь средств, эй браузер, применить все следующие, к которым два тега, 1577 01:19:37,075 --> 01:19:37,575 по всей видимости? 1578 01:19:37,575 --> 01:19:40,650 1579 01:19:40,650 --> 01:19:41,701 HTML и тело текста. 1580 01:19:41,701 --> 01:19:43,200 Так запятая новая вещь есть. 1581 01:19:43,200 --> 01:19:46,140 И это просто способ указав несколько тегов сразу. 1582 01:19:46,140 --> 01:19:47,640 >> Тогда у нас есть фигурные скобки. 1583 01:19:47,640 --> 01:19:51,170 Так что, по-видимому, это говорит браузеру, сделать высоту страницы 100%. 1584 01:19:51,170 --> 01:19:54,170 Так что даже если есть очень мало содержание, сделать всю страницу, 1585 01:19:54,170 --> 01:19:55,530 сделать вещь заполнения страницы. 1586 01:19:55,530 --> 01:19:57,524 Сделать карту в конечном счете, заполнения страницы. 1587 01:19:57,524 --> 01:19:58,690 Маржа, что это значит? 1588 01:19:58,690 --> 01:20:01,559 Это, как правило, как произвольное белое пространство по краям 1589 01:20:01,559 --> 01:20:04,350 что некоторые браузера дизайнер просто решил должен быть там, потому что 1590 01:20:04,350 --> 01:20:05,540 вид делает вещи выглядят чище. 1591 01:20:05,540 --> 01:20:06,498 Но мы не хотим этого. 1592 01:20:06,498 --> 01:20:08,710 Мы хотим, чтобы карта собирается все пути к краям. 1593 01:20:08,710 --> 01:20:10,930 Перетяжка, сходны по духу с окраин. 1594 01:20:10,930 --> 01:20:14,980 Поля означают снаружи, средства обивка внутри, но это тот же самый вид сделки. 1595 01:20:14,980 --> 01:20:17,520 Это немного буфера между вами и краями. 1596 01:20:17,520 --> 01:20:21,170 >> И тогда линия 13 является хорошим шанс для быстрого обзора. 1597 01:20:21,170 --> 01:20:26,440 Что делает резкий знак карты значит, или хэштегом карта означает? 1598 01:20:26,440 --> 01:20:29,650 Что означает, что относятся, в принципе? 1599 01:20:29,650 --> 01:20:31,485 >> ЗРИТЕЛИ: [неразборчиво] 1600 01:20:31,485 --> 01:20:32,360 DAVID Маланом: Совершенно верно. 1601 01:20:32,360 --> 01:20:36,900 Это свойство, это свойство CSS относится к только одной вещи, тег HTML 1602 01:20:36,900 --> 01:20:41,180 что имеет идентификатор цитаты, Unquote "карте". 1603 01:20:41,180 --> 01:20:44,460 А теперь давайте быстро вперед, прокрутки вплоть до нижней части файла, который 1604 01:20:44,460 --> 01:20:49,860 не слишком далеко, и уведомление о линии 19, если вставить его в точности, как я сделал, 1605 01:20:49,860 --> 01:20:53,405 строка 19 имеет только DIV, который является раздел страницы, который я вчера 1606 01:20:53,405 --> 01:20:54,820 называется прямоугольная область. 1607 01:20:54,820 --> 01:20:55,820 Это не имеет ничего в нем. 1608 01:20:55,820 --> 01:20:57,550 Это открытый тег, закрывающий тег. 1609 01:20:57,550 --> 01:20:59,490 Но у него есть уникальный идентификатор. 1610 01:20:59,490 --> 01:21:02,090 >> Так что, как представляется, что здесь происходит Google 1611 01:21:02,090 --> 01:21:05,880 готовит нашу веб-страницу имеют полную высоту 100%, 1612 01:21:05,880 --> 01:21:09,680 и без отступов, без полей, потому что то, что мы собираемся положить внутрь 1613 01:21:09,680 --> 01:21:13,647 этого DIV, уникальный идентификатор карта, является актуальной встроенной карты. 1614 01:21:13,647 --> 01:21:15,480 И мы хотим, чтобы заполнить страницы, а не только 1615 01:21:15,480 --> 01:21:17,560 быть какой-то маленький прямоугольник в центре. 1616 01:21:17,560 --> 01:21:24,220 Таким образом, линия 14 так же подчеркивает, то карта сама должна иметь высоту 100%. 1617 01:21:24,220 --> 01:21:29,220 >> Так что теперь заметить между линиями 20 и 28, это JavaScript код. 1618 01:21:29,220 --> 01:21:33,020 И это, даже если это синтаксически немного странно, 1619 01:21:33,020 --> 01:21:34,730 там не все, что многое здесь происходит. 1620 01:21:34,730 --> 01:21:39,310 В строке 21, это объявляет то, что называется переменной. 1621 01:21:39,310 --> 01:21:42,030 Вместо того, чтобы называть его составляет, как мы это делали раньше, 1622 01:21:42,030 --> 01:21:44,500 мы более точно говоря переменная, которая просто означает переменную. 1623 01:21:44,500 --> 01:21:46,520 Мы могли бы использовать, что в код Ника, но он этого не сделал, так что я 1624 01:21:46,520 --> 01:21:48,190 не потрудился делать это либо. 1625 01:21:48,190 --> 01:21:50,240 Это переменная называется карту, а затем есть 1626 01:21:50,240 --> 01:21:53,360 функцию, которая по-видимому, называется initMap. 1627 01:21:53,360 --> 01:21:55,780 >> Так что это как наш собственный пользовательский кусок головоломки в пустом месте. 1628 01:21:55,780 --> 01:21:58,830 Мы создали кусок Функциональность называется initMap, 1629 01:21:58,830 --> 01:22:00,980 и вы можете отчасти сделать вывод что тут происходит. 1630 01:22:00,980 --> 01:22:02,930 Слева, у нас есть переменная, 1631 01:22:02,930 --> 01:22:06,000 поэтому мы собираемся поставить следующее вещь внутри этой переменной, 1632 01:22:06,000 --> 01:22:07,362 справа налево. 1633 01:22:07,362 --> 01:22:11,940 Правая рука говорит, эй браузер, дайте мне новую карту Google. 1634 01:22:11,940 --> 01:22:16,490 И google.maps.Map это просто обалденный способ указания, что эта функциональность 1635 01:22:16,490 --> 01:22:19,790 принадлежит Google Maps. 1636 01:22:19,790 --> 01:22:23,010 >> После того, как в скобках, мы уже видели это раньше, эй браузер, получить 1637 01:22:23,010 --> 01:22:29,210 мне элементы на странице, то тег на странице, чей уникальный идентификатор is-- 1638 01:22:29,210 --> 01:22:30,710 >> ЗРИТЕЛИ: [неразборчиво] 1639 01:22:30,710 --> 01:22:31,790 >> DAVID Маланом: --map. 1640 01:22:31,790 --> 01:22:35,770 А что происходит, ну, эта линия вместе, строка 23, 1641 01:22:35,770 --> 01:22:38,630 по сути говоря, эй браузер, иди со мной 1642 01:22:38,630 --> 01:22:42,800 что пустой DIV на странице чей уникальный идентификатор карты, 1643 01:22:42,800 --> 01:22:45,600 потому что я хочу, чтобы вставить в it-- впрыснуть в него, 1644 01:22:45,600 --> 01:22:49,520 если вы will-- целую кучу контента что случается, приходит из Интернета, 1645 01:22:49,520 --> 01:22:50,427 впоследствии. 1646 01:22:50,427 --> 01:22:52,010 И Google, делать все, что для нас. 1647 01:22:52,010 --> 01:22:55,350 >> Итак, еще раз, в самом конце дня, у нас есть этот пример абстракции. 1648 01:22:55,350 --> 01:22:58,610 Я понятия не имею, что такое карта или как реализовать карту API. 1649 01:22:58,610 --> 01:22:59,460 Нам не нужно. 1650 01:22:59,460 --> 01:23:02,740 Нам просто нужно сказать карту где поставить себя, и оставить 1651 01:23:02,740 --> 01:23:04,880 лежащие в основе реализации детали к Google. 1652 01:23:04,880 --> 01:23:08,190 В настоящее время существует, по-видимому две части данных 1653 01:23:08,190 --> 01:23:11,940 что этот пример предоставление в API Google. 1654 01:23:11,940 --> 01:23:16,450 По-видимому, центр карты, и уровень масштабирования, так сказать. 1655 01:23:16,450 --> 01:23:21,390 >> И кто-нибудь распознать их координаты, широта и долгота? 1656 01:23:21,390 --> 01:23:24,364 Скорее всего, нет, но мы можем вернуться в учебнике, в буквальном смысле видеть. 1657 01:23:24,364 --> 01:23:25,780 Но мы увидим его в мгновение. 1658 01:23:25,780 --> 01:23:29,880 Уровень масштабирования является значение между, я не знаете, один в 13 или что-то в этом роде. 1659 01:23:29,880 --> 01:23:32,880 Это просто нужно сделать с тем, как далеко вы сжата или растянута, и это все. 1660 01:23:32,880 --> 01:23:35,690 И теперь в самом конце страница, уведомление линии 29-- 1661 01:23:35,690 --> 01:23:39,960 это немного некрасиво, потому что она wraps-- эту строку кода 1662 01:23:39,960 --> 01:23:44,570 что загружает к браузер фактической API Google. 1663 01:23:44,570 --> 01:23:47,500 Весь код, что компании Google инженеры написали, реализующие 1664 01:23:47,500 --> 01:23:50,000 Вся эта особенность вложимых карт. 1665 01:23:50,000 --> 01:23:51,470 >> Теперь давайте ничего не изменится. 1666 01:23:51,470 --> 01:23:54,761 Если вы следуете, идти вперед и просто сохраните этот файл, если у вас действительно есть 1667 01:23:54,761 --> 01:23:55,760 что у меня есть. 1668 01:23:55,760 --> 01:23:57,370 Перейти к его URL. 1669 01:23:57,370 --> 01:23:59,820 Вы можете нажать кнопку Run наверху и что скажет 1670 01:23:59,820 --> 01:24:03,050 Вам URL вашего веб-сервера снова. 1671 01:24:03,050 --> 01:24:06,010 И это приведет вас к новой вкладке. 1672 01:24:06,010 --> 01:24:11,910 Если для Вас нажмите кнопку Открыть map.html, и шансы вы 1673 01:24:11,910 --> 01:24:15,520 собирается получить предупреждение, сообщение об ошибке, да? 1674 01:24:15,520 --> 01:24:18,570 Сообщение об ошибке, сообщения об ошибках? 1675 01:24:18,570 --> 01:24:21,170 >> Таким образом, к сожалению, ошибка сообщение не то, что просветительская 1676 01:24:21,170 --> 01:24:23,890 если вы на самом деле не открыть Консоль, что вкладка специальный мы 1677 01:24:23,890 --> 01:24:27,110 открывал вчера и чуть раньше сегодня. 1678 01:24:27,110 --> 01:24:29,445 Но я наткнулся это раньше, так что я уже 1679 01:24:29,445 --> 01:24:30,820 понял, что решение. 1680 01:24:30,820 --> 01:24:34,440 В сегодняшних слайдов, или скорее, в Cloud9, уведомление 1681 01:24:34,440 --> 01:24:36,430 что мы не делали что-то намеренно. 1682 01:24:36,430 --> 01:24:40,690 Обратите внимание на то, что этот сценарий тег строка 29, если вы прочитаете его, 1683 01:24:40,690 --> 01:24:44,440 это как maps.googleapis.com/~~pobj что-то, что-то, что-то, 1684 01:24:44,440 --> 01:24:46,430 обратите внимание на то кто-то, один из разработчиков, 1685 01:24:46,430 --> 01:24:50,040 пишет во всей столице письма, ваш ключ API. 1686 01:24:50,040 --> 01:24:51,700 >> Нам нужно вставить что-то там. 1687 01:24:51,700 --> 01:24:53,450 И это был шаг Я сделал для нас прежде, 1688 01:24:53,450 --> 01:24:57,190 и снова они могли бы черный список нам, если вдруг, 12 или больше из нас 1689 01:24:57,190 --> 01:24:59,470 начать использовать один и тот же ключ, но давайте посмотрим, что произойдет. 1690 01:24:59,470 --> 01:25:03,030 Так что если вы идете в сегодняшних слайды, один слайд позже, есть 1691 01:25:03,030 --> 01:25:07,070 это очень обалденный вид строки текста. 1692 01:25:07,070 --> 01:25:12,230 Идите вперед и просто скопировать, что и вставить его, где он говорит, что ваш ключ API. 1693 01:25:12,230 --> 01:25:15,120 Это тот, который я подписался на. 1694 01:25:15,120 --> 01:25:17,700 >> И, безусловно, не пытайтесь набрав его вручную, 1695 01:25:17,700 --> 01:25:21,210 потому что он чувствует себя таит в себе с опечатками, потенциально. 1696 01:25:21,210 --> 01:25:23,260 Так просто скопировать и вставить это. 1697 01:25:23,260 --> 01:25:26,090 И это собирается сделать линию больше, но сейчас, просто чтобы быть ясно, 1698 01:25:26,090 --> 01:25:29,540 она должна выглядеть немного больше как это, где ключ не равен 1699 01:25:29,540 --> 01:25:32,200 капитализируются кричать на вас. 1700 01:25:32,200 --> 01:25:34,810 Сохраните страницу, вернитесь назад на вкладку другой, перезагрузить, 1701 01:25:34,810 --> 01:25:36,770 и надеемся увидеть карту, где? 1702 01:25:36,770 --> 01:25:37,790 >> ЗРИТЕЛИ: Австралия. 1703 01:25:37,790 --> 01:25:38,748 >> DAVID Маланом: Австралия. 1704 01:25:38,748 --> 01:25:41,200 Так что, по-видимому, являются те, GPS-координаты Австралии. 1705 01:25:41,200 --> 01:25:44,491 И позвольте мне ходить на мгновение и помочь всем, кто не совсем там, 1706 01:25:44,491 --> 01:25:47,729 но позвольте мне предложить, с помощью Google, найти GPS-координаты вашего родного города 1707 01:25:47,729 --> 01:25:48,770 или ваш собственный родной стране. 1708 01:25:48,770 --> 01:25:51,436 И, вероятно, Google может превратить это вверх или Wikipedia может сказать вам. 1709 01:25:51,436 --> 01:25:54,410 Но выбрать два различных значения для широты и долготы, 1710 01:25:54,410 --> 01:25:57,530 вернуться и вставить их, и Затем перезагрузите страницу после сохранения 1711 01:25:57,530 --> 01:26:00,718 и посмотреть, если вы можете иметь карта для вашего родного города. 1712 01:26:00,718 --> 01:26:04,500 1713 01:26:04,500 --> 01:26:08,042 >> А когда вы закончите с что последующая деятельность challenge-- 1714 01:26:08,042 --> 01:26:11,250 и я дам немного меньше направление, сознательно, так что вы сознательно 1715 01:26:11,250 --> 01:26:13,791 придется бороться за пару минут с документацией, 1716 01:26:13,791 --> 01:26:18,740 изменить карту, чтобы быть не в этом мультяшным по умолчанию, но спутниковая карта. 1717 01:26:18,740 --> 01:26:24,600 Так что вы на самом деле видите спутник образы вместо красивых цветов. 1718 01:26:24,600 --> 01:26:29,710 >> И намек я дам вам это изменить тип карты. 1719 01:26:29,710 --> 01:26:33,084 Вернуться к тому, что получение начал страницу для вдохновения. 1720 01:26:33,084 --> 01:26:40,599 1721 01:26:40,599 --> 01:26:42,390 Как вы почерпнули, если вы ищете, 1722 01:26:42,390 --> 01:26:44,250 Есть так много больше вещи, которые вы можете сделать. 1723 01:26:44,250 --> 01:26:46,380 Некоторые из вас уже изменен тип карты. 1724 01:26:46,380 --> 01:26:49,890 Но вы можете do--, например, позвольте мне перейти к чему-то мы сделали для курса 1725 01:26:49,890 --> 01:26:52,050 Я teach-- maps.cs50.net. 1726 01:26:52,050 --> 01:26:53,470 Один из наших старшекурсников сделал это. 1727 01:26:53,470 --> 01:26:58,890 Мы центрирования нашу карту над Harvard Yard и Наложение всех этих названий зданий, 1728 01:26:58,890 --> 01:27:01,070 и мы должны были его добавить это. 1729 01:27:01,070 --> 01:27:04,270 Так что, если я хочу, чтобы искать, например, Мэттьюз зал, 1730 01:27:04,270 --> 01:27:05,730 у нас есть немного выпадающее меню. 1731 01:27:05,730 --> 01:27:09,080 И я думаю, что он использует Bootstrap, в Библиотека мы обсуждали ранее для этого. 1732 01:27:09,080 --> 01:27:12,190 И если вы нажмете на Matthews Холл, он немедленно 1733 01:27:12,190 --> 01:27:14,790 прыжки карту к определенному расположение, и это показывает, 1734 01:27:14,790 --> 01:27:16,440 вы картина в этом маленьком всплывающем окне. 1735 01:27:16,440 --> 01:27:18,670 >> Но даже эта маленькая всплывающих окон, мы не реализовали. 1736 01:27:18,670 --> 01:27:27,521 Если я прокрутите вниз на нашем получении начал страницу и искать информационные окна, 1737 01:27:27,521 --> 01:27:29,770 вы увидите, что некоторые из функциональность вы сами 1738 01:27:29,770 --> 01:27:31,561 можно добавить, хотя и с немного больше сложности, 1739 01:27:31,561 --> 01:27:33,970 нечто, называемое информационное окно. 1740 01:27:33,970 --> 01:27:37,190 И если я нажимаю пример здесь, и это то, что интересно, 1741 01:27:37,190 --> 01:27:40,530 вы можете сделать что-то вроде этого, нажав на маркер, а затем вуаля, 1742 01:27:40,530 --> 01:27:42,400 информация всплывает. 1743 01:27:42,400 --> 01:27:45,874 >> Таким образом, мы не совсем введены достаточно особенности JavaScript 1744 01:27:45,874 --> 01:27:49,040 чтобы нарисовать картину того, как именно вам может подключить все эти вещи вместе, 1745 01:27:49,040 --> 01:27:50,706 но мы-то поцарапал поверхность. 1746 01:27:50,706 --> 01:27:53,140 На самом деле, что я только что сделал, когда Я нажал на этот маркер, 1747 01:27:53,140 --> 01:27:55,819 был вызывая событие, так называемое на событие щелчка. 1748 01:27:55,819 --> 01:27:57,610 И мы на самом деле увидел событие ранее сегодня, 1749 01:27:57,610 --> 01:28:00,670 так называемый представить событие, когда мы предотвращали 1750 01:28:00,670 --> 01:28:02,490 пользователь от поиска для кошек. 1751 01:28:02,490 --> 01:28:06,560 Итак, мы выбрали вид и выбрал из числа всех этих различных функций, 1752 01:28:06,560 --> 01:28:08,990 чтобы дать вам ощущение того, мы надеемся, о том, что вы можете на самом деле 1753 01:28:08,990 --> 01:28:11,000 делать с немного больше комфорт в программировании, 1754 01:28:11,000 --> 01:28:12,587 и полностью свободные ресурсы. 1755 01:28:12,587 --> 01:28:15,856 1756 01:28:15,856 --> 01:28:18,770 >> Любые вопросы? 1757 01:28:18,770 --> 01:28:19,790 Нет? 1758 01:28:19,790 --> 01:28:22,542 Это ваш последний шанс, по крайней мере сегодня, в пятницу, 1759 01:28:22,542 --> 01:28:25,000 чтобы получить что-нибудь от груди так что ты выходишь отсюда 1760 01:28:25,000 --> 01:28:27,067 чувствуя себя уверенно и комфортно. 1761 01:28:27,067 --> 01:28:27,566 Да. 1762 01:28:27,566 --> 01:28:29,740 >> ЗРИТЕЛИ: Почему не Вы добавляете еще одну вещь? 1763 01:28:29,740 --> 01:28:32,720 >> DAVID Маланом: О, боже мой. 1764 01:28:32,720 --> 01:28:35,260 Мне нужно, чтобы отдохнуть в эти выходные, я думаю. 1765 01:28:35,260 --> 01:28:36,180 Другие вопросы? 1766 01:28:36,180 --> 01:28:37,055 >> ЗРИТЕЛИ: [неразборчиво] 1767 01:28:37,055 --> 01:28:44,130 1768 01:28:44,130 --> 01:28:46,810 >> DAVID Маланом: Вы в can-- Internet Explorer, в остальном мире, 1769 01:28:46,810 --> 01:28:49,310 вы использовали, чтобы иметь возможность поставить VB Сценарий, виртуальный базовый сценарий, 1770 01:28:49,310 --> 01:28:50,643 но это на самом деле никогда не прижился. 1771 01:28:50,643 --> 01:28:52,490 Поэтому короткий ответ просто JavaScript. 1772 01:28:52,490 --> 01:28:55,144 1773 01:28:55,144 --> 01:28:55,810 Другие вопросы? 1774 01:28:55,810 --> 01:28:58,427 1775 01:28:58,427 --> 01:28:59,760 Хорошо, ну, позвольте мне сделать это. 1776 01:28:59,760 --> 01:29:02,070 Позвольте мне захватить с нашими коллегами за пределами. 1777 01:29:02,070 --> 01:29:04,500 Они имеют некоторую оценку формы, которые они хотят, чтобы все 1778 01:29:04,500 --> 01:29:06,310 чтобы провести несколько минут заполнения. 1779 01:29:06,310 --> 01:29:08,775 Они хотят, чтобы собрать эту форму и любые отказы, которые вы могли бы иметь снаружи. 1780 01:29:08,775 --> 01:29:10,240 Они также будут иметь сертификаты. 1781 01:29:10,240 --> 01:29:12,380 Я предполагаю, что есть еще некоторые закуски снаружи. 1782 01:29:12,380 --> 01:29:14,360 Позвольте мне передать их, и если вам есть какие-либо вопросы в то же время, 1783 01:29:14,360 --> 01:29:17,120 Я буду ходить вокруг более индивидуально и мы можем вам начать. 1784 01:29:17,120 --> 01:29:17,879 Да, конечно. 1785 01:29:17,879 --> 01:29:18,754 ЗРИТЕЛИ: [неразборчиво] 1786 01:29:18,754 --> 01:29:26,737 1787 01:29:26,737 --> 01:29:28,570 DAVID Маланом: Это как правило, правда, в эти дни. 1788 01:29:28,570 --> 01:29:30,730 Конечно, с веб программное обеспечение, вы полагаетесь 1789 01:29:30,730 --> 01:29:32,901 на других вы либо эстетически используя вещи 1790 01:29:32,901 --> 01:29:35,400 как Bootstrap, так что вы не должны реализовать низкий уровень 1791 01:29:35,400 --> 01:29:37,169 Подробная информация о меню и кнопки и все такое. 1792 01:29:37,169 --> 01:29:39,210 Вы, опираясь на кого-то как Google, так что вы 1793 01:29:39,210 --> 01:29:42,050 не должны строить Uber бизнес и отображение бизнес, 1794 01:29:42,050 --> 01:29:44,850 и любое количество подобное приложений, а также. 1795 01:29:44,850 --> 01:29:46,350 >> На самом деле, логины популярны, тоже. 1796 01:29:46,350 --> 01:29:48,500 Если вы использовали Spotify или любое количество веб-сайтов, 1797 01:29:48,500 --> 01:29:51,210 вы будете войти в некоторые сайтов с помощью Facebook. 1798 01:29:51,210 --> 01:29:53,350 Так что хорошо, там являются API-интерфейсы для входа в систему 1799 01:29:53,350 --> 01:29:56,570 в настоящее время, так что вы не имеете чтобы иметь свой собственный стол пользователей 1800 01:29:56,570 --> 01:29:59,440 и все вашей собственной базы данных обязательно в той же степени. 1801 01:29:59,440 --> 01:30:01,795 Вы можете позволить Facebook сделать все из этой сложности для вас. 1802 01:30:01,795 --> 01:30:03,920 Так что это захватывающее время, если честно, в программировании, 1803 01:30:03,920 --> 01:30:07,200 потому что есть так много третья сторона услуги, которые вы можете построить на вершине. 1804 01:30:07,200 --> 01:30:10,890 >> И опять же, цена, которую вы платите либо финансовых или времени простоя. 1805 01:30:10,890 --> 01:30:13,750 Если Google идет вниз, так что делает Uber, возможно, 1806 01:30:13,750 --> 01:30:15,690 но, возможно, что это разумный компромисс. 1807 01:30:15,690 --> 01:30:18,040 И опять же, это было одной из тем, Будем надеяться, что за последние пару дней, 1808 01:30:18,040 --> 01:30:18,780 эти компромиссы. 1809 01:30:18,780 --> 01:30:20,738 И редко там происходит чтобы быть правильным ответом. 1810 01:30:20,738 --> 01:30:25,700 Это на самом деле, тем лучше из двух или более ответов. 1811 01:30:25,700 --> 01:30:26,682 >> Передайте их вокруг. 1812 01:30:26,682 --> 01:30:36,830 1813 01:30:36,830 --> 01:30:41,110 >> И эти счета Cloud9 будет продолжаться работать, в теории, на неограниченный срок. 1814 01:30:41,110 --> 01:30:45,000 Вы можете обнаружить, если вы будете ждать несколько дней или в неделю или больше, чтобы снова войти в них, 1815 01:30:45,000 --> 01:30:49,170 это может занять как один или пять минут, чтобы открыть обратно вверх, 1816 01:30:49,170 --> 01:30:54,090 но это только потому, что они положили в спящий режим, чтобы сэкономить ресурсы. 1817 01:30:54,090 --> 01:31:10,527