DAVID Малання: Добра, мы вярнуліся. Так што для узбуджаюцца заключэнне, наш апошні раздзел на вэб-праграмавання, які я думалі, што мы выкарыстоўваем у якасці агульнага тэрміна каб захапіць некалькі пакінутых тэм. Так што ў канцы дзень, мы на самай справе робім трохі практычны вэб-праграмаванне з мовай называецца JavaScript. І я думаю, што мы будзем глядзець на што-то звязана з выявамі і адкрываць нешта таемна схаваны ў малюнку, а таксама зірнуць на Google API Карт, прыкладнога праграмавання Інтэрфейс, як нешта прадстаўнік ад тыпу праграмнага забеспячэння гэта ўсё больш і свабодна даступных сёння. Але чаму не мы паглядзім у якасці інгрэдыента ў гэтым свеце што мы збольшага было прымаючы як належнае існуе на працягу некаторага часу, база дадзеных. За мінулыя суткі і паўтара мы меркавалі што ў нас ёсць доступ да базы дадзеных, але Якую праблему вырашыць базы дадзеных? Што гэта робіць для нас? Што гэта? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: змяшчае ўсю інфармацыю, ОК, а якія віды інфармацыі вы маглі б пакласці ў яго? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Любая інфармацыя вы паклалі ў яго, вы атрымаеце назад. Гэта дакладна. А на тыповага вэб-сайта або вэб дадатак, якія віды інфармацыі, у прыватнасці, маглі б вы паклалі ў? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Карыстальнікі. Так што карыстальнік? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: OK, зарэгістравана Карыстальнік сайта. А што гэта значыць Захоўваць інфармацыю карыстальнікаў? Што складае карыстальніка? Карыстальнік мае тое, што? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, асабісты дадзеныя, і мне гэта падабаецца. Давайце быць больш дакладным. Такім чынам, карыстальнік, як правіла, мае імя, што яшчэ можа мець карыстальнік? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: addr-- ОК, таму спачатку імя, прозвішча. Гэта добра. На самай справе, давайце выправім што, так як гэта будзе каб адкрыць магчымасць для абмеркаванне, па-ранейшаму, у далейшым. Імя, прозвішча, пол. ID нейкі. Што яшчэ? Я чуў сёе-тое яшчэ раней, таксама. Электронная пошта, паштовы адрас. Так што давайце спынімся там і зараз разгледзім не тое, што мы захоўваем у базе дадзеных, но--, а не чаму, так як гэта, магчыма, Відавочна, што пасля рэгістрацыі карыстальніка, Вы хочаце, каб памятаць пра іх на працягу некаторага часу. Вы не жадаеце яго проста захоўваць у АЗП і быць forgotten-- так давайце засяродзімся на як. Аказваецца, што ў свет баз дадзеных, ёсць па меншай меры два тыпу ў гэтыя дні. Тое, што называецца базай дадзеных SQL, Structured Query Language, або, сімпатычна па імені, NoSQL, які не з'яўляецца SQL. І апошняя з'яўляецца прыклад таго, што можа можна назваць аб'ектна-арыентаваным, або аб'ект магазін, база дадзеных які захоўвае аб'екты, а не, прабачце мне, як мы неўзабаве ўбачым, радка. Такім чынам, мы засяродзімся на імгненне на першы з іх, а менавіта, SQL базы дадзеных, калі толькі таму, што так добра знаёмыя ўжо, каму-небудзь які выкарыстаў Excel або Табліцы Google або Apple, Колькасці або любы стандартны праграмы электронных табліц, або, што тое ж самае, або больш выдасканалена, нешта накшталт Microsoft Доступ або Oracle або MySQL або PostgreSQL, усе з якіх з'яўляюцца назвы прадуктаў для рэалізацый ў наступнай ідэі. Рэляцыйная база дадзеных проста тое, што ёсць радкі і слупкі. І па радках і слупках, Я літаральна маю на ўвазе нешта як гэта, так, дзе мы маглі б мець імя поля і яго тып тут. І на самай справе, дазвольце мне Цяпер пачынаюць адлюстраваць іх. Так што на самой справе, я не ведаю, чаму я звярнуў асобную дыяграму. Давайце трымаць гэта проста. Мы маем права тут Пачатак нашага стала, дзе гэтае імя поля і гэта тып дадзеных, а таксама па тыпу Я маю на ўвазе наступнае. Ці з'яўляецца гэты лік, ці сапраўды гэта радок, кароткая радок, як слова, гэта абзац, гэта двайковыя дадзеныя, такія як малюнкі? І давайце проста дражніць гэта адзін ад аднаго на імгненне. Такім чынам, першае імя, нумар, Радок, вялікі кавалак text-- ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, таму радок. І ў кантэксце базы дадзеных, мы будзем звычайна называем гэта поле CHAR. Скажу толькі паўкокс зараз, але мы збіраецца ўдакладніць гэта ў адзін момант. Характар ​​поля. Прозвішча, верагодна, тое ж самае. Падлогу? Мужчына ці жанчына, дык гэта тое, можа быць полем сімвал. Гэта можа быць альбо цытата, канец цытаты "Мужчынскі" або цытата, канец цытаты "жаночы" ці гэта можа быць м або п. Калі вы хочаце быць больш шырокім, вам можа спатрэбіцца трэцяе значэнне або нейкай іншай вобласці ў цэлым. І такім чынам вы маглі б выкарыстоўваць дакладна няправільна. Поле можна назваць мужчынам, і то можна сказаць, што сапраўдным або ілжывым. Але гэта не абавязкова захопліваць ўсю інфармацыю, вы можаце захацець. Так атрымліваецца, што ёсць іншы тып поля, якія могуць быць карыснымі тут у тыповай базе дадзеных, называецца пералік, дзе гэта поле характар, але вы, дызайнер, дабрацца да пералічыць магчымыя значэнні, як цытата, Unquote "мужчынскі", цытата, Unquote "жаночы" і гэтак далей. Так што любое значэнне знаходзіцца ў вашай базе даных, на самай справе характар ​​на аснове, але ён павінен быць адным з гэтых значэнняў. Мы, верагодна, не жадалі б мець пералiчэнне для імя або прозвішча. У адваротным выпадку мы мелі б пералічыць, як імя паходзіць ад, літаральна кожны магчыма першае імя і прозвішча. ОК, так што ID павінен быць ідэнтыфікатар? Так, так, можа быць некалькі. Так давайце прытрымлівацца што на дадзены момант лік. І па колькасці, лік гэта трохі занадта шырокі ў цяперашні час. На канец другога дзень, я адчуваю, што мы павінен быць трохі больш дакладным. Нумар можа азначаць, як, гэта можа быць нешта накшталт 1.236. І гэта, верагодна, не што мы маем на ўвазе пад ідэнтыфікатарам. Што мы, верагодна, маем на ўвазе пад ідэнтыфікатарам? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: О, добра, так што можа быць, гэта нават не лік. Можа быць, гэта на самай справе унікальны ідэнтыфікатар гэта радок, як імя карыстальніка. Так што цалкам, можа быць. Я думаю, што хто-то, верагодна, меў на ўвазе лікавыя, хоць. Так што давайце застанемся з гэтым. Што гэта за нумар? Што больш precise-- цэлы лік. Так як лік 0, 1, 2, 3, таму мы будзем называць гэта цэлы лік. І нават тады, я мог быць прыдзіркі, гэта на самай справе не проста агульная колькасць вы хочаце. Вы, верагодна, не хочуць адмоўныя значэння, толькі таму, што ён проста адчувае сябе дзіўна. Вы, верагодна, хочаце станоўчыя цэлыя лікі. Такім чынам, вы можаце таксама выказаць што ў базе даных, але цяпер мы будзем казаць цэлы лік. E-mail? Гэта, верагодна, просто-- што? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Гэты ліст, але гэта знакі, ці не так? У яго ёсць толькі баязлівы характар, як Эн "на знак" ці нешта іншае, але гэта па-ранейшаму знакавае поле. І паштовы адрас? Характар ​​поля. Так што гэта добры пачатак, але давайце быць трохі больш дакладным у цяперашні час. Так атрымліваецца, што ў базы дадзеных, вы часта ёсць выбар над больш вытанчанай версіі гэтых рэчаў. На самай справе, у тыповай базе дадзеных SQL, SQL, ці ў больш агульным плане, рэляцыйная база дадзеных, базы дадзеных з радамі і калоны, часта атрымаць паказаць не толькі ад тыпу field-- дазвольце мне зрабіць некаторую пакой here-- але і даўжыню. Так як доўга гэтае імя? Я думаю, D-A-V-I-D. ОК, я атрымаў яго верагодна, проста абураныя як палова людзей у пакоі, справа, так як вашы імёны даўжэй, чым пяць лісты, так што пяць здаецца трохі эгаістычна і наіўныя, так што лепшая каштоўнасць? 10, усё ў парадку, і я думаю, мы ўсё ў парадку ў пакоі. 13? 30? Чаму б мне не ўзяць Падыход раней, калі мы казалі пра масівах і памяці? Чаму я не магу проста сказаць, як 1000? Імя Ніхто не збіраецца каб быць больш, за 1000. Зрушыць таму. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, гэта марнатраўна, права, асабліва калі большасць імёнаў толькі пяць ці 10 ці 15 сімвалаў, гэта вельмі марнатраўна. Такім чынам, вы ведаеце, што? Гэта свайго роду складанае пытанне. Цяпер мы можам, вядома, аналізаваць англійская мова і назвы любой іншай мовы ў і высветліць, добра, што такое average-- сярэднім не рэальна дапамагчы us-- што максімальная з'яўляецца верагодна, што мы сапраўды хочам. Але аказваецца, у нас нават ёсць некаторы выбар па тыпу тут. У тыповай базе дадзеных SQL, вы ёсць нешта, званае голец поле а таксама VARCHAR, V-A-R, для пераменнага поля паўкокс. А розніца заключаецца ў наступным. Поле голец, вы дызайнер, павінны паказаць загадзя дакладная даўжыня поля. Так што, можа быць, першае імя як 20 адчувае сябе свайго роду сейф. Магчыма, прыйдзецца зрабіць некаторыя Googling да убачыць, калі гэта на самай справе дастаткова бяспечна. Там, напэўна, імя з 21 персанажы, але цяпер, выкажам здагадку, 20 з'яўляецца бяспечным. Поле сімвал будзе азначаць, ў базе дадзеных, вам выкарыстоўваюць 20 і заўсёды 20 сімвалаў. Цяпер, калі гэта толькі D-A-V-I-D, 15 з іх толькі збіраецца быць пустым сімвалаў, але вы ўсё яшчэ выкарыстоўваеце ўсе 20 байт. Поле VARCHAR, наадварот, азначае, Радок павінна быць да 20 знакаў але калі гэта толькі пяць, вы толькі збіраецеся выкарыстоўваць пяць, шэсць ці, можа быць, для асаблівае значэнне ў канцы, як што 0 мы абмяркоўвалі, што азначае канец сімвала Паслядоўнасць у памяці. Так што, калі вы думаеце вы можаце выбраць сімвал у параўнанні з VARCHAR, улічваючы, што кампраміс? Char выкарыстоўвае гэта шмат знакаў, VARCHAR выкарыстоўвае не больш, што многія персанажы. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Добра, калі вы ведаеце, даўжыня радка даволі пераканаўчым проста выкарыстоўваць сімвал, таму што, калі вы гэта ведаеце, проста пакласці яго ўніз. А можа быць, гэта дакладна для маланкі код, у ЗША, па меншай меры, 02138, гэта заўсёды будзе пяць сімвалы, пакуль дадаць працяжнік чатыры. Але вы маглі б мець некаторыя значэння які вы заўсёды ведаеце даўжыню. Ці, можа быць, дзяржаўныя сімвалы, як Нью-Ёрк у Нью-Ёрк, і MA для штата Масачусэтс у ЗША. Можа быць, у вас ёсць нейкія сітуацыі, дзе гэта цалкам разумна, але гэтай логіцы, чаму мы нават overthinking гэта? Чаму б нам не выкарыстоўваць VARCHAR, а затым мы проста заўсёды выкарыстоўвайце два знака ў любым выпадку, ці заўсёды выкарыстоўваць пяць знакаў у любым выпадку? Чаму б не проста захаваць для VARCHAR усе, па гэтай логіцы? Там павінна быць падвох. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Ці маглі напісаць нешта няправільна. Так што гэта праўда. Але нават тады, яны не могуць выкарыстоўваць больш памяці, чым я вылучаю. Я да гэтага часу канчатковае гавораць па ўсёй даўжыні, таму яны не могуць выпадкова зрабіць гэтая памылка, але добрая думка. Гэта больш тонкі, але гэта вельмі роднасны да нашай дыскусіі, на самай справе, масіваў і звязаныя спісы раней. Аказваецца, што ў базе даных, калі ён ведае, што ўсе значэнні з'яўляюцца фіксаванай даўжыні, нават калі некаторыя з гэтых значэнняў з'яўляюцца пустымі, выгляд эстэтычна пустым, D-A-V-I-D, а затым 15 нарыхтовак, атрымліваецца, што калі кожны Поле мае тую ж даўжыню, гэтак жа, як масіў былі ўсе яго рэчы спіна да спіны, каб спіна да спіны, так што вы маглі б проста плюс 1, каб дабрацца да наступнага значэнне, тая ж ідэя ў табліцы базы дадзеных. Калі ўсё вашага персанажа радкі маюць аднолькавую даўжыню, ў вас ёсць тое, што называецца адвольным доступам. Калі ўсе радкі маюць даўжыня 20, вы не проста зрабіць плюс 1 вы проста робіце плюс 20, плюс 20, плюс 20, плюс 20, і вы можаце вельмі хутка пракруціць або пошук па ўсіх дадзеных. Поле зменнай сімвал, насупраць, не заўсёды мае 20 знакаў. Гэта можа мець 20, а затым 15, а затым 19, а затым 10, і таму, калі вы хочаце знайсці праз яго, вы не можаце проста слепа дадаць 20 байт, каб дабрацца да наступнай. Вы ў літаральным сэнсе прыйдзецца шукаць праз так як край структуры дадзеных, калі вы будзеце, з'яўляецца няроўным. Гэта збольшага ўваходзіць і выходзіць на аснове па фактычнай даўжыні радка. Такім чынам, калі вы ведаеце даўжыню, як Карыма кажа, выкарыстоўвайце поле голец, таму што вы атрымліваеце, што эфектыўнасць быцця умее шукаць праз яго хутчэй калі вы шукаеце дадзеных, у адваротным выпадку выкарыстоўваць зменную. На жаль, у мяне няма добрага адказу як доўга назва павінна быць, але нешта накшталт імя, я б сказаў, VARCHAR з'яўляецца агульным таму што ён не збіраецца быць фіксаванай даўжыні для ўсіх. 20, я не ведаю, 20 адчувае сябе трохі жорсткай. Давайце проста скажам, 50, 50. Гэта на самай справе не варта вам, што значна больш, каб сказаць 50 замест 40, але ў нейкі момант, што вам трэба каб зрабіць званок меркаванні. Вельмі часта, калі шчыра, для [? гістарычнае?] прычыны, нават калі гэта празмерным, ёсць 255, таму што некаторы час таму, ў папулярных сістэмах баз дадзеных, як MySQL, бясплатны інструмент з адкрытым зыходным кодам што шмат кампаній як нават Facebook выкарыстоўваецца, гэта быў максімум па змаўчанні так што людзі проста пайшлі з ім. Так што не пазбаўлена сэнсу, але мы будзем выкарыстоўваць трохі больш інтуіцыі і сказаць, упэўнены 50, гэта верагодна, крыху празмерным. Падлогу, я, як пералік, і таму мы можам таму пералічыць мужчыны ці жанчыны, або, можа быць больш эфектыўна, м або е або якой-небудзь іншай сімвалізм, але перечислимый адчувае, як добры выбар там. Каб было ясна, падлогі можа быць проста VARCHAR, і мы маглі б проста ўсе згодны, як добрыя людзі, заўсёды ставіць адны і тыя ж каштоўнасці там. Мужчына ці жанчына ці этажэрку. Але праблема тое, што мы маглі б дапушчана памылка, так як [неразборліва] прапанаваў раней у іншым кантэксце. Калі мы робім памылку, мы маглі б атрымаць няправільныя значэння ў нашай базе. Так што прыемна аб базах дадзеных як Oracle і MySQL і іншыя, з'яўляецца тое, што ў вас ёсць гэтая апошняя ўзровень абароны дзе адміністратар Абд, базы дадзеных, хто распрацоўвае гэтую табліцу, як мы ў вуснай форме, маглі б паставіць на месца пералік, што абараняе супраць гэтага, паказаўшы мужчына, жанчына, і так ніхто не яшчэ не праграміст можа выпадкова ўставіць любое іншае значэнне. Так што гэта было б добра. Гэта асаблівасць. Так ідэнтыфікатар, мяркуючы, што лікавы ідэнтыфікатар, яго верагодна, павінен быць станоўчым цэлым лікам. І часам мы маем магчымасць абмеркаваць даўжыню. Вы не звычайна паказаць нумар тут, вы б замест таго, каб паказаць гэта INT, ці вялікі INT, так як яны звычайна называюць. Але, як правіла, цэлы лік было б, скажам, 4 байта. І калі гэта 4 байта, гэта колькі біт? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: 32 біта. Дык колькі карыстальнікаў мы можам мець на у нашай базе дадзеных, калі ўсе яны маюць ідэнтыфікатар і гэты ідэнтыфікатар павінен быць унікальным? 32 біта азначае, што мы маем шаблоны аднаго, два, тры, чатыры, five-- так як шмат розных мадэляў нулёў і тыя, вы можаце мець, калі ёсць 32? Гэта тое ж самае, пытаючыся, што гэта ад двух да 32? Гэта вялікі лік, Я зусім не магу атрымаць права, але я ведаю, што гэта прыкладна 4 млрд. Такім чынам, гэта азначае, што ваша табліца базы дадзеных можа чатыры мільярды карыстальнікаў, і гэта ўсё. Так што гэта цікава дызайн падтэкст. Прыстойнае колькасць кампаній вырашылі, магчыма, не так шмат для іх карыстальнікаў табліцы, таму што наяўнасць 4 мільярды карыстальнікаў з'яўляецца рэдкай праблемай. Гэта свайго роду Facebook-стылі праблема, а не тыповая праблема кампаніі. Але, можа быць, калі ў вас ёсць часопісы транзакцый ці нейкі дадзеныя, якія пастаянна будзе запісана ў вашу базу дадзеных што абсалютна можа мець мільярды і мільярды радкоў, і Вы карыстаецеся цэлы лік для яго, што адбудзецца, як толькі вы атрымліваеце нумар радка 4 млрд а затым вы спрабуеце ўставіць Четырёхмилиардное і 1, так бы мовіць? Я спрасціўшы лік біт. Вы можаце адрэзаць назад, я маю на ўвазе вас павінны справіцца з гэтым так ці інакш. І тое, што кампутар, як правіла, робяць, думаць пра гэта нават з раніцы, калі ў вас ёсць 4-бітнае значэнне як 1, 1, 1, 1, якая, проста, каб звязаць раніцу разам у другой палове дня, то, робіць гэты лік прадстаўляюць у двайковай сістэме? Добра, мы зробім гэта прасцей. Што робіць гэты нумар прадстаўляюць у двайковай сістэме? Добра, мы зробім гэта прасцей, чым гэта прадстаўляе ў двайковай сістэме? ГЛЕДАЧЫ: Тры. DAVID Малання: Тры, таму што мы маем тыя column-- [СМЕХ] Уф! Мы мелі слупок з іх і слупок двоек. Таму выкажам здагадку, што, сапраўды, наш [? прысядзібнага ўчастка?] не 32 біта, але гэта былі два біта, мы можам лічыць ад колькасці 0, 1, 2, 3 карыстальніка, а потым мы накшталт назад да карыстача 00 разоў. Так што гэта тое, што звычайна адбываецца. Калі вы калі-небудзь чулі expression-- верагодна, няма, але калі вы have-- Цэлалікавымі перапаўненне, дзе вы трымаць гартаць ўсе вашы біты каб быць самымі вялікімі магчымымі значэннямі, а потым вы з бітаў, што звычайна адбываецца? Чаму я кажу 00? Ну, гэта тры. Як я ўяўляю 4? калі паказваюць для ліку 4 у двайковай сістэме? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: одно-- ды, не кажаце, 100 само па сабе, таму што ён мае няправільны Канатацыя, але 1-0-0. Так што нумар 1-0-0 сапраўды правільна, але калі ў вас ёсць толькі два біта, што вы сапраўды зрабілі? Вы перавярнулася 00. І на самай справе, гэта тое, што будзе адбывацца. На самай справе, вы можаце думаць пра гэта больш фамільярна. Калі вы памятаеце, тое, што, 16 гадоў таму, свет павінна была скончыцца, калі праблема Y2K здарылася. Чаму гэта было? Ну большасць кампутараў, для разумныя рашэнні, захоўвалі нумары Спадабаўся 1975 год ці 1999 год толькі з дапамогай двух лічбаў ў памяці кампутара. Так што, вядома, што адбываецца, калі вы атрымліваеце да 2000 года, вы ідзяце да гэтага, ці, дакладней, да. Такім чынам, вы ідзяце да 2000 году, але калі вы карыстаецеся толькі дзве лічбы гэта выглядае як год 00 і так што вы перакулілася. І вось чаму шмат сістэм неабходна абнавіць ў той час. Так з гэтым сказаў, такія кампаніі, як Facebook запусціць супраць гэтага. Такім чынам, адзіны спосаб справіцца з Сітуацыя, шчыра кажучы, прадбачыць яго. Або чысты спосаб справіцца з гэтай сітуацыяй гэта прадбачыць яго, так што вы не павінны ўнесці змены пазней. Такім чынам, замест 8 байт, вы ведаеце, што? Я збіраюся быць дальнабачнымі тут, нават калі гэта трохі аптымістычна, што мы будзем мець 4 млрд і 1 карыстальнікаў на нашым сайце. Але давайце проста выкарыстаць 8 байт, або 64 біта, якія ў цэлым будуць называецца вялікая цэлы лік, вельмі тэхнічны. І гэта проста азначае, што вы можаце мець яшчэ больш лічбаў вашага нумара. Але гэта важна праектнае рашэнне, таму што калі вы выбіраеце нумар, мае занадта мала бітаў выразнасці вы маглі б на самай справе стварыць памылка ў вашым праграмным забеспячэнні. Добра, так што давайце ахінуць з электроннай поштай і паштовы адрас. Так электронная пошта, як доўга павінен адрас электроннай пошты будзе? 50. Я сапраўды паняцця не маю, але гэта верагодна, нешта падобнае, таму што інакш ніхто не збіраецца напісаць вам, калі ён становіцца занадта доўга, так што 50, давайце ісці з ім на дадзены момант. Паштовы адрас, як доўга гэта павінна быць? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Гэта не проста паштовы індэкс, хоць. Паштовы адрас, я чуў. Так што гэта як 1 Brattle плошчы, коска, Cambridge Mass., коска, 02138. І на самай справе, дазвольце мне проста цягнуць да невялікага ліста тут. Гэта адчувае, як гэта выпушчаная магчымасць. Калі ў нас ёсць 1 Brattle плошчу, коска, Cambridge MA 02138, Я адчуваю, што мы можам зрабіць лепш чым проста паштовы адрас. Чаму мы не выбухаюць гэта крыху? Што я хілю? Што мы павінны замест таго, каб мець для нашых шэрагаў тут, магчыма? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, так што давайце называюць яго street_number, і падкрэсліванне проста агульны спосаб мець тое, што выглядае як прастора, але гэта не так, на самай справе. Стрыт, а затым city-- шкада? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Мы маглі б зрабіць гэта. Лінія адна, другая радок. Чаму б нам не будзе трымаць яго проста на дадзены момант, але гэта абсалютна прымальнае рашэнне. А потым стан, а затым давайце быць трохі амерыкана-арыентаваных зараз і проста зрабіць паштовы індэкс, толькі таму, што гэта прывядзе да цікавай памылцы або праблема тут. Таму выкажам здагадку, што зараз наш адрас. Гэта крыху больш раздражняе, што у нас ёсць усе гэтыя дадатковыя поля, але зараз мы можам пазначыць рэчы крыху лепш. Так што цяпер нумар вуліцы, верагодна, не павінен быць знак, ці павінен? Што гэта павінна быць? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Можа быць, шэраг як цэлы лік раз? Вялікая колькасць? Вы, напэўна, не жывуць ў 4 мільярды Main Street або што-небудзь вар'ят, як гэта. Так цэлы лік, верагодна, добра, але хто-небудзь калі-небудзь жыў па адрасе, як 1A Brattle плошчы, або 1 і 1/2? Гэтыя рэчы існуюць, на жаль, нават калі вы не жылі там, Ёсць гэтыя анамаліі як кватэра 1A, 1B, 1C. Такім чынам, вы ведаеце, што мы, верагодна, не павінны ісці з цэлымі, у адваротным выпадку мы будзем страціць некаторыя продажу. Char поле, можа быць? Я не ведаю, як доўга. Гэта, верагодна, не будзе што доўга, так што 10 ці нешта. Ніхто не збіраецца пісаць больш доўгі нумар, можа быць. Але зноў жа, мы павінны, верагодна, больш думаць пра тое, што. Можа быць, Google, зрабіць некаторыя даследаванні, але мы пойдзем з нашымі трыбухамі на дадзены момант. Вуліцы, голец, 50, я не ведаю. У нейкі момант, ніхто не збіраецца напісаць яго на канверце, таксама, так што там, напэўна, некаторыя верхнія межы там. Горад, такі ж, упэўнены, так што асмальваецца 50. Дзяржава, можа быць ЗША, арыентаваных на дадзены момант. Так што гэта можа быць спіс, так што выгляд судовага рашэння выкліку, дзяржавы. Гэта можа быць як два знака. Так што на самой справе, можа быць, я паўтараў паўкокс. Я маю на ўвазе, верагодна, VARCHAR, як раз для некаторай эфектыўнасці, але мы вернемся да што рашэнне ў дадзены момант. Можа быць знак даўжыні 2 для дзяржавы. Калі ў ЗША яны маюць, як MA, Масачусэтс, Нью-Ёрк, Нью-Ёрк, штат Нью-Джэрсі, Нью- Джэрсі, і гэтак далей. Так што гэта можа быць выпраўлена ў гэтым. DC для Вашынгтона, акруга Калумбія. Але я думаю, Аліўе, ты прапанаваў іншы падыход. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, так што гэта трохі раздражняе ўвесці, але пералік можа мець больш сэнсу, таму што такім чынам, па меншай меры, у ЗША, вы маглі б пералічыць, калі стомна, але Вы робіце гэта толькі адзін раз у вашай базе дадзеных і ніколі больш не прыйдзецца думаць аб гэта, усе 50 кодаў двух знакаў. Так што я люблю ENUM. Давайце прытрымлівацца гэтага там, таму што гэта свайго роду забяспечвае захаванне больш строгасць. А потым паштовы індэкс? Я думаю, што Эндру была думка пра тое, што ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, пяць-дзевяць. Давайце проста трымаць яго проста. Проста зрабіце пяць цяпер. Але, магчыма, я мог бы проста зрабіць цэлы лік, ці не так? Я мог бы, але вы ведаеце, што я зрабіў гэтая памылка аднойчы, у нейкім сэнсе. Некалькі гадоў таму я быў перенастройке з Microsoft Перспектывы для Gmail, і перспектывы ёсць спосаб экспарту усе вашыя кантакты, у якасці файла Excel, файл CSV, значэнні, падзеленыя коскамі файл. І я зрабіў памылку, я думаю, з двайнога пстрычкі па ім, як толькі я запампаваў экспарт, каб пераканайцеся, што ён выглядаў, як я чакаў. Павінна быць, я ўдарыў Захаваць або дазволіць запісаны аўтаматычна ўдар у ці нешта. Таму што, калі я затым імпартаваць гэта ў Gmail, усё гэта працавала. Але на працягу многіх гадоў, і па гэты дзень, і Я зрабіў гэта пяць, 10 гадоў таму, Я да гэтага часу знайсці сяброў, якія маюць адрасы, якія выглядаюць, як гэта. Чаму? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Спатрэбілася наперад 0, ну, гэта, хутчэй, ўзяў увесь паштовы індэкс, як шэраг, і, такім чынам, гэта вядучы 0, што азначае гэта не мае ніякага значэння. І так 2138, здаецца, мой паштовы індэкс. І гэта, шчыра кажучы, раздражняе Excel асаблівасць якой я думаю, што па змаўчанні, нават калі гэта азначала проста быць тэкст, Microsoft Excel вырашае, дазвольце мне быць карысным, і о, я бачу толькі лічбы. Давайце разглядаць іх як лікі. І гэта ўсячэнне вядучыя нулі. Я клянуся перад Богам, кожная пара месяцаў я знайсці адрас, і са свайго роду обсессивно-кампульсіўныя засмучэнні, я вяртаюся ў і дадаць 0, хоць я ніколі паслаць людзей лісты або што-небудзь. Але я да гэтага часу знаходзяць рэшткі гэтага. Так што гэта сказаць, ці з'яўляецца гэта добрай ідэяй? ОК, няма, таму што нехта ў Масачусэтс, у гэтай галіне, будзе мець O вядучую іх. Так што давайце ісці з падобным голец, напэўна, пяць. І вось, мы разумеем, можа выкарыстоўваць пералік і мы можа пералічыць 10000 магчымыя коды ZIP, але гэта адчувае, як гэта, верагодна, перасякаючы лінію, як, выгады. Калі вы павінны ўвесці, што вялікі аб'ём дадзеных у вашу базу дадзеных для абароны ад чагосьці. Так сімвал зразумеў, што вы маглі б увесці у Н-Е-Л-Л-О, як ваш паштовы індэкс, які, відавочна, не лікавы. Так што няма ніякага спосабу, у тыповая база дадзеных, паказаць толькі лікавыя і толькі пяць сімвалаў, такім чынам, мы будзем мець каб зрабіць гэта ў кодзе. Мы збіраемся зрабіць гэта ў PHP або Java або любы іншы мову мы выкарыстоўваючы на ​​сэрвэры для забеспячэння такога роду абмежаванні. Ого! Добра, таму ўсе пытанні толькі пакуль? Давайце зробім яшчэ адно праектнае рашэнне. Аказваецца, што вам таксама можаце выбраць, пры праектаванні базы дадзеных SQL, або тыповыя рэляцыйныя database-- дзе зноў жа, рэляцыйная проста азначае радкі і слупкі, вось як вы арганізаваць вашыя data-- і ўсвядоміць, што гэта азначае, Я ўводзіць у зман што, я гэта drawing-- тое, што называецца схема для табліцы базы дадзеных. гэта як спецыфікацыі для table-- але калі прыходзіць час, на самай справе захоўвання дадзеных, і мы будзем рабіць гэта толькі прыклад тут. Я збіраюся адкрыць Excel, таму што Excel дасць мне радкі і слупкі. І гэта менавіта тое, што Oracle і MySQL і іншыя інструменты дадуць мне. Так што я проста буду выкарыстоўваць гэта дзеля Абмеркаванне ст. Дазвольце мне ісці наперад і адкрыць Прадстаўнік дакумент тут, павялічыць няшмат. Так, напрыклад, нашы загалоўкі цяпер прозвішча, імя, пол, ID, адрас электроннай пошты, нумар вуліцы, вуліца, воклічы. Вуліца, горад, штат, проста аб змяшчаецца на экране. Дык што ж гэта азначае, што, калі Спачатку карыстальнік рэгіструецца на маім сайце, гэта будзе нешта накшталт Давід, малая, м, скажам, 1, malan@harvard.edu, вуліца нумар будзе быць як 1 Brattle плошчы, Кембрыдж, Масачусэтс, 02138, а затым гэтак далей. Таму, калі я кажу, што рэляцыйная база дадзеных або базы дадзеных SQL гэта радкі і слупкі, Я маю на ўвазе гэта. Што фактычныя дадзеныя захоўваюцца у радках і слупках. Гэта проста супадзенне, што мы гаварылі, і я быў проста малюнак яго у радках і слупках. Гэта проста схема, ўсёабдымная вызначэнне. Так што з гэтых палёў тут, ці што тое ж, там, якія з'яўляюцца поля, якія вы думаеце Я, верагодна, шукаць на, калі я з'яўляюся карыстальнікам або калі я з'яўляюся адміністратарам базы дадзеных? Маўляў, якія поля я такі на самай справе будзе шукаць далей? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Імя, ды так Мне падабаецца той факт, that-- ды, электронная пошта можа быць даволі распаўсюджанай з'явай. На жаль, вы сказалі імя. Так maybe-- і зноў, мы выгляд казаць абстрактна. Я не ведаю, чаму вы б шукаць для імя, але гэта адчувае сябе разумным, калі вы шукаеце карыстальнік. Можа быць, сцвярджае, вядома, ID. І гэта слізкі схіл, таму што я мог злаўчыцца сцэнар, пры якім можа быць, мой бос папрасіў мяне, колькі мужчын у нас ёсць на нашым сайце? Колькі жанчын у нас ёсць на нашым сайце? І вось у гэты момант, вы можаце захацець шукаць па гендэрнай вобласці, таксама, і нічога іншага. Такім чынам, ёсць кампраміс тут. Зноў жа, няма ніякіх правільны адказ, але ёсць гэта функцыя ў большасці баз дадзеных SQL вядомы як індэксацыі, у выніку чаго вы, дызайнер, адміністратар базы дадзеных, можаце вырашыць загадзя, якія Поля базы дадзеных павінны аптымізаваць для пошуку па. Вы маглі б вельмі наіўна сказаць, аптымізаваць гэта, аптымізаваць, што, аптымізаваць гэта, аптымізацыі, што і ў гэтым, і база дадзеных будзе зрабіць некаторыя магічныя рэчы пад капот, і рабіць што-то такім чынам, што ў наступны раз вы будзеце шукаць на любым з гэтых палёў, гэта, па сутнасці, будзе хутчэй. Гэта магчыма. Гэта не адмяняе сам сябе. Але павінна быць расплата. Калі вы па наіўнасьці, ці з празмерным энтузіязмам скажам, індэкс ўсіх гэтых галінах, так бы мовіць, зрабіць іх усіх эфектыўнага пошуку, якую цану вы, верагодна, плаціць? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Прадукцыйнасць. Што ты маеш на ўвазе? Ну прадукцыйнасць, па меншай меры ў Кантэкст я абмяркоўваю, гэта лепш зараз. Гэта вызначэнне індэксацыі. Гэта зробіць пошук хутчэй. Так што час змяншаецца, так бы мовіць. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Space. Такім чынам, яшчэ раз, гэта агульная гандаль. Я магу паскорыць пошук, але гэта будзе каштаваць вам больш байт прасторы. Чаму? Ну, па змаўчанні, калі ў нас няма ні аднаго з гэтыя чырвоныя зоркі, ні адзін з гэтых паказчыкаў, як я кажу, як вы пошук імя ў гэтай базе дадзеных? Такім чынам, давайце звернем Увагу да гэтага прыклад. Калі ў нас ёсць Дэвід і Скалі і Kareem і Arwa і іншыя ў гэтых радках, напрыклад. Так што давайце рабіць менавіта гэта. Скалі знаходзіцца тут, а затым мы маем Карыма і Arwa, і ўсе астатнія, калі вы гэтага не зробіце маюць пэўны індэкс, так бы мовіць, лепшае, што вы можаце зрабіць, гэта лінейны пошук. Калі вы шукаеце Arwa, мы не будзе мець магчымасць перайсці прама да яе хутка. Мы збіраемся пачаць вяршыню і прайсці ўвесь шлях да дна, не ў адрозненне ад нашага арыгінала Майк Сміт прыклад. Аднак, калі я кажу, эй, базы дадзеных, Індэкс першае поле імя, то гэта будзе нешта рабіць спрактыкаваней і падтрымліваць нешта як бінарны пошук. Гэта, верагодна, не бінарны пошук па сабе. Базы дадзеных, як правіла, выкарыстаць іншы Структура дадзеных пад назвай B-дрэвы, не варта блытаць з бінарнымі дрэвамі, што проста зрабіць гэта хутчэй шукаць нешта лагарыфмічная ў прыродзе. Але цана, якую вы плаціце, каб стварыць што асаблівасць, што структура дадзеных у памяці, гэта больш байт. Так што гэта можа заняць некалькі мегабайт, некаторыя гігабайты, хто ведае? Гэта залежыць ад дадзеных. Так што ў нейкі момант, вы павінны вырашыць, гэта, верагодна, не з'яўляецца агульным выпадкам. Дык што ж фактычная агульная выпадкі, калі вы сапраўды павінны былі выбраць, што вашы любімыя палі могуць быць? Электронная пошта. І мне падабаецца, таму што адрас электроннай пошты, у тэорыі, павінны быць унікальнымі. А так звычайна, калі вы ведаеце, загадзя, што адзін з вашых палёў ці будзе унікальным, што як правіла, добрае поле шукаць далей, таму што такім чынам, калі вы шукаеце что-то, вы збіраецеся атрымаць назад адзін або нуль адказаў, а затым вы зрабілі. Вам не трэба трымаць шукае ўсё ж іншыя. І таму ў дадзеным выпадку тут, электронная пошта, да таго часу, пакуль вы не можаце двойчы зарэгістравацца з той жа электроннай пошты, з'яўляецца добрым. ID па вызначэнні, у інфарматыка свет, калі вы кажаце пра ID, што лепш быць унікальным. Гэта свайго роду канатацыі пасведчання асобы або ідэнтыфікатара. А астатнія з іх могуць быць, давайце назавем іх прыемна заможным, але на самой справе не патрабуецца. І таму ў базе дадзеных, Вы вызначаеце індэксы, але вы можаце быць яшчэ больш дакладным. Вы можаце сказаць, эй, базы дадзеных, пераканайцеся, што кожны ідэнтыфікатар ў гэтай табліцы з'яўляецца унікальным. Нават не дазваляйце праграміста выпадкова пакласці ў дублікаце электроннай пошце ці дубляваць ідэнтыфікацыйны нумар. Гэтак жа, як пералічэнняў абараніць нас так жа, вас можа мець такія пярэчанні больш нізкага ўзроўню. І таму праектаванне баз дадзеных, у нейкім сэнсе, гэта свайго роду задавальненне, таму што вы робіце гэта абараняючыся. Вы, здаецца, выказаць здагадку, што вы працуеце з жудасны, жудасны праграмістаў і вы хочаце, каб пакласці ў столькі абароны як вы можаце абараніць вашы дадзеныя, але адначасова вы хочаце каб дапамагчы ім працаваць лепш выбраўшы які поля для аптымізацыі. Але вы не можаце абавязкова рабіць гэта ў вакуум, як мы накшталт тут. Вы павінны ведаць, якія гэтыя агульныя выпадкі быцця. Калі распрацоўшчыкі ажыццяўленне адраснай кнігі, вы можаце вельмі добра хочаце, каб мець магчымасць шукаць амаль на кожным полі, толькі па сваёй прыродзе прыкладання. Так што, можа быць, вы праводзіце што дадатковае прастору. Права, усе пытанні? Так. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Няма ГЛЕДАЧЫ: [неразборліва] DAVID Малання: OK. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: О, так што мы гаворка ідзе ў шляху Зараз гэта цалкам залежыць ад канкрэтнага мовы. Такім чынам, мы зараз гаворым пра рэляцыйных баз дадзеных, у больш агульным плане або SQL базы дадзеных у больш агульным плане. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Лепшае слова, каб выкарыстоўваць гэта, можа быць выкарыстаны любы мову. Так што я магу пісаць код JavaScript, C код код, C ++, Java-код, Ruby код, усе з якіх кажуць да базы дадзеных і выконваць запыты. На самай справе, гэта не дрэнна непасрэдна перайсці да прыклад запыту. І зноў жа, мы не збіраемся ўдавацца ў Java або C ++ або любой з гэтага больш, але ў SQL, мова, да якога я працягваю спасылаючыся, Structured Query Language, гэта само па сабе з'яўляецца мовай праграмавання, але гэта азначала быць выкарыстаны для, няма здзіўленне, структураваных запытаў запытаў. Пад гэтым я маю на ўвазе гэта. Спосаб выбару дадзеных з базы дадзеных MySQL гэта вы ў літаральным сэнсе тыпу ў вашай праграме нешта накшталт абярыце зорку ад карыстальнікаў. Я мяркую, што гэтая табліца, з гэтага часу называецца карыстальнікаў. Я мог бы назваць гэта ўсё, што мы хочам, але гэта свайго роду мае сэнс. І таму выбар вельмі агульны дзеяслоў, калі вы будзе, у SQL, якая літаральна робіць гэта. Як вы думаеце, зорка азначае, што ў дадзеным кантэксце? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Я шкадую? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Не патрабуецца, гэта больш шырокім, чым гэта, на самой справе. Гэта дзікі сімвал карты. Зорка амаль заўсёды азначае што-небудзь, так што гэта азначае, што, у дадзеным выпадку, выбраць усе з базы дадзеных. Таму, калі я кажу пра гэта, я маю на ўвазе вярні мне кожны слупок ад майго стала называецца карыстальнікаў. Так дайце мне набор вынікаў, як гэта называецца. Іншымі словамі, дайце мне копію электроннымі табліцамі, з'яўляецца тое, што я хілю. Але калі б я сказаў, абярыце зорка ад карыстальнікаў дзе ID роўна 1, наколькі вялікі павінна мой выніковы набор будзе тады? Ці тое ж, колькі радкоў павінна Я быць перададзены назад з базы дадзеных? Напэўна, толькі адзін, калі ў мяне ёсць на самой справе апрацоўваюць ID ў якасці унікальнага ідэнтыфікатара, і калі Дэвід мае той унікальны ідэнтыфікатар, я павінны атрымаць назад адну і толькі адзін радок які змяшчае ўсю інфармацыю Давіда. Калі б я сказаў, што гэта дзе ID роўная 99, я павінен вярнуцца, У гэтым кантэксце, нулявыя радкі, па меншай меры на дадзены момант. Аднак, калі я на самой справе не хвалюе аб усёй гэтай інфармацыі, Я мог бы проста сказаць, дзе жыве Дэвід? Выберыце паштовы індэкс з карыстальнікаў, дзе ідэнтыфікатар 1. Гэта дазволіць выбраць для мяне толькі паштовы Давіда код, а не паўната гэтага радка. Чаму я мог бы зрабіць гэта замест таго, зорка запыту, дзікая карта? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, я, магчыма, спатрэбіцца толькі яго. Так што прадукцыйнасць зноў тут адказ. Навошта прасіць больш інфармацыі, чым вам трэба, таму што нават калі гэта ўсё ў парадку разам, вы ўсё роўна павінны скапіяваць гэтыя дадзеныя, здавалася б, з базы дадзеных ў вашу праграму так ці інакш, і гэта проста недарэчна, калі вам трэба толькі пяць з гэтых лічбаў, ня сукупнасць шэрагу. Дык як жа я ўстаўляю карыстальніка? Выкажам здагадку, што карыстальнік мае толькі зарэгістраваны ў першы раз. Сінтаксіс звычайна выглядае наступным чынам. Уставіць у карыстальнікаў, і то мы сказалі б значэння, і тады мы сказалі б значэння як, скажам, Ларэн Скалі, наш відэааператар прама тут. І наступнае поле з'яўляецца падлогу. Так што мы будзем казаць цытата, канец цытаты "Е", гэта значыць ідэнтыфікатар і я збіраюся say-- давайце рабіць выгляд, што яна на самай справе не тут, таму мы пераматаць у гісторыі. Так 2 будзе яе ID. А потым наступнае поле Вось яе электронная пошта. Так што гэта будзе падобна Ларэн Скалі і гэтак далей, і мы проста кропка кропка кропка яго адсюль на. Цяпер ён будзе атрымліваць трохі стомна, але запыт ўстаўкі у канчатковым выніку выглядаць. Калі я хачу, каб пазбавіцца ад Скалі, э-э-о, давайце дерегистрировать яе, яна выдаляе яе кошт, выдаліць з карыстальнікаў, дзе ID роўна 2, пазбавяцца ад Скалі. Ці я магу сказаць ўсталяваць абнаўленне карыстальнікаў, скажам, што мы можам змяніць? Выкажам здагадку, што яна рухаецца. Набор на маланкі роўная 021-- Няма, гэта яе ток маланкі. 90210. Адзіны іншы паштовы індэкс Я ведаю, што ў сьвеце. Так што зменіцца яе паштовы code-- на самай справе, гэта не змяніла б яе паштовы індэкс. Што я толькі што рабіць? Нягледзячы на ​​тое, што сінтаксіс, верагодна, новы. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, я пераехаў ўсіх ў Бэвэрлі-Хілз, штат Каліфорнія. Так што я павінен на самай справе сказаць, дзе ID роўна 2. І гэтак далей. Так што SQL усё пра іх віды інструкцый. Выберыце, ўстаўляць, выдаляць, абнаўляць, з гэтымі прэдыкатамі ў канцы гэтыя пункты, дзе, так бы мовіць. І ёсць нашмат больш, вы можаце рабіць, але гэта на самай справе проста зводзіцца проста, калі arcanely, выказваючы што вы хочаце зрабіць базу дадзеных. А потым база дадзеных будзе высветліць, калі ўставіць Lauren Скалі ў базы дадзеных, куды змясціць яе ў памяці так што мы можам вельмі хутка атрымаць яна заснаваная на яе адрас электроннай пошты або на аснове яе ідэнтыфікацыйны нумар ці таму падобнае. Так, Дэн. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Сапраўды добры пытанне. Ці будуць гэтыя сцэнары пераходу ад Microsoft Access ў Oracle да MySQL у PostgreSQL? Кароткі адказ: гэта залежыць. Тэарэтычна існуе вельмі значнае агульнае падмноства SQL які выкарыстоўваецца ва ўсіх з гэтых рэалізацый. Тым не менш, розныя вытворцы маюць дадатковыя функцыі да іх баз дадзеных, каб рабіць пэўныя рэчы выходзіць за рамкі гэтых функцый, якія маглі б, на самай справе, перапынак. Так што распрацоўшчыкі шляху хеджировать супраць гэтага, з'яўляецца тое, што замест таго, каб пісаць сырой SQL-код, як я пішу тут, яны замест таго, каб выкарыстоўваць бібліятэку, агульная бібліятэка, якая сама па сабе з'яўляецца свайго роду больш высокага ўзроўню і тэзісы прэч, які прадукт вы выкарыстоўваеце. І гэта дае вам функцыі і працэдуры каб патэлефанаваць, так што вы ніколі на самай справе пісаць сырой SQL. У тэорыі, то вы можаце змяніць прадукты з Oracle ў Microsoft ці наадварот, або што-небудзь яшчэ, і вы ў літаральным сэнсе нічога не мяняюць аб вашым кодзе. Рэальнасць, аднак, з'яўляецца тое, вы часам адмовіцца ад функцыі ў якасці выніку. Вы маглі б выбраць прадукт, таму што ён атрымаў гэтыя функцыі з дабаўленай коштам, і вы толькі цяпер не выкарыстоўваючы іх свядома. І Займальна, што большасць кампаній, як правіла, ніколі не адыходзіць ад сваёй базы дадзеных. Такім чынам, у той час як гэта прыемна ёсць асаблівасць, рэальнасць ёсць, калі вы капітальнага рамонту ваша база дадзеных, вы верагодна, што робіць гронкі іншых змен ва ўсякім выпадку, што вы не абавязкова павінны прадбачыць, што. Так што, магчыма, над-інжынерныя праблемы, але гэта сапраўды залежыць ад кантэксту. Але ў тэорыі, SQL сумесна праз гэтыя розныя прадукты. Сапраўды добрыя пытанні. Так. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, так вы можаце думаць базу дадзеных гэта проста сервер, у канцы на наступны дзень, і ўнутры гэтага сервера гэта цэлая куча табліц, радкоў і слупкоў. І калі вы пасылаеце запыт, як гэта з вашай праграмы, ваш вэб-сайт, напісаная на Java, Ruby, Python, незалежна, сервер атрымлівае гэтую каманду і інтэрпрэтацыі яго ў літаральна так жа, як мы абмяркоўвалі раней з інтэрпрэтаваная мова, а затым выконвае якое-небудзь дзеянне на нуль або больш радкоў у нуль або больш табліц. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Точно, дакладна. Так псевдокод для чаго-то як гэта магло б быць гэта. У файле PHP ці вашы файл Python або файл Java, вы б псевдокод код, або Скрэтч-падобныя блокі, як, калі карыстальнік наведвае acme.com/register~~V ўпершыню, затым ўставіць у карыстальнікаў і гэтак далей. І мы б перавесці гэта больш канкрэтны код у канцы. Але на самой справе, у нас ёсць усе будаўнічыя блокі тут, нягледзячы на ​​тое, што мы прапускаючы некаторыя з этапаў рэалізацыі. Такім чынам, дазвольце мне прыдзірацца, што мы цудоўна зрабіў толькі хвіліну таму. Вы стварылі даволі Поўная табліца для карыстальнікаў. Варта прызнаць, што мы маглі б рэалізаваць гэта ў некалькі розных спосабаў, але вы на самой справе прывяло нас ўніз па path-- і я кажу вам, але гэта, верагодна, мой fault-- з даволі неэфектыўная рэалізацыя базы дадзеных. Гэта не нармаваныя. І я маю на ўвазе нармаваная там будзе, з цягам часу, значная надмернасць, і, такім чынам, неэфектыўнасць, што гэта пустая трата прасторы. На падставе толькі тое, што вы бачыце тут, можа Вы бачыце, дзе гэта пустая трата прасторы збіраецца прыбыць з цягам часу, , Як зарэгістраваць больш і больш карыстальнікаў для вашага сайта? Якія дадзеныя могуць стаць лішнімі? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Чаму вы маеце на ўвазе, што? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так. І давайце выкажам здагадку, што для мэтаў На сённяшні дзень, што гэта праўда. Аказваецца, і мы даведаліся гэта цяжкі шлях, гэта не так. Неяк некалькі гарадоў ёсць, так ці інакш, той жа паштовы індэкс, які разбурае гэтую выдатную інтуіцыю. Але давайце выкажам здагадку, што гэта праўда, таму што гэта амаль заўсёды дакладна. Таму выкажам здагадку, што паштовы індэкс заўсёды звязана з тым жа горадам і стан, якое з'яўляецца свайго роду разумнага здагадкі, але няслушна, атрымліваецца. Але разумнае здагадка для сённяшніх мэтаў. Зараз выкажам здагадку, што я жыву ў Кембрыджы, MA, у адпаведнасці з табліцай гэтага карыстальніка, і выкажам здагадку, што Ларэн Скалі жыве ў Кембрыджы, штат Масачусэтс, і выкажам здагадку, што Карыма жыве ў Кембрыджы, штат Масачусэтс, і Arwa жыве ў Кембрыджы, MA, усе мы ў 02138. Чаму мы памятаць, Кембрыдж, MA, 02138 для ўсіх нас чацвярых? Што павінна быць дастаткова, каб успомніць? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Проста паштовы індэкс. Толькі тое, што 02138 існуе, таму што Вы ведаеце, што мы можам зрабіць? Мы маглі б атрымаць трохі фантазіі тут і тут, вызначыць іншую табліцу дзе гэта збіраецца быць імя, гэта будзе тып, гэта збіраецца быць даўжыня, і ў далейшым, я буду называць гэта мой стол горада. Гэта было названа, з Вядома, мае карыстальнікі табліца. І так, што я павінен паставіць тут для маёй табліцы гарадоў, як вы думаеце? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так. Так маланкі і штат і горад. І таму тып тут, мы будзем казаць гэта будзе сімвал 5 разоў, пры ўмове дыскусіі раней. Гэта будзе пералік, магчыма, як раней, і горад будзе VARCHAR 50. Так што цяпер я атрымліваю каб сцерці з гэтай табліцы каб ліквідаваць гэтую неэфектыўнасць? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Ніца. Дзяржава і горад сысці, таму я прама цяпер ліквідавалі патэнцыйную неэфектыўнасць для залішне запамінання, Кембрыдж, MA, Кембрыдж, Масачусэтс, Кембрыдж, Масачусэтс, Кембрыдж, штат Масачусэтс, які, мы спадзяемся, ніколі не зменіцца. І нават калі гэта робіць, гэта minorly раздражняе, цяпер што я павінен змяніць ён у некалькі радкоў, у той час як тут, я мог бы проста змяніць яго ў адным месцы. Цяпер тое, што кампраміс, магчыма? Гэта было супер зручна. Калі б усе мае дадзеныя добра разам. Але тое, што так ідзе справа цяпер? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Цалкам дакладна, і я рады, што вы выкарыстоўвалі слова далучыцца, таму што гэта на самай справе ключавое слова, у свеце рэляцыйных баз дадзеных у SQL, гэта фактычнае слова, якое вы можа ўвесці або, па меншай меры, перадаць. І на самай справе, што мы зараз павінны зрабіць каб выбраць поўную інфармацыю Дэвіда нешта накшталт выбару зоркі з карыстальнікі, далучыцца горада, on-- і цяпер Я збіраюся проста перайсці на другой лініі так што гэтая fits-- users.zip роўная cities.zip, дзе users.ID роўны 1. Дык што ж адбываецца? Гэта непрыгожа выглядае, але вы можаце выгляд прачытаць яго злева направа, зверху ўніз. Выбар зорак ад карыстальнікаў такі ж, як і раней, але гэта не ад карыстальнікаў, якія самі па сабе. Гэта ад карыстальнікаў далучыцца гарадоў. Што я, якая злучае гэтыя дзве табліцы на? Што ж, мяркуючы па ўсім, карыстальнікаў табліцы паштовы індэкс поля, і гэты перыяд проста асаблівым сінтаксіс, каб выказаць гэтую ідэю, і гэта табліцы гарадоў паштовы індэкс поля. Я хачу, каб гэтыя двое быць роўнымі, але я хачу, каб у канчатковым выніку выбраць толькі тыя радкі, у якіх ID ў табліцы карыстальнікаў роўны 1, што здарылася з маім. І проста каб быць ясна, А праграміст, як правіла, калі жорстка нешта накшталт колькасці 1, так як у адваротным выпадку толькі вэб-сайт падтрымлівае Давіда ці таму Самы першы карыстальнік, вы замест гэтага рабіць нешта накшталт ID, дзе Гэта ўяўляе сабой зменная, тое, што можа мяняцца з цягам часу, аналагічна у духу таго, што я ўжо казаў раней з гэтымі відамі запаўняльнікаў. Але цяпер мы проста жорстка яго як 1. Дык што ж гэта азначае? Што ж, добры спосаб візуалізаваць гэта што калі гэтая рука табліца карыстальнікаў, і гэтая рука промелькивает стол, мы свайго роду finding-- а кончыкі маіх пальцаў на маланкі тут, а кончыкі маіх пальцаў вось зашпілька-маланка, вы выгляд блакавання яго так што вы атрымаеце назад атрыманы зыходная табліца, па-сапраўднаму далучыцца гэтыя дзве табліцы па агульным полі. І гэта не павінна быць на маланкі. Гэта можа быць самае што-небудзь яшчэ, але зашпілька-маланка добрая, таму што адзін, гэта коратка, два, гэта заўсёды такой жа даўжыні, так што ёсць рэальны каэфіцыент карыснага дзеяння да таго, што Аліўе прапанаваў тут з факторизуя маланку, і [Неразборліва] прапануе, каб мы пазбаўляемся горада і краіны. Так што гэта працэс вядомы як нармалізацыя. Ёсць пытанні на гэты конт? Ну дазвольце мне адзначыць, гэта такія рэчы, нягледзячы на ​​тое, што гэта даволі нізкага ўзроўню, гэта абмеркаванне, што вы маглі б падумаць вы, здаецца, атрымання страцілі ў пустазелля, гэта праява дастаткова магчымасць для распрацоўнікаў, каб быць дрэнным. І на самай справе, нават тады, калі мы, у курсы я вучыў, калі ў нас было, напрыклад, неспрактыкаваны бакалаўрыят праграмісты ствараць вэб-сайты, на першы погляд, вэб-сайты могуць выглядаць узрушаюча. І ў іх ёсць усе з функцыянальнасць мы прасілі, распрацоўшчыкі зрабілі добрую працу. Але яны не абавязкова ведаць досыць пра праектаванне баз дадзеных ці яны не думалі, цяжка досыць пра тыпы дадзеных і тыпы карыстальнікаў: Сайт будзе мець, і мы знаходзім, то, праз шэсць месяцаў, пасля таго, як яны скончылі або рушылі далей, што, чорт вазьмі, наш вэб-сайт на самай справе, па-сапраўднаму павольна. І я нават не кажу пра тое, мільёны ці тысячы карыстальнікаў. Я маю на ўвазе некалькі сотняў карыстальнікаў у універсітэцкім гарадку, усе з якіх любяць, напрыклад, крама для курсаў у у той жа час, яны выкарыстоўваючы гэты каталог курсаў Прымяненне я згадаў і рэч становіцца сапраўды запаволіць, таму што не было ніякіх індэксаў. Там не было ніякіх чырвоных зорак, так кажуць, ці ў нас было не абавязкова факторизовали агульныя дадзеныя атрымаць некаторую эканомію прасторы. І таму, калі зандаж распрацоўшчык або базу дадзеных асобы або т.п., віды пытанняў, прадумваць нават пры разглядзе чыйсьці код, сказаць, не абавязкова шукаць праз усе іх кода, але кажуць, давайце паглядзім праз табліцы базы дадзеных. Што ты захоўваць? А потым сказаць, ну, пачакайце хвіліна, чаму вы карыстаецеся цэлы лік? Што рабіць, калі ў нас ёсць 4 млрд і 1 з гэтых радкоў? І гэтыя віды пытанняў з'яўляецца магчымасць каб збольшага адціснуць і атрымаць пачуццё, дзе калі вы не зручна рабіць ён, маючы каго-то больш тэхнічны задаць гэтыя пытанні, ад таго, ці не чалавек сапраўды ведае сваю справу. І гэта свайго роду матэрыял таксама, што людзі ў Інтэрнэце, які самавукі, можа быць, даведацца радзей, таму што вы не абавязкова трапляўся столькі ж, таму што вы можаце атрымаць база дадзеных і працуе, але калі вы не чыталі на падручнікі ці былі распавёў аб нармалізацыі баз дадзеных і індэксацыі і прадукцыйнасць, гэтыя віды рэчаў што збіраюцца прычыніць вам шкоду. І вы маглі б падумаць, ці дрэнны інжынер Можна сказаць, ну, добра, мы лепш плаціць для большай базы дадзеных ці хутчэй базы дадзеных або проста выкінуць грошы на гэта, вертыкальна маштаб, не абавязкова так. Калі вы ідзяце in-- і вы можаце пайсці ў пасля fact-- і дадаць індэксы, і гэта можа заняць некалькі гадзін для базы дадзеных, каб стварыць што новыя дадзеныя Структура, што я згадваў раней, вы ўсё яшчэ можаце выправіць гэта пасля таго, як той факт, што гэта, дзе вы пачынаюць адрозніваць добрыя дызайнеры з дрэнна дызайнеры, а не толькі эстэтычна, але з пункту гледжання прадукцыйнасці, а таксама. Ёсць пытанні? Няма? Так што для NoSQL, які быў іншы тып базы дадзеных, да якой я згадваў раней, ў вас няма радкі і слупкі. Замест гэтага, вы б нешта што выглядае крыху больш, як гэта. Я збіраюся выкарыстоўваць агульны сінтаксіс. Фігурныя дужкі, здараецца выкарыстоўваецца тут даволі шмат. Вы маглі б мець нешта як першае імя Давід, вы, магчыма, у апошні раз імя малая, цытаты, Вы маглі б мець ID is-- прабачце, whoops-- ID 1, электронная пошта malan@harvard.edu, і я не буду затлумляцца друкавала астатняе, а потым некаторыя іншыя рэчы. Іншымі словамі, гэта тэкставае прадстаўленне ад таго, што мы звычайна называем аб'ект у кампутарнай праграме. І аб'ект, як правіла, проста калекцыя пар ключ-значэнне. Так зноў жа, гэта паўтаральная тэма. Мы бачылі пары ключ значэнне ў HTML, мы ўбачылі пары ключ-значэнне ў цяперашні час у кантэксце баз дадзеных, і мы бачыў пары ключ-значэнне ў кантэксце о, я думаю, мова раней сёння. Трымае прыдумляюць. І на самай справе, гэта сапраўды якія дадзеныя зводзіцца да таго, дадзеныя і метададзеныя, або значэння і ключы, адпаведна. таму нереляционная базы дадзеных, што-то на аснове на аб'ектах, дзе вы проста камяк ўсе разам і пакласці яго ў памяць, як правіла, будзе на фота, як, ці думалі, як гэта. І я пакіну, што цяпер, як свайго роду альтэрнатыўны падыход. І адно не абавязкова лепш, чым іншыя. На самай справе, вельмі ў модзе у гэтыя дні сістэмы кіравання базамі дадзеных як MongoDB і Redis і некаторыя з іх іншыя такія інструменты, у вольным доступе, але яны ўсё больш у модзе. Збольшага таму, што яны прапануюць дадатковыя асаблівасці над гэтымі таблічных падыходаў, але і таму, што яны трохі прасцей у выкарыстанні, таму што вы не павінны, як цяжка думаць, пра многіх з гэтых праектных рашэнняў. Так плюсы і мінусы. Так разумею, ёсць варыянты звыш таго, што мы толькі што выдаткавалі час на. Дык давайце зробім гэта. Давайце пераход трохі цяпер назад да вэб-праграмавання, так што мы як-то заключыць сёння з чымсьці гэта крыху практычны, запаўняючы некаторыя прабелы з учорашняга дня. Дазвольце мне перайсці да гэтага ў першую чаргу. Так Нагадаем, што ўчора мы мелі некаторую кананічную HTML старонкі, якія былі першапачаткова, толькі HTML, а затым у другую чаргу меў CSS, каскадныя табліцы стыляў. Гэта новы тэг, які мы не зрабілі см учора, або спыніцца на, так званы скрыпт тэгаў. Аказваецца, на самай справе вы можаце ўбудаваць мова, званы JavaScript ў вашым вэб старонкі і зрабіць свой вэб старонкі зрабіць нешта. Дык што ж я маю на ўвазе пад гэтым? Што ж, дазвольце мне ісці наперад і проста пазычаць гэты код на імгненне. Я не буду ўдавацца ў Cloud9, няма неабходнасці туды сябе толькі ўсё ж, і я буду называць гэтую alert.HTML. Я збіраюся ўставіць у мой файл тут. І толькі ўдакладніць, што я зрабіў, хай мне пайсці на гэты адрас і ісці, каб папярэдзіць, і вы ўбачыце Hello World. Але гэта свайго роду нішчыць. Я хачу зрабіць нешта крыху па-іншаму. Так што я збіраюся зрабіць гэта на самай справе. Я збіраюся ісці ў тут е, і паміж маімі тэгамі сцэнара, кажуць папярэджанне ( "Прывітанне, свет"); таму апавяшчэнне гэта крыху нязграбна, але ў мяне ёсць HTML, усярэдзіне якога знаходзіцца мова называецца JavaScript, і гэта тое, што называецца выклік функцыі або выкліку працэдуры. Гэта дзеяслоў, у літаральным сэнсе, у дадзеным выпадку, і я выкліку функцыі кода што нехта напісаў. Так што функцыянальнасць з'яўляецца папярэджанне, так што давайце пойдзем на гэтую старонку цяпер і націсніце кнопку перазагрузкі, і зараз вы ўбачыць трохі інтэрактыўнасці. Гэта свайго роду старой школы і непрыгожа. Гэты від нагадвае вам пра усплывальныя вокны, магчыма, мінулых гадоў але гэта сапраўды зрабіць што-то трохі больш праграмнай. Так што больш, чым гэта, давайце зробім нешта больш цікавае. Пусці тут і пазбавіцца ад гэтага. І я збіраюся ісці наперад і стварыць форму, як мы рабілі ўчора. На самай справе, вы ведаеце, што? Я збіраюся ісці ў google.html, які мы пачаў ўчора, які выглядаў гэта, з дапамогай якога мы шукалі ката Але зьвярніце ўвагу, што ёсць дабро з памылка ў бягучай версіі. Яна працуе для котак, але выкажам здагадку, што Я не супрацоўнічаць, і я не ўводзіць нічога, і я проста націсніце кнопку. Гэта накшталт дзіўных паводзін. Узяў мяне да рэальнага Google, ня даў мне паведамленне пра памылку. Я хацеў бы сказаць карыстачу Вы павінны даць нам значэнне. Такім чынам, як мы маглі б гэта зрабіць? Ну дазвольце мне вярнуцца ў Cloud9 і адпусьці мяне ў верхняй частцы маёй старонкі і дадаць тэг сцэнара, як гэта, дзе Я збіраюся ўвесці некаторы код JavaScript. І я збіраюся зрабіць наступнае. Калі (document.getelementByID-- і водгук што мы казалі пра тое, што раней, гэта функцыя. Што ID вы хочаце атрымаць? Я хачу, каб атрымаць д, і я збіраюся скажам ня роўна нічога, як this-- на самай справе дазволіць мне выкарыстоўваць падвойныя двукоссі толькі для consistency-- ня роўна нічога, затым абвестка ( "Калі ласка, увядзіце запыт") тут. Так што ў мяне ёсць тое, што, як уяўляецца, нешта накшталт стану. Мы ўжо бачылі гэтую агульную ідэю ў пустым месцы. Гэта як адзін з тых, галаваломкі часткі, якія выглядалі як гэта. І што я кажу? Ну, тут, я заўважаю збіраецца зрабіць наступнае. Я збіраюся даць гэтую форму поле не толькі імя д, які тое, што атрымлівае перадаецца ў Google, але я збіраецца даць яму лакальны ідэнтыфікатар, таксама называецца в. Але я мог бы назваць гэта ўсё, што я хочаце, я проста хачу, каб трымаць яго проста а таксама называюць яго д, толькі для прастаты. А цяпер я збіраюся зрабіць нешта крыху больш. На палі формы тут, я збіраюся дадаць тое, што называецца апрацоўшчык падзеі. На ўявіць, я хачу патэлефанаваць функцыя называецца Validate. Гэта яшчэ не існуе, гэта слова, ці гэты дзеяслоў Validate, таму што я збіраюся зрабіць тут цяпер дадаць некаторы код. Я хачу сказаць, функцыя Validate. Я збіраюся водступу гэта і дадаць яшчэ фігурная дужка тут і яшчэ адзін тут. Падумайце, што гэта робіць цяпер. У мяне ёсць now-- думаць пра гэта як стварыў свой уласны кавалак галаваломкі, якія раней не існуюць, і я назваў гэтую галаваломку кавалачках кавалак галаваломкі Validate. Яго мэта ў жыцці, каб выканаць чатыры радкі кода ўнутры яго. Калі document.getElementById так канцэптуальна, што збіраецца ісці ў элемент, HTML-элемент, унікальны ідэя проста д, а затым, нават калі сінтаксіс выглядае крыху дзіўна, што роўнае роўна проста азначае, што роўных. Такім чынам, гэта азначае, што калі элемент з унікальны ідэнтыфікатар д, калі атрымаў, не мае значэння, яна проста роўная цытата канец цытаты, нічога там, тое, што я хачу зрабіць? Я хачу крычаць на карыстальніка. І мы не будзем вельмі падрабязна тут. Я збіраюся вярнуцца ілжывым. Гэта значыць памылка. У адваротным выпадку, я збіраюся вярнуцца праўда. Так што альбо гэта спрацавала, альбо няма. Хлусня ці праўда. І зараз, калі я не зрабіў ніводнай памылкі, дазвольце мне захаваць гэта і перазагрузіць гэта. І дазвольце мне проста двойчы праверыць, што Я не, на самай справе, рабіць якія-небудзь памылкі друку, так што я не абняславіцца. Давайце паглядзім, калі гэта працуе. Так што цяпер я буду набіраць котак. Ён па-ранейшаму працуе, або палова працуе, па меншай меры. Цяпер дазвольце мне перазагрузіць яго, а цяпер давайце я паспрабую ўявіць без уводу anything-- чорт пабяры, ён зламаўся. Адзін момант. Дазвольце мне адкрыць кансоль, [Неразборліва] часопіс, перазагрузіце старонку. Дазвольце мне паспрабаваць гэта зноў. О, чорт вазьмі. Я забыўся. Я зрабіў памылку друку. Я памятаю, што гэта такое. .value. Я меў на ўвазе, калі значэнне кажуць элемента з ідэнтыфікатарам д роўна што, то гарлапаніць на карыстальніка. Так што цяпер дазвольце мне зноў затрымаць дыханне. Тут мы ідзем. Там мы ідзем. Калі ласка, увядзіце запыт. Так што гэта не даючы мне да канца. Я магу быць свайго роду гуллівыя з гэтым, і замест таго, каб праверка не маюць каштоўнасці, Я магу сказаць нешта падобнае, Больш не прыйдзецца шукаць для котак, і зараз мы можам толькі больш гулліва хай пошук карыстальніка для сабак, калі ён ці яна хоча, або калі я пайду сюды і шукаць котак, цяпер я не магу. Так што вынас тут? Так што, мы ўвялі ў наш свет HTML і CSS, функцыянальныя магчымасці праграмавання. Я магу на самой справе ў цяперашні час прымаць рашэнні ў кодзе. Раней усё, што я мог зрабіць, гэта пазначыць тэкставае ўтрыманне або графічнае ўтрыманне і сказаць яму, што паглядзець як і дзе, каб адлюстраваць. Цяпер я магу рэальна спытаць пытанні вэб-старонкі і прымаць рашэнні, заснаваныя на ім, і прапануе карыстачу калі мне трэба крычаць на яго ці яе. Дык давайце паспрабуем што-небудзь самастойна з гэтым. Ідзіце наперад, дазвольце мне адкрыць наступны слайд тут, і проста паказаць на адну рэч. Гэтак жа, як з дапамогай CSS, мы можам вынесці наш код JavaScript ў асобны файл, вы можаце зрабіць тое ж самае з JavaScript, як з дапамогай CSS. І вы карыстаецеся, што з дапамогай крыніцы атрыбут тэга сцэнара. Але мы не будзем ўскладняць цяпер. Замест гэтага, калі вы маглі б перайсці на гэтую старонку ня, но-- дазвольце мне перанесьці гэтую вакол у order-- ісці, калі вы маглі б, гэтую старонку тут. Гэтага URL тут. Гэта ў сённяшніх горкамі. Вы, магчыма, прыйдзецца перазагрузіць, таму што Я дадаў пару рэч. Але туды, дзе некаторыя галаваломкі чакаюць. І гэта дасьць нам шанец, ў трохі больш задавальнення кантэксце, песціцца з некаторымі JavaScript. І калі вы там, Я растлумачу, што чакае. Атрымаць зялёны. Набор сіні. Ўсталёўвае зялёны, ўсталёўвае чырвоны. На жаль. Прабачце. Гэта ступень нашай дакументацыя для гэтай задачы. І гэта будзе працаваць наступным чынам. Так што ў вас ёсць па гэтым пытанні старонка ўяўляе сабой цэлы букет галаваломак выявы па прыяцелем у Стэнфардскім універсітэце. Так што вы бачыце тут амаль выгляд адной з тых чароўных вачэй галаваломак, але калі вы проста глядзець на яго, нічога не збіраецца выскачыць на цябе. Хутчэй за ўсё, што-то схаваны ў гэтым вобразе. І ён схаваны наступным чынам. Малюнка, як вы ведаеце, можа быць які складаецца ўсяго з трох колераў. Некаторыя чырвоны, трохі сіняга, а таксама некаторыя зялёныя. І мы можам зрабіць усё кветак у вясёлцы шляхам змешвання гэтых трох колераў так ці інакш. Так гэта выглядае ў асноўным зялёны і сіні, але, як кажа тут Нік, гэта жалеза-галаваломкі малюнак галаваломка. Ён змяшчае малюнак нешта вядомым, аднак, выява было скажонае. Знакаміты аб'ект знаходзіцца ў чырвоных значэнняў. Тым не менш, чырвоныя значэння ёсць усе былі падзеленыя на 10. Такім чынам, яны занадта малыя, на каэфіцыент 10. Такім чынам, іншымі словамі, Нік прыняў зыходны малюнак, і ён ненасычаны ўсе чырвані ад яго, зніжэнне колькасці чырвонага чарніла, калі вы будзеце ў ім. Сінія і зялёныя значэння усё проста бессэнсоўна, выпадковыя велічыні, інакш шум распрацаваны каб схаваць рэальнае малюнак. Так што Нік зрабіў ён змякчыў чырвоны, а затым ён проста кінуў выпадковы колькасць сіняга і зялёнага на малюнку ў выглядзе няяснымі што на самой справе ўсё яшчэ там. Неабходна адмяніць гэтыя скажэнні каб раскрыць вобраз. Па-першае, усталяваць усе сінія і зялёныя значэння да нуля, каб атрымаць іх з шляху, і паглядзець на вынік. тады Памножым кожнае значэнне чырвонага на 10, згортваюць да прыблізна ў яго канчатковае значэнне. Што такое знакаміты аб'ект? Так што ўсё ў вас ёсць гэты прастакутнік ў вашым браўзэры прама цяпер. І да вашага ведама, што ёсць некаторыя стартавы код, калі можна так выказацца. Гэта код JavaScript, які Нік напісаў для вас. І да вашага ведама, што ёсць лінія ў сярэдзіне, што пачынаецца з касой рысы касой рысы, гэта што звычайна называюць каментаром. Гэта азначае, што гэта фраза для праграміста што не мае ніякага функцыянальнага сэнсу. Гэта проста візуальны сігнал да чалавека. Такім чынам, вы можаце пайсці далей і выдаліць толькі тую лінію, і быць супер асцярожныя, каб не выдаліць або змяніць што-небудзь яшчэ. І дазвольце мне вас праз што робіць гэты код, і я пакідаю яго для вас, каб высветліць сакрэтнае малюнак. Гэта першая лінія тут, што я проста выдзелены дае вам наступнае. З левага боку, ў вас ёсць тое, што называецца зменная, Нік адвольна, але абгрунтавана называецца IM для малюнка. На правай баку гэтага знака роўнасці, ён кажа, дайце мне новы цытата, канец цытаты "просты вобраз". Простае малюнак, у гэтым кантэксце гэта тое, што называецца класам, ну, гэта накшталт як class-- тэхнічна prototype-- але на самой справе, гэта дае мне новы аб'ект, змест якога з'яўляюцца файл, жалеза-puzzle.png. Іншымі словамі, Нік стварыў гэта паняцце простага малюнка так што мы можам, акрамя педагагічнай мэты, гуляць з выявай і змяніць яго чырвоны, зялёнага і сіняга колераў. І як мы робім гэта? Гэта зашыфраванае сінтаксіс тут накшталт як паўтору блока што некаторыя з вас бачылі ў пустым месцы раней Сёння, дзе вы можаце паўтарыць 10 разоў. У гэтым выпадку, Нік ня жорстка лік, напрыклад 10. Замест гэтага ён кажа, ініцыялізаваць зменная з імем х 0, праверыць, калі х менш шырыня малюнка. І так, каб быць больш правільным, выява зьяўляецца Зменная, кропка азначае ісці ўнутры яго і атрымаць яго шырыню, і затым адкрыць дужка, закрыты дужка проста шлях праграміста сказаць, што гэта функцыя. Гэта працэдура. гэта функцыянальнасць нехта напісаў. Выкарыстоўвайце яго і вярні мне адказ. І тады х ++ з'яўляецца мудрагелістым спосабам кажучы, пасля таго, як вы зрабілі гэта адзін раз, прырашчэнне х на 1. Іншымі словамі, гэта гэта шлях праграміста індукаваць пятлю, што гэта збіраецца перабраць усе слупкі ў малюнку. Малюнак проста сетка кропак, радкоў і слупкоў кропак. Гэта спосаб итерирования над усімі гэтымі калонамі. А на ўнутраным боку, У той жа час, мы пераборы над вышынь, тут і тут і тут. Так што гэта проста спосаб тащась, амаль як стары школьны машынцы, проста ісці над Увесь малюнак итеративно. Нават гэта не зусім цалкам ясна, проста прыняць на веру зараз, што гэтыя тры лініі кода разам, збіраецца, каб дазволіць вам выглядаць итеративно на кожны піксель, кожная кропка ў адлюстраванні. Што такое піксель? Ну, каб быць ясным, калі мы паглядзім у арыгінале і павялічыць маштаб, калі вы сапраўды пакласці вашы вочы на экран кампутара, гэта проста цэлая куча кропак, некалькі тысячы кропак спакаваныя разам там. І так, што вы збіраецеся рабіць? Кожны з гэтых кропак, канчатковае вызначэнне, з'яўляецца вынікам таго, што гэта наогул называецца RGB, чырвоны, зялёны, сіні, які зноў жа, могуць быць аб'яднаны ў даць вам любую колькасць кветак. На самай справе, калі вы памятаеце, ад многіх, шмат гадоў таму, Экраны для праектараў, як гэтыя рэчы Раней у мяне не адзін аб'ектыў, а тры. Адзін з іх выплюнуць чырвонае святло, адзін з іх выплюнуць зялёнае святло, адзін з іх выплюнуць сіні святло. І калі вы былі ў сярэдняй школе як я там, дзе яны ніколі не былі выраўнаваны, вы былі заўсёды глядзець гістарычныя фільмы якія былі некалькі скажоныя, таму што тры колеру не былі камбінуючы належным чынам. Але аказваецца, што кожны з гэтыя значэння чырвонага, зялёнага і сіняга колераў, можа мець шэраг звязаных з імі. Напрыклад, 0 для чырвонага азначае адсутнасць чырвоны, 0 для зялёнага азначае не зялёны, і 0 для сіняга азначае адсутнасць сіняга колеру. Так што калі ў вас няма чырвонага, няма зялёнага, няма і не сіні, якога колеру ў вас ёсць? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Вы б спадзяюся, гэта белы. На жаль, гэта operates-- шкада? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так што вы на самай справе маюць чорную, у гэтым выпадку. Так што калі ў вас няма ні аднаго з іх колеру уключаны, у вас ёсць чорны. Тым не менш, калі ў вас ёсць, скажам, шмат з іх, як шмат чырвонага, 255 з яго, шмат зеляніны, і шмат сіняга, гэта значыць белы. Такім чынам, гэтыя дзве крайнасці. Такім чынам, па гэтай логіцы, калі ў мяне ёсць шмат чырвонага і зялёнага і сіняга, які колер з'яўляецца тое, што? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: справа, відавочна. І тады няма чырвонага, шмат зялёны, сіні няма, а затым калі вы have-- добра, мы проста скончыць гэта, проста таму, што, але гэта, вядома, Цяпер, сіні. І цяпер вы можаце камбінаваць гэтыя колеры. Цяпер, як і ў бок, калі нехта з вас ёсць калі-небудзь рабіў некаторыя фактычныя дызайн вэб-сайта, Вы маглі б на самай справе см сімвалы, як гэта. FFF-- і на самай справе, гэта верагодна, нават гэта не так. Гэта FFFFFF. Хто-небудзь бачыў F-е і Э і А through-- так атрымліваецца, мы казалі ўчора аб дзесятковай сістэме, і сёння, накшталт пра дзесятковай сістэме. Сёння мы гаварылі пра двайковай сістэме. Аказваецца, шаснаццатковае вельмі агульная базавая сістэма для выкарыстання ў вылічэннях. Binary два, дзесятковы 10, шаснаццатковае 16. І атрымліваецца, як зрабіць вы разлічваеце у шаснаццатковым? Нуль, адзін, два, тры, чатыры, пяць, шэсць, сем, восем, дзевяць, што вы карыстаецеся пасля дзевяці? Які наступны нумар? Мы ўжо прывыклі да нуля. Мне трэба 16 з іх. Нуль, адзін, два, тры, чатыры, пяць, шэсць, сем, восем, дзевяць, Вы маеце патрэбу ў некаторай адвольнай канвенцыі. І тое, што чалавецтва вырашыла нейкі час таму, што пасля таго, як дзевяць прыходзіць ліст А, а затым B, а затым С. Такім чынам, як вы разлічваць у шаснаццатковым роўны нулю, адзін, два, тры, чатыры, пяць, шэсць, сем, восем, дзевяць, A, B, C, D, E, F, і што будзе разлічваць вы ўсе шляхі, аказваецца, да 15. Такім чынам, ад нуля да 15 роўна нулю праз F. Цяпер чаму гэта важна? Добра, калі ў вас ёсць два F-х, вось як вы выказвае 255. Так Карацей кажучы, у свет Photoshop, што графічны дызайн праграмнага забеспячэння, у свеце вэб-распрацоўкі, дзе ў вас ёсць шмат кветак, вядома, гуляць, часта праграмісты выказаць тыя, у шаснаццатковай сістэме, толькі таму, што, як правіла, каб быць крыху прасцей. Нават калі на першы погляд гэта значна складаней. Такім чынам, у любым выпадку, гэта важна таму што Нік у Стэнфардзе даў нам шэсць кавалкаў функцыянальнасці што вы, пачаткоўцы праграмісты, цяпер будуць мець магчымасць выкарыстоўваць. Убудаваны ў гэтую сетку старонка шэсць функцый, шэсць працэдур, якія Нік напісаў. Трое з іх атрымае Вас нумар, чырвоны, зялёны або сіні значэнне. Тры з іх будзе ўстаноўлена, што значэнне. І гэтыя сімвалы падкрэслівання проста запаўняльнікі, так што вы павінны ведаць, што гэта такое. Так што з гэтымі трыма функцыямі, першы з гэтых рэчаў будзе х-каардынатаў, і другі з гэтых рэчаў будзе у-каардынатаў. Іншымі словамі, якія Дот, якая пікселяў вы хочаце атрымаць зялёны колер, атрымаць сіні колер, атрымаць чырвоны колер. А потым тут, гэта будзе х, гэта будзе мець значэнне ў, і гэта будзе нумар. Дык давайце зробім першы лінія гэта разам а потым я пакідаю яго вам каб паспрабаваць вывесці ўсё астатняе. Такім чынам, у адпаведнасці з інструкцыямі На гэтай старонцы, нам трэба павялічыць чырвоны колер з каэфіцыентам 10, і нам трэба выдаліць зялёны і выдаліце ​​сіні колер. Давайце пачнем з апошніх сцэнарыяў. Так што, калі я хачу, і я збіраюся для водступу з дапамогай некаторых прастор, калі я хачу, каб усталяваць чырвоны, зялёны або сіні значэнне, Я збіраюся зрабіць наступнае. Малюнак, im.setBlue, а затым заснаваны на маіх інструкцый тут, якія тры рэчы я павінен тыпу ўнутры дужак цяпер? Мне патрэбен х значэння, у значэнне, і якая дата я павінен паставіць тут, калі я хачу, каб пазбавіцца ад на роўным месцы, на аснове гэтай гісторыі тут? Проста нуль. Калі я не жадаю, не блакітны, я проста збіраецца змяніць яго да нуля. Зараз давайце проста рэзюмаваць тое, што гэта робіць. У мяне ёсць тут на вяршыні Другая і трэцяя радкі, Я сцвярджаў, дзве завесы, укладзеныя цыклы, калі вы будзе, што будзем мець эфект прагрэсавальнай злева направа, зверху ўніз па ўсіх х каштоўнасці і ўсе значэння у. Таму што зноў жа, карціна проста сетку з радкоў і слупкоў. Так што гэта збіраецца атрымаць пазбавіцца ад усіх сіняга. Дазвольце мне пакінуць у наступным радку для вас. Як пазбавіцца ад усіх зялёных? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Ніца. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Ніца. І я буду выдаляць, а проста ўзяць клапаціцца аб тым, што вы не зрабілі ніякіх памылак друку. І калі вы адчуваеце сябе камфортна з тым, што вы зрабілі, ісці наперад і націсніце на кнопку Выканаць / Захаваць і паглядзіце, што атрымаецца. І зноў жа, мы зрабілі ўсяго тры змены. Мы выдалілі, што першы каментары і замяніць яго з гэтымі двума радкамі кода. І гэта нармальна, калі вам трэба патрапіць кнопку Выканаць / Захаваць пару раз каб нешта выправіць. І дазвольце мне таксама павялічыць на мой код, так што вы можаце транскрыбаваць. Добра. Так што я бачу Эндру што здаецца памылкай. Ён толькі што атрымаў вялікі чорны прастакутнік на яго экране. Хто-небудзь яшчэ ёсць вялікі чорны прастакутнік? ГЛЕДАЧЫ: Так. DAVID Малання: Вялікі чорны прастакутнік? ОК, так што давайце думаць аб тым, што гэта значыць. Мы сказалі, што нуль, нуль, нуль, так што не зялёны, ні чырвоны, ні сіні, збіраецца даць вам чорны. І атрымліваецца, што большасць нашых ноўтбукаў проста не хапае вернасці. Вы не можаце дакладна сказаць, ёсць на самай справе нешта ёсць. І калі вы выгляд, можа быць, нахіліцца ваш экран наперад і назад, можа быць, вы бачыце сёе-тое там? Можа быць, свайго роду, свайго роду? Гэта не зусім чорны. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Спойлер! Існуе некаторы чырвоны ёсць, але памятаеце з спецыфікацый праблемы, Нік таніраванае яго ўніз. Ён ненасычаны яго крыху, але не ўсе шляхі да нуля. Так што, калі мы хочам, каб павялічыць колькасць чырвонага колеру, дазвольце мне прапанаваць гэты трук. Дазвольце мне павялічыць на маім экране. І дазвольце мне ісці наперад і сказаць, сума роўная im.getRed (х, у). Гэты радок кода дае мне тое, што называецца зменнай. У мяне ёсць адвольна, але, магчыма, абгрунтавана назваў сваю зменную, што, па-відаць? Сума. Проста сума. Я мог бы назваць яго усё, што я хачу, але я выкарыстоўваючы гэтую іншую функцыю што я апісаў раней каб атрымаць колькасць чырвонага колеру ў кропцы х коска у. Чаму я зрабіў гэта? Што вы хочаце тут рабіць? Вам трэба add-- ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, можа быць, памножыць яго на 10. І калі вы не ведаеце гэтага, я ісці наперад і рабіць гэта. Я збіраюся ісці наперад і скажам, я хачу колькасць чырвонага колеру Я хачу быць што заўгодна знаходзіцца ў мінусе, разоў 10, і зорка, зорачка на вашым клавіятура the-- не выкарыстоўваюць х. Выкарыстоўвайце зорку. Вось як вы памнажаеце рэчы у большасці моў праграмавання. Так, па інтуіцыі Kareem, у захоўваецца ў гэтай зменнай называецца сума, наколькі чырвоны Я хачу, каб у кропцы ху. Як цяпер, я раблю што Піксельныя гэты лік? Вы ўжо зрабілі гэта раней. Вы ўсталёўваеце зялёны і сіняга да ніякага значэння, да нуля. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так, добра вы не хочаце яго 10. Вы ўжо зрабілі матэматыку тут. Такім чынам, мы атрымліваем значэнне чырвонага колеру, які ўяўляе сабой невялікі лік, відаць. Мы памнажаючы да +10. Тое, што вы хочаце зрабіць з пераменная велічыня цяпер? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Ніца. Так im.set-- што? ГЛЕДАЧЫ: setRed. DAVID Малання: setRed, у кропцы ху. Так. І толькі сума. Іншымі словамі, пераменная часовы запаўняльнік што вы можаце пакласці ўсё, што вы хочаце ст. Мы, здараецца, мяркуючы а колькасць у ім, у дадзены момант. Мы памножыўшы яго на 10, каб зрабіць яго больш. І зараз я падстаўляючы гэтую зменную як то трэці аргумент, або ўвядзіце ўсталяваць чырвоны. І так, што як толькі вы скончыць гэта, і прыняць да ведама з пункту з коскай і ў дужках. Ідзіце наперад і націсніце запусціць / захаваць зноў, і вы павінны бачыць, чароўным чынам, што было на самай справе там. [? Arwa ,?], Што там? Эйфелева вежа ў паўнапраўных чырвоны, не зусім цёмна. яна павінна быць больш відавочным зараз, так? ДОБРА. І Андрэй, не больш чорны скрыню? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Добра. Так што я буду трымаць гэта на экране. Калі вы жадаеце гуляць з гэтым пазней, я узнавіць гэта для вас. Але гэты код тут зрабіў менавіта гэта. Чаму мы не робім адзін аднаго. Дазвольце мне пракруціць ўніз трохі. Так што ў гэтым выпадку, праектар на самай справе не робяць гэта справядлівасць. Але на вашых экранах, вы, верагодна, маюць вельмі чырвоны і вельмі чорны скрыню. Гэта таксама загадка, што паказвае нешта вядомы. Тым не менш, выява было скажонае. Сапраўднае малюнак, на гэты раз, з'яўляецца у сініх і зялёных каштоўнасцяў. Тым не менш, яны ўсе былі падзеленыя на 20 так што значэнні вельмі малыя. Чырвоныя значэння проста выпадковыя ліку, шум. Адмяніць гэтыя скажэнні раскрыць праўдзівы вобраз. Так што Нік тады кажа вам, што рабіць. Ўсталяваць чырвоныя значэння да нуля, і то не сапсуе, што гэта такое. Затым памножце сіні і зялёныя значэння на 20. Так што гэта амаль тая ж праграма, як і раней, але вы заднім ходам працэсу. І я змесціць свой код з пакуль на экране ў выпадку Вы хочаце, каб вярнуцца да яго або гуляць далей з тым. Дазвольце мне павялічыць на гэта. Але вырашыць медны выява галаваломка, нумар два. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Добра, так што гэта адзін я не збіраецца даваць столькі падказак. Так што я would-- ой, давайце Разумееце, у вас ёсць памылка друку тут. Так што памятаеце, гэта тут на самой справе трэба ісці туды. Так што я хацеў бы прапанаваць, калі вы хочаце засяродзіць увагу на гэтым, ёсць адказ. Калі вы хочаце запісаць, што, што павінен атрымаць першы адзін рабочы. І тады вы можаце выкарыстоўваць яго ў якасці натхненне для другой. Ніца. Добра. І для цікаўных, гэта просты прыклад навукі або мастацтва называецца стеганография, мастацтва ўтойвання інфармацыі ў малюнках. Як правіла, выявы могуць быць вадзянымі вельмі груба з лагатыпам ў ніжняй частцы кут, але ясна, што вы можа быць нашмат больш складанымі пра гэта і на самай справе схаваць іншыя выявы ў малюнках як-то з гэтай тэхнікай. Вазьміце яшчэ 30 секунд, а затым мы па меншай меры, аб'явіць, што вы павінны ўбачыць. І я пакіну трэці адзін, як у хатніх умовах практыкаванні, калі вы хочаце больш з выклік у гэтыя выходныя. І я думаю, што Андрэй можа атрымалі яго ў першую чаргу. Што такое другі малюнак, Эндру? ГЛЕДАЧЫ: Статуя Свабоды. DAVID Малання: Статуя Свабоды будзе адказам на гэты раз. Так зноў жа, проста некаторыя простыя прыклады, мэта якіх каб даць вам адчуванне таго, як мы перавялі выяўленчы драпіна блокі да больш раздражняльным і многае іншае складаны код, але ўсе ідэі да гэтага часу дакладна гэтак жа, хоць і з увядзеннем Цяпер паняцці зменнай, будучы ў стане захоўваць нешта часова. Давайце зробім яшчэ адзін практычны, толькі цяпер злучаюць пункты да чаго-то трохі больш рэальнага свету. Калі вы будзеце гатовыя, калі вы маглі б перайсці да гэтага URL на экране. Гэта таксама ў сваю копію слайды, developers.google.com/maps~~V. Давайце на самай справе зрабіць нешта рэальны, так бы мовіць, на вэб-сайце з дапамогай API Карт Google, або інтэрфейс прыкладнога праграмавання, наступным чынам. Google, як і многія іншыя кампаніі, забяспечвае шмат вольнага функцыянальнасці што вы можаце выкарыстоўваць, каб пабудаваць свой ўласныя цікавыя прыкладання. На самай справе, калі вы калі-небудзь выкарыстоўвалі Uber, каб атрымаць таксі або аўтамабіль, Вы, напэўна, ведаеце, што ёсць Uber карту, і гэта паказвае аўтамабілі на ім. Гэта значыць, як лепш за ўсё, як я магу скажыце, Google Maps API. Яны на самой справе з дапамогай карт Google, але Uber не з'яўляецца адлюстраваннем кампаніі, і не будзе, што будзе Асабліва цікавай праблемай вырашыць на вяршыні сваёй праблема аўтасэрвісу. І вось яны стаяць, зноў жа, на плячах іншых, Google у гэтым выпадку. Такім чынам, яны выкарыстоўваюць карты Google, але іх уласныя аўтасэрвісы і іншыя падобныя функцыі. Такім чынам, мы збіраемся, каб скарыстацца гэта зрабіць наступнае. І калі я зайшоў занадта хутка, проста патэлефануеце мяне ў дадзены момант. Шчаслівы рэзюмаваць некаторыя рэчы малюнка. Вы павінны бачыць сябе на старонцы, як гэта. Так прыемна Google, і яны аднымі з лепшых забяспечыць не толькі API-інтэрфейсы, але свабодныя API-інтэрфейсы, якія вы можа гуляць з або выкарыстоўваць у камерцыйных мэтах. Яны пачынаюць, калі ваша выкарыстанне спагнанні платы высокая, але я пайшоў наперад, загадзя і падпісаў нас для бясплатнай ўліковага запісу што, спадзяюся, 10 кампутараў ня будзе дыскваліфікаваць нас за раптоўна. Такім чынам, мы спадзяемся, гэта дэманстрацыя будзе працаваць. І заўважце, што ў іх ёсць API-інтэрфейсы для Android, IOS, вэб, і вэб-сэрвісы, што б гэта ні. Давайце засяродзімся на Інтэрнэце. Такім чынам, націсніце на ружовы скрыню, вэб-старонак, і што прывядзе вас, спадзяюся, на старонку тут. І ў іх ёсць цэлая куча API. І гэта можа быць трохі пераважнай спачатку, але я буду накіраваць нас праз тое, што мы хочам. У левым верхнім куце знаходзіцца Карт Google JavaScript API, то API JavaScript. Так ісці наперад і націсніце гэтую. І гэта прывядзе вас цяпер да наступная старонка, дэманстрацыйныя і прыклады кода. Дазвольце мне павялічыць тут. І дазвольце мне прымусіць нас пракруціць ўніз, мэтай якіх дзе ён кажа, што хуткія крокі запуску. Ваш экран павінен выглядаць, як у мяне. І ёсць два крокі, атрымаць ключ і прыступіць да распрацоўкі. Я ўжо зрабіў крок адзін для нам, атрымліваючы так званую ключ. І гэта агульная ідэя. Ключ API, як правіла, толькі большое выпадковы лік або радок што вы павінны ўставіць у код, так што Google ведае, хто ты, калі вы выкарыстоўваеце іх службы, іх API. Гэта не значыць, што мы зараджаецца нічога. А зараз, націсніце, замест таго, каб адзін, націсніце пачаць распрацоўку. Калі б вы маглі проста памахаць мне больш, калі не ўпэўнены, дзе мы знаходзімся. Такім чынам, мы проста падрапаць паверхню, тут, але тое, што Я думаў, што было б пераканаўчым гэта на самай справе ёсць усе мы, выкарыстоўваючы Cloud9 ў адным акне і гэты падручнік у іншым акне, дазваляе фактычна атрымаць нашы ўласныя прыкладанняў і працуе якая ўбудоўвае звычай Google карту ў нашым уласным вэб-старонцы, а затым дадае адну ці дзве функцыі. Але мы проста падрапаць паверхню таго, што мы можам зрабіць. Так проста хуткая праверка наяўнасці свядомасці. Гэта ўсё на гэтай старонцы, Google Maps JavaScript API? Павінен сказаць, пачаць працу. Мы не збіраемся прайсці праз усё гэта любымі сродкамі. ОК, у іншай ўкладцы, калі вы гэтага не зробіце адкрыць яго, не ідуць у Cloud9 і атрымаць сябе толькі новая ўкладка, у канчатковым рахунку. Так зноў жа, c9.io з учорашняга дня, c9.io, і проста стварыць новы файл. І ісці наперад і выклік гэта ўсё, што вы хочаце. Я назваў маё map.html. Назавіце гэта што-небудзь сканчаецца на .html. І вы павінны быць прыкладна дзе я знаходжуся ў гэтым працэсе толькі з якая мігціць радкі ў пусты ўкладка пад назвай нешта накшталт map.html. Або файл, новы файл на гэты раз. А цяпер, на працягу Google Maps JavaScript API, мы прапусцім чытанне праз увесь гэты тэкст. Але заўважце, што гэта прывітанне свет на самай справе ўсюды, вы бачыце яго цяпер. Прывітанне свет мае такі вялікі маляўнічы Прыклад цэлай кучай HTML. Ідзем далей і скапіяваць і ўставіць толькі што HTML, таму ад тыпу дакумента ў верхняй ўсе шляхі да цеснай HTML тэга, перайдзіце наперад і скапіяваць ўсе that-- зноў, гэта пад прывітанне свет example-- і ўстаўце яго ў вашу ўкладку Cloud9, так што зараз ваш экран павінен выглядаць прыкладна як у мяне. І вы можаце захаваць яго, але не загружаць яго толькі пакуль. Давайце спачатку паглядзім на код і паглядзець, калі мы не можа вывесці або даведацца ад таго, што гэта Google была нам слепа капіяваць і ўстаўляць. Яны проста хочуць, каб дапамагчы, у літаральным сэнсе, каб нас пачалі, але там не так шмат складанасць на самай справе ёсць. Ёсць пытанні толькі пакуль? Мы ў бяспецы, каб прасоўвацца наперад? ДОБРА. Так хутка, давайце проста рабіць некаторыя хуткія праверкі здаровае. Лінія адзін з таго, што я см, і, спадзяюся, вам Разумееце, што гэта значыць, DOCTYPE HTML? Карыма, нагадаць? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Так. Вось ідзе HTML 5. У той жа час, лінія два на Экран тут азначае, эй браўзэр, тут прыходзіць фактычны HTML. Лінія тры з'яўляецца эй-браўзэр, тут ідзе галава. Лінія чатыры, вядома ж, эй браўзэр, тут прыходзіць назву. Што лінія пяць рабіць? На самай справе, гэта не сапраўды зрабіць што-небудзь для нас. У гэтым выпадку ён проста змяняе памеры старонка да дэфолту. Лінія шэсць, мы не казалі пра гэта, але гэта вызначае кадыроўку. Там у розныя спосабы кадавання файлаў, асабліва для замежных моў. UTF-8 проста, як правіла, па змаўчанні. Так што цяпер мы ўбачым у радку сем праз 16 гадоў, некаторыя CSS. І нягледзячы на ​​тое, што мы не бачылі усе гэтыя рэчы раней, мы можам зрабіць выснову, свайго роду. Так лінія восем сродкаў, эй браўзэр, прымяніць усе наступныя, да якіх два тэга, па-відаць? HTML і цела тэксту. Так коска новая рэч ёсць. І гэта проста спосаб паказаўшы некалькі тэгаў адразу. Тады ў нас ёсць фігурныя дужкі. Так што, па-відаць, гэта кажа браўзэру, зрабіць вышыню старонкі 100%. Так што нават калі ёсць вельмі мала змест, зрабіць усю старонку, зрабіць рэч запаўнення старонкі. Зрабіць карту ў канчатковым рахунку, запаўнення старонкі. Маржа, што гэта значыць? Гэта, як правіла, як адвольнае белае прастору па краях што некаторыя браўзэра дызайнер проста вырашыў павінен быць там, таму што выгляд робіць рэчы выглядаюць чысцей. Але мы не хочам гэтага. Мы хочам, каб карта збіраецца ўсе шляхі да бакоў. Перацяжка, падобныя па духу з ускраін. Поля азначаюць звонку, сродкі абіўка ўнутры, але гэта той жа самы выгляд здзелкі. Гэта крыху буфера паміж вамі і бакамі. І тады лінія 13 з'яўляецца добрым шанец для хуткага агляду. Што робіць рэзкі знак карты значыць, або хэштэгу карта азначае? Што азначае, што адносяцца, у прынцыпе? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Вы маеце рацыю. Гэта ўласцівасць, гэта ўласцівасць CSS ставіцца да толькі адной рэчы, тэг HTML што мае ідэнтыфікатар цытаты, Unquote "карце". А цяпер давайце хутка наперад, пракруткі аж да ніжняй часткі файла, які не занадта далёка, і апавяшчэнне аб лініі 19, калі ўставіць яго ў дакладнасці, як я зрабіў, радок 19 мае толькі DIV, які з'яўляецца раздзел старонкі, які я ўчора называецца прастакутная вобласць. Гэта не мае нічога ў ім. Гэта адкрыты тэг, які зачыняе тэг. Але ў яго ёсць унікальны ідэнтыфікатар. Так што, як уяўляецца, што тут адбываецца Google рыхтуе нашу вэб-старонку маюць поўную вышыню 100%, і без водступаў, без палёў, таму што тое, што мы збіраемся пакласці ўнутр гэтага DIV, унікальны ідэнтыфікатар карта, з'яўляецца актуальнай убудаванай карты. І мы хочам, каб запоўніць старонкі, а не толькі быць нейкі маленькі прастакутнік ў цэнтры. Такім чынам, лінія 14 гэтак жа падкрэслівае, то карта сама павінна мець вышыню 100%. Так што цяпер заўважыць паміж лініямі 20 і 28, гэта JavaScript код. І гэта, нават калі гэта сінтаксічна крыху дзіўна, там не ўсё, што многае тут адбываецца. У радку 21, гэта аб'яўляе тое, што называецца зменнай. Замест таго, каб называць яго складае, як мы гэта рабілі раней, мы больш дакладна кажучы зменная, якая проста азначае зменную. Мы маглі б выкарыстоўваць, што ў код Ніка, але ён гэтага не зрабіў, так што я не папрацаваў рабіць гэта альбо. Гэта зменная называецца карту, а затым ёсць функцыю, якая па-відаць, называецца initMap. Так што гэта як наш уласны карыстацкі кавалак галаваломкі ў пустым месцы. Мы стварылі кавалак Функцыянальнасць называецца initMap, і вы можаце збольшага зрабіць выснову што адбываецца тут. З левага боку, у нас ёсць пераменная, таму мы збіраемся паставіць наступнае рэч ўнутры гэтай зменнай, справа налева. Правая рука кажа, эй браўзэр, дайце мне новую карту Google. І google.maps.Map гэта проста ачмуральны спосаб ўказанні, што гэтая функцыянальнасць належыць Google Maps. Пасля таго, як у дужках, мы ўжо бачылі гэта раней, эй браўзэр, атрымаць мне элементы на старонцы, то тэг на старонцы, чый унікальны ідэнтыфікатар is-- ГЛЕДАЧЫ: [неразборліва] DAVID Малання: --map. А што адбываецца, ну, гэтая лінія разам, радок 23, па сутнасці кажучы, эй браўзэр, ідзі са мной што пусты DIV на старонцы чый унікальны ідэнтыфікатар карты, таму што я хачу, каб ўставіць у it-- ўпырснуць у яго, калі вы will-- цэлую кучу кантэнту што здараецца, прыходзіць з Інтэрнэту, пасля. І Google, рабіць усё, што для нас. Такім чынам, яшчэ раз, у самым канцы дня, у нас ёсць гэты прыклад абстракцыі. Я паняцця не маю, што такое карта ці як рэалізаваць карту API. Нам не трэба. Нам проста трэба сказаць карту дзе паставіць сябе, і пакінуць якія ляжаць у аснове рэалізацыі дэталі да Google. У цяперашні час існуе, па-відаць дзве часткі дадзеных што гэты прыклад прадастаўленне ў API Google. Па-відаць, цэнтр карты, і ўзровень маштабавання, так бы мовіць. І хто-небудзь распазнаць іх каардынаты, шырыня і даўжыня? Хутчэй за ўсё, няма, але мы можам вярнуцца у падручніку, у літаральным сэнсе бачыць. Але мы ўбачым яго ў імгненне. Ўзровень маштабавання з'яўляецца значэнне паміж, я не ведаеце, адзін у 13 ці нешта ў гэтым родзе. Гэта проста трэба зрабіць з тым, як далёка вы сціснутая або расцягнутая, і гэта ўсё. І цяпер у самым канцы старонка, апавяшчэнне лініі 29-- гэта крыху непрыгожа, таму што яна wraps-- гэты радок кода што загружае да браўзэр фактычнай API Google. Увесь код, што кампаніі Google інжынеры напісалі, якія рэалізуюць Уся гэтая асаблівасць вложимых карт. Зараз давайце нічога не зменіцца. Калі вы вынікаеце, ісці наперад і проста захавайце гэты файл, калі ў вас сапраўды ёсць што ў мяне ёсць. Перайсці да яго URL. Вы можаце націснуць кнопку Run наверсе і што скажа Вам URL вашага вэб-сервера зноў. І гэта прывядзе вас да новай ўкладцы. Калі для Вас націсніце кнопку Адкрыць map.html, і шанцы вы збіраецца атрымаць папярэджанне, паведамленне пра памылку, так? Паведамленне пра памылку, паведамленні пра памылкі? Такім чынам, на жаль, памылка паведамленне не тое, што асветніцкая калі вы на самой справе не адкрыць Кансоль, што ўкладка спецыяльны мы адкрываў ўчора і крыху раней сёння. Але я наткнуўся гэта раней, так што я ўжо зразумеў, што рашэнне. У сённяшніх слайдаў, або хутчэй, у Cloud9, апавяшчэнне што мы не рабілі нешта наўмысна. Звярніце ўвагу на тое, што гэты сцэнар тэг радок 29, калі вы прачытаеце яго, гэта як maps.googleapis.com/~~pobj нешта, што-то, что-то, зьвярніце ўвагу на тое хто-то, адзін з распрацоўшчыкаў, піша ва ўсёй сталіцы лісты, ваш ключ API. Нам трэба ўставіць нешта там. І гэта быў крок Я зрабіў для нас перш, і зноў яны маглі б чорны спіс нам, калі раптам, 12 або больш з нас пачаць выкарыстоўваць адзін і той жа ключ, але давайце паглядзім, што адбудзецца. Так што калі вы ідзяце ў сённяшніх слайды, адзін слайд пазней, ёсць гэта вельмі ачмуральны выгляд радкі тэксту. Ідзіце наперад і проста скапіяваць, што і ўставіць яго, дзе ён кажа, што ваш ключ API. Гэта той, які я падпісаўся на. І, безумоўна, не спрабуйце набраўшы яго ўручную, таму што ён адчувае сябе тоіць у сабе з памылкамі друку, патэнцыйна. Так проста скапіяваць і ўставіць гэта. І гэта збіраецца зрабіць лінію больш, але цяпер, проста каб быць ясна, яна павінна выглядаць трохі больш як гэта, дзе ключ ня роўны капитализируются крычаць на вас. Захавайце старонку, вярніцеся назад на ўкладку іншы, перазагрузіць, і спадзяемся ўбачыць карту, дзе? ГЛЕДАЧЫ: Аўстралія. DAVID Малання: Аўстралія. Так што, па-відаць, з'яўляюцца тыя, GPS-каардынаты Аўстраліі. І дазвольце мне хадзіць на імгненне і дапамагчы ўсім, хто не зусім там, але дазвольце мне прапанаваць, з дапамогай Google, знайсці GPS-каардынаты вашага роднага горада ці ваш уласны роднай краіне. І, верагодна, Google можа ператварыць гэта уверх ці Wikipedia можа сказаць вам. Але выбраць два розных значэння для шыраты і даўгаты, вярнуцца і ўставіць іх, і Затым перазагрузіце старонку пасля захавання і паглядзець, калі вы можаце мець карта для вашага роднага горада. А калі вы скончыце з што наступная дзейнасць challenge-- і я дам трохі менш кірунак, свядома, так што вы свядома прыйдзецца змагацца за пару хвілін з дакументацыяй, змяніць карту, каб быць не ў гэтым мультяшным па змаўчанні, але спадарожнікавая карта. Так што вы на самай справе бачыце спадарожнік вобразы замест прыгожых кветак. І намёк я дам вам гэта змяніць тып карты. Вярнуцца да таго, што атрыманне пачаў старонку для натхнення. Як вы запазычылі, калі вы шукаеце, Ёсць так шмат больш рэчы, якія вы можаце зрабіць. Некаторыя з вас ужо зменены тып карты. Але вы можаце do--, напрыклад, дазвольце мне перайсці да чаму-то мы зрабілі для курса Я teach-- maps.cs50.net. Адзін з нашых старшакурснікаў зрабіў гэта. Мы цэнтравання нашу карту над Harvard Yard і Накладанне ўсіх гэтых назваў будынкаў, і мы павінны былі яго дадаць гэта. Так што, калі я хачу, каб шукаць, напрыклад, Мэццюз зала, у нас ёсць трохі выпадальнае меню. І я думаю, што ён выкарыстоўвае Bootstrap, у Бібліятэка мы абмяркоўвалі раней для гэтага. І калі вы націснеце на Matthews Хол, ён неадкладна скачкі карту да вызначанага размяшчэнне, і гэта паказвае, вы карціна ў гэтым маленькім ўсплываючым акне. Але нават гэтая маленькая усплываючых вокнаў, мы не рэалізавалі. Калі я пракруціць ўніз на нашым атрыманні пачаў старонку і шукаць інфармацыйныя вокны, вы ўбачыце, што некаторыя з функцыянальнасць вы самі можна дадаць, хоць і з трохі больш складанасці, нешта, званае інфармацыйнае акно. І калі я націскаю прыклад тут, і гэта тое, што цікава, вы можаце зрабіць нешта накшталт гэтага, націснуўшы на маркер, а затым вуаля, інфармацыя ўсплывае. Такім чынам, мы не зусім ўведзеныя дастаткова асаблівасці JavaScript каб намаляваць карціну таго, як менавіта вам можа падключыць усе гэтыя рэчы разам, але мы-то падрапаў паверхню. На самай справе, што я толькі што зрабіў, калі Я націснуў на гэты маркер, быў выклікаючы падзея, так званае на падзею пстрычкі. І мы на самай справе ўбачыў падзея раней сёння, так званы прадставіць падзея, калі мы прадухілялі карыстальнік ад пошуку для котак. Такім чынам, мы абралі выгляд і абраў з ліку ўсіх гэтых розных функцый, каб даць вам адчуванне таго, мы спадзяемся, аб тым, што вы можаце на самой справе рабіць з трохі больш камфорт у праграмаванні, і цалкам свабодныя рэсурсы. Ёсць пытанні? Няма? Гэта ваш апошні шанец, скажам, сёння, у пятніцу, каб атрымаць што-небудзь ад грудзей так што ты выходзіш адсюль адчуваючы сябе ўпэўнена і камфортна. Так. ГЛЕДАЧЫ: Почему не Вы дадаеце яшчэ адну рэч? DAVID Малання: О, божа мой. Мне трэба, каб адпачыць у гэтыя выхадныя, я думаю. Іншыя пытанні? ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Вы ў can-- Internet Explorer, у астатнім свеце, вы выкарыстоўвалі, каб мець магчымасць паставіць VB Сцэнар, віртуальны базавы сцэнар, але гэта на самай справе ніколі не прыжыўся. Таму кароткі адказ проста JavaScript. Іншыя пытанні? Добра, ну, дазвольце мне зрабіць гэта. Дазвольце мне захапіць з нашымі калегамі за межамі. Яны маюць некаторую ацэнку формы, якія яны хочуць, каб усе каб правесці некалькі хвілін запаўнення. Яны хочуць, каб сабраць гэтую форму і любыя адмовы, якія вы маглі б мець звонку. Яны таксама будуць мець сертыфікаты. Я мяркую, што ёсць яшчэ некаторыя закускі звонку. Дазвольце мне перадаць іх, і калі вам ёсць якія-небудзь пытанні ў той жа час, Я буду хадзіць вакол больш індывідуальна і мы можам вам пачаць. Так, канечне. ГЛЕДАЧЫ: [неразборліва] DAVID Малання: Гэта як правіла, праўда, у гэтыя дні. Вядома, з вэб праграмнае забеспячэнне, вы належыце на іншых вы альбо эстэтычна выкарыстоўваючы рэчы як Bootstrap, так што вы не павінны рэалізаваць нізкі ўзровень Падрабязная інфармацыя аб меню і кнопкі і ўсё такое. Вы, абапіраючыся на каго-то як Google, так што вы не павінны будаваць Uber бізнес і адлюстраванне бізнес, і любую колькасць падобнае прыкладанняў, а таксама. На самай справе, лагіны папулярныя, таксама. Калі вы выкарыстоўвалі Spotify або любую колькасць вэб-сайтаў, вы будзеце увайсці ў некаторыя сайтаў з дапамогай Facebook. Так што добра, там з'яўляюцца API-інтэрфейсы для ўваходу ў сістэму у цяперашні час, так што вы не маеце каб мець свой уласны стол карыстальнікаў і ўсе вашай уласнай базы дадзеных абавязкова ў той жа ступені. Вы можаце дазволіць Facebook зрабіць усё з гэтай складанасці для вас. Так што гэта захапляльнае час, калі шчыра, у праграмаванні, таму што ёсць так шмат трэці бок паслугі, якія вы можаце пабудаваць на вяршыні. І зноў жа, цана, якую вы плаціце небудзь фінансавых або часу прастою. Калі Google ідзе ўніз, так што робіць Uber, магчыма, але, магчыма, што гэта разумны кампраміс. І зноў жа, гэта было адной з тэм, Будзем спадзявацца, што за апошнія пару дзён, гэтыя кампрамісы. І рэдка там адбываецца каб быць правільным адказам. Гэта на самай справе, тым лепш з двух або больш адказаў. Перадайце іх вакол. І гэтыя рахункі Cloud9 будзе працягвацца працаваць, у тэорыі, на неабмежаваны тэрмін. Вы можаце выявіць, калі вы будзеце чакаць некалькі дзён або на тыдзень ці больш, каб зноў увайсці ў іх, гэта можа заняць як адзін ці пяць хвілін, каб адкрыць назад уверх, але гэта толькі таму, што яны паклалі у спячы рэжым, каб зэканоміць рэсурсы.