1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:01,560 >> DAVID Malan: Molt bé, estem de tornada. 3 00:00:01,560 --> 00:00:03,830 Així que pel apassionant Per concloure, l'última secció 4 00:00:03,830 --> 00:00:06,900 en la programació web, que em Pensem que el fem servir com un terme general 5 00:00:06,900 --> 00:00:08,440 per capturar alguns dels temes restants. 6 00:00:08,440 --> 00:00:10,390 Així que al final de la dia, farem realitat 7 00:00:10,390 --> 00:00:14,830 una mica de pràctica en la programació web amb un llenguatge anomenat JavaScript. 8 00:00:14,830 --> 00:00:17,510 I crec que anem a fer una ullada en alguna cosa relacionada amb imatges 9 00:00:17,510 --> 00:00:20,040 i el descobriment d'alguna cosa secret ocult en una imatge, 10 00:00:20,040 --> 00:00:23,230 i també fer una ullada a la Google Maps API, programació d'aplicacions 11 00:00:23,230 --> 00:00:26,040 interfície, com una cosa representatiu del tipus de programari 12 00:00:26,040 --> 00:00:28,800 això és cada vegada més i lliurement disponibles en l'actualitat. 13 00:00:28,800 --> 00:00:32,029 >> Però, per què no fer una ullada en un ingredient a aquest món 14 00:00:32,029 --> 00:00:34,070 que hem tipus d'estat amb el benentès que existeix 15 00:00:34,070 --> 00:00:36,720 durant algun temps, una base de dades. 16 00:00:36,720 --> 00:00:39,150 Durant l'últim dia i mig hem assumit 17 00:00:39,150 --> 00:00:42,910 que tenim accés a una base de dades, però Quin problema es resol d'una base de dades? 18 00:00:42,910 --> 00:00:45,540 Què fa per nosaltres? 19 00:00:45,540 --> 00:00:47,030 Que és aixo? 20 00:00:47,030 --> 00:00:48,679 >> AUDIÈNCIA: [inaudible] 21 00:00:48,679 --> 00:00:51,720 DAVID Malan: pot contenir tota la informació, OK, i quin tipus d'informació 22 00:00:51,720 --> 00:00:53,186 podries posar-hi? 23 00:00:53,186 --> 00:00:54,590 >> AUDIÈNCIA: [inaudible] 24 00:00:54,590 --> 00:00:56,450 >> DAVID Malan: Qualsevol informació es posa en ella, que posarem en contacte. 25 00:00:56,450 --> 00:00:57,070 Això és cert. 26 00:00:57,070 --> 00:01:01,900 I en un lloc basat en la web o al web típica aplicació, quin tipus d'informació, 27 00:01:01,900 --> 00:01:03,385 En concret, pot ser que li posarà en? 28 00:01:03,385 --> 00:01:04,260 AUDIÈNCIA: [inaudible] 29 00:01:04,260 --> 00:01:05,051 DAVID Malan: Usuaris. 30 00:01:05,051 --> 00:01:07,000 Llavors, què és un usuari? 31 00:01:07,000 --> 00:01:09,765 >> AUDIÈNCIA: [inaudible] 32 00:01:09,765 --> 00:01:11,640 DAVID Malan: OK, registrat usuari del lloc. 33 00:01:11,640 --> 00:01:15,100 I el que vol dir la informació del magatzem dels usuaris? 34 00:01:15,100 --> 00:01:17,260 El compon un usuari? 35 00:01:17,260 --> 00:01:18,331 Un usuari té què? 36 00:01:18,331 --> 00:01:19,206 AUDIÈNCIA: [inaudible] 37 00:01:19,206 --> 00:01:21,040 DAVID Malan: Sí, personals dades, i això m'agrada. 38 00:01:21,040 --> 00:01:21,970 Anem a ser més precís. 39 00:01:21,970 --> 00:01:25,275 Així, un usuari típicament té un nom, ¿Què més que un usuari podria tenir? 40 00:01:25,275 --> 00:01:26,150 AUDIÈNCIA: [inaudible] 41 00:01:26,150 --> 00:01:29,130 DAVID Malan: Un Acceptar addr--, per la qual cosa el nom, cognom. 42 00:01:29,130 --> 00:01:29,630 Això està bé. 43 00:01:29,630 --> 00:01:31,463 En realitat, arreglarem que, a causa que va 44 00:01:31,463 --> 00:01:35,010 per obrir una oportunitat per discussió, tot i així, encara més. 45 00:01:35,010 --> 00:01:39,090 En primer nom, cognom, sexe. 46 00:01:39,090 --> 00:01:41,820 47 00:01:41,820 --> 00:01:43,481 Un ID d'algun tipus. 48 00:01:43,481 --> 00:01:43,980 Què més? 49 00:01:43,980 --> 00:01:45,438 Vaig sentir una altra cosa abans, també. 50 00:01:45,438 --> 00:01:51,600 Un correu electrònic, adreça postal. 51 00:01:51,600 --> 00:01:58,170 >> Així que farem una pausa allà i ara consideren no el que estem emmagatzemant a la base de dades, 52 00:01:58,170 --> 00:02:01,980 Pero-- i per què no, ja que és potser obvi que una vegada que es registra un usuari, 53 00:02:01,980 --> 00:02:03,730 vols recordar que des de fa algun temps. 54 00:02:03,730 --> 00:02:05,480 No vol que es simplement ser emmagatzemats en la memòria RAM 55 00:02:05,480 --> 00:02:08,690 i ser així forgotten-- ens centrarem en el com. 56 00:02:08,690 --> 00:02:11,700 >> Resulta que en el món de les bases de dades, 57 00:02:11,700 --> 00:02:14,410 hi ha almenys dos tipus d'aquests dies. 58 00:02:14,410 --> 00:02:20,010 Una cosa que es diu una base de dades SQL, Structured Query Language, 59 00:02:20,010 --> 00:02:24,770 o, cutely anomenat, NoSQL, que no és SQL. 60 00:02:24,770 --> 00:02:26,980 I l'últim és una exemple del que podria 61 00:02:26,980 --> 00:02:30,660 ser anomenat un objecte-orientat, o un magatzem d'objectes, una base de dades 62 00:02:30,660 --> 00:02:36,010 que emmagatzema objectes, i no, excusa jo, com aviat veurem, files. 63 00:02:36,010 --> 00:02:41,800 >> Per tant ens centrarem en un moment en el primer d'aquests, a saber, una SQL 64 00:02:41,800 --> 00:02:46,850 base de dades, si més no perquè és ja tan familiar, a qualsevol 65 00:02:46,850 --> 00:02:51,070 que ha utilitzat o Excel Fulles de Google o Apple 66 00:02:51,070 --> 00:02:53,740 Números o qualsevol norma programa de full de càlcul, 67 00:02:53,740 --> 00:02:56,040 o, de manera equivalent, o més sofisticat, 68 00:02:56,040 --> 00:02:58,610 una mena de Microsoft L'accés o Oracle 69 00:02:58,610 --> 00:03:03,890 o MySQL o PostgreSQL, tots els quals són els noms de productes per a les implementacions 70 00:03:03,890 --> 00:03:04,865 de la següent idea. 71 00:03:04,865 --> 00:03:10,350 >> Una base de dades relacional és simplement cosa que té files i columnes. 72 00:03:10,350 --> 00:03:12,850 I per files i columnes, Em refereixo a alguna cosa, literalment, 73 00:03:12,850 --> 00:03:21,860 d'aquesta manera, així que on podríem tenir la nom d'un camp i el seu tipus per aquí. 74 00:03:21,860 --> 00:03:25,800 I, de fet, em va deixar Ara començar a mapejar aquests. 75 00:03:25,800 --> 00:03:29,420 Així que en realitat, no sé Per això vaig fer un gràfic separat. 76 00:03:29,420 --> 00:03:30,780 Anem a mantenir aquest senzill. 77 00:03:30,780 --> 00:03:34,830 >> Tenim aquí la inicis de la nostra taula, on 78 00:03:34,830 --> 00:03:40,150 aquest és el nom del camp i aquest és el tipus de dades, 79 00:03:40,150 --> 00:03:41,660 i per tipus em refereixo al següent. 80 00:03:41,660 --> 00:03:45,510 És un nombre, que és una cadena, una cadena curta com una paraula, 81 00:03:45,510 --> 00:03:49,340 es tracta d'un paràgraf, que és dades binàries, com una imatge? 82 00:03:49,340 --> 00:03:51,980 I anem a burlen d'aquesta separats només per un moment. 83 00:03:51,980 --> 00:03:57,575 Així que, primer nom, número, cadena, gran part de text-- 84 00:03:57,575 --> 00:03:58,450 AUDIÈNCIA: [inaudible] 85 00:03:58,450 --> 00:03:59,616 DAVID Malan: Sí, així cadena. 86 00:03:59,616 --> 00:04:04,744 I en un context de base de dades, anem a solen anomenar a aquest camp carbó. 87 00:04:04,744 --> 00:04:07,660 Només diré Char per ara, però estem va a perfeccionar això en un moment. 88 00:04:07,660 --> 00:04:09,180 camp de caràcters. 89 00:04:09,180 --> 00:04:11,365 Cognom probablement la mateixa. 90 00:04:11,365 --> 00:04:11,865 Gènere? 91 00:04:11,865 --> 00:04:16,230 92 00:04:16,230 --> 00:04:18,310 >> Home o dona, per la qual cosa podria ser un camp Char. 93 00:04:18,310 --> 00:04:21,380 Podria ser qualsevol cita, cap de la cita "Mascle" o una cita, cap de la cita "femella" 94 00:04:21,380 --> 00:04:23,650 o podria ser m o f. 95 00:04:23,650 --> 00:04:26,540 Si vols ser més inclusiva, és possible que necessiti un tercer valor 96 00:04:26,540 --> 00:04:28,640 o algun altre tipus de camp complet. 97 00:04:28,640 --> 00:04:31,350 I el que podria utilitzar veritable fals. 98 00:04:31,350 --> 00:04:35,036 El camp podria ser anomenat mascle, i llavors es podria dir veritable o fals. 99 00:04:35,036 --> 00:04:38,160 Però això no vol dir necessàriament captura tota la informació que desitgi. 100 00:04:38,160 --> 00:04:41,118 >> Així que resulta que hi ha un altre tipus de de camp que podria ser útil aquí 101 00:04:41,118 --> 00:04:46,040 en una base de dades típica, anomenada enum, on és un camp de caràcters, 102 00:04:46,040 --> 00:04:50,480 però, el dissenyador, per obtenir enumerar els possibles valors, 103 00:04:50,480 --> 00:04:54,630 com van dir ells "mascle", cita, Fi de la cita "femella" i així successivament. 104 00:04:54,630 --> 00:04:57,620 Així que qualsevol que sigui el valor està a la base de dades, 105 00:04:57,620 --> 00:05:00,670 és de fet basada en caràcters, però ha de ser un d'aquests valors. 106 00:05:00,670 --> 00:05:03,520 És probable que no volen una enumeració per al nom o el cognom. 107 00:05:03,520 --> 00:05:05,630 Altrament hauríem enumerar, com el seu nom 108 00:05:05,630 --> 00:05:09,570 es deriva de, literalment, cada possible primer nom i cognom. 109 00:05:09,570 --> 00:05:13,960 >> OK, així ID quin ha de ser una identificació? 110 00:05:13,960 --> 00:05:15,200 Sí, així que potser un número. 111 00:05:15,200 --> 00:05:17,870 Així que seguirem amb que, per ara, el nombre. 112 00:05:17,870 --> 00:05:22,010 I per nombre, el nombre és una mica massa àmplia ara. 113 00:05:22,010 --> 00:05:23,900 Per al final de la segona dia, em sento com si 114 00:05:23,900 --> 00:05:25,280 hauria de ser una mica més precís. 115 00:05:25,280 --> 00:05:29,280 Nombre podria significar similars, podria ser alguna cosa així com 1.236. 116 00:05:29,280 --> 00:05:31,500 I això no és probable el que entenem per una identificació. 117 00:05:31,500 --> 00:05:34,635 Què és probable que entenem per una identificació? 118 00:05:34,635 --> 00:05:36,382 >> AUDIÈNCIA: [inaudible] 119 00:05:36,382 --> 00:05:38,590 DAVID Malan: Oh, està bé, per la potser ni tan sols és un nombre. 120 00:05:38,590 --> 00:05:42,840 Potser en realitat és un identificador únic això és una cadena, com un nom d'usuari. 121 00:05:42,840 --> 00:05:44,580 Tan absolutament, que podria ser. 122 00:05:44,580 --> 00:05:46,730 Crec que algú probablement significat numèric, però. 123 00:05:46,730 --> 00:05:48,460 Així que anem a quedar-nos amb això. 124 00:05:48,460 --> 00:05:49,320 Quin tipus de nombre? 125 00:05:49,320 --> 00:05:51,960 Què és un nombre enter més precise-- un. 126 00:05:51,960 --> 00:05:56,710 Així un nombre com 0, 1, 2, 3, pel que anem a trucar a aquest un nombre sencer. 127 00:05:56,710 --> 00:05:58,909 I tot i així, vaig poder s'acaba avorrint, és 128 00:05:58,909 --> 00:06:00,700 No realment només una sencer en general que desitgi. 129 00:06:00,700 --> 00:06:04,340 És probable que no desitja que els valors negatius, només perquè, només se sent estrany. 130 00:06:04,340 --> 00:06:06,070 És possible que vulgueu enters positius. 131 00:06:06,070 --> 00:06:07,920 Així també es pot expressar que, en una base de dades, 132 00:06:07,920 --> 00:06:09,450 però per ara, direm sencer. 133 00:06:09,450 --> 00:06:10,650 >> Correu electrònic? 134 00:06:10,650 --> 00:06:13,550 Aquesta és probablement una sol-- què? 135 00:06:13,550 --> 00:06:14,460 >> AUDIÈNCIA: [inaudible] 136 00:06:14,460 --> 00:06:16,980 >> DAVID Malan: És un correu electrònic, però això és caràcters, oi? 137 00:06:16,980 --> 00:06:19,813 Només té un caràcter modern com un símbol "a" o alguna altra cosa, 138 00:06:19,813 --> 00:06:21,580 però segueix sent un camp de caràcters. 139 00:06:21,580 --> 00:06:23,900 I l'adreça postal? 140 00:06:23,900 --> 00:06:25,360 camp de caràcters. 141 00:06:25,360 --> 00:06:31,400 Així que això és un bon començament, però serem una mica més precís moment. 142 00:06:31,400 --> 00:06:34,540 >> Així resulta que en una base de dades, sovint 143 00:06:34,540 --> 00:06:39,120 tenen dret a triar la més refinada versions d'aquestes coses. 144 00:06:39,120 --> 00:06:44,330 De fet, en una base de dades típica de SQL, SQL, o més en general, bases de dades relacionals, 145 00:06:44,330 --> 00:06:46,680 bases de dades amb files i columnes, que sovint 146 00:06:46,680 --> 00:06:53,610 arribar a especificar no només el tipus de la field-- permetin-me fer algunes aquí-- habitació 147 00:06:53,610 --> 00:06:56,600 sinó també la longitud. 148 00:06:56,600 --> 00:06:59,900 >> Quant de temps és un nom de pila? 149 00:06:59,900 --> 00:07:07,060 Crec, D-A-V-em-D. OK, ho tinc jo Probablement només ofès com la meitat 150 00:07:07,060 --> 00:07:11,260 de les persones a la sala, a la dreta, ja que els seus noms són més de cinc 151 00:07:11,260 --> 00:07:16,608 cartes, pel que 5 sembla una mica egoista i ingenu, així que quin és un millor valor? 152 00:07:16,608 --> 00:07:19,320 153 00:07:19,320 --> 00:07:24,330 10, d'acord, i crec estem bé a l'habitació. 154 00:07:24,330 --> 00:07:26,254 13? 155 00:07:26,254 --> 00:07:27,541 30? 156 00:07:27,541 --> 00:07:29,540 Per què no em prenc la enfocament d'abans, quan ens 157 00:07:29,540 --> 00:07:31,081 estaven parlant sobre les matrius i de la memòria? 158 00:07:31,081 --> 00:07:32,450 Per què no m'acaba de dir com 1.000? 159 00:07:32,450 --> 00:07:35,260 El nom de ningú va per a ser més llarg que 1000. 160 00:07:35,260 --> 00:07:36,706 Fer retrocedir. 161 00:07:36,706 --> 00:07:38,005 >> AUDIÈNCIA: [inaudible] 162 00:07:38,005 --> 00:07:40,130 DAVID Malan: Sí, és malbaratament, a la dreta, sobretot 163 00:07:40,130 --> 00:07:44,630 Només cinc o 10 si la majoria dels noms són o 15 caràcters, això és un gran desaprofitament. 164 00:07:44,630 --> 00:07:45,810 Així que ja saben què? 165 00:07:45,810 --> 00:07:48,020 Aquesta és una pregunta una mica difícil. 166 00:07:48,020 --> 00:07:51,721 Ara, sens dubte podem analitzar Anglès i els noms de qualsevol altre idioma 167 00:07:51,721 --> 00:07:54,470 i esbrinar, així, quin és la average-- mitjana en realitat no 168 00:07:54,470 --> 00:07:57,150 ajudar a nosaltres-- el que és el màxim és Probablement el que realment volem. 169 00:07:57,150 --> 00:07:59,920 Però resulta que fins i tot tenim alguna opció sobre el tipus aquí. 170 00:07:59,920 --> 00:08:03,400 >> En una base de dades típica de SQL, haver alguna cosa que es diu un camp Char 171 00:08:03,400 --> 00:08:07,505 i també un varchar, V-A-R, per al camp carbó variable. 172 00:08:07,505 --> 00:08:08,630 I la diferència és la següent. 173 00:08:08,630 --> 00:08:12,400 Un camp char, que el dissenyador, ha d'especificar per avançat 174 00:08:12,400 --> 00:08:14,900 la longitud exacta del camp. 175 00:08:14,900 --> 00:08:20,530 Així que potser el primer nom igual que 20 se sent tipus d'assegurança. 176 00:08:20,530 --> 00:08:23,950 Podria haver de fer algunes google per veure si això és suficient realment segura. 177 00:08:23,950 --> 00:08:26,910 Probablement hi ha un nom amb 21 personatges, però per ara, suposem 20 178 00:08:26,910 --> 00:08:27,620 és segur. 179 00:08:27,620 --> 00:08:30,070 >> Un camp Char implicaria en una base de dades que 180 00:08:30,070 --> 00:08:33,289 estan usant els 20 i els 20 caràcters sempre. 181 00:08:33,289 --> 00:08:37,419 Ara si és només D-A-V-em-D, 15 dels són només serà caràcters en blanc, 182 00:08:37,419 --> 00:08:40,450 però vostè encara està utilitzant els 20 bytes. 183 00:08:40,450 --> 00:08:46,302 Un camp varchar, per contra, els mitjans de cadena ha de ser de fins a 20 caràcters 184 00:08:46,302 --> 00:08:48,260 però si és només cinc, només es va a utilitzar 185 00:08:48,260 --> 00:08:51,270 cinc, sis o potser per a una valor especial al final, 186 00:08:51,270 --> 00:08:54,980 igual que 0 que discutim significa el final d'un caràcter 187 00:08:54,980 --> 00:08:56,790 seqüència en la memòria. 188 00:08:56,790 --> 00:08:59,950 >> Així que quan creu vostè pot optar per Char 189 00:08:59,950 --> 00:09:05,240 front varchar, atès que el comerç-off? 190 00:09:05,240 --> 00:09:09,321 Char utilitza aquest nombre de caràcters, VARCHAR utilitza no més d'aquest número de caràcters. 191 00:09:09,321 --> 00:09:10,196 AUDIÈNCIA: [inaudible] 192 00:09:10,196 --> 00:09:13,859 193 00:09:13,859 --> 00:09:16,900 DAVID Malan: OK, quan es coneix el longitud de la cadena bastant convincent 194 00:09:16,900 --> 00:09:19,316 utilitzar només carbó de llenya, perquè si vostè ho sàpiga, només cal posar sota. 195 00:09:19,316 --> 00:09:23,390 I potser això és cert per a un tancament de cremallera codi, als EUA, almenys, 02138, 196 00:09:23,390 --> 00:09:26,660 que sempre serà de cinc caràcters fins que s'agrega el tauler 04:00. 197 00:09:26,660 --> 00:09:29,750 No obstant això, és possible que tingui alguns valors per que sempre coneix la longitud. 198 00:09:29,750 --> 00:09:32,310 O potser els símbols de l'Estat, de la mateixa manera que Nova York a Nova York, 199 00:09:32,310 --> 00:09:33,811 i MA de Massachusetts als EUA .. 200 00:09:33,811 --> 00:09:36,560 Potser vostè té algunes situacions quan això és totalment raonable, 201 00:09:36,560 --> 00:09:39,520 sinó per aquesta lògica, per què fins i tot overthinking això? 202 00:09:39,520 --> 00:09:41,800 Per què no només ha d'utilitzar varchar i després només haurem 203 00:09:41,800 --> 00:09:46,730 sempre a dos personatges de totes maneres, o utilitzeu sempre 5 caràcters de totes maneres? 204 00:09:46,730 --> 00:09:50,300 Per què no només estalviar per varchar tot, per aquesta lògica? 205 00:09:50,300 --> 00:09:51,677 Hi ha d'haver un parany. 206 00:09:51,677 --> 00:09:52,552 AUDIÈNCIA: [inaudible] 207 00:09:52,552 --> 00:09:54,952 208 00:09:54,952 --> 00:09:56,660 DAVID Malan: Could escriure alguna cosa malament. 209 00:09:56,660 --> 00:09:58,090 Així que això és cert. 210 00:09:58,090 --> 00:10:01,030 Però fins i tot llavors, no poden utilitzar més memòria que assigno. 211 00:10:01,030 --> 00:10:03,340 Encara tinc la final dir sobre la longitud, 212 00:10:03,340 --> 00:10:06,780 el que no poden fer per accident aquest error, però és un bon pensament. 213 00:10:06,780 --> 00:10:10,510 És més subtil, però és molt relacionada a la nostra discussió, en realitat, de les matrius 214 00:10:10,510 --> 00:10:12,390 i llistes enllaçades anterior. 215 00:10:12,390 --> 00:10:16,290 >> Resulta que una base de dades, si se sap que tots els valors són 216 00:10:16,290 --> 00:10:19,250 d'una longitud fixa, fins i tot si alguns d'aquests valors estan en blanc, 217 00:10:19,250 --> 00:10:22,484 tipus d'estètica en blanc, D-A-V-I-D i després 15 espais en blanc, 218 00:10:22,484 --> 00:10:24,650 resulta que si cada camp és la mateixa longitud, 219 00:10:24,650 --> 00:10:28,670 de la mateixa manera que una sèrie tenien totes les seves coses esquena amb esquena amb esquena amb esquena de manera que 220 00:10:28,670 --> 00:10:33,480 vostè podria penes més 1 per a arribar a la següent valor, la mateixa idea en una taula de base de dades. 221 00:10:33,480 --> 00:10:37,550 Si la totalitat del seu caràcter cordes tenen la mateixa longitud, 222 00:10:37,550 --> 00:10:39,390 vostè té el que es diu accés aleatori. 223 00:10:39,390 --> 00:10:41,850 Si totes les cadenes són de longitud 20, no ho fa només 224 00:10:41,850 --> 00:10:45,230 veure més 1, que acaba de fer més 20, més 20, més 20, més 20, 225 00:10:45,230 --> 00:10:48,775 i pot desplaçar-se molt ràpidament a través o cercar a través de totes les seves dades. 226 00:10:48,775 --> 00:10:54,420 >> Un camp Char variables, per contra, no sempre té 20 caràcters. 227 00:10:54,420 --> 00:10:58,000 Podria tenir 20 i després 15 i després 19 i després 10, 228 00:10:58,000 --> 00:11:00,720 i pel que si voleu cercar a través d'ell, no es pot simplement cegament 229 00:11:00,720 --> 00:11:03,050 afegir 20 bytes per arribar a la següent. 230 00:11:03,050 --> 00:11:07,280 Vostè, literalment, ha de buscar a través de a causa de que la vora de l'estructura de dades, 231 00:11:07,280 --> 00:11:08,340 si es vol, és desigual. 232 00:11:08,340 --> 00:11:11,480 En certa manera s'entra i es basa fora de la longitud real de la cadena. 233 00:11:11,480 --> 00:11:14,460 Així que quan es coneix la longitud, com es Kareem diu, utilitzeu un camp char, 234 00:11:14,460 --> 00:11:16,460 perquè ganes aquesta eficiència d'estar 235 00:11:16,460 --> 00:11:19,170 capaç de buscar a través d'ella més ràpid quan vostè està buscant per a les dades, 236 00:11:19,170 --> 00:11:20,550 en cas contrari utilitzar una variable. 237 00:11:20,550 --> 00:11:24,450 >> Per desgràcia, no tinc bona resposta alhora que el nom hauria de ser, 238 00:11:24,450 --> 00:11:26,360 però per a alguna cosa com un nom, diria 239 00:11:26,360 --> 00:11:28,470 1 varchar és comú perquè no va 240 00:11:28,470 --> 00:11:30,430 ser una longitud fixa per a tothom. 241 00:11:30,430 --> 00:11:33,650 20, no sé, 20 se sent una mica atapeït. 242 00:11:33,650 --> 00:11:36,460 Diguem 50, 50. 243 00:11:36,460 --> 00:11:39,210 En realitat, no li costarà que molt més a dir 50 en lloc de 40, 244 00:11:39,210 --> 00:11:41,260 però en algun punt, cal per fer una trucada de judici. 245 00:11:41,260 --> 00:11:43,090 >> Molt comú, francament, per [? històric?] 246 00:11:43,090 --> 00:11:47,670 raons, encara que és excessiva, és a dir 255, perquè fa algun temps, 247 00:11:47,670 --> 00:11:51,440 en els sistemes de bases de dades populars, com MySQL, una eina de codi obert 248 00:11:51,440 --> 00:11:53,790 que una gran quantitat d'empreses fins i tot com Facebook s'utilitza, 249 00:11:53,790 --> 00:11:56,654 aquest va ser el màxim predeterminat així que la gent se'n va anar amb ell. 250 00:11:56,654 --> 00:11:59,070 Per tant, no és desgavellat, però anem a utilitzar una mica més de la intuïció 251 00:11:59,070 --> 00:12:02,970 i diuen, segur 50, que és probablement una mica excessiu. 252 00:12:02,970 --> 00:12:05,720 >> Gènere, m'agrada enumeració, de manera que, per tant, pot 253 00:12:05,720 --> 00:12:08,760 enumerar home o dona, o potser de manera més eficient, 254 00:12:08,760 --> 00:12:13,420 M o F o alguna altra simbologia, però enumeració se sent com una bona elecció allà. 255 00:12:13,420 --> 00:12:16,740 Per ser clars, el gènere podria ser simplement un varchar 256 00:12:16,740 --> 00:12:19,090 I podríem simplement tot acordar la gent és tan bonic, 257 00:12:19,090 --> 00:12:21,010 posar sempre els mateixos valors allà. 258 00:12:21,010 --> 00:12:22,720 Home o dona o el que sigui. 259 00:12:22,720 --> 00:12:27,800 >> Però el problema, llavors, és que podríem cometre un error, ja que [inaudible] proposta 260 00:12:27,800 --> 00:12:29,140 anteriorment en un context diferent. 261 00:12:29,140 --> 00:12:32,780 Si fem un error, podríem obtenir valors incorrectes a la nostra base de dades. 262 00:12:32,780 --> 00:12:36,320 Així que el bo de les bases de dades com Oracle i MySQL i altres, 263 00:12:36,320 --> 00:12:39,280 és que vostè té aquesta última capa de defensa, on 264 00:12:39,280 --> 00:12:43,010 l'administrador del DBA, bases de dades, qui és el disseny d'aquesta taula com si 265 00:12:43,010 --> 00:12:46,440 són verbalment, podria posar en el seu lloc una enumeració que 266 00:12:46,440 --> 00:12:51,250 protegeix contra la qual especificant homes, dones, i perquè ningú 267 00:12:51,250 --> 00:12:54,230 la resta cap programador pot accidentalment inserir qualsevol altre valor. 268 00:12:54,230 --> 00:12:55,480 Pel que aquesta seria una bona cosa. 269 00:12:55,480 --> 00:12:56,660 Aquesta és una característica. 270 00:12:56,660 --> 00:13:00,760 >> Per tant una identificació, suposant un ID numèric, probablement hauria de ser un nombre enter positiu. 271 00:13:00,760 --> 00:13:04,380 I de vegades tenen oportunitat de discutir longitud. 272 00:13:04,380 --> 00:13:06,830 No ho faria normalment especifiqui un nombre aquí, 273 00:13:06,830 --> 00:13:11,310 ha en el seu lloc especifiqui aquest és un int, o una gran int, 274 00:13:11,310 --> 00:13:12,980 ja que són normalment trucada. 275 00:13:12,980 --> 00:13:18,840 Però en general, un nombre sencer seria, diguem, 4 bytes. 276 00:13:18,840 --> 00:13:23,694 I si es tracta de 4 bytes, aquesta és la quantitat de bits? 277 00:13:23,694 --> 00:13:24,630 >> AUDIÈNCIA: [inaudible] 278 00:13:24,630 --> 00:13:26,610 >> DAVID Malan: 32 bits. 279 00:13:26,610 --> 00:13:30,270 Llavors, quants usuaris podem tenir en la nostra base de dades si tots ells tenen un ID 280 00:13:30,270 --> 00:13:33,320 i aquesta identificació ha de ser únic? 281 00:13:33,320 --> 00:13:36,780 32 bits vol dir que tenim patrons d'un, dos, tres, quatre, five-- 282 00:13:36,780 --> 00:13:41,000 per la qual cosa el nombre de patrons diferents de zeros i els que s'han si hi ha 32? 283 00:13:41,000 --> 00:13:43,235 Això és el mateix que demanant el que és dues a la 32? 284 00:13:43,235 --> 00:13:46,472 285 00:13:46,472 --> 00:13:48,430 És un nombre gran que Jo no puc fer-ho bé, 286 00:13:48,430 --> 00:13:50,270 però sé que és més o menys 4 mil milions. 287 00:13:50,270 --> 00:13:53,970 Així que això significa que la seva taula de base de dades pot tenir-ne quatre mil milions d'usuaris i això és tot. 288 00:13:53,970 --> 00:13:56,410 >> Així que aquesta és una interessant implicació de disseny. 289 00:13:56,410 --> 00:14:00,840 Un bon nombre d'empreses han decidit, potser no tant 290 00:14:00,840 --> 00:14:04,860 per a la seva taula d'usuaris, ja que tenir 4000000000 d'usuaris és un problema poc freqüent. 291 00:14:04,860 --> 00:14:08,410 Aquesta és una espècie d'estil Facebook problema, no és un problema típic empresa. 292 00:14:08,410 --> 00:14:12,670 Però potser si té registres de transaccions o algun tipus de dades que constantment 293 00:14:12,670 --> 00:14:15,610 que s'escriu a la base de dades absolutament que podria tenir milers de milions 294 00:14:15,610 --> 00:14:18,900 i milers de milions de files, i utilitza un sencer per a ella, 295 00:14:18,900 --> 00:14:22,750 el que va a ocórrer tan aviat com sigui s'arriba a la fila número 4000000000 296 00:14:22,750 --> 00:14:26,210 i després intenta inserir el 4000000000 i 1, per dir-ho? 297 00:14:26,210 --> 00:14:29,610 Estic simplificant els números d'un bit. 298 00:14:29,610 --> 00:14:33,740 >> Es pot retallar, vull dir que de manejar d'alguna manera. 299 00:14:33,740 --> 00:14:37,910 I el que és un equip típicament fer, pensar-hi, fins i tot des d'aquest matí, 300 00:14:37,910 --> 00:14:42,430 si té un valor de 4 bits com 1, 1, 1, 1, que, 301 00:14:42,430 --> 00:14:44,920 només per lligar matí al costat de la tarda, el 302 00:14:44,920 --> 00:14:48,369 Què representa aquest nombre en binari? 303 00:14:48,369 --> 00:14:49,410 OK, farem que sigui més fàcil. 304 00:14:49,410 --> 00:14:53,310 Què significa aquest número representar en binari? 305 00:14:53,310 --> 00:14:56,794 OK, farem que sigui més fàcil, el això representa en binari? 306 00:14:56,794 --> 00:14:57,460 AUDIÈNCIA: Tres. 307 00:14:57,460 --> 00:14:59,670 DAVID Malan: Tres, perquè tenim els column-- 308 00:14:59,670 --> 00:15:00,450 [El] 309 00:15:00,450 --> 00:15:01,350 Sort! 310 00:15:01,350 --> 00:15:03,980 Vam tenir columna de les unitats i la columna de dos en dos. 311 00:15:03,980 --> 00:15:07,250 Així que suposem que, en efecte, la nostra [? dins el quadre?] no eren de 32 bits, 312 00:15:07,250 --> 00:15:13,440 però eren dos bits, podem comptar des del número 0, 1, 2, 3 d'usuari, 313 00:15:13,440 --> 00:15:18,040 i llavors estem tipus de tornar a l'usuari 00 de nou. 314 00:15:18,040 --> 00:15:19,739 Així que això és el que passa normalment. 315 00:15:19,739 --> 00:15:22,780 Si alguna vegada has escoltat la expressió-- probablement no tindrà, però si tener-- 316 00:15:22,780 --> 00:15:26,500 desbordament de sencer, on mantenir a moure d'una tirada tot de les broques 317 00:15:26,500 --> 00:15:29,640 sent els majors valors possibles, i després estàs fora de bits, 318 00:15:29,640 --> 00:15:30,850 el que sol succeir? 319 00:15:30,850 --> 00:15:32,280 Per què dic 00? 320 00:15:32,280 --> 00:15:33,220 Bé, això és tres. 321 00:15:33,220 --> 00:15:34,230 Com represento a 4? 322 00:15:34,230 --> 00:15:36,890 323 00:15:36,890 --> 00:15:38,915 Com represento la per al número 4 en binari? 324 00:15:38,915 --> 00:15:39,790 AUDIÈNCIA: [inaudible] 325 00:15:39,790 --> 00:15:41,780 DAVID Malan: One-- si, no diuen 100 per se, 326 00:15:41,780 --> 00:15:44,190 perquè té el mal connotació, però 1-0-0. 327 00:15:44,190 --> 00:15:48,920 De manera que el nombre 1-0-0 és de fet correcta, però si només té dos bits, 328 00:15:48,920 --> 00:15:50,820 el que realment han fet? 329 00:15:50,820 --> 00:15:53,219 Vostè ha bolcat a 00. 330 00:15:53,219 --> 00:15:54,760 I de fet, això és el que succeiria. 331 00:15:54,760 --> 00:15:56,884 En realitat, es pot pensar d'això més familiarment. 332 00:15:56,884 --> 00:15:59,350 Si recorden, el que, Fa 16 anys, el món 333 00:15:59,350 --> 00:16:03,380 se suposava que acabarà quan el problema Y2K va succeir. 334 00:16:03,380 --> 00:16:04,330 Per què? 335 00:16:04,330 --> 00:16:08,170 Així, la majoria de les computadores per decisions raonables, 336 00:16:08,170 --> 00:16:15,320 van ser l'emmagatzematge de nombres com el l'any 1975 o l'any 1999 337 00:16:15,320 --> 00:16:19,010 només per l'ús de dos dígits en la memòria de l'ordinador. 338 00:16:19,010 --> 00:16:21,950 Així que, per descomptat, el que passa quan arribi a l'any 2000, 339 00:16:21,950 --> 00:16:25,790 vas a aquest, o millor dit, sí. 340 00:16:25,790 --> 00:16:30,120 Així que anar fins a l'any 2000, però si només està utilitzant dos dígits que sembla 341 00:16:30,120 --> 00:16:32,660 de la mateixa manera que l'any 00 i pel que ha bolcat. 342 00:16:32,660 --> 00:16:36,820 I aquesta és la raó per un munt de sistemes calia actualitzar en el moment. 343 00:16:36,820 --> 00:16:42,500 >> Així que un cop dit això, companyies com Facebook ensopegat amb això. 344 00:16:42,500 --> 00:16:46,147 Així que l'única manera de gestionar la situació, francament, és anticipar-se a ell. 345 00:16:46,147 --> 00:16:47,980 O la forma més neta de manejar aquesta situació 346 00:16:47,980 --> 00:16:50,330 és de preveure que pel que no ho fa haver de fer canvis més endavant. 347 00:16:50,330 --> 00:16:51,970 Així que en lloc de 8 bytes, saps què? 348 00:16:51,970 --> 00:16:54,261 Vaig a estar orientada cap al pensament aquí, tot i que és 349 00:16:54,261 --> 00:16:56,760 una mica més optimista que tindrem 4000000000 350 00:16:56,760 --> 00:16:58,850 i 1 usuaris al nostre lloc web. 351 00:16:58,850 --> 00:17:01,790 Però utilitzarem 8 bytes, o 64 bits, el que seria en general 352 00:17:01,790 --> 00:17:05,640 diu un sencer gran, molt tècnic. 353 00:17:05,640 --> 00:17:10,280 I això vol dir que pot tenir fins i tot més dígits en el seu número. 354 00:17:10,280 --> 00:17:12,599 Però aquest és un important decisió de disseny, 355 00:17:12,599 --> 00:17:16,400 perquè si es tria un nombre que té molt pocs bits d'expressivitat 356 00:17:16,400 --> 00:17:19,089 en realitat es podria crear un error en el programari. 357 00:17:19,089 --> 00:17:21,750 >> Molt bé, així que anem a embolicar fins amb el correu electrònic i adreça postal. 358 00:17:21,750 --> 00:17:26,369 Així correu electrònic, quant de temps ha de una adreça de correu electrònic sigui? 359 00:17:26,369 --> 00:17:26,869 50. 360 00:17:26,869 --> 00:17:29,220 Realment, no tinc ni idea, però és Probablement alguna cosa per l'estil, 361 00:17:29,220 --> 00:17:32,261 perquè en cas contrari ningú va a escriure si fa massa llarg, per la 50, 362 00:17:32,261 --> 00:17:33,360 anirem amb tot per ara. 363 00:17:33,360 --> 00:17:35,770 adreça postal, quant de temps es deu? 364 00:17:35,770 --> 00:17:38,325 365 00:17:38,325 --> 00:17:39,200 AUDIÈNCIA: [inaudible] 366 00:17:39,200 --> 00:17:41,900 367 00:17:41,900 --> 00:17:43,890 >> DAVID Malan: No és només un codi postal, però. 368 00:17:43,890 --> 00:17:45,720 adreça postal, vaig sentir. 369 00:17:45,720 --> 00:17:50,720 Així que això és com 1 Brattle Square, coma, Cambridge Mass., coma, 02138. 370 00:17:50,720 --> 00:17:53,860 I, de fet, em van deixar de tirar una mica de full de càlcul aquí. 371 00:17:53,860 --> 00:17:56,510 Això se sent com si fos una oportunitat perduda. 372 00:17:56,510 --> 00:18:01,480 Si tenim 1 Brattle Square, coma, Cambridge, MA 02138, 373 00:18:01,480 --> 00:18:04,510 Sento que podem fer-ho millor que només l'adreça postal. 374 00:18:04,510 --> 00:18:07,100 Per què no exploten això una mica? 375 00:18:07,100 --> 00:18:08,030 Què si a? 376 00:18:08,030 --> 00:18:10,970 Què hem de tenir lloc per a les nostres files aquí, potser? 377 00:18:10,970 --> 00:18:12,260 >> AUDIÈNCIA: [inaudible] 378 00:18:12,260 --> 00:18:17,579 >> DAVID Malan: Sí, així que anem a cridar street_number, 379 00:18:17,579 --> 00:18:20,620 i un guió és només una comuna manera de tenir el que sembla ser un espai, 380 00:18:20,620 --> 00:18:22,360 però no és, en realitat. 381 00:18:22,360 --> 00:18:26,240 Carrer i, a continuació, ciutat-- ho sento? 382 00:18:26,240 --> 00:18:28,440 >> AUDIÈNCIA: [inaudible] 383 00:18:28,440 --> 00:18:29,690 DAVID Malan: Podríem fer això. 384 00:18:29,690 --> 00:18:30,702 Una línia, la línia dos. 385 00:18:30,702 --> 00:18:32,410 Per què no seguirem simple per ara, 386 00:18:32,410 --> 00:18:34,840 però això és absolutament una decisió acceptable. 387 00:18:34,840 --> 00:18:38,180 I en l'estat, i després deixar de ser una mica centrat en Estats Units per ara 388 00:18:38,180 --> 00:18:42,040 i només fer codi postal, només perquè que va a donar lloc a un error interessant 389 00:18:42,040 --> 00:18:43,090 o problema aquí. 390 00:18:43,090 --> 00:18:44,655 Així que suposo que és ara la nostra direcció. 391 00:18:44,655 --> 00:18:47,280 És una mica més molest que tenim totes aquestes més camps, 392 00:18:47,280 --> 00:18:49,200 però ara podem etiquetar les coses una mica millor. 393 00:18:49,200 --> 00:18:53,210 >> Així que ara el número del carrer, probablement, no ha de ser un char, hauria de fer-ho? 394 00:18:53,210 --> 00:18:54,835 El que hauria de ser? 395 00:18:54,835 --> 00:18:55,710 AUDIÈNCIA: [inaudible] 396 00:18:55,710 --> 00:18:57,835 DAVID Malan: Potser, una sèrie com un nombre enter de nou? 397 00:18:57,835 --> 00:19:00,170 Un gran nombre enter? 398 00:19:00,170 --> 00:19:02,170 És probable que no viu a 4 mil milions d'Main Street 399 00:19:02,170 --> 00:19:03,490 o alguna cosa així de boig. 400 00:19:03,490 --> 00:19:06,850 Així sencer és probablement molt bé, però no té ningú 401 00:19:06,850 --> 00:19:13,880 Ha viscut alguna vegada en una direcció com 1A Brattle Square, o 1 i 1/2? 402 00:19:13,880 --> 00:19:17,030 Aquestes coses existeixen, per desgràcia, encara que no ha viscut allà, 403 00:19:17,030 --> 00:19:21,240 existeixen aquestes anomalies com 1A apartament, 1B, 1C. 404 00:19:21,240 --> 00:19:24,260 Així que ja saps el que, probablement no ha d'anar amb número sencer, 405 00:19:24,260 --> 00:19:27,440 en cas contrari anem perdre algunes vendes. 406 00:19:27,440 --> 00:19:29,920 >> Char camp, potser? 407 00:19:29,920 --> 00:19:30,870 No sé quant de temps. 408 00:19:30,870 --> 00:19:33,370 És probable que no serà tant de temps, pel que 10 o alguna cosa així. 409 00:19:33,370 --> 00:19:34,950 Ningú va a escriure un nombre més llarg, potser. 410 00:19:34,950 --> 00:19:37,070 Però, de nou, probablement hauríem pensar més en això. 411 00:19:37,070 --> 00:19:39,900 Potser google, fer algunes investigacions, però anirem amb les nostres entranyes per ara. 412 00:19:39,900 --> 00:19:44,565 Carrers, char, 50, no sé. 413 00:19:44,565 --> 00:19:46,940 En algun moment, ningú va escriure-ho en un sobre, 414 00:19:46,940 --> 00:19:49,350 també, així que és probable que hi hagi alguns límits superiors allà. 415 00:19:49,350 --> 00:19:54,200 Ciutat, mateix, segur, pel que la xerrada 50. 416 00:19:54,200 --> 00:19:59,120 >> Estat, pot ser centrat en Estats Units per ara. 417 00:19:59,120 --> 00:20:01,850 Pel que podria ser una llista, tan amable d'una qüestió de criteri, estat. 418 00:20:01,850 --> 00:20:04,000 Podria ser com dos caràcters. 419 00:20:04,000 --> 00:20:06,140 Així que en realitat, potser, jo deia carbó. 420 00:20:06,140 --> 00:20:09,420 Probablement dir varchar només per a alguns eficiència, 421 00:20:09,420 --> 00:20:12,240 però anem a tornar a aquesta decisió en un moment. 422 00:20:12,240 --> 00:20:16,150 Podria ser un char de longitud 2 per a l'estat. 423 00:20:16,150 --> 00:20:20,670 Si en els EUA tenen, com a MA, Massachusetts, Nova York, Nova York, Nova Jersey, Nova 424 00:20:20,670 --> 00:20:22,100 Jersey, i així successivament. 425 00:20:22,100 --> 00:20:23,630 Per tant, podria ser fixat en això. 426 00:20:23,630 --> 00:20:25,900 DC per a Washington DC. 427 00:20:25,900 --> 00:20:29,915 >> Però crec que, Olivier, que proposat un altre enfocament. 428 00:20:29,915 --> 00:20:30,790 AUDIÈNCIA: [inaudible] 429 00:20:30,790 --> 00:20:33,670 DAVID Malan: Sí, el que és una mica molest per escriure, 430 00:20:33,670 --> 00:20:37,890 però una enumeració podria tenir més sentit, perquè d'aquesta manera, almenys als EUA, 431 00:20:37,890 --> 00:20:41,320 vostè podria enumerar, si tediosa, però ho fa només un cop a la base de dades 432 00:20:41,320 --> 00:20:47,480 i mai més haurà de pensar que, els 50 codis de dos caràcters. 433 00:20:47,480 --> 00:20:48,660 Per això m'agrada enumeració. 434 00:20:48,660 --> 00:20:51,720 Quedem-nos amb que hi ha, perquè quin tipus de fa complir més rigor. 435 00:20:51,720 --> 00:20:53,620 I després zip codi? 436 00:20:53,620 --> 00:20:55,306 Crec que Andrew tenia un pensament en aquest 437 00:20:55,306 --> 00:20:56,180 AUDIÈNCIA: [inaudible] 438 00:20:56,180 --> 00:20:57,240 DAVID Malan: Sí, cinc o nou. 439 00:20:57,240 --> 00:20:58,323 Anem a mantenir simple. 440 00:20:58,323 --> 00:20:59,380 Només fer cinc per ara. 441 00:20:59,380 --> 00:21:03,070 Però potser només podia fer un nombre sencer, oi? 442 00:21:03,070 --> 00:21:08,750 Podria, però saps què, em va fer aquest error una vegada, en algun sentit. 443 00:21:08,750 --> 00:21:13,110 Fa anys, jo estava migrant des Microsoft Outlook a Gmail, 444 00:21:13,110 --> 00:21:18,640 i Outlook té una manera d'exportar tots els contactes com un arxiu d'Excel, 445 00:21:18,640 --> 00:21:21,280 un arxiu CSV, separats per comes arxiu de valors. 446 00:21:21,280 --> 00:21:23,950 I vaig cometre l'error, em pensar, de doble clic, 447 00:21:23,950 --> 00:21:27,380 una vegada que he descarregat l'exportació, a assegureu-vos que semblava que jo esperava. 448 00:21:27,380 --> 00:21:31,320 He haver colpejat Desar o deixi guardat automàtic puntada o alguna cosa així. 449 00:21:31,320 --> 00:21:35,100 Perquè quan després importats a Gmail, tot va funcionar. 450 00:21:35,100 --> 00:21:39,910 Però durant anys, fins als nostres dies, i Ho vaig fer fa cinc o 10 anys, 451 00:21:39,910 --> 00:21:44,380 Encara estic trobant amics que tenen direccions que semblen això. 452 00:21:44,380 --> 00:21:45,700 Per què? 453 00:21:45,700 --> 00:21:47,900 >> AUDIÈNCIA: [inaudible] 454 00:21:47,900 --> 00:21:50,650 >> DAVID Malan: Va prendre el 0, bé, més aviat, 455 00:21:50,650 --> 00:21:53,810 va prendre tot el codi postal com un nombre, i per tant és 456 00:21:53,810 --> 00:21:56,590 un 0 que significa no té cap significat. 457 00:21:56,590 --> 00:21:59,470 I així, 2138 sembla ser el meu codi postal. 458 00:21:59,470 --> 00:22:07,100 I això és, francament, un molest Excel possibilitat per la qual crec que per defecte, 459 00:22:07,100 --> 00:22:10,980 fins i tot si se suposa que només ser text, Microsoft Excel 460 00:22:10,980 --> 00:22:13,780 decideix, vull ser útil, i oh, veig només nombres. 461 00:22:13,780 --> 00:22:15,290 Tractarem a aquests números. 462 00:22:15,290 --> 00:22:16,790 I es trunca els zeros a l'esquerra. 463 00:22:16,790 --> 00:22:19,165 >> Juro per Déu, cada parella de mesos em sembla una direcció, 464 00:22:19,165 --> 00:22:22,300 i fora d'un tipus de TOC, torno i posar el 0, tot i que mai 465 00:22:22,300 --> 00:22:23,700 enviar cartes de la gent ni res. 466 00:22:23,700 --> 00:22:25,510 Però encara estic trobant restes d'aquesta. 467 00:22:25,510 --> 00:22:28,820 Així que això és a dir, és una bona idea? 468 00:22:28,820 --> 00:22:31,610 OK, no, perquè ningú en Massachusetts, en aquesta àrea, 469 00:22:31,610 --> 00:22:33,270 va a tenir una o portant-los. 470 00:22:33,270 --> 00:22:38,070 Així que anirem amb la mateixa char, probablement, de cinc. 471 00:22:38,070 --> 00:22:41,450 >> I aquí, adonar-nos que podria utilitzar una enumeració i nosaltres 472 00:22:41,450 --> 00:22:44,600 podria enumerar 10.000 possibles codis postals, 473 00:22:44,600 --> 00:22:48,530 però que se sent com que és probablement creuant una línia de, com a, beneficis. 474 00:22:48,530 --> 00:22:51,350 Si vostè té a l'entrada que moltes dades a la base de dades 475 00:22:51,350 --> 00:22:52,940 per protegir contra alguna cosa. 476 00:22:52,940 --> 00:22:57,400 Així carbó es va adonar que podria escriure en H-I-L-L-O ara el codi postal, 477 00:22:57,400 --> 00:22:59,180 el que no és, òbviament, numèric. 478 00:22:59,180 --> 00:23:01,680 Així que no hi ha manera, en una base de dades típica, 479 00:23:01,680 --> 00:23:05,561 especificar només numèric i només cinc caràcters de longitud, 480 00:23:05,561 --> 00:23:07,310 així que tindrem fer això en el codi. 481 00:23:07,310 --> 00:23:11,100 Farem que en PHP o Java o qualsevol altre idioma que estem 482 00:23:11,100 --> 00:23:14,230 utilitzant en el servidor per fer complir aquest tipus de restricció. 483 00:23:14,230 --> 00:23:14,860 >> Whoo! 484 00:23:14,860 --> 00:23:18,322 Molt bé, així que qualsevol pregunta de moment? 485 00:23:18,322 --> 00:23:19,780 Anem a fer una altra decisió de disseny. 486 00:23:19,780 --> 00:23:22,500 Resulta que es També arriba a escollir, 487 00:23:22,500 --> 00:23:26,600 en el disseny d'una base de dades SQL o database-- típics on relacionals 488 00:23:26,600 --> 00:23:28,790 de nou, simplement relacional significa files i columnes, 489 00:23:28,790 --> 00:23:35,500 és així com a organitzar els seus Data-- i adonar-se que el que això significa és, 490 00:23:35,500 --> 00:23:37,740 He estat enganyosa en que, estic drawing-- aquest 491 00:23:37,740 --> 00:23:40,190 és el que s'anomena l'esquema per a una taula de base de dades. 492 00:23:40,190 --> 00:23:42,810 Això és com el especificacions per al table-- 493 00:23:42,810 --> 00:23:48,040 però quan arriba el moment que en realitat emmagatzemar dades, 494 00:23:48,040 --> 00:23:52,081 i que farem això només amb l'exemple aquí. 495 00:23:52,081 --> 00:23:55,080 Vaig a obrir Excel, perquè Excel em donarà files i columnes. 496 00:23:55,080 --> 00:23:58,050 I això és exactament el que Oracle i MySQL i altres eines em donaran. 497 00:23:58,050 --> 00:24:02,270 Així que només utilitzaré pel bé de la discussió. 498 00:24:02,270 --> 00:24:05,250 Déjame anar per davant i obrir una document representatiu aquí, 499 00:24:05,250 --> 00:24:06,310 engrandir una mica. 500 00:24:06,310 --> 00:24:15,200 Així, per exemple, les nostres capçaleres són ara nom, cognom, sexe, ID, 501 00:24:15,200 --> 00:24:20,980 correu electrònic, número del carrer, carrer, crits. 502 00:24:20,980 --> 00:24:25,710 Carrer, ciutat, estat, just sobre encaixa a la pantalla. 503 00:24:25,710 --> 00:24:29,080 >> Així que el que això significa és que quan una usuari es registra per primera vegada per al meu lloc web, 504 00:24:29,080 --> 00:24:32,880 que serà una cosa així com David, Malan, m, diguem 1, 505 00:24:32,880 --> 00:24:42,910 malan@harvard.edu, número del carrer es ser com 1 Brattle Square, Cambridge, MA, 506 00:24:42,910 --> 00:24:44,780 02138 i, a continuació, etcètera. 507 00:24:44,780 --> 00:24:48,290 Així que quan dic que una base de dades relacional o base de dades SQL és files i columnes, 508 00:24:48,290 --> 00:24:49,350 Em refereixo a això. 509 00:24:49,350 --> 00:24:51,900 Que les dades reals s'emmagatzema en files i columnes. 510 00:24:51,900 --> 00:24:53,950 Aquesta és només una coincidència, que estàvem parlant, 511 00:24:53,950 --> 00:24:56,033 i jo estava dibuixant el en files i columnes. 512 00:24:56,033 --> 00:24:58,320 Això és només l'esquema, la definició general. 513 00:24:58,320 --> 00:25:01,640 >> Així que aquí un d'aquests camps, o de manera equivalent, allà, 514 00:25:01,640 --> 00:25:06,270 els quals són els camps que vostè pensa Estic probable que buscar a si sóc un usuari 515 00:25:06,270 --> 00:25:09,200 o si sóc l'administrador de base de dades? 516 00:25:09,200 --> 00:25:12,426 Com, què sóc jo camps en realitat va a buscar a? 517 00:25:12,426 --> 00:25:13,830 >> AUDIÈNCIA: [inaudible] 518 00:25:13,830 --> 00:25:17,690 >> DAVID Malan: El nom, si per la qual M'agrada el fet que- si, 519 00:25:17,690 --> 00:25:19,750 mail pot ser bastant comú. 520 00:25:19,750 --> 00:25:21,440 Malauradament, vostè ha dit nom. 521 00:25:21,440 --> 00:25:24,030 Així maybe-- i una altra, estem classe de parlar en abstracte. 522 00:25:24,030 --> 00:25:25,988 No sé per què t'agradaria ser la recerca d'un nom, 523 00:25:25,988 --> 00:25:29,340 però que se sent raonable si estàs a la recerca d'un usuari. 524 00:25:29,340 --> 00:25:31,170 Potser estats, segur, ID. 525 00:25:31,170 --> 00:25:34,100 526 00:25:34,100 --> 00:25:36,160 >> I és una relliscosa pendent, perquè podia 527 00:25:36,160 --> 00:25:38,890 idear un escenari on potser el meu cap m'ha demanat, 528 00:25:38,890 --> 00:25:40,417 Quants homes tenim al nostre lloc? 529 00:25:40,417 --> 00:25:42,000 Quantes dones tenim al nostre lloc? 530 00:25:42,000 --> 00:25:45,210 I així, en aquest moment, és possible que vulgueu cercar al camp de gènere, també, 531 00:25:45,210 --> 00:25:45,940 i res més. 532 00:25:45,940 --> 00:25:47,350 Així que hi ha una compensació aquí. 533 00:25:47,350 --> 00:25:49,180 Un cop més, no hi ha resposta correcta, però hi ha 534 00:25:49,180 --> 00:25:53,760 és una característica en la majoria de bases de dades SQL coneguda com indexació, per la qual 535 00:25:53,760 --> 00:25:56,100 vostè, el dissenyador, l' administrador de la base de dades, 536 00:25:56,100 --> 00:26:01,730 arribar a decidir per endavant quin Camps La base de dades d'optimitzar 537 00:26:01,730 --> 00:26:02,980 per a les recerques en. 538 00:26:02,980 --> 00:26:07,620 >> Es podria dir molt ingènuament, optimitzar això, que optimitzar, optimitzar aquesta, 539 00:26:07,620 --> 00:26:10,300 optimitzar que i això, i la base de dades 540 00:26:10,300 --> 00:26:14,882 fer alguna cosa per sota de la màgica caputxa, i fer alguna cosa de tal manera 541 00:26:14,882 --> 00:26:17,090 que la propera vegada que vostè busca en qualsevol d'aquests camps, 542 00:26:17,090 --> 00:26:18,400 serà, de fet, ser més ràpid. 543 00:26:18,400 --> 00:26:19,110 Això és possible. 544 00:26:19,110 --> 00:26:20,530 No cancel·la a si mateixa. 545 00:26:20,530 --> 00:26:22,500 Però hi ha d'haver un preu pagat. 546 00:26:22,500 --> 00:26:27,220 >> Si ingènuament, o un excés d'entusiasme per exemple, l'índex de tots aquests camps, 547 00:26:27,220 --> 00:26:29,810 per així dir-ho, fer que tots eficientment recerques, 548 00:26:29,810 --> 00:26:31,625 quin preu està probablement pagant? 549 00:26:31,625 --> 00:26:32,500 AUDIÈNCIA: [inaudible] 550 00:26:32,500 --> 00:26:33,090 DAVID Malan: Rendiment. 551 00:26:33,090 --> 00:26:33,798 Que vols dir? 552 00:26:33,798 --> 00:26:37,380 Bé rendiment, almenys en el context que estic discutint, és millor ara. 553 00:26:37,380 --> 00:26:38,830 Aquesta és la definició de la indexació. 554 00:26:38,830 --> 00:26:41,180 Farà cerques més ràpides. 555 00:26:41,180 --> 00:26:43,366 Així que el temps disminueix, per dir-ho. 556 00:26:43,366 --> 00:26:44,240 AUDIÈNCIA: [inaudible] 557 00:26:44,240 --> 00:26:45,031 DAVID Malan: Espai. 558 00:26:45,031 --> 00:26:46,520 Així que de nou, es tracta d'un comerç comú. 559 00:26:46,520 --> 00:26:50,820 Puc accelerar les recerques, però és costarà més bytes d'espai. 560 00:26:50,820 --> 00:26:51,610 Per què? 561 00:26:51,610 --> 00:26:55,230 Així, per defecte, si no tenim cap aquestes estrelles vermelles, cap d'aquests índexs, 562 00:26:55,230 --> 00:26:58,797 com que estic dient, com buscar d'un nom en aquesta base de dades? 563 00:26:58,797 --> 00:27:00,630 Així que anem a dibuixar la nostra atenció a aquest exemple. 564 00:27:00,630 --> 00:27:06,300 Si tenim David i Scully i Kareem i Arwa i altres en aquestes files, 565 00:27:06,300 --> 00:27:06,910 per exemple. 566 00:27:06,910 --> 00:27:08,390 >> Així que farem exactament això. 567 00:27:08,390 --> 00:27:13,990 Scully és aquí dins, i després tenim Kareem, i Arwa, 568 00:27:13,990 --> 00:27:18,390 i tots els altres, si no ho fa té un índex definit, per així dir-ho, 569 00:27:18,390 --> 00:27:20,160 el millor que pot fer és buscar lineal. 570 00:27:20,160 --> 00:27:23,470 Si busca Arwa, no estem serà capaç d'entrar de ple a la seva 571 00:27:23,470 --> 00:27:24,140 ràpidament. 572 00:27:24,140 --> 00:27:26,556 Anem a començar la part superior i recórrer tot el camí fins al fons, 573 00:27:26,556 --> 00:27:28,600 no molt diferent de la nostra original exemple, Mike Smith. 574 00:27:28,600 --> 00:27:33,470 >> Si, però, dic, hey, base de dades, indexar el camp de nom, 575 00:27:33,470 --> 00:27:37,000 a continuació, es va a fer alguna cosa més elegant i donar suport alguna cosa 576 00:27:37,000 --> 00:27:38,130 de la mateixa manera que la recerca binària. 577 00:27:38,130 --> 00:27:39,820 No és probable que la recerca binària per se. 578 00:27:39,820 --> 00:27:42,810 Bases de dades tendeixen a utilitzar un altre estructura de dades anomenada b-arbres, 579 00:27:42,810 --> 00:27:46,540 No s'ha de confondre amb els arbres binaris, que acaba de fer-lo més ràpid per buscar 580 00:27:46,540 --> 00:27:48,500 alguna cosa en la naturalesa logarítmica. 581 00:27:48,500 --> 00:27:53,510 Però el preu de pagar per construir aquesta característica, que l'estructura de dades en la memòria, 582 00:27:53,510 --> 00:27:54,570 és més bytes. 583 00:27:54,570 --> 00:27:57,170 El que podria prendre alguns megabytes, alguns gigabytes, qui sap? 584 00:27:57,170 --> 00:27:58,410 Depèn de les dades. 585 00:27:58,410 --> 00:28:02,640 >> Per tant, en algun moment, vostè ha de decidir, probablement no és un cas comú. 586 00:28:02,640 --> 00:28:06,000 Quins són els comuns real casos, si realment hagués de triar, 587 00:28:06,000 --> 00:28:10,080 quins podrien ser els seus camps preferits? 588 00:28:10,080 --> 00:28:10,580 De correu electrònic. 589 00:28:10,580 --> 00:28:14,400 I m'agrada perquè el correu electrònic de correu electrònic, en teoria, hauria de ser únic. 590 00:28:14,400 --> 00:28:17,650 I així, en general, quan se sap per endavant que un dels seus camps 591 00:28:17,650 --> 00:28:20,277 és o serà únic, que tendeix a ser un bon camp 592 00:28:20,277 --> 00:28:22,860 buscar a, perquè d'aquesta manera, quan es busca alguna cosa, 593 00:28:22,860 --> 00:28:26,194 vas a tornar un o les respostes zero i després ja està. 594 00:28:26,194 --> 00:28:28,110 No ha de mantenir a la recerca d'altres més. 595 00:28:28,110 --> 00:28:31,992 >> I així, en aquest cas aquí, correu electrònic, sempre que no es pot registrar dues vegades 596 00:28:31,992 --> 00:28:33,450 amb el mateix email, és una bona idea. 597 00:28:33,450 --> 00:28:36,710 ID per definició, en el món de la informàtica, 598 00:28:36,710 --> 00:28:39,610 si vostè està parlant d'una Identificació, que millor que sigui únic. 599 00:28:39,610 --> 00:28:42,970 En certa manera és la connotació de ID o identificador. 600 00:28:42,970 --> 00:28:46,440 I la resta d'elles podria ser, diguem-ne bo que tenen, 601 00:28:46,440 --> 00:28:47,860 però no és realment necessari. 602 00:28:47,860 --> 00:28:49,976 >> I així, en una base de dades, especifica els índexs, 603 00:28:49,976 --> 00:28:51,350 però pot ser encara més precís. 604 00:28:51,350 --> 00:28:56,060 Es pot dir, bé, la base de dades, assegureu-vos que cada ID en aquesta taula és única. 605 00:28:56,060 --> 00:28:59,330 Ni tan sols deixar que un programador accidentalment posar en un correu electrònic duplicat 606 00:28:59,330 --> 00:29:00,740 o duplicar el nombre d'identificació. 607 00:29:00,740 --> 00:29:03,140 Tant com les enumeracions protegir-nos de manera similar, es 608 00:29:03,140 --> 00:29:04,881 pot tenir aquestes defenses de nivell inferior. 609 00:29:04,881 --> 00:29:07,130 I així el disseny de base de dades, en cert sentit, és una mena de diversió, 610 00:29:07,130 --> 00:29:08,380 perquè ho fas a la defensiva. 611 00:29:08,380 --> 00:29:11,460 Vostè espècie d'assumir que es treballa amb horribles, horribles programadors 612 00:29:11,460 --> 00:29:15,550 i que desitja posar en tantes defenses com sigui possible per protegir les seves dades, 613 00:29:15,550 --> 00:29:18,940 però al mateix temps vol per ajudar a obtenir millors resultats 614 00:29:18,940 --> 00:29:21,386 triant quin camps per optimitzar per. 615 00:29:21,386 --> 00:29:24,260 Però no es pot necessàriament fer-ho en un buit com quin tipus d'ací. 616 00:29:24,260 --> 00:29:26,480 Un ha de saber quins són aquells casos comuns són. 617 00:29:26,480 --> 00:29:29,397 Si els desenvolupadors estan la implementació d'una llibreta d'adreces, 618 00:29:29,397 --> 00:29:32,230 És molt possible que desitja poder buscar a gairebé tots els camps, 619 00:29:32,230 --> 00:29:33,830 simplement per la naturalesa de l'aplicació. 620 00:29:33,830 --> 00:29:37,910 Així que potser passes que l'espai addicional. 621 00:29:37,910 --> 00:29:39,090 >> Dret, alguna pregunta? 622 00:29:39,090 --> 00:29:41,820 623 00:29:41,820 --> 00:29:42,486 Sí. 624 00:29:42,486 --> 00:29:43,470 >> AUDIÈNCIA: [inaudible] 625 00:29:43,470 --> 00:29:44,404 >> DAVID Malan: No. 626 00:29:44,404 --> 00:29:45,279 >> AUDIÈNCIA: [inaudible] 627 00:29:45,279 --> 00:29:47,840 628 00:29:47,840 --> 00:29:48,826 >> DAVID Malan: OK. 629 00:29:48,826 --> 00:29:49,701 >> AUDIÈNCIA: [inaudible] 630 00:29:49,701 --> 00:29:52,420 631 00:29:52,420 --> 00:29:54,850 >> DAVID Malan: Ah, pel que estem parlant d'una manera 632 00:29:54,850 --> 00:29:57,940 ara que és completament independent del llenguatge. 633 00:29:57,940 --> 00:30:02,370 Així que estem parlant ara sobre bases de dades relacionals, més en general, 634 00:30:02,370 --> 00:30:04,760 o bases de dades SQL de forma més general. 635 00:30:04,760 --> 00:30:06,870 >> AUDIÈNCIA: [inaudible] 636 00:30:06,870 --> 00:30:10,030 >> DAVID Malan: Una millor paraula per utilitzar es, pot ser utilitzat per qualsevol idioma. 637 00:30:10,030 --> 00:30:15,280 Així que es pot escriure codi JavaScript, C codi de codi, C ++, codi Java, codi Ruby, 638 00:30:15,280 --> 00:30:19,010 tots els quals parlar amb un base de dades i executar consultes. 639 00:30:19,010 --> 00:30:22,310 De fet, això no és una mala segue a una consulta d'exemple. 640 00:30:22,310 --> 00:30:25,720 I de nou, no entrarem en Java o C ++ o res d'això mai més, 641 00:30:25,720 --> 00:30:29,420 però en SQL, el llenguatge al que segueixo referint-se, Structured Query Language, 642 00:30:29,420 --> 00:30:32,790 aquest sí que és un llenguatge de programació, sinó que està destinat a ser utilitzat, sense 643 00:30:32,790 --> 00:30:37,330 sorpresa, estructurat de consultes de consulta. 644 00:30:37,330 --> 00:30:38,660 >> Amb això vull dir això. 645 00:30:38,660 --> 00:30:41,190 La forma de selecció de les dades a partir d'una base de dades MySQL 646 00:30:41,190 --> 00:30:49,330 està literalment escriu en el seu programa una mena de l'estrella de selecció dels usuaris. 647 00:30:49,330 --> 00:30:52,200 Estic suposant que aquesta taula, a partir d'ara es diu als usuaris. 648 00:30:52,200 --> 00:30:54,860 Podria dir-qualsevol cosa que vulguem, però aquest tipus de té sentit. 649 00:30:54,860 --> 00:30:57,240 I així Select és un molt verb comú, si vostè 650 00:30:57,240 --> 00:30:59,290 farà, en SQL, que, literalment, ho fa. 651 00:30:59,290 --> 00:31:02,730 Què opines estrelles significa en aquest context? 652 00:31:02,730 --> 00:31:04,410 >> AUDIÈNCIA: [inaudible] 653 00:31:04,410 --> 00:31:05,380 >> DAVID Malan: Ho sento? 654 00:31:05,380 --> 00:31:06,300 >> AUDIÈNCIA: [inaudible] 655 00:31:06,300 --> 00:31:09,580 >> DAVID Malan: No cal, és més inclusiva que això, en realitat. 656 00:31:09,580 --> 00:31:11,700 És el caràcter comodí. 657 00:31:11,700 --> 00:31:14,740 Estrella gairebé sempre vol dir res, el que això significa, en aquest cas, 658 00:31:14,740 --> 00:31:16,510 seleccionar tot, des de la base de dades. 659 00:31:16,510 --> 00:31:20,730 Així que quan dic això, vull dir Torneu-me cada columna 660 00:31:20,730 --> 00:31:22,440 des del meu taula anomenada usuaris. 661 00:31:22,440 --> 00:31:24,730 Així que fes-me un conjunt de resultats, com se l'anomena. 662 00:31:24,730 --> 00:31:28,210 En altres paraules, dóna'm una còpia de la full de càlcul, és el que vull arribar. 663 00:31:28,210 --> 00:31:34,890 >> Però si digués seleccioneu l'estrella dels usuaris on ID és igual a 1, el gran que ha de 664 00:31:34,890 --> 00:31:36,640 el meu conjunt de resultats sigui llavors? 665 00:31:36,640 --> 00:31:41,680 O equivalentment, el nombre de files ha de Jo ser lliurat de tornada de la base de dades? 666 00:31:41,680 --> 00:31:45,860 Probablement només un, si tinc de fet tractat ID com un identificador únic, 667 00:31:45,860 --> 00:31:50,710 i si David ha de ID únic, I ha de tornar una i només una fila 668 00:31:50,710 --> 00:31:53,220 que conté tota la informació de David. 669 00:31:53,220 --> 00:31:56,390 Si ho vaig dir on ID és igual a 99, hauria de tornar, 670 00:31:56,390 --> 00:32:00,320 en aquest context, zero files, almenys en el moment. 671 00:32:00,320 --> 00:32:03,620 >> No obstant això, si no m'importa sobre tota aquesta informació, 672 00:32:03,620 --> 00:32:06,970 Jo només vaig poder dir, on viu David? 673 00:32:06,970 --> 00:32:10,860 Seleccionar el codi postal d' usuaris on ID és 1. 674 00:32:10,860 --> 00:32:15,820 Això seleccionarà només a mi postal de David codi i no la totalitat d'aquesta fila. 675 00:32:15,820 --> 00:32:19,541 Per què podria fer això en lloc de la consulta de l'estrella, el comodí? 676 00:32:19,541 --> 00:32:21,950 >> AUDIÈNCIA: [inaudible] 677 00:32:21,950 --> 00:32:24,590 >> DAVID Malan: Sí, jo només ho pugui necessitar. 678 00:32:24,590 --> 00:32:26,350 El que el rendiment és de nou la resposta aquí. 679 00:32:26,350 --> 00:32:28,540 Per què demanar més la informació que necessita, 680 00:32:28,540 --> 00:32:32,020 perquè fins i tot si tot està bé junts, vostè encara ha de copiar les dades, 681 00:32:32,020 --> 00:32:35,560 segons sembla, a partir de la base de dades en el seu programa d'alguna manera, 682 00:32:35,560 --> 00:32:38,490 i això és una ximpleria si només necessita cinc d'aquests dígits, 683 00:32:38,490 --> 00:32:40,340 no la totalitat de la fila. 684 00:32:40,340 --> 00:32:42,180 >> Llavors, com puc inserir un usuari? 685 00:32:42,180 --> 00:32:44,780 Suposem que un usuari té sol registrat per primera vegada. 686 00:32:44,780 --> 00:32:46,560 La sintaxi seria en general tenir aquest aspecte. 687 00:32:46,560 --> 00:32:52,700 Inserir en els usuaris, i llavors podríem dir que els valors, 688 00:32:52,700 --> 00:33:00,150 i llavors podríem dir que els valors com, diguem, Lauren Scully, 689 00:33:00,150 --> 00:33:02,380 nostre càmera aquí. 690 00:33:02,380 --> 00:33:04,390 I el següent camp és el gènere. 691 00:33:04,390 --> 00:33:08,020 Així que anem a dir cita, cap de la cita "F", llavors tenim un ID 692 00:33:08,020 --> 00:33:12,250 i vaig a deixar que dir-- de fer veure que no és en realitat aquí, 693 00:33:12,250 --> 00:33:14,380 així que anem a rebobinar en la història. 694 00:33:14,380 --> 00:33:16,530 Així que 2 serà la seva identificació. 695 00:33:16,530 --> 00:33:19,130 I llavors el següent camp Aquí està la seva correu electrònic. 696 00:33:19,130 --> 00:33:22,140 Així que va a ser com Lauren Scully i així successivament, 697 00:33:22,140 --> 00:33:24,360 i només haurem de punt punt dot lluny d'aquí en endavant. 698 00:33:24,360 --> 00:33:26,890 Ara va a ser una mica tediós, però la consulta d'inserció 699 00:33:26,890 --> 00:33:28,310 en última instància, tenir aquest aspecte. 700 00:33:28,310 --> 00:33:30,970 >> Si vull per desfer- Scully, uh-oh, donarem de baixa 701 00:33:30,970 --> 00:33:37,420 ella, s'elimina seu compte, eliminar dels usuaris on ID és igual a 2, 702 00:33:37,420 --> 00:33:38,500 es lliurarà de Scully. 703 00:33:38,500 --> 00:33:48,050 O el que puc dir estableixen els usuaris d'actualització, diguem, què podem canviar? 704 00:33:48,050 --> 00:33:49,430 I si es mou. 705 00:33:49,430 --> 00:33:53,730 Conjunt postal és igual a 021-- doncs no, aquest és el seu postal actual. 706 00:33:53,730 --> 00:33:54,487 90210. 707 00:33:54,487 --> 00:33:56,320 L'únic altre codi postal Sé que al món. 708 00:33:56,320 --> 00:33:59,002 Així que canviaria la seva postal code-- realitat, 709 00:33:59,002 --> 00:34:00,460 això no canviaria el seu codi postal. 710 00:34:00,460 --> 00:34:02,170 >> Què acabo de fer? 711 00:34:02,170 --> 00:34:04,292 Tot i que la sintaxi és probablement nova. 712 00:34:04,292 --> 00:34:05,302 >> AUDIÈNCIA: [inaudible] 713 00:34:05,302 --> 00:34:08,010 DAVID Malan: Sí, el va traslladar tot el món a Beverly Hills, Califòrnia. 714 00:34:08,010 --> 00:34:11,920 Així que en realitat hauria dir on ID és igual a 2. 715 00:34:11,920 --> 00:34:12,820 I així successivament. 716 00:34:12,820 --> 00:34:15,290 Pel que SQL és tot sobre aquests tipus d'instruccions. 717 00:34:15,290 --> 00:34:20,260 Seleccionar, inserir, eliminar, actualitzar, amb aquests predicats a l'extrem 718 00:34:20,260 --> 00:34:22,139 aquestes clàusules en què, per dir-ho. 719 00:34:22,139 --> 00:34:25,170 I hi ha molt més que pugui fer, però en realitat només es redueix 720 00:34:25,170 --> 00:34:29,750 simplement, si arcanamente, expressant el que vol la base de dades cal fer. 721 00:34:29,750 --> 00:34:31,580 >> I a continuació, la base de dades es donaran compte, quan 722 00:34:31,580 --> 00:34:35,630 Lauren s'insereix en el Scully base de dades, on la va posar en la memòria 723 00:34:35,630 --> 00:34:38,230 pel que podem obtenir molt ràpidament la seva base a la seva adreça de correu electrònic 724 00:34:38,230 --> 00:34:42,610 o en base al seu número d'identificació o similar. 725 00:34:42,610 --> 00:34:43,391 Sí, Dan. 726 00:34:43,391 --> 00:34:44,266 AUDIÈNCIA: [inaudible] 727 00:34:44,266 --> 00:34:46,364 728 00:34:46,364 --> 00:34:47,780 DAVID Malan: Molt bona pregunta. 729 00:34:47,780 --> 00:34:50,370 ¿Aquests scripts de canviar de Microsoft Access a Oracle 730 00:34:50,370 --> 00:34:52,290 a MySQL a PostgreSQL? 731 00:34:52,290 --> 00:34:53,790 La resposta curta és que depèn. 732 00:34:53,790 --> 00:34:58,697 En teoria, hi ha una molt subconjunt comú significativa de SQL 733 00:34:58,697 --> 00:35:00,780 que es comparteix a través de tots d'aquestes implementacions. 734 00:35:00,780 --> 00:35:03,340 No obstant això, diversos fabricants tenen característiques afegides 735 00:35:03,340 --> 00:35:07,120 a les seves bases de dades per fer certes coses més enllà de l'abast d'aquestes característiques, 736 00:35:07,120 --> 00:35:08,720 que podria, de fet, trencar. 737 00:35:08,720 --> 00:35:11,210 >> Així que la forma en què els desenvolupadors protegir-se contra això, 738 00:35:11,210 --> 00:35:14,350 és que en lloc d'escriure en brut codi SQL com que estic escrivint aquí, 739 00:35:14,350 --> 00:35:19,460 que en lloc d'utilitzar una biblioteca, una biblioteca comuna que la pròpia 740 00:35:19,460 --> 00:35:23,650 és una espècie d'alt nivell i resums de distància, que el producte que utilitzeu. 741 00:35:23,650 --> 00:35:25,710 I li dóna funcions i procediments 742 00:35:25,710 --> 00:35:28,810 trucar perquè mai En realitat escriure SQL primera. 743 00:35:28,810 --> 00:35:32,609 >> En teoria, llavors, pot canviar productes d'Oracle a Microsoft 744 00:35:32,609 --> 00:35:34,650 o viceversa, o gens una altra cosa, i que, literalment, 745 00:35:34,650 --> 00:35:36,920 canviar res sobre el seu codi. 746 00:35:36,920 --> 00:35:40,180 La realitat, però, és que de vegades renunciar a característiques com a conseqüència d'això. 747 00:35:40,180 --> 00:35:43,860 És possible que hagi triat un producte, ja que té aquestes característiques de valor afegit, 748 00:35:43,860 --> 00:35:46,610 i no ets més que ara usar-los conscientment. 749 00:35:46,610 --> 00:35:51,630 >> I anecdòticament, la majoria de les empreses tendeixen Mai allunyar-se de la seva base de dades. 750 00:35:51,630 --> 00:35:54,002 Així, mentre que aquest és un agradable tenen funció, la realitat 751 00:35:54,002 --> 00:35:55,960 És a dir, si vostè està recondicionament la seva base de dades, que està 752 00:35:55,960 --> 00:35:59,890 probablement fent manats d'altres canvis de totes maneres, que no necessàriament 753 00:35:59,890 --> 00:36:01,360 de preveure això. 754 00:36:01,360 --> 00:36:03,720 Pel que és discutible sobre-enginyeria del problema, 755 00:36:03,720 --> 00:36:05,670 però en realitat dependrà del context. 756 00:36:05,670 --> 00:36:09,960 Però en teoria, SQL és compartida a través d'aquests diversos productes. 757 00:36:09,960 --> 00:36:11,560 Molt bones preguntes. 758 00:36:11,560 --> 00:36:12,272 Sí. 759 00:36:12,272 --> 00:36:13,147 >> AUDIÈNCIA: [inaudible] 760 00:36:13,147 --> 00:36:17,820 761 00:36:17,820 --> 00:36:21,480 >> DAVID Malan: Sí, per la qual es pot pensar en una base de dades 762 00:36:21,480 --> 00:36:25,020 és només un servidor, al final de el dia, ia l'interior d'aquest servidor 763 00:36:25,020 --> 00:36:28,670 és un munt de taules, files i columnes. 764 00:36:28,670 --> 00:36:33,410 I quan s'envia una consulta com aquesta des del seu programa, el seu lloc web, 765 00:36:33,410 --> 00:36:39,340 escrit en Java, Ruby, Python, el que sigui, el servidor està rebent aquesta comanda 766 00:36:39,340 --> 00:36:41,660 i interpretar-la en literalment, de la mateixa manera 767 00:36:41,660 --> 00:36:43,660 hem comentat anteriorment amb llenguatges interpretats, 768 00:36:43,660 --> 00:36:47,333 i després realitzar alguna acció en zero o més files en zero o més taules. 769 00:36:47,333 --> 00:36:48,208 AUDIÈNCIA: [inaudible] 770 00:36:48,208 --> 00:36:53,540 771 00:36:53,540 --> 00:36:55,070 >> DAVID Malan: Exactament, exactament. 772 00:36:55,070 --> 00:36:58,450 Així que el pseudocodi per a alguna cosa de la mateixa manera que podria ser això. 773 00:36:58,450 --> 00:37:02,450 En el seu arxiu PHP o el seu arxiu de Python o el seu arxiu de Java, 774 00:37:02,450 --> 00:37:09,210 que tindria codi de pseudocodi, o bloqueja les ratllades com també, si les visites dels usuaris 775 00:37:09,210 --> 00:37:19,870 acme.com/register~~V per primera vegada, a continuació, inserir en els usuaris i així successivament. 776 00:37:19,870 --> 00:37:22,619 I ens agradaria traduir això a més codi concret en el final. 777 00:37:22,619 --> 00:37:24,660 Però, en realitat, tenim tot els blocs de construcció aquí, 778 00:37:24,660 --> 00:37:27,680 tot i que estem ometent alguns dels passos d'implementació. 779 00:37:27,680 --> 00:37:31,560 >> Així que permetin-me trobar cap error amb el que meravellosament va fer fa un moment. 780 00:37:31,560 --> 00:37:36,470 S'ha creat una bonica taula completa per als usuaris. 781 00:37:36,470 --> 00:37:38,920 És cert que podríem aplicar en algunes maneres diferents, 782 00:37:38,920 --> 00:37:43,030 però has fet ens va portar per la path-- i us dic, 783 00:37:43,030 --> 00:37:48,080 però és probablement la meva fault-- d'una justa aplicació de base de dades ineficient. 784 00:37:48,080 --> 00:37:49,950 No és normalitzar. 785 00:37:49,950 --> 00:37:52,320 >> I per normalitzada que vull dir que serà, 786 00:37:52,320 --> 00:37:57,380 amb el temps, una redundància significativa, i per tant la ineficiència, 787 00:37:57,380 --> 00:38:00,210 que és malbaratament d'espai. 788 00:38:00,210 --> 00:38:05,650 Sobre la base de només el que es veu aquí, pot on se li ha ocorregut aquesta pèrdua d'espai 789 00:38:05,650 --> 00:38:08,710 es vindrà, amb el temps, com es registren cada vegada més usuaris 790 00:38:08,710 --> 00:38:10,860 per al seu lloc web? 791 00:38:10,860 --> 00:38:13,047 Quines dades podrien ser redundant? 792 00:38:13,047 --> 00:38:19,084 793 00:38:19,084 --> 00:38:20,940 >> AUDIÈNCIA: [inaudible] 794 00:38:20,940 --> 00:38:22,686 >> DAVID Malan: Per què vol dir això? 795 00:38:22,686 --> 00:38:23,561 AUDIÈNCIA: [inaudible] 796 00:38:23,561 --> 00:38:32,180 797 00:38:32,180 --> 00:38:32,930 DAVID Malan: Sí. 798 00:38:32,930 --> 00:38:35,622 I anem a suposar per als fins d'avui que això és cert. 799 00:38:35,622 --> 00:38:38,330 Resulta que, i hem après aquesta de la manera difícil, que no és cert. 800 00:38:38,330 --> 00:38:41,670 D'alguna manera els múltiples ciutats tenen, D'alguna manera, el mateix codi postal, 801 00:38:41,670 --> 00:38:43,390 que trenca aquesta meravellosa intuïció. 802 00:38:43,390 --> 00:38:46,180 Però suposem que és cert, perquè és gairebé sempre cert. 803 00:38:46,180 --> 00:38:51,390 Així que suposem que un codi postal és sempre associada a la mateixa ciutat 804 00:38:51,390 --> 00:38:53,600 i l'Estat, que és una espècie de la suposició raonable, 805 00:38:53,600 --> 00:38:54,840 però incorrecte, resulta. 806 00:38:54,840 --> 00:38:57,310 No obstant això, una suposició raonable per als propòsits de l'actualitat. 807 00:38:57,310 --> 00:39:01,650 >> Llavors suposo que visc a Cambridge, MA, d'acord amb la taula d'aquest usuari, 808 00:39:01,650 --> 00:39:04,100 i suposem que Lauren Scully viu a Cambridge, MA, 809 00:39:04,100 --> 00:39:06,120 i suposem que Kareem viu a Cambridge, MA, 810 00:39:06,120 --> 00:39:10,400 Arwa i viu a Cambridge, MA, tots nosaltres en 02138. 811 00:39:10,400 --> 00:39:15,890 Per què estem recordant Cambridge, MA, 02138 per als quatre de nosaltres? 812 00:39:15,890 --> 00:39:18,903 El que hauria de ser suficient per recordar? 813 00:39:18,903 --> 00:39:20,249 >> AUDIÈNCIA: [inaudible] 814 00:39:20,249 --> 00:39:21,540 DAVID Malan: Només el codi postal. 815 00:39:21,540 --> 00:39:25,080 Igual que 02138 existeix, perquè saps el que podríem fer? 816 00:39:25,080 --> 00:39:32,650 Podríem aconseguir una mica de luxes i per aquí, defineixi una altra taula 817 00:39:32,650 --> 00:39:35,850 on això serà el nom, això va a ser el tipus, 818 00:39:35,850 --> 00:39:38,840 això va a ser el de longitud, i d'ara en endavant, estic 819 00:39:38,840 --> 00:39:42,900 va a cridar a aquest la meva taula ciutats. 820 00:39:42,900 --> 00:39:47,011 Això va ser cridat, de Evidentment, la meva taula d'usuaris. 821 00:39:47,011 --> 00:39:49,885 I així ho he de posar aquí per a la meva taula ciutats, què et sembla? 822 00:39:49,885 --> 00:39:53,605 823 00:39:53,605 --> 00:39:54,535 >> AUDIÈNCIA: [inaudible] 824 00:39:54,535 --> 00:39:55,930 >> DAVID Malan: Sí. 825 00:39:55,930 --> 00:40:01,440 Així comprimir i estat i la ciutat. 826 00:40:01,440 --> 00:40:05,350 I pel que el tipus d'aquí, ens dirà això va a ser un char 5 de nou, 827 00:40:05,350 --> 00:40:06,750 subjecte al debat de l'anterior. 828 00:40:06,750 --> 00:40:14,810 Aquesta serà una enumeració, potser com abans, i la ciutat serà un varchar 50. 829 00:40:14,810 --> 00:40:17,960 I per això ara què amb si esborrar d'aquesta taula 830 00:40:17,960 --> 00:40:21,995 per eliminar aquesta ineficiència? 831 00:40:21,995 --> 00:40:23,100 >> AUDIÈNCIA: [inaudible] 832 00:40:23,100 --> 00:40:23,850 DAVID Malan: Niça. 833 00:40:23,850 --> 00:40:30,239 Estat i la ciutat desapareixen, pel que he ara eliminat la ineficiència potencial 834 00:40:30,239 --> 00:40:33,280 per recordar de manera redundant, Cambridge, MA, Cambridge, MA, Cambridge, MA, 835 00:40:33,280 --> 00:40:35,712 Cambridge, MA, el qual, és d'esperar mai canviarà. 836 00:40:35,712 --> 00:40:37,670 I fins i tot si ho fa, és minorly molest, ara 837 00:40:37,670 --> 00:40:39,750 que he de canviar en diverses files, 838 00:40:39,750 --> 00:40:43,770 mentre que aquí, només podia canviar-lo en un sol lloc. 839 00:40:43,770 --> 00:40:46,890 >> Ara quin és l'equilibri, potser? 840 00:40:46,890 --> 00:40:48,020 Això era molt pràctic. 841 00:40:48,020 --> 00:40:50,730 Tenia totes les meves dades molt bé junts. 842 00:40:50,730 --> 00:40:53,644 Però el que és clarament el cas ara? 843 00:40:53,644 --> 00:40:55,684 >> AUDIÈNCIA: [inaudible] 844 00:40:55,684 --> 00:40:58,100 DAVID Malan: Exactament, i estic content que va utilitzar la paraula s'uneixen, 845 00:40:58,100 --> 00:41:01,320 perquè això és en realitat la paraula clau, en el món de les bases de dades relacionals 846 00:41:01,320 --> 00:41:05,270 en SQL, que és una paraula real que podria escriure o almenys transmetre. 847 00:41:05,270 --> 00:41:09,280 I de fet, el que hem de fer ara per seleccionar la informació completa de David és 848 00:41:09,280 --> 00:41:19,700 una mena de selecció d'estrelles usuaris, s'uneixen a les ciutats, i ara en-- 849 00:41:19,700 --> 00:41:24,010 Vaig a moure simplement a una segona línia de manera que aquest és igual users.zip fits-- 850 00:41:24,010 --> 00:41:34,570 cities.zip, on users.ID és igual a 1. 851 00:41:34,570 --> 00:41:35,550 >> Llavors, què està passant? 852 00:41:35,550 --> 00:41:38,970 És lleig que mira, però es pot tipus de llegir d'esquerra a dreta i de dalt a baix. 853 00:41:38,970 --> 00:41:41,030 Seleccioneu l'estrella dels usuaris és el mateix que abans, 854 00:41:41,030 --> 00:41:42,930 però no és part dels usuaris, per se. 855 00:41:42,930 --> 00:41:45,910 És d'usuaris s'uneixen a les ciutats. 856 00:41:45,910 --> 00:41:48,520 Què estic unint aquests dos taules en? 857 00:41:48,520 --> 00:41:51,820 Bé, pel que sembla, la taules usuaris zip camp, 858 00:41:51,820 --> 00:41:54,810 i aquest període és simplement especial la sintaxi per expressar aquesta idea, 859 00:41:54,810 --> 00:41:58,130 i això és les taules ciutats zip camp. 860 00:41:58,130 --> 00:42:01,580 Vull els dos a ser iguals, però vull seleccioneu en última instància, 861 00:42:01,580 --> 00:42:06,280 només les files on ID a la taula d'usuaris 862 00:42:06,280 --> 00:42:08,730 és igual a 1, que va passar a ser la meva. 863 00:42:08,730 --> 00:42:11,781 >> I per ser clars, un programador, generalment quan 864 00:42:11,781 --> 00:42:14,780 codificar cosa així com el nombre 1, perquè altrament només el lloc web 865 00:42:14,780 --> 00:42:17,630 dóna suport David o la primer usuari, 866 00:42:17,630 --> 00:42:20,720 En comptes d'això fer alguna cosa així com la identificació, on 867 00:42:20,720 --> 00:42:22,510 això representa una variables, cosa que 868 00:42:22,510 --> 00:42:26,210 pot canviar amb el temps, similar en esperit al que vaig dir abans 869 00:42:26,210 --> 00:42:28,080 amb aquest tipus de marcadors de posició. 870 00:42:28,080 --> 00:42:30,396 Però per ara només haurem de codificar com 1. 871 00:42:30,396 --> 00:42:31,520 I així, què vol dir això? 872 00:42:31,520 --> 00:42:35,100 Doncs bé, una bona manera de visualitzar això és que si aquesta mà és la taula d'usuaris, 873 00:42:35,100 --> 00:42:38,090 i això és part de les cremalleres taula, estem espècie de finding-- 874 00:42:38,090 --> 00:42:41,330 i les puntes dels dits són postal aquí, i les puntes dels dits 875 00:42:41,330 --> 00:42:43,740 aquí estan postal, ets tipus d'enclavament es 876 00:42:43,740 --> 00:42:47,950 de manera que obté novament el resultant taula original, per veritablement unir-se 877 00:42:47,950 --> 00:42:49,590 les dues taules en el camp comú. 878 00:42:49,590 --> 00:42:50,840 I no té per què ser postal. 879 00:42:50,840 --> 00:42:54,460 Podria ser qualsevol altra cosa més, però zip és bo, perquè un, és curta, 880 00:42:54,460 --> 00:42:56,470 dos, que sempre és la mateixa longitud, de manera que cal 881 00:42:56,470 --> 00:43:02,270 una veritable eficàcia al Olivier proposa aquí 882 00:43:02,270 --> 00:43:05,200 amb la factorització de la cremallera, i [Inaudible] proposant que ens desfem 883 00:43:05,200 --> 00:43:07,110 de la ciutat i estats. 884 00:43:07,110 --> 00:43:11,370 >> Així que aquest és el procés coneguda com la normalització. 885 00:43:11,370 --> 00:43:14,171 Per a qualsevol dubte sobre això? 886 00:43:14,171 --> 00:43:16,170 Bé permetin-me assenyalar aquest és el tipus de coses, 887 00:43:16,170 --> 00:43:19,202 tot i que és força baix nivell, aquesta discussió, que es podria pensar 888 00:43:19,202 --> 00:43:20,910 estàs espècie d'aconseguir perdut en la mala herba, 889 00:43:20,910 --> 00:43:26,690 aquesta és una manifestació d'un ampli oportunitat per als desenvolupadors a ser dolent. 890 00:43:26,690 --> 00:43:29,600 I de fet, tot i que, en cursos que he impartit, quan hem tingut, 891 00:43:29,600 --> 00:43:32,290 per exemple, sense experiència programadors de grau 892 00:43:32,290 --> 00:43:35,920 construir llocs web, a primera vista, els llocs web pot tenir un aspecte fantàstic. 893 00:43:35,920 --> 00:43:38,280 I tenen tota la funcionalitat que havíem demanat, 894 00:43:38,280 --> 00:43:40,650 els desenvolupadors van fer una bona feina. 895 00:43:40,650 --> 00:43:43,370 >> Però no necessàriament saben prou sobre el disseny de bases de dades 896 00:43:43,370 --> 00:43:46,680 o que no van pensar dur prou sobre els tipus de dades 897 00:43:46,680 --> 00:43:49,220 i els tipus d'usuaris de les pàgina web anava a tenir, 898 00:43:49,220 --> 00:43:53,240 i ens trobem, llavors, sis mesos més tard, després que s'han graduat o es mouen en, 899 00:43:53,240 --> 00:43:56,016 que maleïda sigui, el nostre lloc web és realment, realment lent. 900 00:43:56,016 --> 00:43:58,890 I ni tan sols estic parlant de tenir milions o milers d'usuaris. 901 00:43:58,890 --> 00:44:02,580 Em refereixo a uns pocs centenars d'usuaris al campus, tots els quals els agrada, per exemple, 902 00:44:02,580 --> 00:44:04,870 compres per als cursos de al mateix temps, són 903 00:44:04,870 --> 00:44:07,010 usant aquest catàleg de cursos aplicació Vaig esmentar 904 00:44:07,010 --> 00:44:10,410 i la cosa s'està posant molt reduir la velocitat perquè no hi havia índexs. 905 00:44:10,410 --> 00:44:13,740 No hi havia estrelles vermelles, per la qual cosa parlar, o que no tenien necessàriament 906 00:44:13,740 --> 00:44:17,690 un factor fora de dades comuns a obtenir alguns estalvis d'espai. 907 00:44:17,690 --> 00:44:21,880 >> I així, quan un desenvolupador de procedir a la instrucció o persona base de dades o similars, 908 00:44:21,880 --> 00:44:25,864 el tipus de preguntes que pensar a través és parell, en revisar el codi d'una altra, 909 00:44:25,864 --> 00:44:28,530 a dir, no necessàriament mirar a través de la totalitat del seu codi, però dir, 910 00:44:28,530 --> 00:44:30,154 anem a veure a través de les taules de base de dades. 911 00:44:30,154 --> 00:44:31,150 Què estàs emmagatzemant? 912 00:44:31,150 --> 00:44:33,941 I després dir, bé, s'espera un minut, Per què utilitza un nombre enter? 913 00:44:33,941 --> 00:44:36,224 Què passa si tenim 4000000000 i 1 de les files? 914 00:44:36,224 --> 00:44:38,140 I aquest tipus de preguntes és una oportunitat 915 00:44:38,140 --> 00:44:40,170 al tipus d'empènyer cap enrere i tenir una idea d'on 916 00:44:40,170 --> 00:44:42,300 si no se sent còmode fent que, tenir algú més tècnic 917 00:44:42,300 --> 00:44:45,425 fer aquestes preguntes, de si és o no la persona que realment sap les seves coses. 918 00:44:45,425 --> 00:44:47,890 I aquest és el tipus de coses, també, que les persones 919 00:44:47,890 --> 00:44:50,540 a l'Internet que són autodidactes, potser 920 00:44:50,540 --> 00:44:53,920 aprendre amb menys freqüència, perquè no tenen necessàriament que procedir a través d'ella 921 00:44:53,920 --> 00:44:56,630 com a molt, ja que es pot aconseguir la base de dades en funcionament, 922 00:44:56,630 --> 00:44:58,880 però a menys que hi hagi llegit dalt a tutorials o estat 923 00:44:58,880 --> 00:45:01,880 comptat sobre la normalització de bases de dades i la indexació i el rendiment, 924 00:45:01,880 --> 00:45:04,255 aquests són el tipus de coses que van a fer mal. 925 00:45:04,255 --> 00:45:07,480 I es podria pensar, o un mal enginyer podria dir, oh, bé, millor salari 926 00:45:07,480 --> 00:45:09,600 per a una base de dades més gran o una base de dades més ràpid 927 00:45:09,600 --> 00:45:13,360 o simplement llençar els diners en això, l'escala vertical, no és necessàriament així. 928 00:45:13,360 --> 00:45:16,920 Si vas en-- i es pot anar a després que els índexs fact-- i afegir, 929 00:45:16,920 --> 00:45:20,320 i pot ser que prengui un parell d'hores per al base de dades per construir que les noves dades 930 00:45:20,320 --> 00:45:24,100 estructura que he al·ludit abans, encara es pot solucionar aquest problema després del fet, 931 00:45:24,100 --> 00:45:26,180 que aquí és on es començar a distingir 932 00:45:26,180 --> 00:45:28,830 bons dissenyadors de mala dissenyadors, no només estèticament, 933 00:45:28,830 --> 00:45:32,972 però pel que fa al rendiment també. 934 00:45:32,972 --> 00:45:33,555 Qualsevol pregunta? 935 00:45:33,555 --> 00:45:36,420 936 00:45:36,420 --> 00:45:37,480 No? 937 00:45:37,480 --> 00:45:41,980 Així que per NoSQL, que era l'altre tipus de la base de dades a la qual he al·ludit abans, 938 00:45:41,980 --> 00:45:43,490 vostè no té files i columnes. 939 00:45:43,490 --> 00:45:47,000 En el seu lloc, vostè hauria alguna cosa que es veu una mica de la mateixa família. 940 00:45:47,000 --> 00:45:48,630 Vaig a utilitzar la sintaxi comuna. 941 00:45:48,630 --> 00:45:51,270 Les claus resulten ser utilitzat aquí molt. 942 00:45:51,270 --> 00:45:55,400 És possible que tingui alguna cosa com a primer nom és David, 943 00:45:55,400 --> 00:46:00,180 és possible que tingui l'última nom és Malan, cites, 944 00:46:00,180 --> 00:46:07,530 és possible que tingui ID és-- perdó, whoops-- ID és 1, 945 00:46:07,530 --> 00:46:13,410 El correu electrònic és malan@harvard.edu, i no ho faré molesti a escriure la resta, i després 946 00:46:13,410 --> 00:46:14,380 algunes altres coses. 947 00:46:14,380 --> 00:46:17,380 >> En altres paraules, això és una representació textual 948 00:46:17,380 --> 00:46:20,720 del que anomenaríem general un objecte en un programa d'ordinador. 949 00:46:20,720 --> 00:46:26,079 I és un objecte general, només una col·lecció de parells de valors clau. 950 00:46:26,079 --> 00:46:27,370 Així que de nou, aquest tema recurrent. 951 00:46:27,370 --> 00:46:30,440 Vam veure parells de valors clau en HTML, vam veure parells de valors clau ara 952 00:46:30,440 --> 00:46:34,020 en el context de les bases de dades, i va veure parells de valors clau en el context 953 00:46:34,020 --> 00:46:35,970 de, crec, una llengua el dia d'avui. 954 00:46:35,970 --> 00:46:36,890 Es presenta de nou. 955 00:46:36,890 --> 00:46:39,620 I de fet, això és realment quines dades es redueix a, 956 00:46:39,620 --> 00:46:44,240 dades i metadades, o valors i claus, respectivament. 957 00:46:44,240 --> 00:46:47,430 >> Pel que una no relacional base de dades, basat alguna cosa 958 00:46:47,430 --> 00:46:50,680 en els objectes, en el qual només s'aglutinen tot junt i posar-lo 959 00:46:50,680 --> 00:46:55,640 en la memòria, generalment es representat com, o pensat, ja que això. 960 00:46:55,640 --> 00:47:00,500 I ho deixo ara com una tipus d'enfocament alternatiu. 961 00:47:00,500 --> 00:47:03,750 I un no és necessàriament millor que l'altre. 962 00:47:03,750 --> 00:47:07,310 De fet, molt en voga en aquests dies són els sistemes de bases de dades 963 00:47:07,310 --> 00:47:11,942 com MongoDB i Redis i uns pocs altres eines similars, de lliure disposició, 964 00:47:11,942 --> 00:47:13,400 però són cada vegada més de moda. 965 00:47:13,400 --> 00:47:18,850 En part a causa de que ofereixen addicional compta amb més d'aquests enfocaments tabulars, 966 00:47:18,850 --> 00:47:20,850 sinó també perquè són una mica més fàcil d'usar, 967 00:47:20,850 --> 00:47:24,099 perquè vostè no ha de pensar tan dur sobre moltes d'aquestes decisions de disseny. 968 00:47:24,099 --> 00:47:25,970 Així que més i menys. 969 00:47:25,970 --> 00:47:29,740 Així adonar que hi ha opcions més enllà del que acaba de passar temps en. 970 00:47:29,740 --> 00:47:32,310 >> Així que anem a fer això. 971 00:47:32,310 --> 00:47:37,870 Anem transició una mica més tornar ara a la programació web, 972 00:47:37,870 --> 00:47:40,470 de manera que la classe de la conclusió avui amb una mica 973 00:47:40,470 --> 00:47:43,930 Això és una mica pràctic, omplint en algunes llacunes d'ahir. 974 00:47:43,930 --> 00:47:45,340 Déjame anar a aquesta primera. 975 00:47:45,340 --> 00:47:49,310 Així recordar que ahir teníem una mica d'HTML canònica 976 00:47:49,310 --> 00:47:55,110 pàgines que tenien inicialment, només es HTML i CSS tingut secundàriament, 977 00:47:55,110 --> 00:47:56,620 els fulls d'estil en cascada. 978 00:47:56,620 --> 00:47:59,830 Aquesta és una etiqueta que no ho vam fer veure ahir, o aturar-se en, 979 00:47:59,830 --> 00:48:01,490 anomenada etiqueta de script. 980 00:48:01,490 --> 00:48:05,830 >> Resulta que en realitat es pot incrustar una llenguatge anomenat Javascript al seu web 981 00:48:05,830 --> 00:48:08,310 pàgina i fer que la seva web pàgines fan alguna cosa. 982 00:48:08,310 --> 00:48:09,710 Llavors, què vull dir amb això? 983 00:48:09,710 --> 00:48:12,630 Bé, deixa anar endavant i només prestat aquest codi per un moment. 984 00:48:12,630 --> 00:48:15,860 Vaig a entrar a Cloud9, sense necessitat anar-hi a si mateixos de moment, 985 00:48:15,860 --> 00:48:21,350 i jo vaig a trucar a aquest alert.HTML. 986 00:48:21,350 --> 00:48:23,650 Vaig a pegar al meu arxiu aquí. 987 00:48:23,650 --> 00:48:32,070 I només per aclarir el que he fet, i molt em vagi a aquesta direcció i vaig a alertar, 988 00:48:32,070 --> 00:48:33,870 i es veu el món Hola. 989 00:48:33,870 --> 00:48:35,440 >> Però això és una mica decebedor. 990 00:48:35,440 --> 00:48:37,410 Vull fer alguna cosa una mica diferent. 991 00:48:37,410 --> 00:48:40,610 Així que vaig a fer això realitat. 992 00:48:40,610 --> 00:48:43,820 Vaig a entrar aquí i, i enmig de les meves etiquetes de script, 993 00:48:43,820 --> 00:48:53,460 dir alert ( 'hola, món'); de manera previ avís que és una mica descuidat, però tinc HTML, 994 00:48:53,460 --> 00:48:56,180 dins dels quals és una llenguatge anomenat JavaScript, 995 00:48:56,180 --> 00:48:59,420 i això és el que s'anomena una crida a la funció o crida a procediment. 996 00:48:59,420 --> 00:49:04,500 Aquest és un verb, literalment, en aquest cas, i jo estic invocant la funcionalitat de codi 997 00:49:04,500 --> 00:49:06,310 que una altra persona va escriure. 998 00:49:06,310 --> 00:49:09,630 >> Així que la funcionalitat és una alerta, així que anem a aquesta pàgina 999 00:49:09,630 --> 00:49:14,046 ara i feu clic a Torna a carregar, i ara veure una mica d'interactivitat. 1000 00:49:14,046 --> 00:49:15,420 És una espècie de vella escola i lleig. 1001 00:49:15,420 --> 00:49:18,580 Aquest tipus de li recorda el finestres emergents, potser, d'abans 1002 00:49:18,580 --> 00:49:22,030 però sí fer alguna cosa una poc més programàtic. 1003 00:49:22,030 --> 00:49:26,940 >> Així que més que això, farem una mica més interessant. 1004 00:49:26,940 --> 00:49:30,980 Déjame anar aquí i desfer d'aquest. 1005 00:49:30,980 --> 00:49:33,840 I vaig a seguir endavant i crear una forma com ho vam fer ahir. 1006 00:49:33,840 --> 00:49:34,840 En realitat, saps què? 1007 00:49:34,840 --> 00:49:37,350 Vaig a entrar a google.html, que ens 1008 00:49:37,350 --> 00:49:43,027 començar el dia d'ahir, que semblava això, a través de la qual es van realitzar cerques de gat 1009 00:49:43,027 --> 00:49:45,360 Però Recordeu que hi ha una mena de error en la versió actual. 1010 00:49:45,360 --> 00:49:49,770 Funciona per als gats, però suposem que Jo no coopero i escric res, 1011 00:49:49,770 --> 00:49:53,290 i jo simplement feu clic a enviar. 1012 00:49:53,290 --> 00:49:54,540 Això és una mica estrany comportament. 1013 00:49:54,540 --> 00:49:57,300 Em va portar a la veritable Google, no em va donar un missatge d'error. 1014 00:49:57,300 --> 00:50:00,590 M'agradaria dir-li a l'usuari cal que ens donarà un valor. 1015 00:50:00,590 --> 00:50:01,780 >> Així que, com podem fer això? 1016 00:50:01,780 --> 00:50:06,790 Així em va deixar anar de nou a Cloud9 i em va deixar anar a la part superior de la meva pàgina 1017 00:50:06,790 --> 00:50:11,980 i afegir una etiqueta de script com aquest, on Vaig a escriure una mica de codi JavaScript. 1018 00:50:11,980 --> 00:50:15,420 I vaig a fer el següent. 1019 00:50:15,420 --> 00:50:22,910 Si (document.getelementByID-- i el record que hem parlat anteriorment que, 1020 00:50:22,910 --> 00:50:23,960 aquesta funció. 1021 00:50:23,960 --> 00:50:25,310 El ID Què vull aconseguir? 1022 00:50:25,310 --> 00:50:33,050 Vull aconseguir q, i vaig a per exemple és igual a res, així- 1023 00:50:33,050 --> 00:50:38,220 En realitat em deixa utilitzar cometes dobles només per consistency-- és igual a res, 1024 00:50:38,220 --> 00:50:46,650 a continuació, alert ( "Si us plau, escriviu una consulta") aquí. 1025 00:50:46,650 --> 00:50:49,200 >> Així que tinc el que sembla ser una mena de condició. 1026 00:50:49,200 --> 00:50:51,410 Hem vist aquesta idea general en Scratch. 1027 00:50:51,410 --> 00:50:54,240 És com un dels trencaclosques peces que s'assemblava a aquest. 1028 00:50:54,240 --> 00:50:55,780 I ¿què estic dient? 1029 00:50:55,780 --> 00:50:59,520 Bé, aquí baix, noto que estic farem el següent. 1030 00:50:59,520 --> 00:51:02,790 Vaig a donar aquest formulari camp no només un nom de q, que 1031 00:51:02,790 --> 00:51:06,630 és el que es transmet a Google, però estic va a donar un identificador local, 1032 00:51:06,630 --> 00:51:07,630 també anomenat q. 1033 00:51:07,630 --> 00:51:11,780 Però podria cridar a això tot el que vulgui, jo només vaig a mantenir la senzillesa 1034 00:51:11,780 --> 00:51:14,570 i també dir-q, només per simplicitat. 1035 00:51:14,570 --> 00:51:17,650 >> I ara em faré cosa una mica més. 1036 00:51:17,650 --> 00:51:22,600 En els camps de formulari aquí, vaig a afegir el que es diu un controlador d'esdeveniments. 1037 00:51:22,600 --> 00:51:32,260 En presentin, vull cridar una funció anomenada de validació. 1038 00:51:32,260 --> 00:51:35,520 Això no existeix, però, aquesta paraula, o aquest verb de validació, 1039 00:51:35,520 --> 00:51:38,560 perquè el que faré aquí ara és afegir una mica de codi. 1040 00:51:38,560 --> 00:51:42,200 >> Vaig a dir validar la funció. 1041 00:51:42,200 --> 00:51:48,280 Vaig a sagnar això i afegir un altre clau d'aquí i un altre aquí. 1042 00:51:48,280 --> 00:51:50,110 Considerem el que això està fent ara. 1043 00:51:50,110 --> 00:51:54,210 Tinc ara-- pensar en això com el meu creat pròpia peça del trencaclosques que no ho van fer amb anterioritat 1044 00:51:54,210 --> 00:51:57,440 existeixo, i jo he trucat a aquest trencaclosques piece la peça del trencaclosques de validació. 1045 00:51:57,440 --> 00:52:01,620 El seu propòsit a la vida és executar les quatre línies de codi dins d'ella. 1046 00:52:01,620 --> 00:52:04,940 >> si document.getElementById així conceptualment, 1047 00:52:04,940 --> 00:52:09,380 que entrarà en l'element, l'element HTML l'única 1048 00:52:09,380 --> 00:52:12,930 idea és simplement q ia continuació, tot i que la sintaxi és una mica estrany, 1049 00:52:12,930 --> 00:52:16,430 que és igual a igual només significa iguals. 1050 00:52:16,430 --> 00:52:20,950 Això vol dir que si l'element amb el identificador únic de q, quan es va incorporar, 1051 00:52:20,950 --> 00:52:25,700 no té cap valor, només és igual entre cometes, res allà, 1052 00:52:25,700 --> 00:52:27,170 llavors, què és el que vull fer? 1053 00:52:27,170 --> 00:52:29,360 Vull cridar l'usuari. 1054 00:52:29,360 --> 00:52:31,710 >> I no entrarem aquí amb gran detall. 1055 00:52:31,710 --> 00:52:32,960 Vaig a tornar falsa. 1056 00:52:32,960 --> 00:52:34,380 Això és un error. 1057 00:52:34,380 --> 00:52:38,746 Si no, vaig a tornar realitat. 1058 00:52:38,746 --> 00:52:40,120 Així que, o funcionava o no ho va fer. 1059 00:52:40,120 --> 00:52:41,800 Falsa o veritable. 1060 00:52:41,800 --> 00:52:47,820 I ara, si jo no he comès cap error, em deixa guardar això i torneu a carregar aquesta. 1061 00:52:47,820 --> 00:52:50,940 I permetin-me que torni a comprovar Jo no, de fet, faig cap errada, 1062 00:52:50,940 --> 00:52:52,690 pel que no avergonyir-me. 1063 00:52:52,690 --> 00:52:54,240 Ja veurem si això funciona. 1064 00:52:54,240 --> 00:52:56,930 >> Així que ara vaig a escriure gats. 1065 00:52:56,930 --> 00:52:59,421 Encara funciona, o funciona la meitat, almenys. 1066 00:52:59,421 --> 00:53:02,170 Ara vaig a tornar a carregar, i ara deixo a tractar de presentar sense escriure 1067 00:53:02,170 --> 00:53:05,860 qualsevol cosa-- maleïda sigui, que es va trencar. 1068 00:53:05,860 --> 00:53:06,430 Un moment. 1069 00:53:06,430 --> 00:53:09,380 1070 00:53:09,380 --> 00:53:12,660 Permetin-me obrir la consola, [Inaudible] iniciar la sessió, torneu a carregar la pàgina. 1071 00:53:12,660 --> 00:53:13,576 Déjame intentar-ho de nou. 1072 00:53:13,576 --> 00:53:17,000 1073 00:53:17,000 --> 00:53:17,501 Oh, maledicció. 1074 00:53:17,501 --> 00:53:18,000 M'he oblidat. 1075 00:53:18,000 --> 00:53:18,630 Vaig fer un error tipogràfic. 1076 00:53:18,630 --> 00:53:20,760 Recordo el que és. 1077 00:53:20,760 --> 00:53:21,350 .value. 1078 00:53:21,350 --> 00:53:27,060 Vaig voler dir si el valor l'element el ID és q 1079 00:53:27,060 --> 00:53:29,800 és igual que, a continuació, cridar a l'usuari. 1080 00:53:29,800 --> 00:53:31,870 >> Així que ara que em tenen l'alè de nou. 1081 00:53:31,870 --> 00:53:33,480 Aquí anem. 1082 00:53:33,480 --> 00:53:34,130 Allà anem. 1083 00:53:34,130 --> 00:53:35,010 Si us plau, escriviu una consulta. 1084 00:53:35,010 --> 00:53:36,840 Així que no m'està deixant passar. 1085 00:53:36,840 --> 00:53:40,210 Puc ser una mica juganer amb això, i en lloc de la comprovació de cap valor, 1086 00:53:40,210 --> 00:53:46,720 Puc dir alguna cosa com: No més recerca dels gats, 1087 00:53:46,720 --> 00:53:51,150 i ara ens podem deixar més juguetonamente la recerca d'usuaris per als gossos si ell o ella 1088 00:53:51,150 --> 00:53:57,490 vol, o si entro aquí i buscar gats, ara no puc. 1089 00:53:57,490 --> 00:53:58,690 >> Quina és el menjar per emportar en aquesta llista? 1090 00:53:58,690 --> 00:54:03,010 Així que un, hem introduït en nostre món d'HTML i CSS, 1091 00:54:03,010 --> 00:54:04,320 funcionalitat de programació. 1092 00:54:04,320 --> 00:54:06,300 Jo en realitat pot ara prendre decisions en el codi. 1093 00:54:06,300 --> 00:54:10,570 Anteriorment, tot el que vaig poder fer és marcar el contingut textual o contingut gràfic 1094 00:54:10,570 --> 00:54:13,080 i dir-li el que ha de buscar com i on s'ha de mostrar. 1095 00:54:13,080 --> 00:54:16,650 Ara realment puc demanar preguntes de la pàgina web 1096 00:54:16,650 --> 00:54:20,010 i prendre decisions basades en ella, i demanar a l'usuari 1097 00:54:20,010 --> 00:54:22,780 si he de cridar a ell o ella. 1098 00:54:22,780 --> 00:54:28,740 >> Així que intentarem alguna cosa pel nostre compte amb aquest. 1099 00:54:28,740 --> 00:54:33,350 Vagi per davant, anem a obrir fins a la següent diapositiva aquí, i simplement assenyalar una cosa. 1100 00:54:33,350 --> 00:54:37,250 Igual que amb CSS, podem factoritzar nostre codi JavaScript en un arxiu separat, 1101 00:54:37,250 --> 00:54:40,660 es pot fer la mateixa cosa amb JavaScript com amb CSS. 1102 00:54:40,660 --> 00:54:44,520 I s'utilitza que l'ús d'una font atribut de l'etiqueta de script. 1103 00:54:44,520 --> 00:54:46,540 Però no anem a complicar les coses per ara. 1104 00:54:46,540 --> 00:54:50,440 En canvi, si pogués No vagi a aquesta pàgina, 1105 00:54:50,440 --> 00:55:02,690 però- m'ho dius a mi passar això al voltant de order-- anar a, si es pogués, aquesta pàgina aquí. 1106 00:55:02,690 --> 00:55:03,592 Aquesta URL aquí. 1107 00:55:03,592 --> 00:55:04,550 Està en les diapositives d'avui dia. 1108 00:55:04,550 --> 00:55:07,133 Podria ser necessari recarregar perquè He afegit un parell de coses. 1109 00:55:07,133 --> 00:55:09,970 1110 00:55:09,970 --> 00:55:13,890 >> Però anar allà on esperen alguns trencaclosques. 1111 00:55:13,890 --> 00:55:16,670 I això ens donarà una oportunitat, en un context una mica més divertit, 1112 00:55:16,670 --> 00:55:20,610 a incursionar amb una mica de JavaScript. 1113 00:55:20,610 --> 00:55:25,505 I quan arribi allà, Vaig a explicar el que li espera. 1114 00:55:25,505 --> 00:55:47,350 1115 00:55:47,350 --> 00:55:47,850 Obtenir verd. 1116 00:55:47,850 --> 00:56:03,063 1117 00:56:03,063 --> 00:56:03,562 Conjunt blau. 1118 00:56:03,562 --> 00:56:11,030 1119 00:56:11,030 --> 00:56:13,930 Estableix verd, vermell fix. 1120 00:56:13,930 --> 00:56:19,220 1121 00:56:19,220 --> 00:56:20,220 Vaya. 1122 00:56:20,220 --> 00:56:22,330 Ho sento. 1123 00:56:22,330 --> 00:56:27,630 >> Aquesta és la mesura de la nostra documentació per a aquest desafiament. 1124 00:56:27,630 --> 00:56:29,920 I això funcionarà de la següent manera. 1125 00:56:29,920 --> 00:56:33,340 Així que el que tens en aquest la pàgina és un manat sencer 1126 00:56:33,340 --> 00:56:38,024 trencaclosques d'imatge per un company a la Universitat de Stanford. 1127 00:56:38,024 --> 00:56:41,190 Així que el que estem veient aquí és gairebé tipus d'un d'aquests trencaclosques d'ull màgic, 1128 00:56:41,190 --> 00:56:43,815 però si només mira fixament ell, res va a esclatar cap a fora en vostè. 1129 00:56:43,815 --> 00:56:46,000 Més aviat, una cosa és amagat en aquesta imatge. 1130 00:56:46,000 --> 00:56:47,790 I que està amagat de la següent manera. 1131 00:56:47,790 --> 00:56:51,740 Imatges, com vostès saben, poden ser composta de només tres colors. 1132 00:56:51,740 --> 00:56:53,346 Alguns vermella, una mica de blau, i una mica de verd. 1133 00:56:53,346 --> 00:56:55,220 I podem fer tota la colors de l'arc de Sant Martí 1134 00:56:55,220 --> 00:56:57,570 mitjançant la barreja dels tres colors d'alguna manera. 1135 00:56:57,570 --> 00:57:01,940 >> Així que això es veu sobretot verd i blau, però com diu Nick aquí, 1136 00:57:01,940 --> 00:57:04,060 aquesta imatge Trencaclosques de ferro és un trencaclosques. 1137 00:57:04,060 --> 00:57:06,780 Conté una imatge de alguna cosa famós, però, 1138 00:57:06,780 --> 00:57:08,310 la imatge ha estat distorsionada. 1139 00:57:08,310 --> 00:57:11,500 L'objecte és famós en els valors de vermell. 1140 00:57:11,500 --> 00:57:13,810 valors No obstant això, el vermell Tots hem estat dividit per 10. 1141 00:57:13,810 --> 00:57:16,230 Pel que són massa petits en un factor de 10. 1142 00:57:16,230 --> 00:57:18,280 Així, en altres paraules, Nick va prendre una imatge original, 1143 00:57:18,280 --> 00:57:21,500 i ell desaturado tot del vermell d'ella, 1144 00:57:21,500 --> 00:57:23,850 la reducció de la quantitat de vermell tinta, si es vol, en el mateix. 1145 00:57:23,850 --> 00:57:26,060 >> Els valors de color blau i verd són a manca de sentit, 1146 00:57:26,060 --> 00:57:30,000 valors aleatoris, àlies dissenyats soroll per enfosquir la imatge real. 1147 00:57:30,000 --> 00:57:32,250 Així que el que Nick va fer va ser baixar el to del vermell i després 1148 00:57:32,250 --> 00:57:34,380 que acaba de llançar a l'atzar quantitats de blau i verd 1149 00:57:34,380 --> 00:57:37,590 a la imatge per tipus de fosca el que és en realitat encara existeix. 1150 00:57:37,590 --> 00:57:41,089 Ha de desfer aquestes distorsions per revelar la imatge. 1151 00:57:41,089 --> 00:57:44,255 En primer lloc, establir tots els valors de color blau i verd a zero per treure'ls del camí, 1152 00:57:44,255 --> 00:57:48,700 i veure el resultat. llavors multiplicar cada valor de vermell per 10, 1153 00:57:48,700 --> 00:57:51,720 escalar de nou fins aproximadament igual al seu valor final. 1154 00:57:51,720 --> 00:57:53,035 Quin és l'objecte famosa? 1155 00:57:53,035 --> 00:57:57,920 >> Així que tots vostès tenen aquest rectangle en el seu navegador a aquest moment. 1156 00:57:57,920 --> 00:58:00,830 I observi que hi ha una certa codi d'arrencada, per dir-ho. 1157 00:58:00,830 --> 00:58:04,370 Aquest és el codi JavaScript que Nick ha escrit per a vostè. 1158 00:58:04,370 --> 00:58:07,250 I l'avís que hi ha una línia en el medi que 1159 00:58:07,250 --> 00:58:10,380 comença amb una barra barra, això és el que generalment s'anomena un comentari. 1160 00:58:10,380 --> 00:58:14,660 Vol dir que és una frase per al programador que no té cap significat funcional. 1161 00:58:14,660 --> 00:58:16,520 És només un senyal visual per a l'ésser humà. 1162 00:58:16,520 --> 00:58:18,670 >> Perquè pugui seguir endavant i eliminar només aquesta línia, 1163 00:58:18,670 --> 00:58:22,214 i ser super cura de no esborrar o canviar qualsevol altra cosa. 1164 00:58:22,214 --> 00:58:25,130 I em van deixar de caminar a través d' el que fa aquest codi i ho deixaré 1165 00:58:25,130 --> 00:58:28,580 a vostè per esbrinar la imatge secreta. 1166 00:58:28,580 --> 00:58:32,226 Aquesta primera línia aquí que acabo de ressaltada li dóna la següent. 1167 00:58:32,226 --> 00:58:34,100 Pel costat de la mà esquerra, vostè té el que es diu 1168 00:58:34,100 --> 00:58:39,140 una variable que té Nick arbitràriament, però raonablement crida per una imatge im. 1169 00:58:39,140 --> 00:58:41,660 Pel costat de la mà dreta d'aquest signe igual, 1170 00:58:41,660 --> 00:58:45,240 que diu dóna'm un nou Ho van dir ells "imatge simple". 1171 00:58:45,240 --> 00:58:49,680 >> Imatge simple, en aquest context és el que s'anomena una classe, així, 1172 00:58:49,680 --> 00:58:53,910 que és com una mena de class-- tècnicament un prototype-- però en realitat, 1173 00:58:53,910 --> 00:58:58,000 això m'està donant un nou objecte, els continguts de les quals són l'arxiu, 1174 00:58:58,000 --> 00:58:59,610 ferro-puzzle.png. 1175 00:58:59,610 --> 00:59:03,190 En altres paraules, Nick ha creat aquesta noció d'una simple imatge 1176 00:59:03,190 --> 00:59:05,920 de manera que puguem, per pedagògica propòsits, juguen amb la imatge 1177 00:59:05,920 --> 00:59:09,790 i canviar el seu color vermell, valors de verd, i blau. 1178 00:59:09,790 --> 00:59:11,750 >> I com ens va això? 1179 00:59:11,750 --> 00:59:15,360 Aquesta sintaxi tant críptica aquí és una cosa així com el bloc de repetició 1180 00:59:15,360 --> 00:59:19,140 que alguns de vostès van veure en Scratch anteriorment avui en dia, on es pot repetir 10 vegades. 1181 00:59:19,140 --> 00:59:22,220 En aquest cas, Nick no té hardcodear un nombre com 10. 1182 00:59:22,220 --> 00:59:28,020 En el seu lloc, està dient, inicialitzar una variable anomenada x a 0, 1183 00:59:28,020 --> 00:59:33,180 comprovar si x és menor que l'amplada de la imatge. 1184 00:59:33,180 --> 00:59:38,160 >> I així, per ser més adequada, la imatge és variables, punt vol dir anar dins d'ella 1185 00:59:38,160 --> 00:59:40,900 i obtenir la seva amplada, i després parèntesi d'obertura, tancat 1186 00:59:40,900 --> 00:59:43,687 parin és només la forma d'un programador de dir això és una funció. 1187 00:59:43,687 --> 00:59:44,520 Aquest és un procediment. 1188 00:59:44,520 --> 00:59:46,430 Aquesta és la funcionalitat algú va escriure. 1189 00:59:46,430 --> 00:59:48,570 Usar-lo i em retorni una resposta. 1190 00:59:48,570 --> 00:59:53,610 I llavors x ++ és una forma elegant de dient, després d'haver fet un cop i 1191 00:59:53,610 --> 00:59:55,850 incrementar x per 1. 1192 00:59:55,850 --> 00:59:58,760 En altres paraules, aquest és la forma d'un programador 1193 00:59:58,760 --> 01:00:05,760 d'induir un bucle que és anar per repetir 1194 01:00:05,760 --> 01:00:10,410 totes les columnes d'una imatge. 1195 01:00:10,410 --> 01:00:14,790 >> Una imatge és només una reixeta de punts, files i columnes de punts. 1196 01:00:14,790 --> 01:00:18,270 Aquesta és una forma de la iteració sobretot d'aquelles columnes. 1197 01:00:18,270 --> 01:00:20,770 I a l'interior, Mentrestant, estem iterant 1198 01:00:20,770 --> 01:00:24,030 sobre les altures, aquí i aquí i aquí. 1199 01:00:24,030 --> 01:00:29,442 Així que això és només una forma de Traipsing, gairebé com una màquina d'escriure de l'escola, 1200 01:00:29,442 --> 01:00:32,230 que només ha d'anar sobre el imatge completa de manera iterativa. 1201 01:00:32,230 --> 01:00:36,370 Fins i tot això no és del tot completament clar, acaba de prendre en la fe, per ara, 1202 01:00:36,370 --> 01:00:38,880 que aquestes tres línies de codi junts són 1203 01:00:38,880 --> 01:00:43,090 va a permetre que vostè miri de forma iterativa en cada píxel, cada punt en la imatge. 1204 01:00:43,090 --> 01:00:43,790 >> Què és un píxel? 1205 01:00:43,790 --> 01:00:46,250 Bé, per ser clars, si mirem en l'original i fer un zoom, 1206 01:00:46,250 --> 01:00:49,060 si realment posa els seus ulls a la pantalla de l'ordinador, això és 1207 01:00:49,060 --> 01:00:53,510 Només un munt de punts, diversos mil punts empacats junts allà. 1208 01:00:53,510 --> 01:00:56,180 I a què estàs a punt de fer? 1209 01:00:56,180 --> 01:00:59,240 Cada un d'aquests punts, una definició final, 1210 01:00:59,240 --> 01:01:06,350 és el resultat del que és en general denominat RGB, vermell, verd, blau, que 1211 01:01:06,350 --> 01:01:09,940 de nou, es poden combinar per donar-li qualsevol nombre de colors. 1212 01:01:09,940 --> 01:01:13,200 >> De fet, si vostè recorda des de fa molts, molts anys, 1213 01:01:13,200 --> 01:01:17,320 pantalles de projecció, com aquestes coses solia tenir no un sinó tres lents. 1214 01:01:17,320 --> 01:01:20,700 Un d'ells escopir llum vermella, una de ells escupen llum verda, una d'elles 1215 01:01:20,700 --> 01:01:21,600 escopir llum blava. 1216 01:01:21,600 --> 01:01:24,391 I si estigués en una escola mitjana com si estigués en el qual mai havia 1217 01:01:24,391 --> 01:01:27,000 alineada correctament, eres Sempre veient pel·lícules d'història 1218 01:01:27,000 --> 01:01:29,770 que eren lleugerament distorsionada, perquè els tres colors no eren 1219 01:01:29,770 --> 01:01:30,970 combinant correctament. 1220 01:01:30,970 --> 01:01:36,330 >> Però resulta que cada un aquests valors de vermell, verd i blau, 1221 01:01:36,330 --> 01:01:37,980 pot tenir un nombre associat amb ells. 1222 01:01:37,980 --> 01:01:42,500 Per exemple, 0 per al vermell vol dir que no hi ha vermell, 0 per al verd vol dir que no hi ha verd, 1223 01:01:42,500 --> 01:01:45,120 i 0 per al blau vol dir que no hi ha blau. 1224 01:01:45,120 --> 01:01:49,403 Així que si vostè no té color vermell, sense verd, i no hi ha blau, de quin color té? 1225 01:01:49,403 --> 01:01:51,009 >> AUDIÈNCIA: [inaudible] 1226 01:01:51,009 --> 01:01:52,800 DAVID Malan: Si us plau Esperem que sí, que és blanc. 1227 01:01:52,800 --> 01:01:55,333 Malauradament, aquest operates-- ho sento? 1228 01:01:55,333 --> 01:01:56,380 >> AUDIÈNCIA: [inaudible] 1229 01:01:56,380 --> 01:01:58,630 DAVID Malan: ¿Així que en realitat tenen negre, en aquest cas. 1230 01:01:58,630 --> 01:02:01,530 Així que si vostè no té cap d'aquests colors encesos, té negre. 1231 01:02:01,530 --> 01:02:06,510 No obstant això, si vostè té, diguem que molt d'ells, de la mateixa manera que una gran quantitat de vermell, 255 de la mateixa, 1232 01:02:06,510 --> 01:02:10,340 molt verd, i molt de blau, que és de color blanc. 1233 01:02:10,340 --> 01:02:12,230 Així que aquests són els dos extrems. 1234 01:02:12,230 --> 01:02:17,460 Esta és la lògica, si tinc molt de vermell i verd i no hi ha blau, 1235 01:02:17,460 --> 01:02:18,485 de quin color és? 1236 01:02:18,485 --> 01:02:19,360 AUDIÈNCIA: [inaudible] 1237 01:02:19,360 --> 01:02:20,610 DAVID Malan: Dreta, òbviament. 1238 01:02:20,610 --> 01:02:25,940 I llavors no vermell, molt verd, no blau, i després 1239 01:02:25,940 --> 01:02:29,590 si tener-- així, només haurem d'acabar ella, perquè sí, però això, per descomptat, 1240 01:02:29,590 --> 01:02:31,350 Ara, és de color blau. 1241 01:02:31,350 --> 01:02:33,030 I ara es pot combinar aquests colors. 1242 01:02:33,030 --> 01:02:36,430 Ara com un a part, si algun de vostès té Alguna vegada has fet alguna cosa de disseny real lloc web, 1243 01:02:36,430 --> 01:02:38,360 En realitat, pot veure símbols com aquest. 1244 01:02:38,360 --> 01:02:42,030 FFF-- i, de fet, és Probablement ni tan sols això. 1245 01:02:42,030 --> 01:02:44,380 És FFFFFF. 1246 01:02:44,380 --> 01:02:48,970 >> Qualsevol que he vist de F i E de i A through-- pel que resulta, 1247 01:02:48,970 --> 01:02:52,970 Ahir vam parlar de decimals, i avui en dia, sobre tipus de decimal. 1248 01:02:52,970 --> 01:02:54,570 Avui parlem sobre binari. 1249 01:02:54,570 --> 01:02:59,010 Resulta que, hexadecimal és una molt sistema de base comuna per a ús en productes informàtics. 1250 01:02:59,010 --> 01:03:04,960 Binària és de dos, decimal és 10, hexadecimal és 16. 1251 01:03:04,960 --> 01:03:08,640 I resulta que, com fer s'explica en hexadecimal? 1252 01:03:08,640 --> 01:03:11,620 Zero, un, dos, tres, quatre, cinc, sis, set, vuit, 1253 01:03:11,620 --> 01:03:14,730 09:00, quin ús després de les nou? 1254 01:03:14,730 --> 01:03:16,600 Quin és el següent nombre? 1255 01:03:16,600 --> 01:03:19,180 Ja hem utilitzat zero. 1256 01:03:19,180 --> 01:03:20,570 Necessito 16 d'ells. 1257 01:03:20,570 --> 01:03:25,770 Zero, un, dos, tres, quatre, cinc, sis, set, vuit, nou, 1258 01:03:25,770 --> 01:03:27,520 necessita alguna convenció arbitrària. 1259 01:03:27,520 --> 01:03:30,810 >> I el que la humanitat va decidir algun temps Fa que ve després de les nou de la lletra 1260 01:03:30,810 --> 01:03:34,450 A i després B i després C. Així que la manera s'explica en hexadecimal 1261 01:03:34,450 --> 01:03:37,040 és zero, un, dos, tres, quatre, cinc, sis, set, vuit, nou, 1262 01:03:37,040 --> 01:03:42,880 A, B, C, D, E, F, i que comptarà vostè fins al final, resulta que, a 15. 1263 01:03:42,880 --> 01:03:47,850 Així zero a 15 és zero a través de F. Ara per què és tan significatiu? 1264 01:03:47,850 --> 01:03:51,570 Doncs bé, quan es té dos F, així és com t'expresses 255. 1265 01:03:51,570 --> 01:03:54,350 >> Així el conte llarg, en el món de Photoshop, 1266 01:03:54,350 --> 01:03:57,299 que el programari de disseny gràfic, en el món del desenvolupament web, 1267 01:03:57,299 --> 01:03:59,590 on vostè té un munt de colors, per descomptat, per jugar, 1268 01:03:59,590 --> 01:04:02,350 sovint els programadors expressar els que estan en hexadecimal, 1269 01:04:02,350 --> 01:04:05,260 simplement perquè tendeix a ser una mica més simple. 1270 01:04:05,260 --> 01:04:07,850 Tot i que a primera vista és molt més complexa. 1271 01:04:07,850 --> 01:04:11,590 >> Així, en qualsevol cas, això és important perquè Nick at Stanford 1272 01:04:11,590 --> 01:04:15,100 ens ha donat sis peces de funcionalitat que, els programadors en potència, 1273 01:04:15,100 --> 01:04:17,060 ara tindrà la capacitat d'utilitzar. 1274 01:04:17,060 --> 01:04:19,960 Incorporat en aquesta web La pàgina és de sis funcions, 1275 01:04:19,960 --> 01:04:21,820 6 procediments que Nick va escriure. 1276 01:04:21,820 --> 01:04:26,800 Tres d'ells li aconseguirà un nombre, un vermell, un verd, o un valor de blau. 1277 01:04:26,800 --> 01:04:28,787 Tres d'ells establir aquest valor. 1278 01:04:28,787 --> 01:04:30,620 I aquests guions són marcadors de posició, 1279 01:04:30,620 --> 01:04:32,600 per la qual cosa necessita saber quins són. 1280 01:04:32,600 --> 01:04:36,240 >> Així, amb aquestes tres funcions, la primera d'aquestes coses 1281 01:04:36,240 --> 01:04:39,190 serà una coordenada x, i la segona d'aquestes coses 1282 01:04:39,190 --> 01:04:40,700 serà una coordenada. 1283 01:04:40,700 --> 01:04:44,650 En altres paraules, que esquitxen, els quals píxel és el que vols aconseguir el verd de, 1284 01:04:44,650 --> 01:04:46,480 aconseguir el blau, el vermell d'aconseguir. 1285 01:04:46,480 --> 01:04:51,440 I llavors aquí, això serà x, això serà un valor i, 1286 01:04:51,440 --> 01:04:55,379 i això va a ser un nombre. 1287 01:04:55,379 --> 01:04:57,170 Així que anem a fer la primera línia d'aquest conjunt 1288 01:04:57,170 --> 01:05:00,220 i després ho deixo a vostè per intentar deduir la resta. 1289 01:05:00,220 --> 01:05:03,100 Així per les instruccions en aquesta pàgina, necessitem 1290 01:05:03,100 --> 01:05:08,960 per augmentar la vermell per un factor de 10, i hem de treure el verd 1291 01:05:08,960 --> 01:05:09,930 i retiri el blau. 1292 01:05:09,930 --> 01:05:12,410 Anem a començar amb els últims escenaris. 1293 01:05:12,410 --> 01:05:17,760 Així que si vull, i vaig aplicar una sagnia mitjançant l'ús d'alguns espais, 1294 01:05:17,760 --> 01:05:22,291 si vull establir el vermell, el verd, o el valor de blau, 1295 01:05:22,291 --> 01:05:23,540 Vaig a fer el següent. 1296 01:05:23,540 --> 01:05:31,280 >> Imatge, im.setBlue, i després basat en les meves instruccions aquí, 1297 01:05:31,280 --> 01:05:36,700 Quines tres coses hauria de fer-ho escriu dins de parèntesis ara? 1298 01:05:36,700 --> 01:05:41,960 Necessito el valor de x, la i valor, i quin nombre 1299 01:05:41,960 --> 01:05:48,770 hauria de posar aquí si vull desfer-me Del no-res, sobre la base d'aquesta història aquí? 1300 01:05:48,770 --> 01:05:49,630 Només zero. 1301 01:05:49,630 --> 01:05:52,420 Si no vull blau, només sóc canviarà a zero. 1302 01:05:52,420 --> 01:05:54,465 >> Ara anem a recapitular el que això està fent. 1303 01:05:54,465 --> 01:05:56,970 1304 01:05:56,970 --> 01:06:01,170 Tinc aquí i TOP línies segona i tercera, 1305 01:06:01,170 --> 01:06:04,080 Vaig reclamar dos bucles, bucles niats, si 1306 01:06:04,080 --> 01:06:08,360 Will, que tindran l'efecte de progressar des de l'esquerra a la dreta, 1307 01:06:08,360 --> 01:06:11,590 de dalt a baix sobre la totalitat de la x els valors i tots els valors de i. 1308 01:06:11,590 --> 01:06:15,167 Perquè, de nou, una imatge només una quadrícula de files i columnes. 1309 01:06:15,167 --> 01:06:17,000 Així que això es posarà desfer-se de tot el blau. 1310 01:06:17,000 --> 01:06:18,627 Permetin-me deixo a la següent línia si s'escau. 1311 01:06:18,627 --> 01:06:20,043 Com em desfaig de tot el verd? 1312 01:06:20,043 --> 01:06:23,747 1313 01:06:23,747 --> 01:06:25,140 >> AUDIÈNCIA: [inaudible] 1314 01:06:25,140 --> 01:06:26,151 >> DAVID Malan: Niça. 1315 01:06:26,151 --> 01:06:28,260 >> AUDIÈNCIA: [inaudible] 1316 01:06:28,260 --> 01:06:30,850 >> DAVID Malan: Niça. 1317 01:06:30,850 --> 01:06:36,120 I vaig a allunyar, i acaba de prendre compte que no s'ha fet cap errada. 1318 01:06:36,120 --> 01:06:39,390 I si se sent còmode amb el que has fet, 1319 01:06:39,390 --> 01:06:42,936 seguir endavant i feu clic al botó RUN / Desar i veure el que hi ha. 1320 01:06:42,936 --> 01:06:46,982 1321 01:06:46,982 --> 01:06:48,690 I de nou, hem fet només tres canvis. 1322 01:06:48,690 --> 01:06:52,130 Hem suprimit la primera comentar i ho va reemplaçar 1323 01:06:52,130 --> 01:06:53,575 amb aquestes dues línies de codi. 1324 01:06:53,575 --> 01:06:55,742 1325 01:06:55,742 --> 01:06:58,450 I està bé si vostè necessita per colpejar el botó Run / Desar un parell de vegades 1326 01:06:58,450 --> 01:07:01,190 per arreglar alguna cosa. 1327 01:07:01,190 --> 01:07:03,610 >> I permetin-me també el zoom en el meu codi perquè pugui transcriure. 1328 01:07:03,610 --> 01:07:04,110 Bé. 1329 01:07:04,110 --> 01:07:08,720 Així que veure a Andrew té el sembla ser un error. 1330 01:07:08,720 --> 01:07:11,110 Ell només té un gran negre rectangle a la pantalla. 1331 01:07:11,110 --> 01:07:13,120 Algú més té un gran rectangle negre? 1332 01:07:13,120 --> 01:07:13,390 >> AUDIÈNCIA: Sí. 1333 01:07:13,390 --> 01:07:14,360 >> DAVID Malan: Gran rectangle negre? 1334 01:07:14,360 --> 01:07:16,068 OK, així que pensarem sobre el que això significa. 1335 01:07:16,068 --> 01:07:20,560 Hem dit que zero, zero, zero, pel que no verd, no vermell, no blau, 1336 01:07:20,560 --> 01:07:21,980 es va a donar negre. 1337 01:07:21,980 --> 01:07:24,467 I resulta que la major part dels nostres ordinadors portàtils 1338 01:07:24,467 --> 01:07:25,800 simplement no tenen prou fidelitat. 1339 01:07:25,800 --> 01:07:27,750 No es pot dir que hi ha força és en realitat alguna cosa allà. 1340 01:07:27,750 --> 01:07:30,340 I si tal tipus d'inclinar la pantalla cap endavant i cap enrere, 1341 01:07:30,340 --> 01:07:32,850 Què tal es veu una alguna cosa allà? 1342 01:07:32,850 --> 01:07:34,820 Potser, una mena de, més o menys? 1343 01:07:34,820 --> 01:07:36,640 No és perfectament negre. 1344 01:07:36,640 --> 01:07:38,050 >> AUDIÈNCIA: [inaudible] 1345 01:07:38,050 --> 01:07:39,510 >> DAVID Malan: Spoiler! 1346 01:07:39,510 --> 01:07:42,610 Hi ha una mica de vermell, però recordar de les especificacions 1347 01:07:42,610 --> 01:07:44,940 del problema, Nick entonat cap avall. 1348 01:07:44,940 --> 01:07:47,860 Ell desaturado que alguna cosa, però no tot el camí a zero. 1349 01:07:47,860 --> 01:07:51,670 Així que si volem ampliar la quantitat de vermell, permetin-me proposar aquest truc. 1350 01:07:51,670 --> 01:07:53,750 Déjame el zoom en la meva pantalla. 1351 01:07:53,750 --> 01:07:58,678 I em va deixar anar endavant i dic quantitat és igual a im.getRed (x, i). 1352 01:07:58,678 --> 01:08:02,440 1353 01:08:02,440 --> 01:08:05,790 >> Aquesta línia de codi m'està donant cosa que es diu una variable. 1354 01:08:05,790 --> 01:08:09,643 Tinc arbitrària, però, sens dubte, raonablement anomenat al meu variable del que, 1355 01:08:09,643 --> 01:08:10,143 semblar? 1356 01:08:10,143 --> 01:08:13,530 1357 01:08:13,530 --> 01:08:14,340 Quantitat. 1358 01:08:14,340 --> 01:08:14,980 quantitat justa. 1359 01:08:14,980 --> 01:08:16,960 Podria haver anomenat el que vulgui, però jo sóc 1360 01:08:16,960 --> 01:08:19,490 l'ús d'aquesta altra funció que he descrit anteriorment 1361 01:08:19,490 --> 01:08:25,359 per obtenir la quantitat de vermell en x coma i. 1362 01:08:25,359 --> 01:08:27,520 Per què vaig fer això? 1363 01:08:27,520 --> 01:08:30,004 Què és el que vol fer aquí? 1364 01:08:30,004 --> 01:08:32,910 1365 01:08:32,910 --> 01:08:33,619 Vostè necessita add-- 1366 01:08:33,619 --> 01:08:34,493 AUDIÈNCIA: [inaudible] 1367 01:08:34,493 --> 01:08:36,279 DAVID Malan: Sí, potser es multiplica per 10. 1368 01:08:36,279 --> 01:08:38,862 I si vostè no sap això, estic seguirà endavant i fer això. 1369 01:08:38,862 --> 01:08:42,060 Vaig a seguir endavant i per exemple, vull que la quantitat de vermell 1370 01:08:42,060 --> 01:08:46,550 Vull ser el està en el vermell, els temps de 10, 1371 01:08:46,550 --> 01:08:50,330 i l'estrella, l'asterisc en la seva teclat és ell-- no utilitzen x. 1372 01:08:50,330 --> 01:08:51,569 Utilitzeu l'estrella. 1373 01:08:51,569 --> 01:08:55,350 Així és com les coses es multiplica en la majoria dels llenguatges de programació. 1374 01:08:55,350 --> 01:08:59,790 >> Així que d'acord a la intuïció de Kareem, emmagatzemat en aquesta variable anomenada quantitat, 1375 01:08:59,790 --> 01:09:03,649 és la quantitat de vermell que vull en la posició xi. 1376 01:09:03,649 --> 01:09:11,500 Com, ara, com puc fer que Pixel tenir aquest nombre? 1377 01:09:11,500 --> 01:09:12,859 Ja ha fet això abans. 1378 01:09:12,859 --> 01:09:17,666 S'estableix el verd i el blau o cap valor, a zero. 1379 01:09:17,666 --> 01:09:18,540 AUDIÈNCIA: [inaudible] 1380 01:09:18,540 --> 01:09:20,040 DAVID Malan: Sí, així vostè no vol que 10. 1381 01:09:20,040 --> 01:09:21,460 Ja ho va fer la matemàtiques aquí. 1382 01:09:21,460 --> 01:09:24,779 Així que estem aconseguint el valor de vermell, que és un nombre baix, és de suposar. 1383 01:09:24,779 --> 01:09:26,180 Estem multiplicant per 10. 1384 01:09:26,180 --> 01:09:29,139 El que es vol fer amb la quantitat variable d'ara? 1385 01:09:29,139 --> 01:09:30,130 >> AUDIÈNCIA: [inaudible] 1386 01:09:30,130 --> 01:09:30,880 >> DAVID Malan: Niça. 1387 01:09:30,880 --> 01:09:34,616 Així im.set-- què? 1388 01:09:34,616 --> 01:09:35,640 >> AUDIÈNCIA: setRed. 1389 01:09:35,640 --> 01:09:39,760 >> DAVID Malan: setRed, en la posició xi. 1390 01:09:39,760 --> 01:09:40,260 Sí. 1391 01:09:40,260 --> 01:09:41,200 I de la mateixa quantitat. 1392 01:09:41,200 --> 01:09:44,257 En altres paraules, una variable és un marcador de posició temporal 1393 01:09:44,257 --> 01:09:45,840 que es pot posar el que vulguis a. 1394 01:09:45,840 --> 01:09:48,680 Ens va passar a estar posant 1 nombre en ella, en el moment. 1395 01:09:48,680 --> 01:09:51,569 Ens hem multiplicat per 10 per a fer-lo més gran. 1396 01:09:51,569 --> 01:09:56,480 I ara estic substituint aquesta variable com el tercer argument, o l'entrada 1397 01:09:56,480 --> 01:09:57,810 per establir vermell. 1398 01:09:57,810 --> 01:10:00,440 I pel que una vegada que acabar això, i prendre nota 1399 01:10:00,440 --> 01:10:02,330 dels punts i comes i entre parèntesis. 1400 01:10:02,330 --> 01:10:06,290 >> Vagi per davant i feu clic córrer / guardar de nou, i es 1401 01:10:06,290 --> 01:10:10,690 vegin, màgicament, el que era en realitat allà. [? Arwa ,?] El que està allà? 1402 01:10:10,690 --> 01:10:16,412 La Torre Eiffel a-feta i dreta vermell, no bastant fosc. 1403 01:10:16,412 --> 01:10:17,870 hauria de ser més obvi ara, oi? 1404 01:10:17,870 --> 01:10:18,840 D'ACORD. 1405 01:10:18,840 --> 01:10:20,215 I Andrew, caixa de no més negre? 1406 01:10:20,215 --> 01:10:21,090 AUDIÈNCIA: [inaudible] 1407 01:10:21,090 --> 01:10:22,180 DAVID Malan: Està bé. 1408 01:10:22,180 --> 01:10:23,610 Així que vaig a mantenir això a la pantalla. 1409 01:10:23,610 --> 01:10:27,010 Si vols jugar amb aquest més endavant, vaig a tornar a crear això per a vostè. 1410 01:10:27,010 --> 01:10:29,140 Però aquest codi aquí va fer exactament això. 1411 01:10:29,140 --> 01:10:31,460 Per què no fem una altra. 1412 01:10:31,460 --> 01:10:33,880 Permetin-me desplaço cap avall lleugerament. 1413 01:10:33,880 --> 01:10:36,760 >> Així doncs, en aquest cas, el projector en realitat no li fa justícia. 1414 01:10:36,760 --> 01:10:40,486 Però en les seves pantalles, és probable tenir un quadre molt vermella i molt negre. 1415 01:10:40,486 --> 01:10:42,610 Això, també, és un trencaclosques que mostra alguna cosa famós. 1416 01:10:42,610 --> 01:10:44,193 No obstant això, la imatge ha estat distorsionada. 1417 01:10:44,193 --> 01:10:47,740 La imatge veritable, aquest cop, és en els valors de blau i verd. 1418 01:10:47,740 --> 01:10:51,820 No obstant això, tots ells han estat dividits per 20 el que els valors són molt petites. 1419 01:10:51,820 --> 01:10:54,660 Els valors de vermell són només nombres aleatoris, soroll. 1420 01:10:54,660 --> 01:10:57,190 Desfer aquestes distorsions per revelar la veritable imatge. 1421 01:10:57,190 --> 01:10:59,200 >> Així que Nick li diu llavors què fer. 1422 01:10:59,200 --> 01:11:04,290 Establir els valors de vermell a zero, i llavors no espatllar el que és. 1423 01:11:04,290 --> 01:11:07,110 Llavors multiplicar el blau i els valors verds per 20. 1424 01:11:07,110 --> 01:11:09,820 Pel que és gairebé el mateix programa com abans, 1425 01:11:09,820 --> 01:11:11,380 però estàs invertint el procés. 1426 01:11:11,380 --> 01:11:13,780 I posaré el meu codi de abans a la pantalla en cas 1427 01:11:13,780 --> 01:11:16,650 que desitja fer referència de nou a ell o jugar amb més que un. 1428 01:11:16,650 --> 01:11:18,100 Permetin-me apropar dit. 1429 01:11:18,100 --> 01:11:21,450 Però resoldre imatge Coure trencaclosques, número dos. 1430 01:11:21,450 --> 01:11:37,623 1431 01:11:37,623 --> 01:11:40,580 >> AUDIÈNCIA: [inaudible] 1432 01:11:40,580 --> 01:11:44,010 >> DAVID Malan: OK, així que aquest punt estic No va a donar tants consells. 1433 01:11:44,010 --> 01:11:47,220 Així que would-- oh, anem a veure, vostè té un error tipogràfic aquí. 1434 01:11:47,220 --> 01:11:49,621 Així que recordi, això aquí en realitat ha d'anar-hi. 1435 01:11:49,621 --> 01:11:52,870 Llavors, què proposaria, si desitja se centren en aquest cas, no és la resposta. 1436 01:11:52,870 --> 01:11:57,060 Si vol transcriure això, que ha de rebre el primer de treball. 1437 01:11:57,060 --> 01:11:59,910 I llavors vostè pot utilitzar això com inspiració per al segon. 1438 01:11:59,910 --> 01:12:02,230 Niça. 1439 01:12:02,230 --> 01:12:02,730 Bé. 1440 01:12:02,730 --> 01:12:05,430 1441 01:12:05,430 --> 01:12:08,180 >> I per als curiosos, això és un exemple senzill 1442 01:12:08,180 --> 01:12:11,080 d'una ciència o un art anomenada esteganografia, 1443 01:12:11,080 --> 01:12:14,100 l'art d'ocultar informació en imatges. 1444 01:12:14,100 --> 01:12:16,890 En general, les imatges podrien ser marcat per l'aigua molt descaradament 1445 01:12:16,890 --> 01:12:19,500 amb un logotip a la part inferior cantonada, però amb claredat, 1446 01:12:19,500 --> 01:12:22,070 pot ser molt més sofisticat referent a això i, de fet 1447 01:12:22,070 --> 01:12:25,050 ocultar altres imatges en les Imatges d'alguna manera amb aquesta tècnica. 1448 01:12:25,050 --> 01:12:59,890 1449 01:12:59,890 --> 01:13:05,770 >> Prendre altres 30 segons, i després anem a almenys anunciar el que hauria de veure. 1450 01:13:05,770 --> 01:13:08,330 I deixaré la tercera un com un exercici a la llar, 1451 01:13:08,330 --> 01:13:11,353 Si desitja més d'un desafiar aquest cap de setmana. 1452 01:13:11,353 --> 01:13:18,240 1453 01:13:18,240 --> 01:13:20,390 I crec que Andrew podria han aconseguit per primera vegada. 1454 01:13:20,390 --> 01:13:22,645 Quina és la segona imatge, Andrew? 1455 01:13:22,645 --> 01:13:23,920 >> AUDIÈNCIA: estàtua de la llibertat. 1456 01:13:23,920 --> 01:13:28,500 >> DAVID Malan: estàtua de la llibertat serà la resposta aquesta vegada. 1457 01:13:28,500 --> 01:13:31,140 Així que de nou, només algunes simples exemples, l'objectiu dels quals 1458 01:13:31,140 --> 01:13:35,040 és per donar-li una idea de com hem traduït esgarrapades pictòrica 1459 01:13:35,040 --> 01:13:40,410 quadres més molest i més codi complicat, però totes les idees 1460 01:13:40,410 --> 01:13:42,980 encara són exactament el mateix, encara que amb la introducció 1461 01:13:42,980 --> 01:13:48,380 ara de la noció d'una variable, sent capaç d'emmagatzemar una cosa temporal. 1462 01:13:48,380 --> 01:13:51,750 >> Farem un més pràctic, acaba de connectar ara els punts 1463 01:13:51,750 --> 01:13:53,880 a alguna cosa una mica més en el món real. 1464 01:13:53,880 --> 01:13:56,610 Quan estigui llest, si pogués aneu a aquesta adreça URL a la pantalla. 1465 01:13:56,610 --> 01:14:00,610 Això és també en la seva còpia de la diapositives, developers.google.com/maps~~V~~singular~~3rd. 1466 01:14:00,610 --> 01:14:03,660 Anem a fer alguna cosa realment real, per dir-ho, al web 1467 01:14:03,660 --> 01:14:07,600 l'ús de l'API de Google Maps, o interfície de programació d'aplicacions, 1468 01:14:07,600 --> 01:14:08,940 de la següent manera. 1469 01:14:08,940 --> 01:14:12,341 >> Google, igual que moltes empreses, proporciona una gran quantitat de funcionalitat gratuïta 1470 01:14:12,341 --> 01:14:14,840 que es pot utilitzar per construir la seva pròpies aplicacions interessants. 1471 01:14:14,840 --> 01:14:18,890 De fet, si alguna vegada has fet servir Uber per aconseguir un taxi o un cotxe, 1472 01:14:18,890 --> 01:14:21,640 Vostè probablement sap que té Uber Un mapa que mostra els cotxes i sobre el mateix. 1473 01:14:21,640 --> 01:14:24,870 És a dir, el millor que pot a dir, l'API de Google Maps. 1474 01:14:24,870 --> 01:14:28,884 Ells en realitat estan utilitzant els mapes de Google, però Uber no és una empresa de mapes, 1475 01:14:28,884 --> 01:14:31,050 ni hauria de ser una problema particularment interessant 1476 01:14:31,050 --> 01:14:33,510 per resoldre a la part superior de la seva problema del servei de cotxe. 1477 01:14:33,510 --> 01:14:35,510 I pel que estan dempeus, de nou, a les espatlles 1478 01:14:35,510 --> 01:14:37,520 dels altres, en aquest cas Google. 1479 01:14:37,520 --> 01:14:42,850 Així que utilitzen els mapes de Google, però el seu propi serveis d'automòbils i altres característiques. 1480 01:14:42,850 --> 01:14:47,770 >> Així que aprofitarem d'això per fer el següent. 1481 01:14:47,770 --> 01:14:50,230 I si he anat massa ràpid, m'acaba de trucar una altra vegada en un moment. 1482 01:14:50,230 --> 01:14:53,500 Feliç per recapitular algunes de les coses de la imatge. 1483 01:14:53,500 --> 01:14:56,290 Ha de veure a si mateix en una pàgina com aquesta. 1484 01:14:56,290 --> 01:14:58,230 Tan agradable de Google, i que estan entre els millors 1485 01:14:58,230 --> 01:15:01,364 de proporcionar no només APIs, però APIs lliures que es 1486 01:15:01,364 --> 01:15:02,780 pot jugar amb o utilitzar comercialment. 1487 01:15:02,780 --> 01:15:06,450 Ells comencen a cobrar si el seu ús és alta, però em vaig anar per davant per endavant 1488 01:15:06,450 --> 01:15:10,490 i ens signat per obtenir un compte gratuït que, amb sort, 10 ordinadors 1489 01:15:10,490 --> 01:15:12,480 no ens desqualifica per de sobte. 1490 01:15:12,480 --> 01:15:14,320 Així que espero que aquest demostració funcionarà. 1491 01:15:14,320 --> 01:15:18,840 >> I noten que tenen APIs per Android, iOS, serveis web i web, 1492 01:15:18,840 --> 01:15:19,620 sigui el que sigui. 1493 01:15:19,620 --> 01:15:20,700 Anem a centrar-nos en la web. 1494 01:15:20,700 --> 01:15:26,560 Així que feu clic al quadre de color rosa, tela, i que el portarà, amb sort, a una pàgina 1495 01:15:26,560 --> 01:15:27,630 aquí. 1496 01:15:27,630 --> 01:15:29,335 I tenen un munt d'APIs. 1497 01:15:29,335 --> 01:15:31,210 I pot ser una mica aclaparador al principi, 1498 01:15:31,210 --> 01:15:33,000 però ens van a seguir a través del que volem. 1499 01:15:33,000 --> 01:15:38,500 >> A la part superior esquerra és el Google Maps JavaScript API, l'API de JavaScript. 1500 01:15:38,500 --> 01:15:40,380 Així que endavant i feu clic a que un. 1501 01:15:40,380 --> 01:15:49,360 I que el portarà ara a la següent pàgina, donem i codi d'exemple. 1502 01:15:49,360 --> 01:15:51,190 Permetin-me Allunyar aquí. 1503 01:15:51,190 --> 01:15:56,300 I m'ho dius a mi que ens desplacem cap avall A-- a on diu passos d'inici ràpid. 1504 01:15:56,300 --> 01:15:57,970 La seva pantalla ha de semblar-se a la meva. 1505 01:15:57,970 --> 01:16:01,130 >> I hi ha dos passos, aconseguir 1 clau i començar a desenvolupar. 1506 01:16:01,130 --> 01:16:04,190 Ja ho vaig fer el primer pas per nosaltres, aconseguir una clau trucada. 1507 01:16:04,190 --> 01:16:05,320 I aquesta és una idea comuna. 1508 01:16:05,320 --> 01:16:09,210 Una clau d'API és generalment només un nombre aleatori gran o cadena 1509 01:16:09,210 --> 01:16:11,130 que se suposa per enganxar al seu codi, 1510 01:16:11,130 --> 01:16:15,280 de manera que Google sap qui és vostè quan està utilitzant el seu servei, la seva API. 1511 01:16:15,280 --> 01:16:17,370 No vol dir que estem ser acusat de res. 1512 01:16:17,370 --> 01:16:21,030 I ara, feu clic a, en lloc de un, feu clic a començar a desenvolupar. 1513 01:16:21,030 --> 01:16:25,990 Si només jo pogués agitar més si no sap on som. 1514 01:16:25,990 --> 01:16:28,040 >> Així que tot just esgarrapen la superfície, però el que aquí 1515 01:16:28,040 --> 01:16:31,000 Vaig pensar que seria convincent és tenir en realitat tots nosaltres, 1516 01:16:31,000 --> 01:16:34,240 utilitzant Cloud9 en una finestra i aquest tutorial a part, 1517 01:16:34,240 --> 01:16:37,120 deixa per aconseguir realment la nostra pròpia l'aplicació en funcionament 1518 01:16:37,120 --> 01:16:40,920 que incorpora un costum Google mapejar en la nostra pròpia pàgina web, 1519 01:16:40,920 --> 01:16:43,010 i després afegeix una o dues característiques. 1520 01:16:43,010 --> 01:16:45,520 Però només haurem de gratar la superfície del que podem fer. 1521 01:16:45,520 --> 01:16:47,020 >> Pel que només una comprovació de validesa ràpida. 1522 01:16:47,020 --> 01:16:49,740 És tot el món en aquesta pàgina, API de JavaScript de Google Maps? 1523 01:16:49,740 --> 01:16:50,872 Ha de dir com començar. 1524 01:16:50,872 --> 01:16:53,330 No anirem a través de tot això de cap manera. 1525 01:16:53,330 --> 01:16:58,090 Acceptar, en una altra pestanya, si no ho fa que s'obri, no entrar en Cloud9 1526 01:16:58,090 --> 01:17:03,500 i s'aconsegueix només una nova pestanya, en última instància. 1527 01:17:03,500 --> 01:17:11,070 Així que de nou, c9.io d'ahir, c9.io, i acaba de crear un nou arxiu. 1528 01:17:11,070 --> 01:17:13,500 I seguir endavant i crida ell el que volgués. 1529 01:17:13,500 --> 01:17:16,495 Vaig trucar a la mina map.html. 1530 01:17:16,495 --> 01:17:17,870 Anomenar-res que acaben en .html. 1531 01:17:17,870 --> 01:17:23,930 1532 01:17:23,930 --> 01:17:26,580 I que ha d'estar més o menys on estic en aquest procés 1533 01:17:26,580 --> 01:17:31,470 amb només un símbol parpellejant en un buit pestanya diu alguna cosa així com map.html. 1534 01:17:31,470 --> 01:17:35,808 1535 01:17:35,808 --> 01:17:38,148 O arxiu, arxiu nou aquesta vegada. 1536 01:17:38,148 --> 01:17:41,960 1537 01:17:41,960 --> 01:17:48,000 >> I ara, al llarg de la API de JavaScript de Google Maps, 1538 01:17:48,000 --> 01:17:50,010 deixarem de llegir a través de tot aquest text. 1539 01:17:50,010 --> 01:17:53,760 Però cal notar que és hola món de fet, a tot arreu, ho veus ara. 1540 01:17:53,760 --> 01:17:58,020 Hola món té aquesta gran colorit exemple d'un munt d'HTML. 1541 01:17:58,020 --> 01:18:03,590 Vagi per davant i copiar i enganxar només això HTML, de manera que des del tipus de document a la part superior 1542 01:18:03,590 --> 01:18:08,810 tot el camí a l'etiqueta HTML de tancament, aneu endavant i copiar tots els que- de nou, 1543 01:18:08,810 --> 01:18:14,430 això és sota el hola món exemple-- i enganxar això a la pestanya Cloud9, 1544 01:18:14,430 --> 01:18:17,996 de manera que ara la pantalla s'ha de veure més o menys com la meva. 1545 01:18:17,996 --> 01:18:22,280 1546 01:18:22,280 --> 01:18:24,520 >> I es pot guardar, però no carregar de moment. 1547 01:18:24,520 --> 01:18:26,290 Vegem primer a el codi i veure si 1548 01:18:26,290 --> 01:18:29,110 no es pot inferir o aprendre del que és Google 1549 01:18:29,110 --> 01:18:30,860 ens ha tingut cegament copiar i enganxar. 1550 01:18:30,860 --> 01:18:33,334 Ells només volen ajudar, literalment, que puguem començar, 1551 01:18:33,334 --> 01:18:35,500 però no hi ha molt complexitat realment allà. 1552 01:18:35,500 --> 01:18:40,100 1553 01:18:40,100 --> 01:18:42,210 Qualsevol pregunta de moment? 1554 01:18:42,210 --> 01:18:43,790 Estem fora de perill per seguir endavant? 1555 01:18:43,790 --> 01:18:44,330 D'ACORD. 1556 01:18:44,330 --> 01:18:46,800 >> Tan ràpidament, farem algunes comprovacions ràpides. 1557 01:18:46,800 --> 01:18:48,800 Línia 1 del que jo veure, i és d'esperar, es 1558 01:18:48,800 --> 01:18:51,710 Vegeu, què vol dir això, HTML tipus de document? 1559 01:18:51,710 --> 01:18:52,385 Kareem, recordar? 1560 01:18:52,385 --> 01:18:53,260 AUDIÈNCIA: [inaudible] 1561 01:18:53,260 --> 01:18:53,968 DAVID Malan: Sí. 1562 01:18:53,968 --> 01:18:54,870 Aquí ve HTML 5. 1563 01:18:54,870 --> 01:18:57,950 Mentrestant, la línia de dos al pantalla aquí vol dir escolta navegador, 1564 01:18:57,950 --> 01:18:59,482 aquí ve l'HTML real. 1565 01:18:59,482 --> 01:19:01,440 Línia de tres és eh navegador, aquí ve el cap. 1566 01:19:01,440 --> 01:19:04,260 Línia de quatre és, per descomptat, hey navegador, aquí ve el títol. 1567 01:19:04,260 --> 01:19:07,780 Quina línia de cinc do? 1568 01:19:07,780 --> 01:19:09,930 En realitat, això no fa realment fer res per a nosaltres. 1569 01:19:09,930 --> 01:19:13,340 En aquest cas, només es canvia la mida la pàgina a un defecte. Línia de sis, 1570 01:19:13,340 --> 01:19:16,140 no hem parlat, però especifica la codificació de caràcters. 1571 01:19:16,140 --> 01:19:19,181 Hi ha diferents maneres de codificar arxius, especialment per a les llengües estrangeres. 1572 01:19:19,181 --> 01:19:21,100 UTF-8 només tendeix a ser el valor per defecte. 1573 01:19:21,100 --> 01:19:26,580 >> Així que ara anem a veure en línia set a 16, una mica de CSS. 1574 01:19:26,580 --> 01:19:29,260 I tot i que no hem vist totes aquestes coses abans, 1575 01:19:29,260 --> 01:19:30,810 que tipus de es pot inferir. 1576 01:19:30,810 --> 01:19:37,075 Així que en vuit mitjans, hey navegador, aplicar tot el següent a la qual dues etiquetes, 1577 01:19:37,075 --> 01:19:37,575 semblar? 1578 01:19:37,575 --> 01:19:40,650 1579 01:19:40,650 --> 01:19:41,701 L'HTML i el cos de text. 1580 01:19:41,701 --> 01:19:43,200 Així que la coma és el nou allà. 1581 01:19:43,200 --> 01:19:46,140 I això és només una forma de especificar diverses etiquetes alhora. 1582 01:19:46,140 --> 01:19:47,640 >> Llavors tenim les claus. 1583 01:19:47,640 --> 01:19:51,170 Així que pel que sembla, això li diu al navegador, fer que l'alçada de la pàgina 100%. 1584 01:19:51,170 --> 01:19:54,170 Així que fins i tot si hi ha molt poc contingut, fer tota la pàgina, 1585 01:19:54,170 --> 01:19:55,530 fer l'ompli la pàgina. 1586 01:19:55,530 --> 01:19:57,524 Fer el mapa en última instància a omplir la pàgina. 1587 01:19:57,524 --> 01:19:58,690 Marge, què vol dir això? 1588 01:19:58,690 --> 01:20:01,559 Això és en general com arbitrària espai en blanc al voltant de les vores 1589 01:20:01,559 --> 01:20:04,350 que algun dissenyador browser decidir que hauria d'estar allà, perquè 1590 01:20:04,350 --> 01:20:05,540 tipus de coses fa aspecte més net. 1591 01:20:05,540 --> 01:20:06,498 Però no volem això. 1592 01:20:06,498 --> 01:20:08,710 Volem anar el mapa tot el camí fins a les vores. 1593 01:20:08,710 --> 01:20:10,930 Farciment, similar en esperit als marges. 1594 01:20:10,930 --> 01:20:14,980 Marges signifiquen, mitjans de farciment fos a l'interior, però és el mateix tipus de tracte. 1595 01:20:14,980 --> 01:20:17,520 És una mica d'un tampó entre l'usuari i les vores. 1596 01:20:17,520 --> 01:20:21,170 >> I després la línia 13 és un bon oportunitat per a una revisió ràpida. 1597 01:20:21,170 --> 01:20:26,440 El que fa mostra de la correspondència aguda significa, o mapa hashtag vol dir? 1598 01:20:26,440 --> 01:20:29,650 El què es refereix, en principi? 1599 01:20:29,650 --> 01:20:31,485 >> AUDIÈNCIA: [inaudible] 1600 01:20:31,485 --> 01:20:32,360 DAVID Malan: Exactament. 1601 01:20:32,360 --> 01:20:36,900 Aquesta propietat, aquest propietat CSS s'aplica a una sola cosa, l'etiqueta HTML 1602 01:20:36,900 --> 01:20:41,180 que té un diàmetre interior de cotització, cap de la cita "mapa". 1603 01:20:41,180 --> 01:20:44,460 I ara anem a avançar ràpidament, de desplaçament fins a la part inferior de l'arxiu, el qual 1604 01:20:44,460 --> 01:20:49,860 No està massa lluny, i avís en línia 19, si escau exactament com ho vaig fer, 1605 01:20:49,860 --> 01:20:53,405 la línia 19 té només un div, que és una divisió de la pàgina, que ahir 1606 01:20:53,405 --> 01:20:54,820 anomenat una regió rectangular. 1607 01:20:54,820 --> 01:20:55,820 No té res en ella. 1608 01:20:55,820 --> 01:20:57,550 És una etiqueta oberta, el codi de tancament. 1609 01:20:57,550 --> 01:20:59,490 Però té un identificador únic. 1610 01:20:59,490 --> 01:21:02,090 >> Així que el que sembla ser passant aquí és Google 1611 01:21:02,090 --> 01:21:05,880 s'està preparant la nostra pàgina web per té una alçada total de 100%, 1612 01:21:05,880 --> 01:21:09,680 i sense farciment, sense marges, perquè el que anem a posar a l'interior 1613 01:21:09,680 --> 01:21:13,647 d'aquest div, amb el ID és únic mapa, és un mapa incrustat real. 1614 01:21:13,647 --> 01:21:15,480 I volem que s'ompli la pàgina i no només 1615 01:21:15,480 --> 01:21:17,560 haver algun petit rectangle en el medi. 1616 01:21:17,560 --> 01:21:24,220 Així que posa l'accent en la línia 14 de la mateixa manera, la mapa mateix ha de tenir una alçada de 100%. 1617 01:21:24,220 --> 01:21:29,220 >> Així que ara compta entre les línies 20 i 28, això és codi JavaScript. 1618 01:21:29,220 --> 01:21:33,020 I això és, tot i que és sintàcticament una mica estrany, 1619 01:21:33,020 --> 01:21:34,730 No hi ha gairebé res a fer aquí. 1620 01:21:34,730 --> 01:21:39,310 En la línia 21, això és declarar cosa que es diu una variable. 1621 01:21:39,310 --> 01:21:42,030 En lloc de dir- quantitats, com ho vam fer abans, 1622 01:21:42,030 --> 01:21:44,500 que estem dient amb major precisió var, que només significa variable. 1623 01:21:44,500 --> 01:21:46,520 Podríem haver utilitzat que, en codi de Nick, però no ho va fer, per la qual cosa 1624 01:21:46,520 --> 01:21:48,190 no es va molestar a fer-ho bé. 1625 01:21:48,190 --> 01:21:50,240 És una variable anomenada mapa, i després hi 1626 01:21:50,240 --> 01:21:53,360 una funció que és aparentment anomenat initMap. 1627 01:21:53,360 --> 01:21:55,780 >> Així que això és com la nostra pròpia personalitzada peça del trencaclosques en Scratch. 1628 01:21:55,780 --> 01:21:58,830 Hem creat una peça de funcionalitat anomenada initMap, 1629 01:21:58,830 --> 01:22:00,980 i es pot inferir tipus de que està passant aquí. 1630 01:22:00,980 --> 01:22:02,930 Pel costat de la mà esquerra, tenim una variable, 1631 01:22:02,930 --> 01:22:06,000 per la qual cosa posarem el següent cosa dins d'aquesta variable, 1632 01:22:06,000 --> 01:22:07,362 de dreta a esquerra. 1633 01:22:07,362 --> 01:22:11,940 El costat dret diu, escolta navegador, dóna'm un nou mapa de Google. 1634 01:22:11,940 --> 01:22:16,490 I google.maps.Map és només una manera covarda d'especificar que aquesta funcionalitat 1635 01:22:16,490 --> 01:22:19,790 pertany a Google Maps. 1636 01:22:19,790 --> 01:22:23,010 >> Després del parèntesi, que hem vist això abans, hey navegador, aconseguir 1637 01:22:23,010 --> 01:22:29,210 me'ls elements de la pàgina, el etiqueta de la pàgina amb identificador únic és-- 1638 01:22:29,210 --> 01:22:30,710 >> AUDIÈNCIA: [inaudible] 1639 01:22:30,710 --> 01:22:31,790 >> DAVID Malan: --map. 1640 01:22:31,790 --> 01:22:35,770 I el que està passant, així, aquesta línia junts, línia 23, 1641 01:22:35,770 --> 01:22:38,630 està essencialment dient: Hey navegador, anar a buscar-me 1642 01:22:38,630 --> 01:22:42,800 que div buit a la pàgina amb identificador únic és el mapa, 1643 01:22:42,800 --> 01:22:45,600 perquè vull inserir it-- a injectar en ella, 1644 01:22:45,600 --> 01:22:49,520 si voluntat-- un munt de contingut que passa a estar venint del web, 1645 01:22:49,520 --> 01:22:50,427 posteriorment. 1646 01:22:50,427 --> 01:22:52,010 I Google està fent tot això per a nosaltres. 1647 01:22:52,010 --> 01:22:55,350 >> Així que de nou, al final del dia, tenim aquest exemple d'abstracció. 1648 01:22:55,350 --> 01:22:58,610 No tinc idea de què és un mapa o com implementar un API mapa. 1649 01:22:58,610 --> 01:22:59,460 Nosaltres no necessitem. 1650 01:22:59,460 --> 01:23:02,740 Només hem de comptar el mapa on posar en si, i deixar 1651 01:23:02,740 --> 01:23:04,880 aquells implementació subjacent detalls Google. 1652 01:23:04,880 --> 01:23:08,190 Ara hi ha pel que sembla dues peces de dades 1653 01:23:08,190 --> 01:23:11,940 que aquest exemple és proporcionar a l'API de Google. 1654 01:23:11,940 --> 01:23:16,450 Pel que sembla, el centre del mapa, i el nivell de zoom, per dir-ho. 1655 01:23:16,450 --> 01:23:21,390 >> ¿I algú que reconeguin aquests coordenades, latitud i longitud? 1656 01:23:21,390 --> 01:23:24,364 Probablement no, però podem tornar al tutorial, veure literalment. 1657 01:23:24,364 --> 01:23:25,780 Però el veurem en un moment. 1658 01:23:25,780 --> 01:23:29,880 nivell de zoom és un valor entre, no ho crec saber, un de cada 13 o alguna cosa per l'estil. 1659 01:23:29,880 --> 01:23:32,880 Simplement té a veure amb el lluny que està amplia o es redueix, i això és tot. 1660 01:23:32,880 --> 01:23:35,690 I ara al final de la pàgina, línia d'avís 29-- 1661 01:23:35,690 --> 01:23:39,960 que és una mica lletja, perquè wraps-- que aquesta línia de codi 1662 01:23:39,960 --> 01:23:44,570 és el que es descarrega a la API actual navegador de Google. 1663 01:23:44,570 --> 01:23:47,500 Tot el codi que Google de Els enginyers han escrit que implementen 1664 01:23:47,500 --> 01:23:50,000 tota aquesta opció de mapes integrables. 1665 01:23:50,000 --> 01:23:51,470 >> Ara anem a no canviar res. 1666 01:23:51,470 --> 01:23:54,761 Si estàs seguint, seguir endavant i només has de guardar aquest arxiu, si de fet té 1667 01:23:54,761 --> 01:23:55,760 el que tinc. 1668 01:23:55,760 --> 01:23:57,370 Anar a la seva adreça URL. 1669 01:23:57,370 --> 01:23:59,820 Podeu fer clic al botó Executar sobre de la tapa i que li dirà 1670 01:23:59,820 --> 01:24:03,050 que l'URL del seu servidor web de nou. 1671 01:24:03,050 --> 01:24:06,010 I és que donarà lloc a una nova pestanya. 1672 01:24:06,010 --> 01:24:11,910 Si fa clic a Obre per map.html, i les probabilitats són que ets 1673 01:24:11,910 --> 01:24:15,520 aconseguirà un avís, un missatge d'error, oi? 1674 01:24:15,520 --> 01:24:18,570 missatge d'error, el missatge d'error? 1675 01:24:18,570 --> 01:24:21,170 >> Així que, lamentablement, l'error missatge no és que aclaridor 1676 01:24:21,170 --> 01:24:23,890 a menys que realment obre la consola, que fitxa especial que 1677 01:24:23,890 --> 01:24:27,110 manté l'obertura d'ahir i una mica el dia d'avui. 1678 01:24:27,110 --> 01:24:29,445 Però em vaig trobar amb això abans, així que ja 1679 01:24:29,445 --> 01:24:30,820 esbrinat quina és la solució. 1680 01:24:30,820 --> 01:24:34,440 A les diapositives d'avui en dia, o més aviat, en Cloud9, previ avís 1681 01:24:34,440 --> 01:24:36,430 que no vam fer alguna cosa deliberadament. 1682 01:24:36,430 --> 01:24:40,690 Cal notar que aquesta etiqueta script en línia 29, si es llegeix a través d'ella, 1683 01:24:40,690 --> 01:24:44,440 és com maps.googleapis.com/ alguna cosa, alguna cosa, alguna cosa, 1684 01:24:44,440 --> 01:24:46,430 a continuació, observi a algú, un dels desenvolupadors, 1685 01:24:46,430 --> 01:24:50,040 va escriure en el total de capital cartes, la seva clau d'API. 1686 01:24:50,040 --> 01:24:51,700 >> Cal enganxar alguna cosa allà. 1687 01:24:51,700 --> 01:24:53,450 I aquest va ser el pas Ho vaig fer per nosaltres abans, 1688 01:24:53,450 --> 01:24:57,190 i de nou pot ser que la llista negra con si de cop i volta, 12 o més de nosaltres 1689 01:24:57,190 --> 01:24:59,470 començar a utilitzar la mateixa clau, però veurem què passa. 1690 01:24:59,470 --> 01:25:03,030 Així que si vas a l'actualitat de diapositives, una diapositiva més endavant, hi ha 1691 01:25:03,030 --> 01:25:07,070 aquesta cadena molt covard que busquen de text. 1692 01:25:07,070 --> 01:25:12,230 Vagi per davant i simplement copiar i que enganxar-lo on posa la seva clau API. 1693 01:25:12,230 --> 01:25:15,120 Aquesta és la que em vaig inscriure. 1694 01:25:15,120 --> 01:25:17,700 >> I definitivament no tracti escriure de forma manual, 1695 01:25:17,700 --> 01:25:21,210 perquè se sent ple amb errors ortogràfics, potencialment. 1696 01:25:21,210 --> 01:25:23,260 Així que només has de copiar i enganxar això. 1697 01:25:23,260 --> 01:25:26,090 I que va a fer que la línia més temps, però ara, només per ser clars, 1698 01:25:26,090 --> 01:25:29,540 que ha de ser una mica més com aquest, on la clau no és igual 1699 01:25:29,540 --> 01:25:32,200 capitalitzat cridant a vostè. 1700 01:25:32,200 --> 01:25:34,810 Deseu la pàgina, tornar a l'altra pestanya, torneu a carregar, 1701 01:25:34,810 --> 01:25:36,770 i l'esperança de veure un mapa d'on? 1702 01:25:36,770 --> 01:25:37,790 >> AUDIÈNCIA: Austràlia. 1703 01:25:37,790 --> 01:25:38,748 >> DAVID Malan: Austràlia. 1704 01:25:38,748 --> 01:25:41,200 Així que pel que sembla aquests són els Coordenades GPS Austràlia. 1705 01:25:41,200 --> 01:25:44,491 I m'ho dius a mi caminar al voltant per un moment i ajudar a qualsevol persona que no és molt allà, 1706 01:25:44,491 --> 01:25:47,729 però permetin-me proposar, a través de Google, trobar les coordenades del GPS de la seva pròpia ciutat natal 1707 01:25:47,729 --> 01:25:48,770 o en el seu propi país d'origen. 1708 01:25:48,770 --> 01:25:51,436 I, probablement, Google pot convertir això amunt, o la Wikipedia li pot dir. 1709 01:25:51,436 --> 01:25:54,410 Però triar dos valors diferents de latitud i longitud, 1710 01:25:54,410 --> 01:25:57,530 tornar i enganxar-los, i torni a carregar la pàgina després de guardar 1711 01:25:57,530 --> 01:26:00,718 i veure si es pot tenir una dels mapes per a la seva pròpia ciutat natal. 1712 01:26:00,718 --> 01:26:04,500 1713 01:26:04,500 --> 01:26:08,042 >> I quan hagi acabat amb que, el seguiment challenge-- 1714 01:26:08,042 --> 01:26:11,250 i vaig a donar una mica menys sentit, deliberadament, de manera que vostè deliberadament 1715 01:26:11,250 --> 01:26:13,791 han de lluitar per un parell minuts amb la documentació, 1716 01:26:13,791 --> 01:26:18,740 canviar el mapa per ésser no aquesta predeterminat de dibuixos animats, però un mapa de satèl·lit. 1717 01:26:18,740 --> 01:26:24,600 Així que en realitat es veu per satèl·lit les imatges en lloc dels colors bonics. 1718 01:26:24,600 --> 01:26:29,710 >> I la pista et donaré és canviar el tipus de mapa. 1719 01:26:29,710 --> 01:26:33,084 Tornar als quals aconseguir començat la pàgina a la recerca d'inspiració. 1720 01:26:33,084 --> 01:26:40,599 1721 01:26:40,599 --> 01:26:42,390 Com és possible que hi hagi recollit, si vostè està buscant, 1722 01:26:42,390 --> 01:26:44,250 hi ha molts més coses que pot fer. 1723 01:26:44,250 --> 01:26:46,380 Alguns de vostès ja tenen canviat el tipus de mapa. 1724 01:26:46,380 --> 01:26:49,890 Però es pot fer-- per exemple, em va deixar anar a alguna cosa que vam fer per al curs 1725 01:26:49,890 --> 01:26:52,050 Em teach-- maps.cs50.net. 1726 01:26:52,050 --> 01:26:53,470 Un dels nostres estudiants de llicenciatura van fer això. 1727 01:26:53,470 --> 01:26:58,890 Ens centrem el nostre full sobre Harvard Yard i superposar tots aquests noms d'edificis, 1728 01:26:58,890 --> 01:27:01,070 i vam tenir que afegeixi això. 1729 01:27:01,070 --> 01:27:04,270 Així que si vull cercar, per exemple, Matthews Hall, 1730 01:27:04,270 --> 01:27:05,730 tenim un petit menú desplegable. 1731 01:27:05,730 --> 01:27:09,080 I crec que ell està usant Bootstrap, el biblioteca hem comentat anteriorment per això. 1732 01:27:09,080 --> 01:27:12,190 I si es fa clic a Matthews Hall, immediatament 1733 01:27:12,190 --> 01:27:14,790 salta el mapa per a un cert ubicació, i es nota 1734 01:27:14,790 --> 01:27:16,440 que una imatge en aquesta petita finestra emergent. 1735 01:27:16,440 --> 01:27:18,670 >> Però fins i tot aquesta petita pop-up, que no va posar en pràctica. 1736 01:27:18,670 --> 01:27:27,521 Si em desplaço cap avall en la nostra aconseguir començat la pàgina i buscar finestres d'informació, 1737 01:27:27,521 --> 01:27:29,770 veurà que algunes de les funcionalitat que vostè mateix 1738 01:27:29,770 --> 01:27:31,561 pot sumar, encara que amb una mica més la complexitat, 1739 01:27:31,561 --> 01:27:33,970 és una cosa que es diu una finestra d'informació. 1740 01:27:33,970 --> 01:27:37,190 I si faig clic a un exemple aquí, i això és el que és divertit, 1741 01:27:37,190 --> 01:27:40,530 es poden fer coses com aquesta, en fer clic a un marcador i després voila, 1742 01:27:40,530 --> 01:27:42,400 la informació apareix. 1743 01:27:42,400 --> 01:27:45,874 >> Així que encara no hem introduït suficients característiques de JavaScript 1744 01:27:45,874 --> 01:27:49,040 per pintar un quadre de exactament com es podrien cablejar totes aquestes coses juntes, 1745 01:27:49,040 --> 01:27:50,706 però hem tipus de esgarrapat la superfície. 1746 01:27:50,706 --> 01:27:53,140 De fet, el que he fet quan He fet clic en aquest marcador, 1747 01:27:53,140 --> 01:27:55,819 va ser d'activar un esdeveniment, un anomenada en l'esdeveniment clic. 1748 01:27:55,819 --> 01:27:57,610 I que de fet vam veure una esdeveniment el dia d'avui, 1749 01:27:57,610 --> 01:28:00,670 l'anomenat presentar esdeveniment, quan estàvem prevenint 1750 01:28:00,670 --> 01:28:02,490 l'usuari des de la recerca dels gats. 1751 01:28:02,490 --> 01:28:06,560 Per a això hem tipus de recollir i ho vam triar d'entre totes aquestes diverses característiques, 1752 01:28:06,560 --> 01:28:08,990 per donar-li un sentit, és d'esperar, del que en realitat es pot 1753 01:28:08,990 --> 01:28:11,000 fer amb una mica més comoditat en la programació, 1754 01:28:11,000 --> 01:28:12,587 i recursos completament gratis. 1755 01:28:12,587 --> 01:28:15,856 1756 01:28:15,856 --> 01:28:18,770 >> Qualsevol pregunta? 1757 01:28:18,770 --> 01:28:19,790 No? 1758 01:28:19,790 --> 01:28:22,542 Aquesta és la seva última oportunitat, almenys avui en dia, un divendres, 1759 01:28:22,542 --> 01:28:25,000 per aconseguir alguna cosa del seu pit perquè al sortir d'aquí 1760 01:28:25,000 --> 01:28:27,067 sentir-se segur i còmode. 1761 01:28:27,067 --> 01:28:27,566 Sí. 1762 01:28:27,566 --> 01:28:29,740 >> AUDIÈNCIA: Per què no fer s'agrega una cosa més? 1763 01:28:29,740 --> 01:28:32,720 >> DAVID Malan: Oh el meu Déu. 1764 01:28:32,720 --> 01:28:35,260 Necessito descansar aquest cap de setmana, crec. 1765 01:28:35,260 --> 01:28:36,180 Altres preguntes? 1766 01:28:36,180 --> 01:28:37,055 >> AUDIÈNCIA: [inaudible] 1767 01:28:37,055 --> 01:28:44,130 1768 01:28:44,130 --> 01:28:46,810 >> DAVID Malan: Vostè can-- en Internet Explorer, que en pau descansi, 1769 01:28:46,810 --> 01:28:49,310 que solia ser capaç de posar VB guió, guió bàsic virtual, 1770 01:28:49,310 --> 01:28:50,643 però que en realitat mai es va posar de moda. 1771 01:28:50,643 --> 01:28:52,490 Així que la resposta curta és simplement JavaScript. 1772 01:28:52,490 --> 01:28:55,144 1773 01:28:55,144 --> 01:28:55,810 Altres preguntes? 1774 01:28:55,810 --> 01:28:58,427 1775 01:28:58,427 --> 01:28:59,760 D'acord, bé, deixa fer això. 1776 01:28:59,760 --> 01:29:02,070 Déjame agafar els nostres col·legues exterior. 1777 01:29:02,070 --> 01:29:04,500 Tenen algun tipus d'avaluació formes que ells voldrien que cadascun 1778 01:29:04,500 --> 01:29:06,310 per passar uns minuts per omplir. 1779 01:29:06,310 --> 01:29:08,775 Ells volen cobrar aquesta forma i qualsevol renúncies que tingui a l'exterior. 1780 01:29:08,775 --> 01:29:10,240 També tindran certificats. 1781 01:29:10,240 --> 01:29:12,380 Suposo que hi ha encara alguns aperitius fora. 1782 01:29:12,380 --> 01:29:14,360 Déjame passar aquests cap a fora, i si té alguna pregunta, mentrestant, 1783 01:29:14,360 --> 01:29:17,120 Vaig a caminar al voltant de més de forma individual i podem començar. 1784 01:29:17,120 --> 01:29:17,879 Sí, per suposat. 1785 01:29:17,879 --> 01:29:18,754 AUDIÈNCIA: [inaudible] 1786 01:29:18,754 --> 01:29:26,737 1787 01:29:26,737 --> 01:29:28,570 DAVID Malan: Això és sol ser cert en aquests dies. 1788 01:29:28,570 --> 01:29:30,730 Certament, amb la web programari, vostè s'inclina 1789 01:29:30,730 --> 01:29:32,901 en els altres o ets estèticament usant coses 1790 01:29:32,901 --> 01:29:35,400 com Bootstrap, pel que no ho fa han de posar en pràctica el baix nivell 1791 01:29:35,400 --> 01:29:37,169 detalls dels menús i botons i tot això. 1792 01:29:37,169 --> 01:29:39,210 Vostè està recolzat en una persona com Google perquè 1793 01:29:39,210 --> 01:29:42,050 no han de construir un Uber negoci i un negoci de mapeig, 1794 01:29:42,050 --> 01:29:44,850 i qualsevol nombre de semblant aplicacions. 1795 01:29:44,850 --> 01:29:46,350 >> De fet, els inicis de sessió són molt populars, també. 1796 01:29:46,350 --> 01:29:48,500 Si ha utilitzat Spotify o qualsevol nombre de llocs web, 1797 01:29:48,500 --> 01:29:51,210 podràs iniciar sessió en alguns llocs web que utilitzen Facebook. 1798 01:29:51,210 --> 01:29:53,350 Quin és tan agradable, hi ha són APIs per als inicis de sessió 1799 01:29:53,350 --> 01:29:56,570 avui en dia, de manera que vostè no ha tenir la seva pròpia taula d'usuaris 1800 01:29:56,570 --> 01:29:59,440 i tots els de la seva pròpia base de dades necessàriament en la mateixa mesura. 1801 01:29:59,440 --> 01:30:01,795 Pot deixar que Facebook faci tot que la complexitat per a vostè. 1802 01:30:01,795 --> 01:30:03,920 Així que és un moment emocionant, honestament, en la programació, 1803 01:30:03,920 --> 01:30:07,200 perquè hi ha tants tercers serveis que es poden construir a la part superior de. 1804 01:30:07,200 --> 01:30:10,890 >> I de nou, el preu que es paga és ja sigui financera o el temps d'inactivitat. 1805 01:30:10,890 --> 01:30:13,750 Si Google es cau, el mateix passa amb Uber, sens dubte, 1806 01:30:13,750 --> 01:30:15,690 però potser això és una raonable equilibri. 1807 01:30:15,690 --> 01:30:18,040 I de nou, que era un dels temes, amb sort, durant l'últim parell de dies, 1808 01:30:18,040 --> 01:30:18,780 Són aquestes compensacions. 1809 01:30:18,780 --> 01:30:20,738 I poques vegades és allà va sent una resposta correcta. 1810 01:30:20,738 --> 01:30:25,700 Realment és el millor de dos o més respostes. 1811 01:30:25,700 --> 01:30:26,682 >> Passada aquests voltant. 1812 01:30:26,682 --> 01:30:36,830 1813 01:30:36,830 --> 01:30:41,110 >> I aquests comptes Cloud9 continuaran per treballar, en teoria, a perpetuïtat. 1814 01:30:41,110 --> 01:30:45,000 És possible trobar si esperes uns dies o una setmana o més per tornar a entrar-hi, 1815 01:30:45,000 --> 01:30:49,170 que podria prendre com una o cinc minuts per obrir una còpia de seguretat, 1816 01:30:49,170 --> 01:30:54,090 però això és només perquè posen en estat de repòs per estalviar en recursos. 1817 01:30:54,090 --> 01:31:10,527