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, Мова Структурованих Запитів, 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 >> E-mail? 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 .value. 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