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 Maps 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 Малан: ОК, регистриран потребител на сайта. 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 Малан: An addr-- OK, така че първо име, фамилия. 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 but-- и не защо, тъй като това е може би Очевидно е, че след като се регистрирате на потребител, 53 00:02:01,980 --> 00:02:03,730 искате да ги помни, за известно време. 54 00:02:03,730 --> 00:02:05,480 Вие не го искат, за да просто да се съхранява в RAM 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 или, cutely име, 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 Numbers или всеки стандартен програма за електронни таблици, 67 00:02:53,740 --> 00:02:56,040 или, което е същото, или повече sophisticatedly, 68 00:02:56,040 --> 00:02:58,610 нещо като Microsoft Access или 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 И в контекста на база данни, ние ще обикновено наричаме тази област Чар. 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 в типичен база данни, наречена ENUM, където тя е поле характер, 102 00:04:46,040 --> 00:04:50,480 но вие, дизайнерът, стигна до изброят възможните стойности, 103 00:04:50,480 --> 00:04:54,630 като цитат, край на цитата "мъжки", цитат, край на цитата "женски" и така нататък. 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 Ние вероятно няма да искат ENUM за собствено или фамилно име. 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 какво трябва да бъде 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 Какво би означавало с ID? 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 И дори тогава, можех се nitpicking, това е 128 00:05:58,909 --> 00:06:00,700 не наистина само общото число, което искате. 129 00:06:00,700 --> 00:06:04,340 Може би не искате отрицателни стойности, Просто защото, то просто се чувства странно. 130 00:06:04,340 --> 00:06:06,070 Може би искате положителни числа. 131 00:06:06,070 --> 00:06:07,920 Така че можете да се изразя че в база данни, 132 00:06:07,920 --> 00:06:09,450 но за сега, ние ще кажем число. 133 00:06:09,450 --> 00:06:10,650 >> Електронна поща? 134 00:06:10,650 --> 00:06:13,550 Това е може би just-- на какво? 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 поле A Чар, можете проектанта, Трябва да се уточни предварително 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 >> поле A Чар би означавало в база данни, която ви 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 поле A 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 Чар използва, че много герои, 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 Малан: OK, когато знаете за дължина на низа доста непреодолими 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 Или може би държавните символи, като NY за Ню Йорк, 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 >> променлива поле A Чар, за разлика от това, не винаги има 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 >> Пол, което правя като ENUM, и така ние следователно 253 00:12:05,720 --> 00:12:08,760 изброят мъж или жена, или може би по-ефективно, 254 00:12:08,760 --> 00:12:13,420 m е или или друга символи, но ENUM се чувства като един добър избор там. 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 вашия администратор DBA, база данни, всеки, който е проектиране тази таблица като ние 265 00:12:43,010 --> 00:12:46,440 са устно, може да постави на мястото на ENUM, че 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 >> Така че за самоличност, ако приемем, че цифровата ID него, може би трябва да е положително число. 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 вместо ще посочите това е междинно съединение, или голям ср, 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 Така че колко потребители може да имаме в нашата база данни, ако всички те имат ID 280 00:13:30,270 --> 00:13:33,320 и това ID трябва да бъде уникален? 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 и след това се опитате да вмъкнете 4 милиардна и 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 АУДИТОРИЯ: Three. 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 Малан: One-- да, да не кажа 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 Така че това е като един Братъл Square, запетая, 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 Братъл Square, запетая, Кеймбридж 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 Street, и след това 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 Line една, втора линия. 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 И след това състояние, а след това нека да е малко US-ориентирана за сега 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 някога е живял на адрес, като 1А Братъл Square, или 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 Streets, Чар, 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 >> Членка, може да бъде US-ориентирана за сега. 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 >> Но аз мисля, Olivier, вие предложен друг подход. 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 но ENUM може да направи повече смисъл, защото по този начин, поне в САЩ, 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 Outlook за Gmail, 444 00:21:13,110 --> 00:21:18,640 и Outlook има начин за експортиране всичките си контакти като файл 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 и от един вид OCD, се връщам в и добавете 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 ще има по-о ги води. 470 00:22:33,270 --> 00:22:38,070 Така че нека да отидат с подобно Чар, вероятно, пет. 471 00:22:38,070 --> 00:22:41,450 >> И тук, осъзнаваме, че може да се използва ENUM и ние 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 Street, град, държава, просто около пасва на екрана. 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, улица номер ще да бъде като един Братъл Square, Cambridge, MA, 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 Ако имаме Дейвид и Скъли и Карим и 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 Това е нещо като конотация на ID или идентификатор. 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 Може да се каже, хей, база данни, се уверете, че всеки ID в тази таблица е уникална. 605 00:28:56,060 --> 00:28:59,330 Дори не си позволи един програмист случайно поставени в два екземпляра имейл 606 00:28:59,330 --> 00:29:00,740 или дублира ID номер. 607 00:29:00,740 --> 00:29:03,140 Така че много прилича enums защитят нас по подобен начин, вие 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 Малан: No. 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 Star почти винаги означава нещо, Това означава, в този случай, 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 и ако Дейвид има това уникално ID, I трябва да се върнем един и само един ред 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 Изберете пощенски код от Потребителите, където ID е 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 Така че ние ще кажем, цитат, край на цитата "F", след това имаме ID 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 Set цип равнява 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 или въз основа на нея ID номер или други подобни. 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 Това ще бъде ENUM, може би като преди, и град ще бъде 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, Cambridge, MA, Cambridge, MA, 835 00:40:33,280 --> 00:40:35,712 Cambridge, MA, който, да се надяваме никога няма да се промени. 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 реална ефективност за какво Olivier предложен тук 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 Cascading Style Sheets. 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 >> Но това е вид underwhelming. 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 Видяхме тази обща идея в Scratch. 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 На представя, аз искам да се обадя функция, наречена потвърдим. 1038 00:51:32,260 --> 00:51:35,520 Това все още не съществува, това дума, или този глагол Проверка, 1039 00:51:35,520 --> 00:51:38,560 защото това, което аз ще направя тук сега, е да добавите някакъв код. 1040 00:51:38,560 --> 00:51:42,200 >> Отивам да кажа функция потвърдим. 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 съществува, и аз съм нарича този пъзел парче парче Проверка пъзел. 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 Идеята е просто Q, и след това, въпреки че синтаксиса изглежда малко странно, 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 Исках да кажа, ако стойността на елемента, чието ID е р 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 but-- да ме премести тази наоколо в 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 и той desaturated всички на червено от него, 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 променлива, която Ник е произволно, но разумно, наречена Им за изображение. 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 че някои от вас видяха в Scratch-рано днес, където можете да се повтаря 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 Така че това е просто начин на traipsing, почти като старата школа пишеща машина, 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 и Е е и A 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 и след това C. Така че начина, по който се брои в шестнадесетичен 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 ще бъде по-Y-координата. 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 И след това тук, това ще бъде х, това ще бъде на стойност Y, 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 Имам нужда от х стойността на това Y стойност, и какъв номер 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 И това е ОК, ако трябва да се удари бутона Run / Save няколко пъти 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 Малан: Big черен правоъгълник? 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 Той го desaturated донякъде, но не чак до нула. 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 (X, Y). 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 >> Така че според интуицията Карим е, съхраняват в тази променлива, наречена сума, 1375 01:08:59,790 --> 01:09:03,649 е колко червено Искам на място XY. 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, на място при XY. 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 е да ви даде усещане за това как ние сме преведена изобразително Scratch 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 Когато сте готови, ако бихте могли да отидете на този адрес на екрана. 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 Maps, или приложен програмен интерфейс, 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, но произведение не е компания, картографиране, 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 на предоставяне не само APIs, но свободни APIs, че сте 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 >> И забележете, че те имат APIs за 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 И те имат цял ​​куп APIs. 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 Maps 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 И нека да ни to-- превъртете надолу до мястото, където се казва бързи начални стъпки. 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 Line едно от това, което съм виж, и да се надяваме, можете 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 Line три е хей браузър, Тук идва на главата. 1566 01:19:01,440 --> 01:19:04,260 Line четири е, разбира се, хей браузър, тук идва заглавието. 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 В този случай, той просто преоразмерява страницата, за да по подразбиране. Line шест, 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 Margin, какво означава това? 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 Padding, сходен по дух до маржове. 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 че има идентификационен номер на цитат, край на цитата "карта". 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 ние сме по-точно казва Var, което просто означава променлива. 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 >> Така че това е като нашия собствен потребителски пъзел парче в Scratch. 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 че празен Разделение на страницата чийто уникален идентификатор, е карта, 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 Ако щракнете върху Open за 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/ нещо, нещо, нещо, 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 Един от нашите undergrads направил това. 1727 01:26:53,470 --> 01:26:58,890 Ние центрирате нашата карта над Харвард Ярд и наслагване на всички тези имена строителни, 1728 01:26:58,890 --> 01:27:01,070 и ние трябваше да го добавите това. 1729 01:27:01,070 --> 01:27:04,270 Така че, ако искате да търсите, например, Matthews Hall, 1730 01:27:04,270 --> 01:27:05,730 имаме малко падащо меню. 1731 01:27:05,730 --> 01:27:09,080 И мисля, че той е с помощта на фърмуера, на библиотека ние обсъдихме по-рано за това. 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 Така че това, което е хубаво, там са APIs за вход 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