1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:01,560 >> DAVID Malan: U redu, mi smo natrag. 3 00:00:01,560 --> 00:00:03,830 Tako je za uzbudljiv zaključak, naš posljednji odjeljak 4 00:00:03,830 --> 00:00:06,900 na web programiranja, što sam Mislili smo da bi koristiti kao opći pojam 5 00:00:06,900 --> 00:00:08,440 zarobiti nekoliko preostalih poglavlja. 6 00:00:08,440 --> 00:00:10,390 Tako je na kraju od dan, mi ćemo zapravo učiniti 7 00:00:10,390 --> 00:00:14,830 malo kazaljka-na web programiranje s jezikom zove JavaScript. 8 00:00:14,830 --> 00:00:17,510 I mislim da ćemo pogledati na nešto vezano uz slike 9 00:00:17,510 --> 00:00:20,040 i otkrivaju nešto tajno skrivena u slici, 10 00:00:20,040 --> 00:00:23,230 a također pogledati na Googleu Maps API, za programiranje aplikacija 11 00:00:23,230 --> 00:00:26,040 sučelje, kao nešto prikazuje vrstu softvera 12 00:00:26,040 --> 00:00:28,800 to je sve više i slobodno dostupan danas. 13 00:00:28,800 --> 00:00:32,029 >> No, zašto ne bismo pogledati na sastojak u ovom svijetu 14 00:00:32,029 --> 00:00:34,070 da smo vrsta bila uzimanje zdravo za gotovo ne postoji 15 00:00:34,070 --> 00:00:36,720 već neko vrijeme, baza podataka. 16 00:00:36,720 --> 00:00:39,150 Za proteklih dana i pol smo pretpostavili 17 00:00:39,150 --> 00:00:42,910 da imamo pristup bazi podataka, ali Koji problem baza podataka riješiti? 18 00:00:42,910 --> 00:00:45,540 Što to učiniti za nas? 19 00:00:45,540 --> 00:00:47,030 Što je? 20 00:00:47,030 --> 00:00:48,679 >> PUBLIKA: [nečujan] 21 00:00:48,679 --> 00:00:51,720 DAVID Malan: Zadržavanje sve informacije, U redu, a što vrste informacija 22 00:00:51,720 --> 00:00:53,186 možda staviti u njega? 23 00:00:53,186 --> 00:00:54,590 >> PUBLIKA: [nečujan] 24 00:00:54,590 --> 00:00:56,450 >> DAVID Malan: Sve informacije što staviti u njega, da ćete dobiti natrag. 25 00:00:56,450 --> 00:00:57,070 To je istina. 26 00:00:57,070 --> 00:01:01,900 I na tipičan web-based web stranicu ili web prijava, što vrste informacija, 27 00:01:01,900 --> 00:01:03,385 Naime, možda staviti unutra? 28 00:01:03,385 --> 00:01:04,260 PUBLIKA: [nečujan] 29 00:01:04,260 --> 00:01:05,051 DAVID Malan: Korisnici. 30 00:01:05,051 --> 00:01:07,000 Dakle, ono što je korisnik? 31 00:01:07,000 --> 00:01:09,765 >> PUBLIKA: [nečujan] 32 00:01:09,765 --> 00:01:11,640 DAVID Malan: OK, registriran Korisnik mjestu. 33 00:01:11,640 --> 00:01:15,100 I što to znači Pohranjivanje podataka o korisniku slobodu? 34 00:01:15,100 --> 00:01:17,260 Što sastavlja korisnik? 35 00:01:17,260 --> 00:01:18,331 Korisnik ima što? 36 00:01:18,331 --> 00:01:19,206 PUBLIKA: [nečujan] 37 00:01:19,206 --> 00:01:21,040 DAVID Malan: Da, osobna podataka, a to mi se sviđa. 38 00:01:21,040 --> 00:01:21,970 Budimo precizniji. 39 00:01:21,970 --> 00:01:25,275 Dakle, korisnik obično ima ime, što bi drugo moglo korisnik ima? 40 00:01:25,275 --> 00:01:26,150 PUBLIKA: [nečujan] 41 00:01:26,150 --> 00:01:29,130 DAVID Malan: addr-- redu, pa ime, prezime. 42 00:01:29,130 --> 00:01:29,630 To je dobro. 43 00:01:29,630 --> 00:01:31,463 Zapravo, idemo popraviti da, zato jer će 44 00:01:31,463 --> 00:01:35,010 otvoriti mogućnost rasprava, ipak, i dalje. 45 00:01:35,010 --> 00:01:39,090 Ime, prezime, spol. 46 00:01:39,090 --> 00:01:41,820 47 00:01:41,820 --> 00:01:43,481 Osobna neke vrste. 48 00:01:43,481 --> 00:01:43,980 Što drugo? 49 00:01:43,980 --> 00:01:45,438 Čuo sam nešto prije, previše. 50 00:01:45,438 --> 00:01:51,600 E-mail, poštanska adresa. 51 00:01:51,600 --> 00:01:58,170 >> Tako ćemo pauzu tamo i sada razmotriti Nije ono što smo pohranjivanje u bazu podataka, 52 00:01:58,170 --> 00:02:01,980 but--, a ne zato jer je to možda očito je da nakon što se registrirate korisnika, 53 00:02:01,980 --> 00:02:03,730 Želite li ih se još neko vrijeme. 54 00:02:03,730 --> 00:02:05,480 Vi ne želite Samo se pohranjuju u RAM-u 55 00:02:05,480 --> 00:02:08,690 i biti forgotten-- tako neka se usredotočiti na iskustva. 56 00:02:08,690 --> 00:02:11,700 >> Ispostavilo se da je u svijet baze podataka, 57 00:02:11,700 --> 00:02:14,410 postoji barem dvije vrste ovih dana. 58 00:02:14,410 --> 00:02:20,010 Nešto se zove SQL baza podataka, Structured Query Language, 59 00:02:20,010 --> 00:02:24,770 ili, cutely imenovan, NoSQL, što nije SQL. 60 00:02:24,770 --> 00:02:26,980 A drugi je primjer onoga što bi moglo 61 00:02:26,980 --> 00:02:30,660 zvati se objektno-orijentirani, ili predmet trgovine, baza podataka 62 00:02:30,660 --> 00:02:36,010 koji pohranjuje objekte, a ne, isprika ja, kao što ćemo uskoro vidjeti, redaka. 63 00:02:36,010 --> 00:02:41,800 >> Zato ćemo se fokusirati samo na trenutak na Prvi od njih, to jest SQL 64 00:02:41,800 --> 00:02:46,850 baze podataka, ako je samo zato što je tako poznato je već, da bilo tko 65 00:02:46,850 --> 00:02:51,070 tko ima koristi Excel ili Google tablice ili Apple 66 00:02:51,070 --> 00:02:53,740 Brojevi ili bilo standardni program za proračunske tablice, 67 00:02:53,740 --> 00:02:56,040 ili, ekvivalentno, ili više sofisticirano, 68 00:02:56,040 --> 00:02:58,610 nešto poput Microsofta Access ili Oracle 69 00:02:58,610 --> 00:03:03,890 ili MySQL ili PostgreSQL, od kojih su svi su nazivi proizvoda za implementaciju 70 00:03:03,890 --> 00:03:04,865 od sljedećih ideja. 71 00:03:04,865 --> 00:03:10,350 >> Relacijska baza podataka je jednostavno nešto što ima redaka i stupaca. 72 00:03:10,350 --> 00:03:12,850 I redaka i stupaca, Doslovno sam nešto znači 73 00:03:12,850 --> 00:03:21,860 ovako, pa gdje bismo mogli imati naziv polja i njegove vrste ovamo. 74 00:03:21,860 --> 00:03:25,800 I zapravo, neka me sada početi mapirati tih. 75 00:03:25,800 --> 00:03:29,420 Pa zapravo, ne znam Zato sam nacrtao zasebnu tablicu. 76 00:03:29,420 --> 00:03:30,780 Ostanimo tako jednostavan. 77 00:03:30,780 --> 00:03:34,830 >> Imamo pravo ovdje Počeci našeg stola, gdje je 78 00:03:34,830 --> 00:03:40,150 to je naziv polja a to je tip podataka, 79 00:03:40,150 --> 00:03:41,660 i po vrsti mislim na sljedeće. 80 00:03:41,660 --> 00:03:45,510 Je li to broj, je li to string, kratki niz poput riječi, 81 00:03:45,510 --> 00:03:49,340 je li to stav, je li binarne podatke, kao što su slike? 82 00:03:49,340 --> 00:03:51,980 I neka je samo zafrkavati ovo osim samo na trenutak. 83 00:03:51,980 --> 00:03:57,575 Dakle, prvo ime, broj, niz, veliki komad text-- 84 00:03:57,575 --> 00:03:58,450 PUBLIKA: [nečujan] 85 00:03:58,450 --> 00:03:59,616 DAVID Malan: Da, tako niz. 86 00:03:59,616 --> 00:04:04,744 A u bazi kontekstu, mi ćemo obično nazivamo char polje. 87 00:04:04,744 --> 00:04:07,660 Ja ću samo reći char za sada, ali smo će se precizirati to u ovom trenutku. 88 00:04:07,660 --> 00:04:09,180 polje znakova. 89 00:04:09,180 --> 00:04:11,365 Prezime je vjerojatno isto. 90 00:04:11,365 --> 00:04:11,865 Spol? 91 00:04:11,865 --> 00:04:16,230 92 00:04:16,230 --> 00:04:18,310 >> Muško ili žensko, tako da mogao biti char polje. 93 00:04:18,310 --> 00:04:21,380 To može biti bilo citat, citat "Muški" ili citat, citat: "ženski" 94 00:04:21,380 --> 00:04:23,650 ili je mogao biti m ili f. 95 00:04:23,650 --> 00:04:26,540 Ako želite biti uključeno, možda trebati treći vrijednost 96 00:04:26,540 --> 00:04:28,640 ili nekakav drugi polju uopce. 97 00:04:28,640 --> 00:04:31,350 I tako da bi mogao koristiti pravi lažne. 98 00:04:31,350 --> 00:04:35,036 Polje se može nazvati muškarac, onda bi se moglo reći true ili false. 99 00:04:35,036 --> 00:04:38,160 No, to ne mora nužno snimanje sve informacije koje želite. 100 00:04:38,160 --> 00:04:41,118 >> Tako ispada da postoji još jedna vrsta polja koja bi mogla biti korisna ovdje 101 00:04:41,118 --> 00:04:46,040 u tipičnom baze podataka, zove se enum, gdje je polje lik, 102 00:04:46,040 --> 00:04:50,480 ali, dizajner, doći do nabrojiti moguće vrijednosti, 103 00:04:50,480 --> 00:04:54,630 kao citat, citat "muški", citat, citat: "ženski" i tako dalje. 104 00:04:54,630 --> 00:04:57,620 Tako da bez obzira na vrijednost u bazu podataka, 105 00:04:57,620 --> 00:05:00,670 je zaista lik-based, ali to mora biti jedna od tih vrijednosti. 106 00:05:00,670 --> 00:05:03,520 Mi vjerojatno ne želite enum za prvo ime ili prezime. 107 00:05:03,520 --> 00:05:05,630 Inače bismo imali nabrojati, kao ime 108 00:05:05,630 --> 00:05:09,570 potječe od, doslovno svaki Moguće ime i prezime. 109 00:05:09,570 --> 00:05:13,960 >> U redu, tako ID ono što bi trebao osobna biti? 110 00:05:13,960 --> 00:05:15,200 Da, pa možda jedan broj. 111 00:05:15,200 --> 00:05:17,870 Tako ćemo staviti s da, za sada, broj. 112 00:05:17,870 --> 00:05:22,010 I po broju, broj je malo preširok sada. 113 00:05:22,010 --> 00:05:23,900 Za kraj drugog dan, osjećam se kao da smo 114 00:05:23,900 --> 00:05:25,280 treba biti malo precizniji. 115 00:05:25,280 --> 00:05:29,280 Broj moglo značiti kao, to mogao bi biti nešto poput 1,236. 116 00:05:29,280 --> 00:05:31,500 I to je vjerojatno ne Što podrazumijevamo pod ID-u. 117 00:05:31,500 --> 00:05:34,635 Što ćemo vjerojatno znači po ID-u? 118 00:05:34,635 --> 00:05:36,382 >> PUBLIKA: [nečujan] 119 00:05:36,382 --> 00:05:38,590 DAVID Malan: Oh, u redu, tako da možda to nije ni jedan broj. 120 00:05:38,590 --> 00:05:42,840 Možda je zapravo jedinstveni identifikator to je niz, poput korisničkog imena. 121 00:05:42,840 --> 00:05:44,580 Dakle, apsolutno, može biti. 122 00:05:44,580 --> 00:05:46,730 Mislim da je netko vjerojatno značilo numerički, ipak. 123 00:05:46,730 --> 00:05:48,460 Tako ćemo ostati s tim. 124 00:05:48,460 --> 00:05:49,320 Kakav broj? 125 00:05:49,320 --> 00:05:51,960 Što je više precise-- prirodni broj. 126 00:05:51,960 --> 00:05:56,710 Da broj kao 0, 1, 2, 3, pa ćemo to zvati cijeli broj. 127 00:05:56,710 --> 00:05:58,909 Pa čak i tada, što sam mogao se nitpicking, to je 128 00:05:58,909 --> 00:06:00,700 zapravo i nije samo Općenito cijeli želite. 129 00:06:00,700 --> 00:06:04,340 Vi vjerojatno ne želite negativne vrijednosti, Upravo zato, samo se osjeća čudno. 130 00:06:04,340 --> 00:06:06,070 Vi vjerojatno želite prirodnih brojeva. 131 00:06:06,070 --> 00:06:07,920 Tako možete izraziti da se u bazi podataka, 132 00:06:07,920 --> 00:06:09,450 ali za sada ćemo reći cijeli broj. 133 00:06:09,450 --> 00:06:10,650 >> E-mail? 134 00:06:10,650 --> 00:06:13,550 To je vjerojatno just-- što? 135 00:06:13,550 --> 00:06:14,460 >> PUBLIKA: [nečujan] 136 00:06:14,460 --> 00:06:16,980 >> DAVID Malan: To je e-mail, ali to je znakove, zar ne? 137 00:06:16,980 --> 00:06:19,813 To samo ima funky karakter kao jedan "na" simbol ili nešto drugo, 138 00:06:19,813 --> 00:06:21,580 ali to je još uvijek polje znakova. 139 00:06:21,580 --> 00:06:23,900 I poštansku adresu? 140 00:06:23,900 --> 00:06:25,360 polje znakova. 141 00:06:25,360 --> 00:06:31,400 Dakle, to je lijep početak, ali budimo malo precizniji sada. 142 00:06:31,400 --> 00:06:34,540 >> Tako ispada da je u baza podataka, često 143 00:06:34,540 --> 00:06:39,120 Imate izbor nad precizniji verzije tih stvari. 144 00:06:39,120 --> 00:06:44,330 U stvari, u tipičnom SQL baze podataka, SQL, ili općenitije, relacijske baze podataka, 145 00:06:44,330 --> 00:06:46,680 baza podataka sa recima i stupovi, često 146 00:06:46,680 --> 00:06:53,610 dobili odrediti ne samo vrsti field-- neka mi neko u sobi here-- 147 00:06:53,610 --> 00:06:56,600 ali također i duljine. 148 00:06:56,600 --> 00:06:59,900 >> Dakle, koliko dugo je ime? 149 00:06:59,900 --> 00:07:07,060 Mislim, D-A-V-I-D. Dobro, shvaćam ja Vjerojatno je uvrijedio kao pola 150 00:07:07,060 --> 00:07:11,260 od ljudi u sobi, desno, budući da su sva imena duže od pet 151 00:07:11,260 --> 00:07:16,608 slova, pa pet čini malo sebičan i naivna, tako što je bolje vrijednosti? 152 00:07:16,608 --> 00:07:19,320 153 00:07:19,320 --> 00:07:24,330 10, u redu, a ja mislim mi smo u redu u sobi. 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 Zašto ne uzeti Pristup ranije, kada smo 157 00:07:29,540 --> 00:07:31,081 pričali o nizovima i memoriju? 158 00:07:31,081 --> 00:07:32,450 Zašto ne bih samo reći kao 1000? 159 00:07:32,450 --> 00:07:35,260 Nitko ime ide biti duži od 1,000. 160 00:07:35,260 --> 00:07:36,706 Odgurnuti. 161 00:07:36,706 --> 00:07:38,005 >> PUBLIKA: [nečujan] 162 00:07:38,005 --> 00:07:40,130 DAVID Malan: Da, to je rasipan, desno, osobito 163 00:07:40,130 --> 00:07:44,630 ako je većina imena samo pet ili deset ili 15 znakova, to je vrlo razoran. 164 00:07:44,630 --> 00:07:45,810 Dakle, znate što? 165 00:07:45,810 --> 00:07:48,020 To je vrsta teško pitanje. 166 00:07:48,020 --> 00:07:51,721 Sada svakako možemo analizirati engleski i imena bilo kojem drugom jeziku a 167 00:07:51,721 --> 00:07:54,470 i shvatiti, dobro, što je average-- prosjeku ne stvarno 168 00:07:54,470 --> 00:07:57,150 pomoći us-- što je max je Vjerojatno ono što stvarno želite. 169 00:07:57,150 --> 00:07:59,920 No, ispostavilo se da su čak neki izbor više vrsta ovdje. 170 00:07:59,920 --> 00:08:03,400 >> U tipičnom SQL bazi podataka, su nešto što se zove char polje 171 00:08:03,400 --> 00:08:07,505 a također i varchar, V-A-R, za varijablu polje char. 172 00:08:07,505 --> 00:08:08,630 A razlika je to. 173 00:08:08,630 --> 00:08:12,400 Char polja, što je dizajner, moraju odrediti unaprijed 174 00:08:12,400 --> 00:08:14,900 točna duljina polja. 175 00:08:14,900 --> 00:08:20,530 Dakle, možda prvo ime kao i 20 osjeća vrsta sigurno. 176 00:08:20,530 --> 00:08:23,950 Možda morati učiniti neke Pretraživanje Google mreže na vidjeti ako to je dovoljno zapravo siguran. 177 00:08:23,950 --> 00:08:26,910 Tu je vjerojatno ime s 21 likovi, ali za sada, pretpostavljam 20 178 00:08:26,910 --> 00:08:27,620 je sigurno. 179 00:08:27,620 --> 00:08:30,070 >> Polje char bi značilo u bazu podataka koja vas 180 00:08:30,070 --> 00:08:33,289 su pomoću 20 i uvijek 20 znakova. 181 00:08:33,289 --> 00:08:37,419 Sada ako je samo D-A-V-I-D, 15 od onih samo će biti razmaka, 182 00:08:37,419 --> 00:08:40,450 ali još uvijek koristite svih 20 bajtova. 183 00:08:40,450 --> 00:08:46,302 Polje varchar, naprotiv, znači da je string treba biti do 20 znakova 184 00:08:46,302 --> 00:08:48,260 ali ako je samo pet, ste samo ide na korištenje 185 00:08:48,260 --> 00:08:51,270 pet ili možda šest za Posebna vrijednost na kraju, 186 00:08:51,270 --> 00:08:54,980 kao da je 0 smo raspravljali kako označava kraj jednog lika 187 00:08:54,980 --> 00:08:56,790 Slijed u memoriji. 188 00:08:56,790 --> 00:08:59,950 >> Dakle, kada misliš možete odabrati char 189 00:08:59,950 --> 00:09:05,240 u odnosu na VARCHAR, s obzirom da je trade-off? 190 00:09:05,240 --> 00:09:09,321 Char koristi tu mnogo znakova varchar koristi ne više od toga mnogo znakova. 191 00:09:09,321 --> 00:09:10,196 PUBLIKA: [nečujan] 192 00:09:10,196 --> 00:09:13,859 193 00:09:13,859 --> 00:09:16,900 DAVID Malan: OK, kada se zna Duljina niza prilično uvjerljiv 194 00:09:16,900 --> 00:09:19,316 samo koristiti char, jer ako ti to znaš, samo ga spusti. 195 00:09:19,316 --> 00:09:23,390 A možda je to istina za zip kod, u SAD-u, barem, 02138, 196 00:09:23,390 --> 00:09:26,660 uvijek će biti pet znakova dok ne dodate crticu četiri. 197 00:09:26,660 --> 00:09:29,750 No, možda imaju neke vrijednosti za što ćete uvijek znati dužinu. 198 00:09:29,750 --> 00:09:32,310 Ili možda državni simboli, kao što je New York u New York, 199 00:09:32,310 --> 00:09:33,811 i MA za Massachusettsu u SAD-u. 200 00:09:33,811 --> 00:09:36,560 Možda vi imate neke situacije gdje je to potpuno razumno, 201 00:09:36,560 --> 00:09:39,520 ali toj logici, zašto čak smo overthinking ovo? 202 00:09:39,520 --> 00:09:41,800 Zašto ne bismo jednostavno korištenje varchar i onda mi samo ću 203 00:09:41,800 --> 00:09:46,730 uvijek koristiti dva lika u svakom slučaju, ili uvijek koristiti pet znakova uopće? 204 00:09:46,730 --> 00:09:50,300 Zašto ne samo spasiti varchar za sve, po toj logici? 205 00:09:50,300 --> 00:09:51,677 Tu mora biti kvaka. 206 00:09:51,677 --> 00:09:52,552 PUBLIKA: [nečujan] 207 00:09:52,552 --> 00:09:54,952 208 00:09:54,952 --> 00:09:56,660 DAVID Malan: Može napisati nešto krivo. 209 00:09:56,660 --> 00:09:58,090 Dakle, to je istina. 210 00:09:58,090 --> 00:10:01,030 No, čak i tada, oni ne mogu koristiti više memorije nego što sam izdvojiti. 211 00:10:01,030 --> 00:10:03,340 Još uvijek imam finalu kažu po duljini, 212 00:10:03,340 --> 00:10:06,780 tako da ne mogu slučajno napraviti to pogreška, ali je dobra misao. 213 00:10:06,780 --> 00:10:10,510 To je više suptilan, ali to je vrlo srodan za našu raspravu, zapravo, od polja 214 00:10:10,510 --> 00:10:12,390 i povezane liste ranije. 215 00:10:12,390 --> 00:10:16,290 >> Ispostavilo se da u bazu podataka, ako ona zna da sve vrijednosti su 216 00:10:16,290 --> 00:10:19,250 stalne duljine, iako neke od tih vrijednosti su prazne, 217 00:10:19,250 --> 00:10:22,484 vrsta estetski prazan, D-A-V-I-D, a nakon toga 15 praznine, 218 00:10:22,484 --> 00:10:24,650 ispada da ako svaki polje je jednake duljine, 219 00:10:24,650 --> 00:10:28,670 baš kao i niz je sve svoje stvari natrag na leđa na leđa na leđa, tako da 220 00:10:28,670 --> 00:10:33,480 ti samo plus jedan mogao doći do sljedeću vrijednost, ista ideja u tablici baze podataka. 221 00:10:33,480 --> 00:10:37,550 Ako je sve od vašeg lika žice su jednake duljine, 222 00:10:37,550 --> 00:10:39,390 imate ono što se zove izravnim pristupom. 223 00:10:39,390 --> 00:10:41,850 Ako su svi nizovi su dužina 20, vi ne samo 224 00:10:41,850 --> 00:10:45,230 ne plus jedan koji ste upravo to plus 20, plus 20 plus 20 plus 20, 225 00:10:45,230 --> 00:10:48,775 i možete vrlo brzo klizanje ili traženje kroz sve svoje podatke. 226 00:10:48,775 --> 00:10:54,420 >> Varijabilni char polje, s druge strane, uvijek ne imati 20 znakova. 227 00:10:54,420 --> 00:10:58,000 To bi moglo imati 20, a zatim 15, a zatim 19, a zatim 10, 228 00:10:58,000 --> 00:11:00,720 pa ako želite pretraživati kroz njega, ne mogu samo slijepo 229 00:11:00,720 --> 00:11:03,050 dodati 20 bajtova doći do sljedeću. 230 00:11:03,050 --> 00:11:07,280 Vi doslovno morati pretraživanje zbog rub strukture podataka, 231 00:11:07,280 --> 00:11:08,340 ako hoćeš, je poderan. 232 00:11:08,340 --> 00:11:11,480 To je vrsta ulazi i izlazi na bazi o stvarnoj duljini niza. 233 00:11:11,480 --> 00:11:14,460 Dakle, kada znate dužinu, kao Kareem kaže, koristite polje char, 234 00:11:14,460 --> 00:11:16,460 zato što se dobije da je Učinkovitost se 235 00:11:16,460 --> 00:11:19,170 mogućnosti pretraživati ​​kroz njega brže kada ste u potrazi za podacima, 236 00:11:19,170 --> 00:11:20,550 na drugi način koristiti varijablu. 237 00:11:20,550 --> 00:11:24,450 >> Na žalost, nemam dobar odgovor na koliko dugo ime treba biti, 238 00:11:24,450 --> 00:11:26,360 ali za tako nešto ime, rekao bih 239 00:11:26,360 --> 00:11:28,470 varchar je zajednička jer to ne ide 240 00:11:28,470 --> 00:11:30,430 biti fiksna duljina za svakoga. 241 00:11:30,430 --> 00:11:33,650 20, ne znam, 20 osjeća malo zbijeno. 242 00:11:33,650 --> 00:11:36,460 Recimo samo 50, 50. 243 00:11:36,460 --> 00:11:39,210 To zapravo ne cijene vas da puno toga reći 50 umjesto 40, 244 00:11:39,210 --> 00:11:41,260 ali u nekom trenutku, morate da sud poziva. 245 00:11:41,260 --> 00:11:43,090 >> Vrlo često, iskreno, za [? Povijesna?] 246 00:11:43,090 --> 00:11:47,670 razlozi, iako je to pretjerano, jest 255, jer je prije nekog vremena, 247 00:11:47,670 --> 00:11:51,440 u popularnim sustavima baza podataka, kao što su MySQL, besplatni open source alat 248 00:11:51,440 --> 00:11:53,790 da puno tvrtki kao i Facebook koriste, 249 00:11:53,790 --> 00:11:56,654 ovo je maksimalna zadana tako da ljudi jednostavno otišao s njom. 250 00:11:56,654 --> 00:11:59,070 Dakle, nije nerazumno, ali ćemo koristiti malo više intuiciju 251 00:11:59,070 --> 00:12:02,970 i reći, je li 50, to je vjerojatno malo pretjerana. 252 00:12:02,970 --> 00:12:05,720 >> Spol, ja volim nabrajanja, pa smo stoga mogu 253 00:12:05,720 --> 00:12:08,760 nabrojiti muško ili žensko, ili možda učinkovitije, 254 00:12:08,760 --> 00:12:13,420 m ili f ili neka druga simbolika, ali enum osjeća kao dobar izbor tamo. 255 00:12:13,420 --> 00:12:16,740 Da bude jasno, spol mogao biti samo varchar, 256 00:12:16,740 --> 00:12:19,090 i da bismo mogli baš sve slažu kako je lijepih ljudi, 257 00:12:19,090 --> 00:12:21,010 uvijek staviti iste vrijednosti tamo. 258 00:12:21,010 --> 00:12:22,720 Muško ili žensko ili sitnica. 259 00:12:22,720 --> 00:12:27,800 >> No, problem je onda da smo mogli pogriješiti, kao [nečujan] predložio 260 00:12:27,800 --> 00:12:29,140 ranije u nekom drugom kontekstu. 261 00:12:29,140 --> 00:12:32,780 Ako pogriješimo, možemo dobiti netočne vrijednosti u našoj bazi podataka. 262 00:12:32,780 --> 00:12:36,320 Dakle, ono što je lijepo o bazama podataka kao što su Oracle i MySQL i drugi, 263 00:12:36,320 --> 00:12:39,280 je da imate ovaj zadnji sloj obrane gdje 264 00:12:39,280 --> 00:12:43,010 administrator DBA, baze podataka, Tko je projektiranje ovu tablicu kao i mi 265 00:12:43,010 --> 00:12:46,440 su verbalno, mogao staviti u Predaj nabrajanja koja 266 00:12:46,440 --> 00:12:51,250 štiti protiv toga određivanjem muškarac, žena, i tako nitko 267 00:12:51,250 --> 00:12:54,230 još nema programer može slučajno umetnite bilo koju drugu vrijednost. 268 00:12:54,230 --> 00:12:55,480 Tako će to biti dobra stvar. 269 00:12:55,480 --> 00:12:56,660 To je značajka. 270 00:12:56,660 --> 00:13:00,760 >> Dakle, osobna, uz pretpostavku brojčani ID ga, vjerojatno bi trebao biti pozitivan cijeli broj. 271 00:13:00,760 --> 00:13:04,380 I mi ponekad nemamo prilika za razgovor o dužini. 272 00:13:04,380 --> 00:13:06,830 Ne bi obično navesti broj ovdje, 273 00:13:06,830 --> 00:13:11,310 biste umjesto toga odrediti ovo je int, ili veliki int, 274 00:13:11,310 --> 00:13:12,980 kao oni su obično naziva. 275 00:13:12,980 --> 00:13:18,840 Ali obično, cijeli bi se, recimo, 4 bajta. 276 00:13:18,840 --> 00:13:23,694 A ako je to 4 bajta, to je koliko bita? 277 00:13:23,694 --> 00:13:24,630 >> PUBLIKA: [nečujan] 278 00:13:24,630 --> 00:13:26,610 >> DAVID Malan: 32 bita. 279 00:13:26,610 --> 00:13:30,270 Dakle, koliko korisnici mogu imamo u naša baza podataka, ako svi imaju iskaznicu 280 00:13:30,270 --> 00:13:33,320 a ovo ID mora biti jedinstven? 281 00:13:33,320 --> 00:13:36,780 32 bita znači imamo uzorke jedan, dva, tri, četiri, five-- 282 00:13:36,780 --> 00:13:41,000 pa koliko različitih uzoraka nula a one mogu li ako ima 32? 283 00:13:41,000 --> 00:13:43,235 To je ista stvar kao i tražeći ono što je dva do 32? 284 00:13:43,235 --> 00:13:46,472 285 00:13:46,472 --> 00:13:48,430 To je veliki broj koji Ne mogu baš dobiti pravo, 286 00:13:48,430 --> 00:13:50,270 ali znam da je otprilike 4 milijarde. 287 00:13:50,270 --> 00:13:53,970 Dakle, to znači da je tablica baze podataka može imaju četiri milijarde korisnika i to je to. 288 00:13:53,970 --> 00:13:56,410 >> Dakle, ovo je zanimljivo Dizajn implikacija. 289 00:13:56,410 --> 00:14:00,840 Pristojan broj tvrtki odlučili, možda ne toliko 290 00:14:00,840 --> 00:14:04,860 za svoje korisnike stola, jer imaju 4 milijarde korisnik je rijetka problema. 291 00:14:04,860 --> 00:14:08,410 To je svojevrsni Facebook stilu problem, a ne tipičan problem tvrtke. 292 00:14:08,410 --> 00:14:12,670 Ali možda ako imate dnevnika transakcija ili neka vrsta podataka koji se stalno 293 00:14:12,670 --> 00:14:15,610 dobiva pisane u bazu podataka da apsolutno može imati milijarde 294 00:14:15,610 --> 00:14:18,900 i milijarde redova, a koristite cijele brojeve za to, 295 00:14:18,900 --> 00:14:22,750 što će se dogoditi čim ste dobili na red broj 4 milijarde 296 00:14:22,750 --> 00:14:26,210 a onda pokušati umetnuti 4000000000. i jedan, da tako kažemo? 297 00:14:26,210 --> 00:14:29,610 Ja sam pojednostavljivanja brojeve malo. 298 00:14:29,610 --> 00:14:33,740 >> Možete smanjiti, mislim ti morate ga nositi na neki način. 299 00:14:33,740 --> 00:14:37,910 A što se računalo će obično raditi, razmišljati o tome, čak i iz ovog jutra, 300 00:14:37,910 --> 00:14:42,430 ako imate 4-bitnu vrijednost kao 1, 1, 1, 1, koja je 301 00:14:42,430 --> 00:14:44,920 samo vezati jutro zajedno popodne, što 302 00:14:44,920 --> 00:14:48,369 nema ovaj broj predstavlja u binarnom? 303 00:14:48,369 --> 00:14:49,410 U redu, mi ćemo lakše. 304 00:14:49,410 --> 00:14:53,310 Što taj broj predstavlja u binarnom? 305 00:14:53,310 --> 00:14:56,794 U redu, mi ćemo lakše, što to predstavlja u binarnom? 306 00:14:56,794 --> 00:14:57,460 PUBLIKA: Tri. 307 00:14:57,460 --> 00:14:59,670 DAVID Malan: Tri jer imamo one column-- 308 00:14:59,670 --> 00:15:00,450 [SMIJEH] 309 00:15:00,450 --> 00:15:01,350 Uh! 310 00:15:01,350 --> 00:15:03,980 Imali smo i one kolone i dvojke stupac. 311 00:15:03,980 --> 00:15:07,250 Dakle, pretpostavimo da je, zapravo, naš [? Okućnica?] nisu bili 32 bita, 312 00:15:07,250 --> 00:15:13,440 ali to su bila dva bita, možemo brojati od korisnika broj 0, 1, 2, 3, 313 00:15:13,440 --> 00:15:18,040 a onda smo vrsta natrag na korisnika 00 opet. 314 00:15:18,040 --> 00:15:19,739 Dakle, to je ono što se obično događa. 315 00:15:19,739 --> 00:15:22,780 Ako ste ikada čuli expression-- Vjerojatno niste, ali ako have-- 316 00:15:22,780 --> 00:15:26,500 broj preljeva, gdje vas zadržati flipping sve svoje bitova 317 00:15:26,500 --> 00:15:29,640 biti najveći moguće vrijednosti, i onda si iz bita, 318 00:15:29,640 --> 00:15:30,850 što bi se obično događa? 319 00:15:30,850 --> 00:15:32,280 Zašto kažem 00? 320 00:15:32,280 --> 00:15:33,220 Pa, to je tri. 321 00:15:33,220 --> 00:15:34,230 Kako mogu predstavljati 4? 322 00:15:34,230 --> 00:15:36,890 323 00:15:36,890 --> 00:15:38,915 Kako mogu zastupati za broj 4 u binarnom? 324 00:15:38,915 --> 00:15:39,790 PUBLIKA: [nečujan] 325 00:15:39,790 --> 00:15:41,780 DAVID Malan: One-- da, ne kažem 100 per se, 326 00:15:41,780 --> 00:15:44,190 jer ima krivo značenje, ali 1-0-0. 327 00:15:44,190 --> 00:15:48,920 Tako da broj 1-0-0 je zaista točno, ali ako imate samo dva bita, 328 00:15:48,920 --> 00:15:50,820 što si zapravo učinio? 329 00:15:50,820 --> 00:15:53,219 Vi ste prevrnuo na 00. 330 00:15:53,219 --> 00:15:54,760 I doista, to je ono što će se dogoditi. 331 00:15:54,760 --> 00:15:56,884 Zapravo, možete misliti o tome više familijarno. 332 00:15:56,884 --> 00:15:59,350 Ako se sjećate, što, Prije 16 godina, svijet 333 00:15:59,350 --> 00:16:03,380 je trebao završiti kada Y2K problema dogodilo. 334 00:16:03,380 --> 00:16:04,330 Zašto je to bilo? 335 00:16:04,330 --> 00:16:08,170 Pa većina računala, za razumne odluke, 336 00:16:08,170 --> 00:16:15,320 su spremanje brojeva kao što je 1975 godine ili godinu 1999 337 00:16:15,320 --> 00:16:19,010 korištenjem samo dvije znamenke u memoriju racunala. 338 00:16:19,010 --> 00:16:21,950 Pa naravno, što će se dogoditi kada se na 2000. godinu, 339 00:16:21,950 --> 00:16:25,790 idete u to, ili bolje rečeno, da. 340 00:16:25,790 --> 00:16:30,120 Dakle, idete na 2000. godinu, ali ako ti si samo pomoću dvije znamenke to izgleda 341 00:16:30,120 --> 00:16:32,660 kao godine 00 i tako da sam prevrnuo. 342 00:16:32,660 --> 00:16:36,820 I to je razlog zašto puno sustava potreban da bi se ažurirati na vrijeme. 343 00:16:36,820 --> 00:16:42,500 >> Dakle, s koje je rekao, tvrtke poput Facebook pokrenuti protiv toga. 344 00:16:42,500 --> 00:16:46,147 Dakle, jedini način da obrađuju Situacija je, iskreno govoreći, da je to predvidjeti. 345 00:16:46,147 --> 00:16:47,980 Ili najčišći način obrađuju ovu situaciju 346 00:16:47,980 --> 00:16:50,330 je to predvidjeti, tako da ne moraju napraviti izmjene kasnije. 347 00:16:50,330 --> 00:16:51,970 Dakle, umjesto od 8 bajta, znate što? 348 00:16:51,970 --> 00:16:54,261 Ja ću biti naprijed-razmišljanja ovdje, iako je 349 00:16:54,261 --> 00:16:56,760 malo optimističan da ćemo imati 4 milijarde 350 00:16:56,760 --> 00:16:58,850 a 1 korisnik je na našoj web stranici. 351 00:16:58,850 --> 00:17:01,790 Ali neka se koristiti samo 8 bajta ili 64 bita, koji se općenito 352 00:17:01,790 --> 00:17:05,640 pozvao veliki cijeli broj, vrlo tehnički. 353 00:17:05,640 --> 00:17:10,280 A to samo znači da možete imati čak i više znamenaka u svom broju. 354 00:17:10,280 --> 00:17:12,599 No, to je važan Odluka dizajn, 355 00:17:12,599 --> 00:17:16,400 jer ako se odlučite broj koji ima premalo bitova ekspresivnost 356 00:17:16,400 --> 00:17:19,089 što zapravo mogao stvoriti bug u softveru. 357 00:17:19,089 --> 00:17:21,750 >> U redu, idemo završiti s e-mail i poštansku adresu. 358 00:17:21,750 --> 00:17:26,369 Tako e, koliko bi trebalo e-mail adresu biti? 359 00:17:26,369 --> 00:17:26,869 50. 360 00:17:26,869 --> 00:17:29,220 Ja stvarno nemam pojma, ali to je Vjerojatno nešto slično, 361 00:17:29,220 --> 00:17:32,261 jer inače nitko neće Napiši ti ako ga dobiva previše vremena, pa 50, 362 00:17:32,261 --> 00:17:33,360 idemo s njim za sada. 363 00:17:33,360 --> 00:17:35,770 Poštanska adresa, koliko dugo da bi trebao biti? 364 00:17:35,770 --> 00:17:38,325 365 00:17:38,325 --> 00:17:39,200 PUBLIKA: [nečujan] 366 00:17:39,200 --> 00:17:41,900 367 00:17:41,900 --> 00:17:43,890 >> DAVID Malan: To nije samo poštanski broj, ipak. 368 00:17:43,890 --> 00:17:45,720 Poštanska adresa, čuo sam. 369 00:17:45,720 --> 00:17:50,720 Dakle, to je kao 1. Brattle Square, zarez, Cambridge Mass., zarez, 02138. 370 00:17:50,720 --> 00:17:53,860 A u stvari, neka mi samo povući se malo lista ovdje. 371 00:17:53,860 --> 00:17:56,510 To se osjeća kao da je propuštena prilika. 372 00:17:56,510 --> 00:18:01,480 Ako imamo 1 Brattle trg, zarez, Cambridge MA 02138, 373 00:18:01,480 --> 00:18:04,510 Osjećam se kao da mi možemo bolje nego samo poštansku adresu. 374 00:18:04,510 --> 00:18:07,100 Zašto ne eksplodiraju to malo? 375 00:18:07,100 --> 00:18:08,030 Što sam ja ciljaš? 376 00:18:08,030 --> 00:18:10,970 Što ćemo umjesto toga imaju za naše redove ovdje, možda? 377 00:18:10,970 --> 00:18:12,260 >> PUBLIKA: [nečujan] 378 00:18:12,260 --> 00:18:17,579 >> DAVID Malan: Da, pa neka je zovu ga street_number, 379 00:18:17,579 --> 00:18:20,620 a donja je samo uobičajena način da ono što izgleda kao prostor, 380 00:18:20,620 --> 00:18:22,360 ali nije, zapravo. 381 00:18:22,360 --> 00:18:26,240 Ulica, a zatim city-- žao? 382 00:18:26,240 --> 00:18:28,440 >> PUBLIKA: [nečujan] 383 00:18:28,440 --> 00:18:29,690 DAVID Malan: Mogli smo to učiniti. 384 00:18:29,690 --> 00:18:30,702 Linija jedan, linija dva. 385 00:18:30,702 --> 00:18:32,410 Zašto ne bismo će zadržati to jednostavno za sada, 386 00:18:32,410 --> 00:18:34,840 ali to je apsolutno prihvatljiva odluka. 387 00:18:34,840 --> 00:18:38,180 A onda država, a onda neka je biti malo u SAD-centric za sada 388 00:18:38,180 --> 00:18:42,040 i samo učiniti poštanski broj, samo zbog toga to će dovesti do zanimljivog greškom 389 00:18:42,040 --> 00:18:43,090 ili je problem ovdje. 390 00:18:43,090 --> 00:18:44,655 Dakle, pretpostavimo da je sada naš adresu. 391 00:18:44,655 --> 00:18:47,280 To je malo više neugodno da imamo sve te više polja, 392 00:18:47,280 --> 00:18:49,200 ali sada možemo označiti stvari malo bolje. 393 00:18:49,200 --> 00:18:53,210 >> Dakle, sada ulica broj vjerojatno ne bi trebao biti char, ne? 394 00:18:53,210 --> 00:18:54,835 Što bi to moglo biti? 395 00:18:54,835 --> 00:18:55,710 PUBLIKA: [nečujan] 396 00:18:55,710 --> 00:18:57,835 DAVID Malan: Možda, broj kao opet cijeli broj? 397 00:18:57,835 --> 00:19:00,170 Veliki broj? 398 00:19:00,170 --> 00:19:02,170 Vi vjerojatno ne živi na 4 milijarde Main Street 399 00:19:02,170 --> 00:19:03,490 ili bilo ludo kao što je to. 400 00:19:03,490 --> 00:19:06,850 Dakle, cijeli je vjerojatno u redu, ali ima koga 401 00:19:06,850 --> 00:19:13,880 ikada živio na adresi kao Trg 1A BRATTLE, ili 1 i 1/2? 402 00:19:13,880 --> 00:19:17,030 Ove stvari, nažalost, postoje čak i ako niste tamo živjeli, 403 00:19:17,030 --> 00:19:21,240 postoje ove anomalije kao što je stan 1A, 1B, 1C. 404 00:19:21,240 --> 00:19:24,260 Pa znate što, vjerojatno ćemo ne treba ići s cjelobrojnim, 405 00:19:24,260 --> 00:19:27,440 inače idemo izgubiti neke prodaje. 406 00:19:27,440 --> 00:19:29,920 >> Char polje, možda? 407 00:19:29,920 --> 00:19:30,870 Ne znam koliko dugo. 408 00:19:30,870 --> 00:19:33,370 To vjerojatno neće biti tako dugo, tako da 10 ili tako nešto. 409 00:19:33,370 --> 00:19:34,950 Nitko neće pisati duži broj, možda. 410 00:19:34,950 --> 00:19:37,070 Ali opet, trebali bismo vjerojatno dati više misli na to. 411 00:19:37,070 --> 00:19:39,900 Možda google, učiniti neke istraživanja, ali mi ćemo ići s našim crijevima za sada. 412 00:19:39,900 --> 00:19:44,565 Ulice, char, 50, ne znam. 413 00:19:44,565 --> 00:19:46,940 U nekom trenutku, nitko ne ide to napisati na kuverti, 414 00:19:46,940 --> 00:19:49,350 također, tako da je vjerojatno neki gornju granicu tamo. 415 00:19:49,350 --> 00:19:54,200 Grad, isto, sigurno, tako char 50. 416 00:19:54,200 --> 00:19:59,120 >> Država može biti u SAD-centric za sada. 417 00:19:59,120 --> 00:20:01,850 Dakle, to može biti i popis, tako ljubazni presude poziva državne. 418 00:20:01,850 --> 00:20:04,000 To bi mogla biti kao dva znaka. 419 00:20:04,000 --> 00:20:06,140 Pa zapravo, možda, stalno sam govorio char. 420 00:20:06,140 --> 00:20:09,420 Ja vjerojatno znači varchar, samo za neke učinkovitosti, 421 00:20:09,420 --> 00:20:12,240 ali ćemo se vratiti ta odluka u trenutku. 422 00:20:12,240 --> 00:20:16,150 Može biti char dužine 2 za državu. 423 00:20:16,150 --> 00:20:20,670 Ako se u SAD-u imaju, kao što je MA, Massachusetts, New York, New York, New Jersey, New 424 00:20:20,670 --> 00:20:22,100 Jersey, i tako dalje. 425 00:20:22,100 --> 00:20:23,630 Dakle, to bi mogao biti fiksiran na to. 426 00:20:23,630 --> 00:20:25,900 DC za Washington DC. 427 00:20:25,900 --> 00:20:29,915 >> Ali mislim, Olivier, ti predložio drugačiji pristup. 428 00:20:29,915 --> 00:20:30,790 PUBLIKA: [nečujan] 429 00:20:30,790 --> 00:20:33,670 DAVID Malan: Da, tako da je malo neugodno upisati, 430 00:20:33,670 --> 00:20:37,890 ali enum ima više smisla, jer na taj način, barem u SAD-u, 431 00:20:37,890 --> 00:20:41,320 mogli nabrojati, ako tediously, ali vi to učiniti samo jednom u bazi podataka 432 00:20:41,320 --> 00:20:47,480 i više nikada neće morati razmišljati o tome da, svi 50 dva znaka kodovi. 433 00:20:47,480 --> 00:20:48,660 Zato mi se sviđa nabrajanja. 434 00:20:48,660 --> 00:20:51,720 Idemo na štapiću, s da postoji, jer je ona vrsta provodi više strogost. 435 00:20:51,720 --> 00:20:53,620 I onda zip kod? 436 00:20:53,620 --> 00:20:55,306 Mislim da je Andrew imao misli o tome 437 00:20:55,306 --> 00:20:56,180 PUBLIKA: [nečujan] 438 00:20:56,180 --> 00:20:57,240 DAVID Malan: Da, pet ili devet. 439 00:20:57,240 --> 00:20:58,323 Ajmo dalje ostane jednostavan. 440 00:20:58,323 --> 00:20:59,380 Dovoljno je napraviti pet za sada. 441 00:20:59,380 --> 00:21:03,070 No, možda sam mogao samo to je cijeli broj, zar ne? 442 00:21:03,070 --> 00:21:08,750 Mogao bih, ali znate što, ja napravio Ova greška je jednom, u nekom smislu. 443 00:21:08,750 --> 00:21:13,110 Prije nekoliko godina, bio sam migraciju iz Microsoft Outlook na Gmail, 444 00:21:13,110 --> 00:21:18,640 i Outlook je način izvoz svim svojim kontaktima kao Excel datoteci, 445 00:21:18,640 --> 00:21:21,280 CSV datoteka, vrijednosti odvojene zarezom datoteku. 446 00:21:21,280 --> 00:21:23,950 I ja sam napravio grešku, ja mislim, o dvostrukim klikom, 447 00:21:23,950 --> 00:21:27,380 Jednom sam skinuti izvoz, da se bi bili sigurni da je izgledao kao što sam očekivao. 448 00:21:27,380 --> 00:21:31,320 Mora da sam pogodio Spremanje ili neka auto-spasiti udarac u ili tako nešto. 449 00:21:31,320 --> 00:21:35,100 Jer kad sam onda uvoze to u Gmail, sve to radio. 450 00:21:35,100 --> 00:21:39,910 No, već godinama, do današnjeg dana, a Ja sam to pet, prije 10 godina, 451 00:21:39,910 --> 00:21:44,380 Ja sam još uvijek naći prijatelje koji imaju adrese koje izgledaju ovako. 452 00:21:44,380 --> 00:21:45,700 Zašto? 453 00:21:45,700 --> 00:21:47,900 >> PUBLIKA: [nečujan] 454 00:21:47,900 --> 00:21:50,650 >> DAVID Malan: Bilo je 0., dobro, radije, 455 00:21:50,650 --> 00:21:53,810 je cijelu poštanski broj kao broj, pa je stoga 456 00:21:53,810 --> 00:21:56,590 vodeći 0, što znači to nema smisla. 457 00:21:56,590 --> 00:21:59,470 I tako 2138 čini se da je moj poštanski broj. 458 00:21:59,470 --> 00:22:07,100 A to je, iskreno, neugodno Excel značajka pri čemu mislim da po defaultu, 459 00:22:07,100 --> 00:22:10,980 čak i ako je to značilo da se samo biti tekst, Microsoft Excel 460 00:22:10,980 --> 00:22:13,780 odlučuje, neka mi bude od pomoći, i oh, vidim samo brojeve. 461 00:22:13,780 --> 00:22:15,290 Recimo tretirati ih kao brojeve. 462 00:22:15,290 --> 00:22:16,790 I to truncatus vodeće nule. 463 00:22:16,790 --> 00:22:19,165 >> Kunem se Bogom, svaki par mjeseci sam pronaći adresu, 464 00:22:19,165 --> 00:22:22,300 i iz neke vrste OCD, idem natrag i dodajte 0, iako nikad 465 00:22:22,300 --> 00:22:23,700 poslati ljude slova ili ništa. 466 00:22:23,700 --> 00:22:25,510 Ali ja sam još uvijek naći ostatke ovo. 467 00:22:25,510 --> 00:22:28,820 Dakle, to će reći, je li to dobra ideja? 468 00:22:28,820 --> 00:22:31,610 U redu, ne, jer svatko u Massachusetts, na ovom području, 469 00:22:31,610 --> 00:22:33,270 će imati oi ih vodi. 470 00:22:33,270 --> 00:22:38,070 Dakle idemo sa sličnim char, vjerojatno, pet. 471 00:22:38,070 --> 00:22:41,450 >> I ovdje, shvatili smo mogao koristiti nabrajanja i mi 472 00:22:41,450 --> 00:22:44,600 mogao nabrojati 10.000 Mogući poštanskih brojeva 473 00:22:44,600 --> 00:22:48,530 ali da se osjeća kao da je vjerojatno prelaska linije, kao, koristi. 474 00:22:48,530 --> 00:22:51,350 Ako imate ulaz koji mnogo podataka u bazu podataka 475 00:22:51,350 --> 00:22:52,940 za zaštitu od nečega. 476 00:22:52,940 --> 00:22:57,400 Znači char shvatili ste mogli upisati u H-E-L-L-O su Vaš poštanski broj, 477 00:22:57,400 --> 00:22:59,180 što nije, očito, numerički. 478 00:22:59,180 --> 00:23:01,680 Dakle, ne postoji način, u tipična baza podataka, 479 00:23:01,680 --> 00:23:05,561 navesti samo brojčane i duge samo pet znakova, 480 00:23:05,561 --> 00:23:07,310 tako da ćemo imati da to učiniti u kodu. 481 00:23:07,310 --> 00:23:11,100 Mi ćemo učiniti da je u PHP ili Java ili bilo kojem jeziku smo 482 00:23:11,100 --> 00:23:14,230 koristite na poslužitelju za provedbu takva vrsta ograničenja. 483 00:23:14,230 --> 00:23:14,860 >> Whoo! 484 00:23:14,860 --> 00:23:18,322 U redu, tako da bilo kakva pitanja samo još? 485 00:23:18,322 --> 00:23:19,780 Neka druga odluka dizajn. 486 00:23:19,780 --> 00:23:22,500 Ispada da vas Također ćete odabrati, 487 00:23:22,500 --> 00:23:26,600 prilikom dizajniranja SQL baze podataka, ili tipični relacijske database-- gdje 488 00:23:26,600 --> 00:23:28,790 opet, relacijska samo znači redaka i stupaca, 489 00:23:28,790 --> 00:23:35,500 to je kako organizirati svoje data-- i shvatiti da je ono što to znači, 490 00:23:35,500 --> 00:23:37,740 Ja sam bio u zabludu u da, ja sam drawing-- ovo 491 00:23:37,740 --> 00:23:40,190 je ono što se zove shema za tablicu baze podataka. 492 00:23:40,190 --> 00:23:42,810 To je kao da je specifikacije za table-- 493 00:23:42,810 --> 00:23:48,040 ali kad dođe vrijeme zapravo pohranu podataka, 494 00:23:48,040 --> 00:23:52,081 a mi ćemo to učiniti samo primjer ovdje. 495 00:23:52,081 --> 00:23:55,080 Idem otvoriti Excel, jer Excel će mi dati redaka i stupaca. 496 00:23:55,080 --> 00:23:58,050 I to je upravo ono što Oracle i MySQL i drugi alati će mi dati. 497 00:23:58,050 --> 00:24:02,270 Pa Samo ću koristiti to poradi Rasprava a. 498 00:24:02,270 --> 00:24:05,250 Dopustite mi ići naprijed i otvoriti Predstavnik dokument ovdje 499 00:24:05,250 --> 00:24:06,310 povećavanje malo. 500 00:24:06,310 --> 00:24:15,200 Tako, na primjer, naši zaglavlja sada ime, prezime, spol, ID, 501 00:24:15,200 --> 00:24:20,980 e-mail, broj ulica, ulica, ups. 502 00:24:20,980 --> 00:24:25,710 Ulica, grad, država, samo o paše na ekranu. 503 00:24:25,710 --> 00:24:29,080 >> Dakle, što to znači je da, kada korisnik prvi put registrira za moje web stranice, 504 00:24:29,080 --> 00:24:32,880 to će biti nešto poput David Malan, m, recimo 1, 505 00:24:32,880 --> 00:24:42,910 malan@harvard.edu, broj ulice će bilo kao 1 Brattle trga, Cambridge, MA, 506 00:24:42,910 --> 00:24:44,780 02138, a onda tako dalje. 507 00:24:44,780 --> 00:24:48,290 Dakle, kad kažem da relacijska baza podataka ili SQL baze podataka je redaka i stupaca, 508 00:24:48,290 --> 00:24:49,350 Mislim ovo. 509 00:24:49,350 --> 00:24:51,900 Taj stvarni podaci pohranjuju u retke i stupce. 510 00:24:51,900 --> 00:24:53,950 To je samo slučajnost, da smo razgovarali, 511 00:24:53,950 --> 00:24:56,033 i ja upravo to crtež u retke i stupce. 512 00:24:56,033 --> 00:24:58,320 Ovo je samo shema, krovni definicija. 513 00:24:58,320 --> 00:25:01,640 >> Dakle, od tih područja ovdje, ili ekvivalentno, postoji, 514 00:25:01,640 --> 00:25:06,270 koji su polja koje mislite Ja sam vjerojatno pretraživanje na ako sam korisnik 515 00:25:06,270 --> 00:25:09,200 ili ako sam administrator baze podataka? 516 00:25:09,200 --> 00:25:12,426 Kao, ono polja sam ja zapravo događa pretraživanje na? 517 00:25:12,426 --> 00:25:13,830 >> PUBLIKA: [nečujan] 518 00:25:13,830 --> 00:25:17,690 >> DAVID Malan: Ime, da tako Sviđa mi se činjenica that-- da, 519 00:25:17,690 --> 00:25:19,750 e-mail može biti prilično čest. 520 00:25:19,750 --> 00:25:21,440 Žao nam je, rekli ste ime. 521 00:25:21,440 --> 00:25:24,030 Tako maybe-- i opet, mi smo vrsta govori u sažetku. 522 00:25:24,030 --> 00:25:25,988 Ne znam zašto bi biti u potrazi za ime, 523 00:25:25,988 --> 00:25:29,340 ali da se osjeća razumno, ako ste u potrazi za korisnika. 524 00:25:29,340 --> 00:25:31,170 Možda se navodi, da, ID. 525 00:25:31,170 --> 00:25:34,100 526 00:25:34,100 --> 00:25:36,160 >> I to je sklisko nagib, jer sam mogao 527 00:25:36,160 --> 00:25:38,890 dovijati scenarij u kojem možda moj šef me je zamolio, 528 00:25:38,890 --> 00:25:40,417 koliko ljudi imamo na našim stranicama? 529 00:25:40,417 --> 00:25:42,000 Koliko žena imamo na našim stranicama? 530 00:25:42,000 --> 00:25:45,210 I tako u tom trenutku, možda želite pretraživanje na spolnoj terenu, također, 531 00:25:45,210 --> 00:25:45,940 i ništa drugo. 532 00:25:45,940 --> 00:25:47,350 Dakle, postoji trade-off ovdje. 533 00:25:47,350 --> 00:25:49,180 Opet, nema točan odgovor, ali postoji 534 00:25:49,180 --> 00:25:53,760 je značajka u većini SQL bazama podataka poznat kao indeksiranje, pri čemu 535 00:25:53,760 --> 00:25:56,100 ti, dizajner je administrator baze podataka 536 00:25:56,100 --> 00:26:01,730 doći do unaprijed odlučiti koje tereni Baza podataka treba optimizirati 537 00:26:01,730 --> 00:26:02,980 za pretraživanja na. 538 00:26:02,980 --> 00:26:07,620 >> Moglo bi vrlo naivno reći, optimizirati ovo optimizirati da poboljšate ovaj, 539 00:26:07,620 --> 00:26:10,300 optimizirati da se i to, a baza podataka će se 540 00:26:10,300 --> 00:26:14,882 napraviti neki čarobni stvar ispod napa, i učiniti nešto na takav način 541 00:26:14,882 --> 00:26:17,090 da sljedeći put kad budete tražili na bilo kojem od tih područja, 542 00:26:17,090 --> 00:26:18,400 to će, doista, biti brži. 543 00:26:18,400 --> 00:26:19,110 To je moguće. 544 00:26:19,110 --> 00:26:20,530 To ne se poništiti. 545 00:26:20,530 --> 00:26:22,500 No, mora postojati cijena koja se plaća. 546 00:26:22,500 --> 00:26:27,220 >> Ako vam se naivno, ili nad-oduševljeno recimo, indeks svih tih područja, 547 00:26:27,220 --> 00:26:29,810 tako reći, učiniti ih sve učinkovito pretraživati, 548 00:26:29,810 --> 00:26:31,625 koju cijenu su vjerojatno plaćati? 549 00:26:31,625 --> 00:26:32,500 PUBLIKA: [nečujan] 550 00:26:32,500 --> 00:26:33,090 DAVID Malan: izvedba. 551 00:26:33,090 --> 00:26:33,798 Kako to misliš? 552 00:26:33,798 --> 00:26:37,380 Pa performansi, barem u Kontekst sam opisala, sada je bolje. 553 00:26:37,380 --> 00:26:38,830 To je definicija indeksiranje. 554 00:26:38,830 --> 00:26:41,180 To će učiniti pretraživanja brže. 555 00:26:41,180 --> 00:26:43,366 Dakle, vrijeme se smanjuje, da se tako izrazim. 556 00:26:43,366 --> 00:26:44,240 PUBLIKA: [nečujan] 557 00:26:44,240 --> 00:26:45,031 DAVID Malan: Space. 558 00:26:45,031 --> 00:26:46,520 Pa opet, to su zajednički trgovinu. 559 00:26:46,520 --> 00:26:50,820 Mogu ubrzati pretraživanja, ali to je će vas koštati više bajtova prostora. 560 00:26:50,820 --> 00:26:51,610 Zašto? 561 00:26:51,610 --> 00:26:55,230 Pa, po defaultu, ako imamo nitko od ove crvene zvijezde, nijedan od tih indeksa, 562 00:26:55,230 --> 00:26:58,797 kao što sam rekao, kako se traži imena u ovoj bazi podataka? 563 00:26:58,797 --> 00:27:00,630 Tako ćemo izvući naše pozornost na ovom primjeru. 564 00:27:00,630 --> 00:27:06,300 Ako imamo Davida i Scully i Kareem i Arwa i drugi u tim nizovima, 565 00:27:06,300 --> 00:27:06,910 na primjer. 566 00:27:06,910 --> 00:27:08,390 >> Tako ćemo učiniti upravo to. 567 00:27:08,390 --> 00:27:13,990 Scully je ovdje, a zatim imamo Kareem, i Arwa, 568 00:27:13,990 --> 00:27:18,390 i svi drugi, ako ne imaju indeks definiran, da tako kažemo, 569 00:27:18,390 --> 00:27:20,160 najbolje što možete učiniti je linearna pretraživanja. 570 00:27:20,160 --> 00:27:23,470 Ako tražite Arwa, nismo će moći skočiti pravo na nju 571 00:27:23,470 --> 00:27:24,140 brzo. 572 00:27:24,140 --> 00:27:26,556 Mi ćemo početi vrh i ide sve na putu do dna, 573 00:27:26,556 --> 00:27:28,600 ne za razliku od našeg original Mike Smith primjer. 574 00:27:28,600 --> 00:27:33,470 >> Ako je, međutim, kažem, hej, baze podataka, Indeks prvo ime na terenu, 575 00:27:33,470 --> 00:27:37,000 onda će nešto učiniti ljubitelj i podržati nešto 576 00:27:37,000 --> 00:27:38,130 kao binarnog pretraživanja. 577 00:27:38,130 --> 00:27:39,820 To vjerojatno nije binarno traženje po sebi. 578 00:27:39,820 --> 00:27:42,810 Baze podataka imaju tendenciju da koriste drugu struktura podataka naziva B-stabla, 579 00:27:42,810 --> 00:27:46,540 Ne smije se miješati s binarnim stablima, samo da bi ga brže pretraživanje 580 00:27:46,540 --> 00:27:48,500 nešto logaritamska u prirodi. 581 00:27:48,500 --> 00:27:53,510 No, cijena koju plaćate za izgradnju koje osobina, koja struktura podataka u memoriji, 582 00:27:53,510 --> 00:27:54,570 je više bajta. 583 00:27:54,570 --> 00:27:57,170 Dakle, to bi moglo potrajati nekoliko megabajta, neki gigabajta, tko zna? 584 00:27:57,170 --> 00:27:58,410 To ovisi o podacima. 585 00:27:58,410 --> 00:28:02,640 >> Dakle, u nekom trenutku, morate odlučiti, to je vjerojatno nije čest slučaj. 586 00:28:02,640 --> 00:28:06,000 Pa što su stvarni zajednički slučajeva, ako se stvarno morao birati, 587 00:28:06,000 --> 00:28:10,080 što bi vaši omiljeni polja biti? 588 00:28:10,080 --> 00:28:10,580 E-mail. 589 00:28:10,580 --> 00:28:14,400 A ja kao e jer e-mail, u teoriji, treba biti jedinstven. 590 00:28:14,400 --> 00:28:17,650 I tako u pravilu, kada se zna unaprijed da jedan od vaših polja 591 00:28:17,650 --> 00:28:20,277 je ili će biti jedinstven, da teži da bude dobar polje 592 00:28:20,277 --> 00:28:22,860 pretraživanje na, jer na taj način, kada nešto tražite, 593 00:28:22,860 --> 00:28:26,194 ti ćeš se vratiti jednog ili nula odgovora, a zatim završite. 594 00:28:26,194 --> 00:28:28,110 Vi ne morate držati u potrazi za još drugima. 595 00:28:28,110 --> 00:28:31,992 >> I tako, u ovom slučaju ovdje, e-mail, tako dugo dok se ne možete registrirati puta 596 00:28:31,992 --> 00:28:33,450 s istom e-pošte je dobra. 597 00:28:33,450 --> 00:28:36,710 ID po definiciji, u informatika svijet, 598 00:28:36,710 --> 00:28:39,610 ako govorimo oko sat ID, da je bolje biti jedinstven. 599 00:28:39,610 --> 00:28:42,970 To je vrsta na značenje osobne iskaznice ili identifikator. 600 00:28:42,970 --> 00:28:46,440 A ostatak od njih može biti, nazovimo ih lijepo bogatih, 601 00:28:46,440 --> 00:28:47,860 ali ne i stvarno potrebno. 602 00:28:47,860 --> 00:28:49,976 >> I tako u bazi podataka, navedete indekse, 603 00:28:49,976 --> 00:28:51,350 ali može biti još precizniji. 604 00:28:51,350 --> 00:28:56,060 Možete reći, hej, baze podataka, uvjerite se da svaki ID u ovoj tablici je jedinstven. 605 00:28:56,060 --> 00:28:59,330 Nemojte ni neka programer slučajno stavili u duple e-mail 606 00:28:59,330 --> 00:29:00,740 ili duplicirati identifikacijski broj. 607 00:29:00,740 --> 00:29:03,140 Toliko kao enums štite nas na sličan način, te 608 00:29:03,140 --> 00:29:04,881 može imati one niže razine obranu. 609 00:29:04,881 --> 00:29:07,130 I tako dizajn baze podataka, u neki osjećaj, je vrsta zabave, 610 00:29:07,130 --> 00:29:08,380 jer ti to brani. 611 00:29:08,380 --> 00:29:11,460 Ti vrsta pretpostaviti da radite s užasnim, užasnim programera 612 00:29:11,460 --> 00:29:15,550 i želite staviti u onoliko obranu kao što možete kako bi zaštitili svoje podatke, 613 00:29:15,550 --> 00:29:18,940 ali istodobno želite da im pomogne bolje 614 00:29:18,940 --> 00:29:21,386 odabirom polja za optimizaciju. 615 00:29:21,386 --> 00:29:24,260 Ali ne možete nužno to učiniti u vakuum kao da smo neka vrsta su ovdje. 616 00:29:24,260 --> 00:29:26,480 Moraš znati što su one uobičajene slučajeve postojanja. 617 00:29:26,480 --> 00:29:29,397 Ako programeri su provedbu adresar, 618 00:29:29,397 --> 00:29:32,230 možda vrlo dobro žele biti u mogućnosti pretraživanje na gotovo svakom području, 619 00:29:32,230 --> 00:29:33,830 Samo po prirodi zahtjeva. 620 00:29:33,830 --> 00:29:37,910 Dakle, možda ćete potrošiti koji dodatni prostor. 621 00:29:37,910 --> 00:29:39,090 >> Dobro, bilo kakvih pitanja? 622 00:29:39,090 --> 00:29:41,820 623 00:29:41,820 --> 00:29:42,486 Da. 624 00:29:42,486 --> 00:29:43,470 >> PUBLIKA: [nečujan] 625 00:29:43,470 --> 00:29:44,404 >> DAVID Malan: Ne 626 00:29:44,404 --> 00:29:45,279 >> PUBLIKA: [nečujan] 627 00:29:45,279 --> 00:29:47,840 628 00:29:47,840 --> 00:29:48,826 >> DAVID Malan: U redu. 629 00:29:48,826 --> 00:29:49,701 >> PUBLIKA: [nečujan] 630 00:29:49,701 --> 00:29:52,420 631 00:29:52,420 --> 00:29:54,850 >> DAVID Malan: Oh, pa smo Radi se na način 632 00:29:54,850 --> 00:29:57,940 sada je to sasvim jezik agnostik. 633 00:29:57,940 --> 00:30:02,370 Tako su mi sada govorimo o relacijske baze podataka, općenito govoreći, 634 00:30:02,370 --> 00:30:04,760 ili SQL baze podataka u cjelini. 635 00:30:04,760 --> 00:30:06,870 >> PUBLIKA: [nečujan] 636 00:30:06,870 --> 00:30:10,030 >> DAVID Malan: Bolji Word za početak upotrebe je, može se koristiti na bilo kojem jeziku. 637 00:30:10,030 --> 00:30:15,280 Dakle, ja mogu pisati JavaScript kôd, C kod, C ++ kod, Java koda, Ruby kod, 638 00:30:15,280 --> 00:30:19,010 sve što razgovarati s baze podataka i izvršavanje upita. 639 00:30:19,010 --> 00:30:22,310 U stvari, to nije loša prikazali na primjer upita. 640 00:30:22,310 --> 00:30:25,720 I opet, nećemo ići u Java ili C ++ ili bilo koji više, 641 00:30:25,720 --> 00:30:29,420 ali u SQL je jezik za koji sam zadržati odnosi, Structured Query Language, 642 00:30:29,420 --> 00:30:32,790 to samo po sebi je programski jezik, ali to je značilo da će se koristiti za, ne 643 00:30:32,790 --> 00:30:37,330 iznenađenje, strukturirano upita upitima. 644 00:30:37,330 --> 00:30:38,660 >> Tako da mislim to. 645 00:30:38,660 --> 00:30:41,190 Način na koji vi odaberete podatke iz MySQL baza podataka 646 00:30:41,190 --> 00:30:49,330 se doslovno unijeti u svoj program nešto poput odaberite zvijezde od korisnika. 647 00:30:49,330 --> 00:30:52,200 Ja sam uz pretpostavku da je za ovim stolom, od sada se zove korisnicima. 648 00:30:52,200 --> 00:30:54,860 Mogao bih ga nazvati nešto što želimo, ali ta vrsta ima smisla. 649 00:30:54,860 --> 00:30:57,240 I tako odabir je vrlo čest glagol, ako vas 650 00:30:57,240 --> 00:30:59,290 će, SQL, koji doslovno ne da. 651 00:30:59,290 --> 00:31:02,730 Što mislite zvijezda u ovom kontekstu označava? 652 00:31:02,730 --> 00:31:04,410 >> PUBLIKA: [nečujan] 653 00:31:04,410 --> 00:31:05,380 >> DAVID Malan: Žao mi je što? 654 00:31:05,380 --> 00:31:06,300 >> PUBLIKA: [nečujan] 655 00:31:06,300 --> 00:31:09,580 >> DAVID Malan: Nije potrebno, to je više inclusive od toga, zapravo. 656 00:31:09,580 --> 00:31:11,700 To je kartica lik divlje. 657 00:31:11,700 --> 00:31:14,740 Glumit gotovo uvijek znači ništa, pa to znači, u tom slučaju, 658 00:31:14,740 --> 00:31:16,510 odaberi sve iz baze podataka. 659 00:31:16,510 --> 00:31:20,730 Pa kad to kažem, mislim Vratite mi svaki stupac 660 00:31:20,730 --> 00:31:22,440 od mog stola pod nazivom korisnicima. 661 00:31:22,440 --> 00:31:24,730 Pa daj mi result set, kako se zove. 662 00:31:24,730 --> 00:31:28,210 Drugim riječima, daj mi kopiju od proračunske tablice, je ono što želim reći. 663 00:31:28,210 --> 00:31:34,890 >> Ali, ako sam rekao odaberite zvijezda od korisnika gdje ID jednak 1, koliki bi trebao 664 00:31:34,890 --> 00:31:36,640 moja skup rezultata biti onda? 665 00:31:36,640 --> 00:31:41,680 Ili ekvivalentno, koliko redova trebao Ja mu se vrati iz baze podataka? 666 00:31:41,680 --> 00:31:45,860 Vjerojatno samo jedan, ako imam doista tretira ID kao jedinstveni identifikator, 667 00:31:45,860 --> 00:31:50,710 a ako je David ima taj jedinstveni ID, ja treba vratiti jedan i samo jedan red 668 00:31:50,710 --> 00:31:53,220 koji sadrži sve Davidove informacija. 669 00:31:53,220 --> 00:31:56,390 Ako sam to rekao, gdje ID jednaka 99, trebao bih se vratiti, 670 00:31:56,390 --> 00:32:00,320 U tom kontekstu, nula redaka, barem u ovom trenutku. 671 00:32:00,320 --> 00:32:03,620 >> Međutim, ako ne stvarno briga o svim tim informacijama, 672 00:32:03,620 --> 00:32:06,970 Mogao sam samo reći, gdje se David živjeti? 673 00:32:06,970 --> 00:32:10,860 Odaberite poštanski broj iz Korisnici gdje ID je 1. 674 00:32:10,860 --> 00:32:15,820 To će odabrati samo meni Davidov zip broj, a ne ukupnost tom retku. 675 00:32:15,820 --> 00:32:19,541 Zašto je možda bolje to učiniti umjesto upit zvijezda, divlja kartica? 676 00:32:19,541 --> 00:32:21,950 >> PUBLIKA: [nečujan] 677 00:32:21,950 --> 00:32:24,590 >> DAVID Malan: Da, možda samo ga trebate. 678 00:32:24,590 --> 00:32:26,350 Dakle, nastup je opet odgovor ovdje. 679 00:32:26,350 --> 00:32:28,540 Zašto tražiti više Informacije nego što je potrebno, 680 00:32:28,540 --> 00:32:32,020 jer čak i ako je sve u redu zajedno, još uvijek morati kopirati te podatke, 681 00:32:32,020 --> 00:32:35,560 čini se, iz baze podataka u svom programu nekako, 682 00:32:35,560 --> 00:32:38,490 i to je samo glup, ako vas treba samo pet od tih brojki, 683 00:32:38,490 --> 00:32:40,340 Ne cjelokupnost redu. 684 00:32:40,340 --> 00:32:42,180 >> Pa kako mogu umetnuti korisnik? 685 00:32:42,180 --> 00:32:44,780 Pretpostavimo da korisnik ima samo registrirana za prvi put. 686 00:32:44,780 --> 00:32:46,560 Sintaksa bi obično izgleda ovako. 687 00:32:46,560 --> 00:32:52,700 Umetnuti u korisnika, te onda bismo reći vrijednosti, 688 00:32:52,700 --> 00:33:00,150 a onda bismo reći vrijednosti kao što su, recimo, Lauren Scully, 689 00:33:00,150 --> 00:33:02,380 naš snimatelj ovdje. 690 00:33:02,380 --> 00:33:04,390 A sljedeći polje je rod. 691 00:33:04,390 --> 00:33:08,020 Dakle, mi ćemo reći citat, citat "F", onda imamo ID 692 00:33:08,020 --> 00:33:12,250 a ja ću say-- neka je pretvarati da je zapravo nije ovdje, 693 00:33:12,250 --> 00:33:14,380 pa ćemo natrag u priči. 694 00:33:14,380 --> 00:33:16,530 Dakle, dva će biti njen ID. 695 00:33:16,530 --> 00:33:19,130 A onda sljedeći polje Ovdje je njezin e-mail. 696 00:33:19,130 --> 00:33:22,140 Dakle, to će biti kao što je Lauren Scully i tako dalje, 697 00:33:22,140 --> 00:33:24,360 a mi ćemo samo točka točka dot ga odavde dalje. 698 00:33:24,360 --> 00:33:26,890 Sada će se malo zamorno, ali upit za umetanje 699 00:33:26,890 --> 00:33:28,310 bi u konačnici izgledati tako. 700 00:33:28,310 --> 00:33:30,970 >> Ako želim riješiti Scully, uh-oh, neka je odjaviti 701 00:33:30,970 --> 00:33:37,420 joj, ona briše njezin račun, izbrisati iz korisnike gdje ID jednakima 2, 702 00:33:37,420 --> 00:33:38,500 će se riješiti Scully. 703 00:33:38,500 --> 00:33:48,050 Ili mogu reći ažuriranje korisnici postaviti, recimo, što bismo mogli promijeniti? 704 00:33:48,050 --> 00:33:49,430 Pretpostavimo da se kreće. 705 00:33:49,430 --> 00:33:53,730 Set zip jednak 021-- Nope, to je njezina trenutna zip. 706 00:33:53,730 --> 00:33:54,487 90210. 707 00:33:54,487 --> 00:33:56,320 Jedini drugi poštanski broj Znam da u svijetu. 708 00:33:56,320 --> 00:33:59,002 Tako da će se promijeniti joj zip code-- zapravo, 709 00:33:59,002 --> 00:34:00,460 da neće promijeniti svoj poštanski broj. 710 00:34:00,460 --> 00:34:02,170 >> Što sam upravo učinio? 711 00:34:02,170 --> 00:34:04,292 Iako je sintaksa je vjerojatno novo. 712 00:34:04,292 --> 00:34:05,302 >> PUBLIKA: [nečujan] 713 00:34:05,302 --> 00:34:08,010 DAVID Malan: Da, i ja se preselio svima na Beverly Hillsu u Kaliforniji. 714 00:34:08,010 --> 00:34:11,920 Tako sam zapravo treba reci gdje ID jednak 2. 715 00:34:11,920 --> 00:34:12,820 I tako dalje. 716 00:34:12,820 --> 00:34:15,290 Dakle, SQL je sve o njima vrste uputa. 717 00:34:15,290 --> 00:34:20,260 Odaberite, umetanje, brisanje, ažuriranje, s tim predikata na kraju 718 00:34:20,260 --> 00:34:22,139 te gdje klauzule, da se tako izrazim. 719 00:34:22,139 --> 00:34:25,170 I tu je mnogo više možete učiniti, ali to zapravo samo svodi 720 00:34:25,170 --> 00:34:29,750 jednostavno, ako arcanely, izražavajući ono što želite je baza podataka za napraviti. 721 00:34:29,750 --> 00:34:31,580 >> A onda je baza podataka će shvatiti kada 722 00:34:31,580 --> 00:34:35,630 ubacite Lauren Scully Into the baza podataka, gdje da je smjesti u memoriju 723 00:34:35,630 --> 00:34:38,230 tako da možemo vrlo brzo dobiti ju na temelju njezine e-mail adresu 724 00:34:38,230 --> 00:34:42,610 ili na temelju njenog ID broja ili slično. 725 00:34:42,610 --> 00:34:43,391 Da, Dan. 726 00:34:43,391 --> 00:34:44,266 PUBLIKA: [nečujan] 727 00:34:44,266 --> 00:34:46,364 728 00:34:46,364 --> 00:34:47,780 DAVID Malan: Stvarno dobro pitanje. 729 00:34:47,780 --> 00:34:50,370 Hoće li ove skripte mijenjati od Microsoft Access Oracle 730 00:34:50,370 --> 00:34:52,290 MySQL PostgreSQL? 731 00:34:52,290 --> 00:34:53,790 Kratak odgovor je da to ovisi. 732 00:34:53,790 --> 00:34:58,697 U teoriji, postoji vrlo značajan zajednički podskup SQL 733 00:34:58,697 --> 00:35:00,780 koji dijeli na svim tih implementacije. 734 00:35:00,780 --> 00:35:03,340 Međutim, razni proizvođači ima dodatne značajke 735 00:35:03,340 --> 00:35:07,120 na njihovim bazama podataka učiniti određene stvari izvan opsega ovih značajki, 736 00:35:07,120 --> 00:35:08,720 koji bi, u stvari, slomiti. 737 00:35:08,720 --> 00:35:11,210 >> Dakle, način na programere zaštite od toga, 738 00:35:11,210 --> 00:35:14,350 je da umjesto pisanja sirovo SQL koda kao što pišem ovdje, 739 00:35:14,350 --> 00:35:19,460 oni su umjesto toga koristiti knjižnicu, zajednička knjižnica koja sama po sebi 740 00:35:19,460 --> 00:35:23,650 je vrsta više razine i sažeci daleko koji proizvod koji koristite. 741 00:35:23,650 --> 00:35:25,710 I to vam daje funkcije i procedure 742 00:35:25,710 --> 00:35:28,810 na poziv, tako da nikada zapravo pisati sirovo SQL. 743 00:35:28,810 --> 00:35:32,609 >> U teoriji, onda, možete promijeniti Proizvodi iz Oracle Microsoftu 744 00:35:32,609 --> 00:35:34,650 ili obrnuto ili ništa drugo, i doslovno 745 00:35:34,650 --> 00:35:36,920 promijeniti ništa o kodu. 746 00:35:36,920 --> 00:35:40,180 Stvarnost je, međutim, je li ponekad odustati značajke kao rezultat. 747 00:35:40,180 --> 00:35:43,860 Možda ste odabrali proizvod, jer to je dobio ove značajke na dodanu vrijednost, 748 00:35:43,860 --> 00:35:46,610 a ti si samo sada ne pomoću njih svjesno. 749 00:35:46,610 --> 00:35:51,630 >> I Anecdotally, većina tvrtki imaju tendenciju Nikad se odmaknuti od svoje baze podataka. 750 00:35:51,630 --> 00:35:54,002 Dakle, dok je to lijepo imati mogućnost, stvarnost 751 00:35:54,002 --> 00:35:55,960 je, ako ste remont baze podataka, ti si 752 00:35:55,960 --> 00:35:59,890 Vjerojatno što grozdove druge promjene u svakom slučaju, da se ne mora nužno 753 00:35:59,890 --> 00:36:01,360 potrebno je predvidjeti da. 754 00:36:01,360 --> 00:36:03,720 Dakle, to je nedvojbeno nad-inženjering problem, 755 00:36:03,720 --> 00:36:05,670 ali to stvarno ovisi o kontekstu. 756 00:36:05,670 --> 00:36:09,960 No, u teoriji, SQL se dijeli preko tih različitih proizvoda. 757 00:36:09,960 --> 00:36:11,560 Stvarno dobra pitanja. 758 00:36:11,560 --> 00:36:12,272 Da. 759 00:36:12,272 --> 00:36:13,147 >> PUBLIKA: [nečujan] 760 00:36:13,147 --> 00:36:17,820 761 00:36:17,820 --> 00:36:21,480 >> DAVID Malan: Da, tako možete misliti baze podataka 762 00:36:21,480 --> 00:36:25,020 je samo server, na kraju dana, a unutar tog servera 763 00:36:25,020 --> 00:36:28,670 je cijela hrpa tablice, redaka i stupaca. 764 00:36:28,670 --> 00:36:33,410 A kada poslati upit kao što je ovaj iz svog programa, vaše web stranice, 765 00:36:33,410 --> 00:36:39,340 napisan u Java, Ruby, Python, bez obzira, poslužitelj prima ovu naredbu 766 00:36:39,340 --> 00:36:41,660 i tumačenja u doslovce na isti način 767 00:36:41,660 --> 00:36:43,660 smo raspravljali ranije s interpretirana jezika, 768 00:36:43,660 --> 00:36:47,333 a zatim obavljanje neke akcije na nulu ili više redaka u nula ili više tablica. 769 00:36:47,333 --> 00:36:48,208 PUBLIKA: [nečujan] 770 00:36:48,208 --> 00:36:53,540 771 00:36:53,540 --> 00:36:55,070 >> DAVID Malan: Točno, točno. 772 00:36:55,070 --> 00:36:58,450 Tako je pseudokod za nešto kao što je to moglo biti to. 773 00:36:58,450 --> 00:37:02,450 U PHP datoteke ili vaš Python datoteka ili vaš Java datoteka, 774 00:37:02,450 --> 00:37:09,210 ti bi pseudokod kod, ili Blok-poput blokova kao, ako korisnik posjeti 775 00:37:09,210 --> 00:37:19,870 acme.com/register~~V za prvi put, zatim umetnuti u korisnika i tako dalje. 776 00:37:19,870 --> 00:37:22,619 I mi bi se prevesti ovo konkretniji broj na kraju. 777 00:37:22,619 --> 00:37:24,660 Ali stvarno, imamo sve gradivne ovdje, 778 00:37:24,660 --> 00:37:27,680 iako smo preskakanje neke od koraka provedbe. 779 00:37:27,680 --> 00:37:31,560 >> Pa neka mi zameriti što smo predivno to prije samo trenutak. 780 00:37:31,560 --> 00:37:36,470 Ti su stvorili prilično kompletna tablica za korisnike. 781 00:37:36,470 --> 00:37:38,920 Doduše, mogli bismo provesti to u nekoliko različitih načina, 782 00:37:38,920 --> 00:37:43,030 ali ti zaista doveli su nas niz path--, a ja vam kažem, 783 00:37:43,030 --> 00:37:48,080 ali to je vjerojatno moj fault-- o prilično neučinkovita implementacija baze podataka. 784 00:37:48,080 --> 00:37:49,950 To nije normaliziran. 785 00:37:49,950 --> 00:37:52,320 >> I normalizirana mislim tu će biti, 786 00:37:52,320 --> 00:37:57,380 tijekom vremena, značajan zalihost, i zato neučinkovitost, 787 00:37:57,380 --> 00:38:00,210 to je gubitak prostora. 788 00:38:00,210 --> 00:38:05,650 Na temelju samo ono što vidite ovdje, mogu isplanirati gdje je to rasipanje prostora 789 00:38:05,650 --> 00:38:08,710 će doći s vremenom, kao sve više i više korisnika registrirati 790 00:38:08,710 --> 00:38:10,860 za vaše web stranice? 791 00:38:10,860 --> 00:38:13,047 Koji podaci mogu biti višak? 792 00:38:13,047 --> 00:38:19,084 793 00:38:19,084 --> 00:38:20,940 >> PUBLIKA: [nečujan] 794 00:38:20,940 --> 00:38:22,686 >> DAVID Malan: Zašto misliš da je? 795 00:38:22,686 --> 00:38:23,561 PUBLIKA: [nečujan] 796 00:38:23,561 --> 00:38:32,180 797 00:38:32,180 --> 00:38:32,930 DAVID Malan: Da. 798 00:38:32,930 --> 00:38:35,622 I pretpostavimo za potrebe Od danas da je to istina. 799 00:38:35,622 --> 00:38:38,330 Ispostavilo se, a mi smo naučili ovaj teži način, to nije istina. 800 00:38:38,330 --> 00:38:41,670 Nekako više gradova imaju, nekako, isto poštanski broj, 801 00:38:41,670 --> 00:38:43,390 koji razbija ovaj prekrasni intuiciju. 802 00:38:43,390 --> 00:38:46,180 No, pretpostavimo da je to istina, jer je gotovo uvijek točno. 803 00:38:46,180 --> 00:38:51,390 Dakle, pretpostavimo da je poštanski broj uvijek povezani s istom gradu 804 00:38:51,390 --> 00:38:53,600 i država, koja je vrsta razumne pretpostavke, 805 00:38:53,600 --> 00:38:54,840 ali netočno, ispada. 806 00:38:54,840 --> 00:38:57,310 No, razumna pretpostavka za današnje potrebe. 807 00:38:57,310 --> 00:39:01,650 >> Onda pretpostavljam da živim u Cambridge, MA, prema ovom korisnikova stola, 808 00:39:01,650 --> 00:39:04,100 i pretpostavimo da Lauren Scully živi u Cambridge, MA, 809 00:39:04,100 --> 00:39:06,120 i pretpostavimo da Kareem živi u Cambridge, MA, 810 00:39:06,120 --> 00:39:10,400 i Arwa živi u Cambridgeu, MA, sve nas u 02138. 811 00:39:10,400 --> 00:39:15,890 Zašto smo sjećanje Cambridge, MA, 02138 za sve nas četvero? 812 00:39:15,890 --> 00:39:18,903 Što bi trebao biti dovoljan za pamćenje? 813 00:39:18,903 --> 00:39:20,249 >> PUBLIKA: [nečujan] 814 00:39:20,249 --> 00:39:21,540 DAVID Malan: Samo poštanski broj. 815 00:39:21,540 --> 00:39:25,080 Samo da 02.138 postoji, jer znate što smo mogli učiniti? 816 00:39:25,080 --> 00:39:32,650 Mogli bismo se malo maštu ovdje i ovdje, definira drugu tablicu 817 00:39:32,650 --> 00:39:35,850 ako je to će biti ime, to će biti tip, 818 00:39:35,850 --> 00:39:38,840 ovo će biti Dužina i ubuduće, ja sam 819 00:39:38,840 --> 00:39:42,900 nazvati ovaj moj gradovi stol. 820 00:39:42,900 --> 00:39:47,011 To se zove, od Naravno, moja korisnici stol. 821 00:39:47,011 --> 00:39:49,885 I što bih trebao staviti ovdje za moj gradova stola, što misliš? 822 00:39:49,885 --> 00:39:53,605 823 00:39:53,605 --> 00:39:54,535 >> PUBLIKA: [nečujan] 824 00:39:54,535 --> 00:39:55,930 >> DAVID Malan: Da. 825 00:39:55,930 --> 00:40:01,440 Dakle, zip i državu i grad. 826 00:40:01,440 --> 00:40:05,350 I tako je tip ovdje, mi ćemo reći ovo će biti char 5 opet, 827 00:40:05,350 --> 00:40:06,750 predmet rasprave od ranije. 828 00:40:06,750 --> 00:40:14,810 To će biti enum, možda kao prije, a grad će biti varchar 50. 829 00:40:14,810 --> 00:40:17,960 I što sad da dobijem izbrisati iz ove tablice 830 00:40:17,960 --> 00:40:21,995 kako bi se uklonili tu neučinkovitost? 831 00:40:21,995 --> 00:40:23,100 >> PUBLIKA: [nečujan] 832 00:40:23,100 --> 00:40:23,850 DAVID Malan: Nice. 833 00:40:23,850 --> 00:40:30,239 Država i grad ide dalje, pa sam sad eliminira potencijalne neučinkovitost 834 00:40:30,239 --> 00:40:33,280 za redundantly sjećanja, Cambridge, MA, Cambridge, MA, Cambridge, MA, 835 00:40:33,280 --> 00:40:35,712 Cambridge, MA, koji je, nadam se se nikada neće promijeniti. 836 00:40:35,712 --> 00:40:37,670 A čak i ako to ne, to je minorly neugodno, sada 837 00:40:37,670 --> 00:40:39,750 da moram promijeniti to u više redova, 838 00:40:39,750 --> 00:40:43,770 a ovdje sam se i samo promijeniti ga na jednom mjestu. 839 00:40:43,770 --> 00:40:46,890 >> Sada ono što je trade-off, možda? 840 00:40:46,890 --> 00:40:48,020 To je super povoljno. 841 00:40:48,020 --> 00:40:50,730 Da je sve moje podatke lijepo zajedno. 842 00:40:50,730 --> 00:40:53,644 No, ono što je očito slučaj sada? 843 00:40:53,644 --> 00:40:55,684 >> PUBLIKA: [nečujan] 844 00:40:55,684 --> 00:40:58,100 DAVID Malan: Točno, i ja sam drago što koristi riječ pridruže, 845 00:40:58,100 --> 00:41:01,320 jer to je zapravo ključna riječ, u svijetu relacijske baze podataka 846 00:41:01,320 --> 00:41:05,270 u SQL, to je stvarno riječ koju ste Možda upisati ili barem prenijeti. 847 00:41:05,270 --> 00:41:09,280 A u stvari, ono što sada morate učiniti za odabir Davidov puna informacija 848 00:41:09,280 --> 00:41:19,700 nešto poput odaberite zvijezde iz Korisnici, pridružite gradove, on-- i sad 849 00:41:19,700 --> 00:41:24,010 Idem samo premjestiti na drugu liniju tako da je ova fits-- users.zip jednak 850 00:41:24,010 --> 00:41:34,570 cities.zip, gdje users.ID jednak 1. 851 00:41:34,570 --> 00:41:35,550 >> I što ima? 852 00:41:35,550 --> 00:41:38,970 To je ružno izgleda, ali možete vrsta čitati s lijeva na desno, odozgo prema dolje. 853 00:41:38,970 --> 00:41:41,030 Odaberite zvijezda od korisnika je isto kao i prije, 854 00:41:41,030 --> 00:41:42,930 ali to nije od korisnika, po sebi. 855 00:41:42,930 --> 00:41:45,910 To je iz korisnici pridružiti gradovima. 856 00:41:45,910 --> 00:41:48,520 Što sam ja pridružio ta dva stola dalje? 857 00:41:48,520 --> 00:41:51,820 Pa, očito, korisnička tablica zip polje, 858 00:41:51,820 --> 00:41:54,810 a to razdoblje je samo poseban sintaksa izraziti tu ideju, 859 00:41:54,810 --> 00:41:58,130 i to je po gradovima tablice zip polje. 860 00:41:58,130 --> 00:42:01,580 Želim one dvije biti jednaki, ali želim da na kraju odabrati 861 00:42:01,580 --> 00:42:06,280 samo one retke gdje ID u tablici korisnike 862 00:42:06,280 --> 00:42:08,730 jednak 1, što se dogodilo da se moji. 863 00:42:08,730 --> 00:42:11,781 >> I samo da bude jasno, A programer, obično kada 864 00:42:11,781 --> 00:42:14,780 ugrađuju nešto poput broja 1, jer bi u suprotnom samo web stranice 865 00:42:14,780 --> 00:42:17,630 podržava Davida ili Prvi korisnik, 866 00:42:17,630 --> 00:42:20,720 da će umjesto toga učiniti nešto poput ID, gdje 867 00:42:20,720 --> 00:42:22,510 To predstavlja varijabla, nešto što 868 00:42:22,510 --> 00:42:26,210 može se mijenjati tijekom vremena, slično u duhu onoga što sam rekao ranije 869 00:42:26,210 --> 00:42:28,080 s takvim rezervirana. 870 00:42:28,080 --> 00:42:30,396 No, za sada smo samo ću ga ugrađuju kao 1. 871 00:42:30,396 --> 00:42:31,520 I tako, što to znači? 872 00:42:31,520 --> 00:42:35,100 Pa, lijep način za vizualizaciju ovo da, ako ova ruka je korisnik stol, 873 00:42:35,100 --> 00:42:38,090 a ova ruka je poštanskih brojeva stol, mi smo vrsta finding-- 874 00:42:38,090 --> 00:42:41,330 a vrhovi prstiju su zip ovdje, a vrhovi prstiju 875 00:42:41,330 --> 00:42:43,740 ovdje su zip, ti si vrsta je uzajamno 876 00:42:43,740 --> 00:42:47,950 tako da ćete dobiti natrag nastala Izvorna tablica, koje zaista ulaskom 877 00:42:47,950 --> 00:42:49,590 Dvije ploče na zajedničkom polju. 878 00:42:49,590 --> 00:42:50,840 I to ne mora biti zip. 879 00:42:50,840 --> 00:42:54,460 To bi mogla biti najviše bilo što drugo, ali zip je lijepo, jer je jedan, to je kratko, 880 00:42:54,460 --> 00:42:56,470 dva, to je uvijek jednake duljine, tako da 881 00:42:56,470 --> 00:43:02,270 pravi učinkovitost na ono Olivier je predložio ovdje 882 00:43:02,270 --> 00:43:05,200 sa izuzimanjem zip, i [Nečujan] predlaže da se riješimo 883 00:43:05,200 --> 00:43:07,110 od grada i države. 884 00:43:07,110 --> 00:43:11,370 >> Dakle, to je proces poznat kao normalizaciji. 885 00:43:11,370 --> 00:43:14,171 Bilo kakva pitanja o tome? 886 00:43:14,171 --> 00:43:16,170 Pa neka mi naglasiti to je vrsta stvari, 887 00:43:16,170 --> 00:43:19,202 iako je prilično niske razine, ova rasprava, da li mislite da bi 888 00:43:19,202 --> 00:43:20,910 ste vrsta dobivanje izgubljen u korov, 889 00:43:20,910 --> 00:43:26,690 ova je manifestacija dovoljno prilika za programere da bude loše. 890 00:43:26,690 --> 00:43:29,600 A u stvari, čak i kada smo u tečajevi sam učio, kad smo imali, 891 00:43:29,600 --> 00:43:32,290 Na primjer, neiskusan preddiplomski programera 892 00:43:32,290 --> 00:43:35,920 izgraditi web stranice, na prvi pogled, web stranice može izgledati sjajno. 893 00:43:35,920 --> 00:43:38,280 I oni imaju sve od Funkcionalnost smo zatražili, 894 00:43:38,280 --> 00:43:40,650 programeri napravili su dobar posao. 895 00:43:40,650 --> 00:43:43,370 >> No, oni nisu nužno znati dovoljno o dizajnu baze podataka 896 00:43:43,370 --> 00:43:46,680 ili oni ne misle teško dovoljno o vrstama podataka 897 00:43:46,680 --> 00:43:49,220 i vrste korisnike Web stranica će imati, 898 00:43:49,220 --> 00:43:53,240 a mi smo pronašli, a zatim, šest mjeseci kasnije, nakon što su diplomirali ili se preselili na, 899 00:43:53,240 --> 00:43:56,016 to dovraga, naše web stranice stvarno, stvarno sporo. 900 00:43:56,016 --> 00:43:58,890 A nisam ni govoriti o vlasništvo milijuni ili tisuće korisnika. 901 00:43:58,890 --> 00:44:02,580 Mislim nekoliko stotina korisnika na kampusu, od kojih svi vole, na primjer, 902 00:44:02,580 --> 00:44:04,870 shop za tečajeve u U isto vrijeme, oni su 903 00:44:04,870 --> 00:44:07,010 koristiti taj katalog tečaj Zahtjev sam spomenuo 904 00:44:07,010 --> 00:44:10,410 a stvar je uzimajući stvarno sporo jer nije bilo indeksa. 905 00:44:10,410 --> 00:44:13,740 Nije bilo crvene zvijezde, tako da se govoriti, ili smo imali nije nužno 906 00:44:13,740 --> 00:44:17,690 uračunata zajedničke podatke dobiti neke uštede prostora. 907 00:44:17,690 --> 00:44:21,880 >> I tako, kada provjere programer ili baze podataka osobe ili slično, 908 00:44:21,880 --> 00:44:25,864 vrste pitanja za razmišljanje je čak, pri razmatranju nečiji kod, 909 00:44:25,864 --> 00:44:28,530 reći, a ne nužno izgledati kroz sve njihove koda, ali kažem, 910 00:44:28,530 --> 00:44:30,154 Pogledajmo kroz tablicama baze podataka. 911 00:44:30,154 --> 00:44:31,150 Što spremanje? 912 00:44:31,150 --> 00:44:33,941 A onda će reći, dobro, pričekajte minute, zašto koristite cijele brojeve? 913 00:44:33,941 --> 00:44:36,224 Što ako imamo 4 milijarde a jedan od tih redaka? 914 00:44:36,224 --> 00:44:38,140 I ove vrste Pitanja je prilika 915 00:44:38,140 --> 00:44:40,170 da vrsta gurnuti natrag i dobiti osjećaj, gdje 916 00:44:40,170 --> 00:44:42,300 Ako se ne usudite to, da netko više tehničkih 917 00:44:42,300 --> 00:44:45,425 postaviti ova pitanja, da li ili ne osoba ne zna njihove stvari. 918 00:44:45,425 --> 00:44:47,890 I to je vrsta stvari, također, da su ljudi 919 00:44:47,890 --> 00:44:50,540 na internetu koji su samouki, možda 920 00:44:50,540 --> 00:44:53,920 naučiti nešto rjeđe, jer ti nužno ne dolaze preko njega 921 00:44:53,920 --> 00:44:56,630 koliko, jer možete dobiti baza podataka gore i trčanje, 922 00:44:56,630 --> 00:44:58,880 ali ako ste pročitali na tutoriale ili bilo 923 00:44:58,880 --> 00:45:01,880 rekao o normalizacija baze podataka i indeksiranje i performansi, 924 00:45:01,880 --> 00:45:04,255 To su vrste stvari koji će te povrijediti. 925 00:45:04,255 --> 00:45:07,480 I što mislite, bilo loše inženjer moglo bi se reći, oh, dobro, bolje da plati 926 00:45:07,480 --> 00:45:09,600 za veći baze podataka ili brži baze podataka 927 00:45:09,600 --> 00:45:13,360 ili samo bacati novac na ovaj, vertikalno mjerilo, nije nužno tako. 928 00:45:13,360 --> 00:45:16,920 Ako idete in-- i možete ići u nakon fact-- i dodati indeksa, 929 00:45:16,920 --> 00:45:20,320 a to bi moglo potrajati nekoliko sati za baza podataka za izgradnju tog novog podataka 930 00:45:20,320 --> 00:45:24,100 Struktura da sam aludirao na ranije, još uvijek možete popraviti to nakon što je činjenica, 931 00:45:24,100 --> 00:45:26,180 da ovo je mjesto gdje vas početi razlikovati 932 00:45:26,180 --> 00:45:28,830 dobri dizajneri iz loše dizajneri, a ne samo estetski, 933 00:45:28,830 --> 00:45:32,972 ali pametna izvedba, kao dobro. 934 00:45:32,972 --> 00:45:33,555 Ima li pitanja? 935 00:45:33,555 --> 00:45:36,420 936 00:45:36,420 --> 00:45:37,480 Ne? 937 00:45:37,480 --> 00:45:41,980 Tako je za NoSQL, što je bila druga vrsta baze podataka na koje sam aludirao ranije, 938 00:45:41,980 --> 00:45:43,490 nemate redaka i stupaca. 939 00:45:43,490 --> 00:45:47,000 Umjesto toga, ti bi nešto da izgleda malo više kao što je ovaj. 940 00:45:47,000 --> 00:45:48,630 Idem koristiti zdrav sintaksu. 941 00:45:48,630 --> 00:45:51,270 Vitičastim zagradama dogoditi Ovdje se koristi dosta. 942 00:45:51,270 --> 00:45:55,400 Možda ćete imati nešto kao prvo ime je David, 943 00:45:55,400 --> 00:46:00,180 možda ste prošli ime je Malan, citati, 944 00:46:00,180 --> 00:46:07,530 možda imate ID is-- oprostite, whoops-- ID je 1, 945 00:46:07,530 --> 00:46:13,410 e-mail je malan@harvard.edu i neću smetaju upisivanjem ostatak, a zatim 946 00:46:13,410 --> 00:46:14,380 neke druge stvari. 947 00:46:14,380 --> 00:46:17,380 >> Drugim riječima, to je tekstualni prikaz 948 00:46:17,380 --> 00:46:20,720 onoga što bi se općenito nazvati objekt u računalni program. 949 00:46:20,720 --> 00:46:26,079 A objekt je uglavnom samo skup ključnih parova vrijednosti. 950 00:46:26,079 --> 00:46:27,370 Pa opet, to se ponavlja tema. 951 00:46:27,370 --> 00:46:30,440 Vidjeli smo ključ parova u HTML-u, vidjeli smo ključne parova sada 952 00:46:30,440 --> 00:46:34,020 u kontekstu baza podataka, a mi Vidio ključnih parova u kontekstu 953 00:46:34,020 --> 00:46:35,970 od, mislim, jezik ranije danas. 954 00:46:35,970 --> 00:46:36,890 Održava dolaze gore. 955 00:46:36,890 --> 00:46:39,620 I doista, to je stvarno koji podaci se svodi na, 956 00:46:39,620 --> 00:46:44,240 podataka i metapodataka, odnosno vrijednosti i ključevi, redom. 957 00:46:44,240 --> 00:46:47,430 >> Dakle, ne-relacijskim baze podataka, nešto na bazi 958 00:46:47,430 --> 00:46:50,680 na objekte, gdje se samo pramen sve zajedno i staviti ga 959 00:46:50,680 --> 00:46:55,640 u memoriju, obično će biti prikazana kao, ili misao, kao što je ovaj. 960 00:46:55,640 --> 00:47:00,500 A ja ću ostaviti da se sada kao vrsta alternativnog pristupa. 961 00:47:00,500 --> 00:47:03,750 I jedan nije nužno bolji od drugih. 962 00:47:03,750 --> 00:47:07,310 U stvari, jako puno u modi ovih dana su sustavi baze podataka 963 00:47:07,310 --> 00:47:11,942 kao MongoDB i Redis i nekoliko drugih takvih alata, slobodno dostupan, 964 00:47:11,942 --> 00:47:13,400 ali oni su sve hr modi. 965 00:47:13,400 --> 00:47:18,850 Djelomično zato što oni nude dodatne ima više tih tabelarnom pristupa, 966 00:47:18,850 --> 00:47:20,850 nego i zato što su malo lakše za korištenje, 967 00:47:20,850 --> 00:47:24,099 jer ne morate razmišljati kao tvrdo o puno tih dizajnerske odluke. 968 00:47:24,099 --> 00:47:25,970 Dakle, plusevima i minusima. 969 00:47:25,970 --> 00:47:29,740 Dakle realizirati postoje mogućnosti izvan onoga što smo upravo proveli vrijeme na. 970 00:47:29,740 --> 00:47:32,310 >> Tako ćemo to učiniti. 971 00:47:32,310 --> 00:47:37,870 Recimo prijelaz malo natrag sada na web programiranje, 972 00:47:37,870 --> 00:47:40,470 tako da mi nekako zaključiti Danas s nešto 973 00:47:40,470 --> 00:47:43,930 To je malo kazaljka-na, punjenje u nekim praznine od jučer. 974 00:47:43,930 --> 00:47:45,340 Pusti me da se ovaj prvi. 975 00:47:45,340 --> 00:47:49,310 Dakle, podsjetiti da je jučer imali smo neke kanonske HTML 976 00:47:49,310 --> 00:47:55,110 stranice koje su u početku, samo HTML, a onda sekundarno imao CSS, 977 00:47:55,110 --> 00:47:56,620 CSS. 978 00:47:56,620 --> 00:47:59,830 Ovo je nova oznaka da nismo vidi jučer, ili boraviti na, 979 00:47:59,830 --> 00:48:01,490 Takozvani oznake skripte. 980 00:48:01,490 --> 00:48:05,830 >> Ispostavilo se da zapravo možete ugraditi jezik zove JavaScript u Vašem web 981 00:48:05,830 --> 00:48:08,310 stranica i napraviti svoj web Stranice nešto učiniti. 982 00:48:08,310 --> 00:48:09,710 Što mislim pod tim? 983 00:48:09,710 --> 00:48:12,630 Pa, dopustite mi ići naprijed i samo posuditi ovaj kod na trenutak. 984 00:48:12,630 --> 00:48:15,860 Ja ću ići u Cloud9, nema potrebe ići tamo sami samo još, 985 00:48:15,860 --> 00:48:21,350 a ja ću nazvati ovu alert.HTML. 986 00:48:21,350 --> 00:48:23,650 Idem zalijepiti u mojoj datoteci ovdje. 987 00:48:23,650 --> 00:48:32,070 I samo da pojasnimo ono što sam učinio, neka da odem na ovu adresu i otići upozoriti, 988 00:48:32,070 --> 00:48:33,870 i vidite Hello World. 989 00:48:33,870 --> 00:48:35,440 >> No, to je neka vrsta underwhelming. 990 00:48:35,440 --> 00:48:37,410 Želim učiniti nešto malo drugačiji. 991 00:48:37,410 --> 00:48:40,610 Tako ću zapravo to učiniti. 992 00:48:40,610 --> 00:48:43,820 Ja ću ići u ovdje e, a između mojih oznaka skripte, 993 00:48:43,820 --> 00:48:53,460 kažu upozorenja ( "Hello, world '); tako da obavijest to je malo neuredan, ali imam HTML, 994 00:48:53,460 --> 00:48:56,180 unutar koje je jezik se zove JavaScript, 995 00:48:56,180 --> 00:48:59,420 i to je ono što se zove Funkcija poziva ili postupak poziva. 996 00:48:59,420 --> 00:49:04,500 To je glagol, doslovno, u ovom slučaju, a ja pozivajući se kod funkcije 997 00:49:04,500 --> 00:49:06,310 da je netko drugi napisao. 998 00:49:06,310 --> 00:49:09,630 >> Tako da funkcionalnost je oprezan, pa idemo na ovu stranicu 999 00:49:09,630 --> 00:49:14,046 Sada i kliknite reload, i sada vidi malo interaktivnosti. 1000 00:49:14,046 --> 00:49:15,420 To je vrsta stara škola i ružno. 1001 00:49:15,420 --> 00:49:18,580 Ovakva vas podsjeća na pop-up, možda, prošla 1002 00:49:18,580 --> 00:49:22,030 ali je to nešto malo više programatski. 1003 00:49:22,030 --> 00:49:26,940 >> Pa i više od toga, neka je učiniti nešto zanimljivije. 1004 00:49:26,940 --> 00:49:30,980 Pusti me ovdje i riješiti to. 1005 00:49:30,980 --> 00:49:33,840 I ja ću ići naprijed i stvoriti obrazac kao što smo učinili jučer. 1006 00:49:33,840 --> 00:49:34,840 Zapravo, znate što? 1007 00:49:34,840 --> 00:49:37,350 Ja ću ići u google.html, koje smo 1008 00:49:37,350 --> 00:49:43,027 započeo je jučer, koji je izgledao kao ova, preko kojih smo tražili mačka 1009 00:49:43,027 --> 00:49:45,360 Ali primijetite da postoji neka vrsta bug u trenutnoj verziji. 1010 00:49:45,360 --> 00:49:49,770 Ona radi za mačke, ali pretpostavimo da Ja ne surađuju i ja upisati ništa, 1011 00:49:49,770 --> 00:49:53,290 i ja jednostavno kliknite submit. 1012 00:49:53,290 --> 00:49:54,540 To je vrsta čudno ponašanje. 1013 00:49:54,540 --> 00:49:57,300 Uzeo me na pravi Google, nije mi dati poruku o pogrešci. 1014 00:49:57,300 --> 00:50:00,590 Htio bih reći korisniku morate nam dati vrijednost. 1015 00:50:00,590 --> 00:50:01,780 >> Pa kako bismo mogli to učiniti? 1016 00:50:01,780 --> 00:50:06,790 Pa neka mi se vratiti u Cloud9 i pusti me u vrhu moje stranice 1017 00:50:06,790 --> 00:50:11,980 i dodati oznaku original kao što je ovaj, gdje Idem upisati JavaScript kod. 1018 00:50:11,980 --> 00:50:15,420 I ja ću učiniti sljedeće. 1019 00:50:15,420 --> 00:50:22,910 Ako (document.getelementByID-- i opoziva da smo razgovarali o tome i ranije, 1020 00:50:22,910 --> 00:50:23,960 da je funkcija. 1021 00:50:23,960 --> 00:50:25,310 Što ID želim dobiti? 1022 00:50:25,310 --> 00:50:33,050 Želim da se q, a ja ću recimo jednaka ništa, kao što učinimo, 1023 00:50:33,050 --> 00:50:38,220 zapravo neka mi koristiti dvostruke navodnike samo za consistency-- jednak ništa, 1024 00:50:38,220 --> 00:50:46,650 onda alert ( "Unesite upit") ovdje. 1025 00:50:46,650 --> 00:50:49,200 >> Dakle, imam ono što se čini nešto poput stanju. 1026 00:50:49,200 --> 00:50:51,410 Vidjeli smo ovu opću ideju u nule. 1027 00:50:51,410 --> 00:50:54,240 To je kao jedan od onih slagalice komadi koji su izgledali ovako. 1028 00:50:54,240 --> 00:50:55,780 A što sam ja rekao? 1029 00:50:55,780 --> 00:50:59,520 Pa, ovdje dolje, primijetit sam učiniti sljedeće. 1030 00:50:59,520 --> 00:51:02,790 Ja ću dati ovaj obrazac polje ne samo naziv q, koji je 1031 00:51:02,790 --> 00:51:06,630 je ono što dobiva prošao na Googleu, ali ja sam će dati lokalnu identifikator, 1032 00:51:06,630 --> 00:51:07,630 koji se nazivaju q. 1033 00:51:07,630 --> 00:51:11,780 Ali mogao sam nazvati ovaj se išta žele, ja sam samo ide dalje ostane jednostavan 1034 00:51:11,780 --> 00:51:14,570 a također ga zovu q, samo radi jednostavnosti. 1035 00:51:14,570 --> 00:51:17,650 >> A sada idem raditi nešto malo više. 1036 00:51:17,650 --> 00:51:22,600 Na polja obrasca ovdje, idem dodaj ono što se zove događaj rukovatelj. 1037 00:51:22,600 --> 00:51:32,260 Na predati, želim pozvati funkcija zove potvrdi. 1038 00:51:32,260 --> 00:51:35,520 To još uvijek ne postoji, ovaj riječ, ili ovaj glagol provjeriti, 1039 00:51:35,520 --> 00:51:38,560 jer ono što ću učiniti ovdje je dodati neki kod. 1040 00:51:38,560 --> 00:51:42,200 >> Ja ću reći funkciju Potvrdi. 1041 00:51:42,200 --> 00:51:48,280 Idem uvukli to i dodati još jedan kovrčava brace ovdje, a drugi ovdje. 1042 00:51:48,280 --> 00:51:50,110 Razmislite što to sada radi. 1043 00:51:50,110 --> 00:51:54,210 Imam now-- misliti na to kako je stvorena moja vlastiti puzzle komad koji nije prethodno 1044 00:51:54,210 --> 00:51:57,440 postoje, a ja sam nazvao puzzle komadu Provjeri slagalice. 1045 00:51:57,440 --> 00:52:01,620 Njegova je svrha u životu je da izvrši četiri linije koda unutar nje. 1046 00:52:01,620 --> 00:52:04,940 >> Ako document.getElementByID tako konceptualno, 1047 00:52:04,940 --> 00:52:09,380 koji će ići u elementu, HTML element čija je jedinstvena 1048 00:52:09,380 --> 00:52:12,930 Ideja je samo q, a onda čak i sintaksa izgleda malo čudno, 1049 00:52:12,930 --> 00:52:16,430 da ravnopravno jednak samo znači jednakima. 1050 00:52:16,430 --> 00:52:20,950 Dakle, to znači da ako je element s Jedinstveni identifikator q, kada je stečen, 1051 00:52:20,950 --> 00:52:25,700 nema vrijednosti, to je samo jednak citat citat, ništa u njemu, 1052 00:52:25,700 --> 00:52:27,170 onda ono što želim učiniti? 1053 00:52:27,170 --> 00:52:29,360 Želim vikati na korisnika. 1054 00:52:29,360 --> 00:52:31,710 >> I nećemo detaljno ovdje. 1055 00:52:31,710 --> 00:52:32,960 Idem return false. 1056 00:52:32,960 --> 00:52:34,380 To je pogreška. 1057 00:52:34,380 --> 00:52:38,746 Inače, ja ću se vratiti istina. 1058 00:52:38,746 --> 00:52:40,120 Dakle, bilo je to radio ili nije. 1059 00:52:40,120 --> 00:52:41,800 Netočno ili točno. 1060 00:52:41,800 --> 00:52:47,820 A sada, ako nisam napravio nikakve greške, neka me spasi ovo i učitajte. 1061 00:52:47,820 --> 00:52:50,940 I neka mi samo provjeriti da Nisam, zapravo, napraviti bilo kakve greške u pisanju, 1062 00:52:50,940 --> 00:52:52,690 tako da ne osramotiti se. 1063 00:52:52,690 --> 00:52:54,240 Da vidimo je li se to radi. 1064 00:52:54,240 --> 00:52:56,930 >> Dakle, sada ću upisati mačke. 1065 00:52:56,930 --> 00:52:59,421 Ona još uvijek radi, ili pola radove, najmanje. 1066 00:52:59,421 --> 00:53:02,170 Sada neka mi ga ponovno, a sada neka ja pokušati poslati bez tipkanja 1067 00:53:02,170 --> 00:53:05,860 anything-- dovraga, to razbio. 1068 00:53:05,860 --> 00:53:06,430 Jedan trenutak. 1069 00:53:06,430 --> 00:53:09,380 1070 00:53:09,380 --> 00:53:12,660 Dopustite mi da otvorite konzolu, [Nečujan] prijavite se, ponovno učitati stranicu. 1071 00:53:12,660 --> 00:53:13,576 Dopustite mi da pokušam ponovo. 1072 00:53:13,576 --> 00:53:17,000 1073 00:53:17,000 --> 00:53:17,501 Oh, k vragu. 1074 00:53:17,501 --> 00:53:18,000 Zaboravio sam. 1075 00:53:18,000 --> 00:53:18,630 I pogriješili. 1076 00:53:18,630 --> 00:53:20,760 Sjećam se što je to. 1077 00:53:20,760 --> 00:53:21,350 .vrijednost. 1078 00:53:21,350 --> 00:53:27,060 Htio sam reći, ako je vrijednost elementa čiji ID je q 1079 00:53:27,060 --> 00:53:29,800 jednak, onda vikati na korisnika. 1080 00:53:29,800 --> 00:53:31,870 >> Pa sad neka mi držati moj dah opet. 1081 00:53:31,870 --> 00:53:33,480 Idemo. 1082 00:53:33,480 --> 00:53:34,130 Idemo tamo. 1083 00:53:34,130 --> 00:53:35,010 Unesite upit. 1084 00:53:35,010 --> 00:53:36,840 Dakle, to nije me pustiti preko. 1085 00:53:36,840 --> 00:53:40,210 Mogu biti vrsta zaigran s tim, i umjesto da provjere bez vrijednosti, 1086 00:53:40,210 --> 00:53:46,720 Mogu reći nešto poput: Nema više u potrazi za mačke, 1087 00:53:46,720 --> 00:53:51,150 i sada možemo samo još u igri neka korisnik potraga za pse, ako on ili ona 1088 00:53:51,150 --> 00:53:57,490 želi, ili ako idem ovamo i tražiti mačke, sada ne mogu. 1089 00:53:57,490 --> 00:53:58,690 >> Zato što je takeaway ovdje? 1090 00:53:58,690 --> 00:54:03,010 Dakle, jedan, uveli smo u naš svijet HTML i CSS, 1091 00:54:03,010 --> 00:54:04,320 programiranje funkcionalnost. 1092 00:54:04,320 --> 00:54:06,300 Ne mogu zapravo sada donositi odluke u kodu. 1093 00:54:06,300 --> 00:54:10,570 Prije toga, sve što sam mogao učiniti je obilježavati tekstualnih sadržaja ili grafički sadržaj 1094 00:54:10,570 --> 00:54:13,080 i reći što treba obratiti pažnju kao što je i gdje je moguće prikazati. 1095 00:54:13,080 --> 00:54:16,650 Sada sam zapravo pitati pitanja na web-stranici 1096 00:54:16,650 --> 00:54:20,010 i donositi odluke na temelju na njega, i zatražiti od korisnika 1097 00:54:20,010 --> 00:54:22,780 ako moram vikati na njega ili nju. 1098 00:54:22,780 --> 00:54:28,740 >> Tako ćemo pokušati nešto na svoje s ovim. 1099 00:54:28,740 --> 00:54:33,350 Ajde, neka mi se otvoriti sljedeći slajd ovdje, i samo ukazati na jednu stvar. 1100 00:54:33,350 --> 00:54:37,250 Baš kao i sa CSS, možemo faktor van naš JavaScript kôd na zasebnu datoteku, 1101 00:54:37,250 --> 00:54:40,660 možete učiniti istu stvar s JavaScriptom kao i CSS. 1102 00:54:40,660 --> 00:54:44,520 A vi koristite da koristite izvora atribut o skripti oznaku. 1103 00:54:44,520 --> 00:54:46,540 No, nećemo komplicirati stvari za sada. 1104 00:54:46,540 --> 00:54:50,440 Umjesto toga, ako bi mogao ići na ne ovoj stranici, 1105 00:54:50,440 --> 00:55:02,690 but-- neka me premjestiti ovaj okolo u order-- ići, ako bi mogli, ovu stranicu ovdje. 1106 00:55:02,690 --> 00:55:03,592 Ovaj URL ovdje. 1107 00:55:03,592 --> 00:55:04,550 To je u današnjem slajdova. 1108 00:55:04,550 --> 00:55:07,133 Možda ćete morati ponovno učitati, jer Ja sam dodao par stvari. 1109 00:55:07,133 --> 00:55:09,970 1110 00:55:09,970 --> 00:55:13,890 >> No, tamo gdje su neki zagonetke čekaju. 1111 00:55:13,890 --> 00:55:16,670 A to će nam dati priliku, u nešto više zabave kontekstu, 1112 00:55:16,670 --> 00:55:20,610 brljati s nekim JavaScript. 1113 00:55:20,610 --> 00:55:25,505 A kad dođete tamo, Ja ću objasniti što čeka. 1114 00:55:25,505 --> 00:55:47,350 1115 00:55:47,350 --> 00:55:47,850 Dobiti zeleno. 1116 00:55:47,850 --> 00:56:03,063 1117 00:56:03,063 --> 00:56:03,562 Postavi plava. 1118 00:56:03,562 --> 00:56:11,030 1119 00:56:11,030 --> 00:56:13,930 Postavlja zelena, postavlja crveno. 1120 00:56:13,930 --> 00:56:19,220 1121 00:56:19,220 --> 00:56:20,220 Ups. 1122 00:56:20,220 --> 00:56:22,330 Oprostite. 1123 00:56:22,330 --> 00:56:27,630 >> To je stupanj naše dokumentacija za taj izazov. 1124 00:56:27,630 --> 00:56:29,920 A to ide na posao, kako slijedi. 1125 00:56:29,920 --> 00:56:33,340 Dakle, ono što imate na to Stranica je cijela hrpa 1126 00:56:33,340 --> 00:56:38,024 slikovnih zagonetke prijatelj na Sveučilištu Stanford. 1127 00:56:38,024 --> 00:56:41,190 Dakle, ono što vidite ovdje je gotovo vrsta jedan od onih čarobnih očiju zagonetke, 1128 00:56:41,190 --> 00:56:43,815 ali ako samo buljiti u njega, ništa ne će iskočiti na vas. 1129 00:56:43,815 --> 00:56:46,000 Umjesto toga, nešto je skriveni na ovoj slici. 1130 00:56:46,000 --> 00:56:47,790 I to je skriveno na sljedeći način. 1131 00:56:47,790 --> 00:56:51,740 Slike, kao što vjerojatno znate, može biti sastoji se od samo tri boje. 1132 00:56:51,740 --> 00:56:53,346 Neki crvene, nešto plavo, a neki zeleni. 1133 00:56:53,346 --> 00:56:55,220 I možemo napraviti sve Boje u duginim 1134 00:56:55,220 --> 00:56:57,570 miješanjem te tri boje nekako. 1135 00:56:57,570 --> 00:57:01,940 >> Dakle, ovo izgleda uglavnom zeleno i plava, ali kao Nick kaže ovdje, 1136 00:57:01,940 --> 00:57:04,060 ovo željezo puzzle slika puzzle. 1137 00:57:04,060 --> 00:57:06,780 Ona sadrži snimku nešto poznato, međutim, 1138 00:57:06,780 --> 00:57:08,310 slika je iskrivljena. 1139 00:57:08,310 --> 00:57:11,500 Poznati objekt u crvenim vrijednosti. 1140 00:57:11,500 --> 00:57:13,810 Međutim, crvena vrijednosti svi su podijeljena 10. 1141 00:57:13,810 --> 00:57:16,230 Dakle, oni su premali za faktor 10. 1142 00:57:16,230 --> 00:57:18,280 Dakle, drugim riječima, Nick uzeo originalnu sliku, 1143 00:57:18,280 --> 00:57:21,500 i on desaturated sve od gubitkom od njega, 1144 00:57:21,500 --> 00:57:23,850 manja količina crvene tinta, ako će, u njemu. 1145 00:57:23,850 --> 00:57:26,060 >> Plave i zelene vrijednosti su sve samo besmisleni, 1146 00:57:26,060 --> 00:57:30,000 slučajne vrijednosti, aka buke dizajniran zasjeniti pravu sliku. 1147 00:57:30,000 --> 00:57:32,250 Pa što Nick nije bio on umanjio crveni, a zatim 1148 00:57:32,250 --> 00:57:34,380 on je samo bacio slučajna količine plave i zelene 1149 00:57:34,380 --> 00:57:37,590 na slici s vrstom opskurna Što je zapravo još uvijek tamo. 1150 00:57:37,590 --> 00:57:41,089 Morate poništiti ove poremećaje otkriti sliku. 1151 00:57:41,089 --> 00:57:44,255 Prvo postavite sve plave i zelene vrijednosti na nulu da bi ih s puta, 1152 00:57:44,255 --> 00:57:48,700 i pogledajte rezultat. Zatim množiti svaku crvenu vrijednosti od 10, 1153 00:57:48,700 --> 00:57:51,720 skaliranje natrag do oko njegova konačna vrijednost. 1154 00:57:51,720 --> 00:57:53,035 Što je poznat objekt? 1155 00:57:53,035 --> 00:57:57,920 >> Dakle, svi vi imate ovaj pravokutnik u web pregledniku moći odmah. 1156 00:57:57,920 --> 00:58:00,830 I primijetiti da postoji neki starter kod, da tako kažemo. 1157 00:58:00,830 --> 00:58:04,370 To je JavaScript kôd koji Nick je napisao za vas. 1158 00:58:04,370 --> 00:58:07,250 I primijetiti da postoji linija u sredini koja 1159 00:58:07,250 --> 00:58:10,380 počinje s slash kosa crta, to je ono što se općenito zove komentar. 1160 00:58:10,380 --> 00:58:14,660 To znači da je izraz za programera da nema funkcionalno značenje. 1161 00:58:14,660 --> 00:58:16,520 To je samo vizualni znak na čovjeka. 1162 00:58:16,520 --> 00:58:18,670 >> Na taj način možete ići naprijed i izbrisati samo tu liniju, 1163 00:58:18,670 --> 00:58:22,214 i biti super oprezni da ne brisati ili mijenjati bilo što drugo. 1164 00:58:22,214 --> 00:58:25,130 I neka mi samo vas kroz što je to kod radi, a ja ću ga ostaviti 1165 00:58:25,130 --> 00:58:28,580 Na vama je da shvatiti tajnu sliku. 1166 00:58:28,580 --> 00:58:32,226 Ova prva linija ovdje što sam upravo Istaknuta vam daje sljedeće. 1167 00:58:32,226 --> 00:58:34,100 Na lijevoj strani, imate ono što se zove 1168 00:58:34,100 --> 00:58:39,140 varijabla koja Nick je samovoljno, ali opravdano nazvao im za slike. 1169 00:58:39,140 --> 00:58:41,660 Na desnoj strani tog znaka jednakosti, 1170 00:58:41,660 --> 00:58:45,240 on govori daj mi novi citat, citat: "jednostavna slika". 1171 00:58:45,240 --> 00:58:49,680 >> Jednostavna slika, u ovom kontekstu je ono što se zove klasa, dobro, 1172 00:58:49,680 --> 00:58:53,910 to je vrsta kao što su class-- tehnički prototype-- ali stvarno, 1173 00:58:53,910 --> 00:58:58,000 to mi daje novi objekt, čiji sadržaj su datoteke, 1174 00:58:58,000 --> 00:58:59,610 željeza puzzle.png. 1175 00:58:59,610 --> 00:59:03,190 Drugim riječima, Nick stvorila taj pojam jednostavne slike 1176 00:59:03,190 --> 00:59:05,920 tako da možemo, za pedagoško svrhe, igrati sa slikom 1177 00:59:05,920 --> 00:59:09,790 i promijeniti svoje crveno, zelene i plave vrijednosti. 1178 00:59:09,790 --> 00:59:11,750 >> A kako mi to radi? 1179 00:59:11,750 --> 00:59:15,360 Ovaj pomalo zagonetan sintaksa ovdje je vrsta kao ponavljanja bloka 1180 00:59:15,360 --> 00:59:19,140 da su neki od vas vidjeli u Scratch ranije danas, gdje možete ponoviti 10 puta. 1181 00:59:19,140 --> 00:59:22,220 U ovom slučaju, Nick nema kodirano broj kao što je 10. 1182 00:59:22,220 --> 00:59:28,020 Umjesto toga, on je rekao, inicijalizirati varijabla zove x 0, 1183 00:59:28,020 --> 00:59:33,180 provjeriti da li je x manje širina slike. 1184 00:59:33,180 --> 00:59:38,160 >> I tako da se više pravilan, slika je varijabla, dot znači ide unutar nje 1185 00:59:38,160 --> 00:59:40,900 i dobiti njezinu širinu i Zatim otvorite zagrada, zatvoren 1186 00:59:40,900 --> 00:59:43,687 zagr je samo programer je način govoreći: to je funkcija. 1187 00:59:43,687 --> 00:59:44,520 To je postupak. 1188 00:59:44,520 --> 00:59:46,430 To je funkcija netko drugi napisao. 1189 00:59:46,430 --> 00:59:48,570 Koristite ga i daj mi vrati odgovor. 1190 00:59:48,570 --> 00:59:53,610 A onda je x ++ je fancy način govoreći, nakon što ste učinili jednom, 1191 00:59:53,610 --> 00:59:55,850 prirast x za 1. 1192 00:59:55,850 --> 00:59:58,760 Drugim riječima, ovaj je programer je način 1193 00:59:58,760 --> 01:00:05,760 inducirati petlju koja je će ponoviti više 1194 01:00:05,760 --> 01:00:10,410 sve stupce na slici. 1195 01:00:10,410 --> 01:00:14,790 >> Slika je samo rešetka točkice, redaka i stupaca točaka. 1196 01:00:14,790 --> 01:00:18,270 To je način da prolazi preko svih tih stupaca. 1197 01:00:18,270 --> 01:00:20,770 A iznutra, U međuvremenu, mi smo ponavljanjem 1198 01:00:20,770 --> 01:00:24,030 preko visine, ovdje i ovdje i ovdje. 1199 01:00:24,030 --> 01:00:29,442 Tako je to samo način traipsing, gotovo kao stara škola pisaćem stroju, 1200 01:00:29,442 --> 01:00:32,230 samo ići preko cijela slika iterativno. 1201 01:00:32,230 --> 01:00:36,370 Čak i da nije baš u potpunosti jasno, samo se o vjeri, za sada, 1202 01:00:36,370 --> 01:00:38,880 da te tri linije koda su zajedno 1203 01:00:38,880 --> 01:00:43,090 će vam omogućiti da iterativno izgledati na svakom pikselu, svaki točka na slici. 1204 01:00:43,090 --> 01:00:43,790 >> Što je piksel? 1205 01:00:43,790 --> 01:00:46,250 Pa, da bude jasno, ako ćemo gledati na original i povećavanje, 1206 01:00:46,250 --> 01:00:49,060 ako stvarno staviti svoje oči na zaslonu računala, to je 1207 01:00:49,060 --> 01:00:53,510 Samo cijela hrpa točkica, nekoliko tisuću točkica upakiran zajedno tamo. 1208 01:00:53,510 --> 01:00:56,180 I što si ti učiniti? 1209 01:00:56,180 --> 01:00:59,240 Svaki od tih točaka, konačnu definiciju, 1210 01:00:59,240 --> 01:01:06,350 Rezultat je ono što je općenito zove RGB, crvena, zelena, plava, što 1211 01:01:06,350 --> 01:01:09,940 Ponovno, se mogu kombinirati vam dati bilo koji broj boja. 1212 01:01:09,940 --> 01:01:13,200 >> U stvari, ako se sjećate od mnogih prije, mnogo godina, 1213 01:01:13,200 --> 01:01:17,320 projektor ekrani poput ovih stvari koristi imati ne samo jednu leću nego tri. 1214 01:01:17,320 --> 01:01:20,700 Jedan od njih ispljunuti crveno svjetlo, jedan od ih ispljune zeleno svjetlo, jedan od njih 1215 01:01:20,700 --> 01:01:21,600 ispljunuti plavog svjetla. 1216 01:01:21,600 --> 01:01:24,391 A ako ste bili u srednjoj školi kao što sam bio, gdje nikada nisu bili 1217 01:01:24,391 --> 01:01:27,000 ispravno poravnat, bili ste uvijek gledajući povijest filmova 1218 01:01:27,000 --> 01:01:29,770 koji su bili malo iskrivljena, jer su tri boje nisu bile 1219 01:01:29,770 --> 01:01:30,970 kombinirajući ispravno. 1220 01:01:30,970 --> 01:01:36,330 >> No, ispada da je svaki od te vrijednosti crvene, zelene i plave, 1221 01:01:36,330 --> 01:01:37,980 može imati niz povezane s njima. 1222 01:01:37,980 --> 01:01:42,500 Na primjer, 0 za crveno znači da nema crvena, 0 za zelenim znači da nema zelena, 1223 01:01:42,500 --> 01:01:45,120 i 0 za plave znači da nema plavo. 1224 01:01:45,120 --> 01:01:49,403 Dakle, ako imate ne crvene, ne zelena, a ne plave, koje je boje imate? 1225 01:01:49,403 --> 01:01:51,009 >> PUBLIKA: [nečujan] 1226 01:01:51,009 --> 01:01:52,800 DAVID Malan: ti bi Nadam se, da je bijela. 1227 01:01:52,800 --> 01:01:55,333 Nažalost, to operates-- žao? 1228 01:01:55,333 --> 01:01:56,380 >> PUBLIKA: [nečujan] 1229 01:01:56,380 --> 01:01:58,630 DAVID Malan: tako da zapravo imaju crne boje, u ovom slučaju. 1230 01:01:58,630 --> 01:02:01,530 Dakle, ako imate nijedan od ovih Boje uključen, imate crno. 1231 01:02:01,530 --> 01:02:06,510 Međutim, ako imate, recimo puno od njih, kao puno crvene, 255 od toga, 1232 01:02:06,510 --> 01:02:10,340 puno zelene, i puno plave, koja je bijele boje. 1233 01:02:10,340 --> 01:02:12,230 Dakle, to su dvije krajnosti. 1234 01:02:12,230 --> 01:02:17,460 Dakle, po toj logici, ako imam puno crvene i nema zelene i nema plave, 1235 01:02:17,460 --> 01:02:18,485 Koje je boje je to? 1236 01:02:18,485 --> 01:02:19,360 PUBLIKA: [nečujan] 1237 01:02:19,360 --> 01:02:20,610 DAVID Malan: Da, očito. 1238 01:02:20,610 --> 01:02:25,940 I onda nema crvene, puno zeleno, ne plave, a zatim 1239 01:02:25,940 --> 01:02:29,590 ako have-- dobro, samo ćemo završiti to, samo zato, ali to, naravno, 1240 01:02:29,590 --> 01:02:31,350 Sada je plava. 1241 01:02:31,350 --> 01:02:33,030 A sada možete kombinirati ove boje. 1242 01:02:33,030 --> 01:02:36,430 Sada kao stranu, ako bilo koji od vas ima ikada učinio neki stvarni web dizajn, 1243 01:02:36,430 --> 01:02:38,360 što bi zapravo vidi slične simbole. 1244 01:02:38,360 --> 01:02:42,030 FFF-- i zapravo, to je vjerojatno nije ni to. 1245 01:02:42,030 --> 01:02:44,380 To je FFFFFF. 1246 01:02:44,380 --> 01:02:48,970 >> Svatko tko je ikada vidio F-a i E-ih i A through-- pa ispada, 1247 01:02:48,970 --> 01:02:52,970 Razgovarali smo jučer o decimale, a danas, nekako oko decimale. 1248 01:02:52,970 --> 01:02:54,570 Danas smo razgovarali o binarnom sustavu. 1249 01:02:54,570 --> 01:02:59,010 Ispostavilo se, heksadecimalni je vrlo Zajednička osnova sustava za korištenje u računalstvu. 1250 01:02:59,010 --> 01:03:04,960 Binarni je dva decimalna je 10, hex je 16. 1251 01:03:04,960 --> 01:03:08,640 I to ispada, kako računati u heksadecimalnom? 1252 01:03:08,640 --> 01:03:11,620 Nula, jedan, dva, tri, četiri, pet, šest, sedam, osam, 1253 01:03:11,620 --> 01:03:14,730 devet, što koristiti nakon devet? 1254 01:03:14,730 --> 01:03:16,600 Što je sljedeći broj? 1255 01:03:16,600 --> 01:03:19,180 Mi smo već koristili nula. 1256 01:03:19,180 --> 01:03:20,570 Trebam 16 od njih. 1257 01:03:20,570 --> 01:03:25,770 Nula, jedan, dva, tri, četiri, pet, šest, sedam, osam, devet, 1258 01:03:25,770 --> 01:03:27,520 trebate neke proizvoljne konvencije. 1259 01:03:27,520 --> 01:03:30,810 >> A ono što je čovječanstvo odlučio neko vrijeme Prije da je nakon devet dolazi pismo 1260 01:03:30,810 --> 01:03:34,450 A i onda B, a zatim C. Dakle, način računati u heksadecimalnom 1261 01:03:34,450 --> 01:03:37,040 je nula, jedan, dva, tri, četiri, pet, šest, sedam, osam, devet, 1262 01:03:37,040 --> 01:03:42,880 A, B, C, D, E, F, i da će se računati ti sve, što se ispostavilo, na 15. 1263 01:03:42,880 --> 01:03:47,850 Dakle nula do 15 nula kroz F. Sad zašto je to važno? 1264 01:03:47,850 --> 01:03:51,570 Pa, kada imate dva F-a, to je način na koji izražavaju 255. 1265 01:03:51,570 --> 01:03:54,350 >> Dakle, ne duljimo, u svijet Photoshop, 1266 01:03:54,350 --> 01:03:57,299 da grafički dizajn softver, u svijetu web razvoj, 1267 01:03:57,299 --> 01:03:59,590 gdje imate puno boja, naravno, da se igraju s, 1268 01:03:59,590 --> 01:04:02,350 Često programeri će izraziti one u heksadecimalnom, 1269 01:04:02,350 --> 01:04:05,260 samo zato što je teži da se malo jednostavnije. 1270 01:04:05,260 --> 01:04:07,850 Iako na prvi pogled to je mnogo složeniji. 1271 01:04:07,850 --> 01:04:11,590 >> Dakle, u svakom slučaju, to je važno jer Nick na Stanfordu 1272 01:04:11,590 --> 01:04:15,100 nam je dao šest komada funkcionalnosti da vama, pupi programeri, 1273 01:04:15,100 --> 01:04:17,060 Sada će imati mogućnost korištenja. 1274 01:04:17,060 --> 01:04:19,960 Izgrađen na ovom webu Stranica je šest funkcija, 1275 01:04:19,960 --> 01:04:21,820 Šest postupci koji nick je napisao. 1276 01:04:21,820 --> 01:04:26,800 Tri od njih će dobiti broj, crvena, zelena ili plava vrijednost. 1277 01:04:26,800 --> 01:04:28,787 Tri od njih će se postaviti tu vrijednost. 1278 01:04:28,787 --> 01:04:30,620 I ove donje samo su rezervirana mjesta, 1279 01:04:30,620 --> 01:04:32,600 tako da morate znati što one jesu. 1280 01:04:32,600 --> 01:04:36,240 >> Tako je s ova tri funkcije, Prvi od tih stvari 1281 01:04:36,240 --> 01:04:39,190 će biti x-koordinate, a drugi od tih stvari 1282 01:04:39,190 --> 01:04:40,700 će biti y-koordinate. 1283 01:04:40,700 --> 01:04:44,650 Drugim riječima, što točka, što pixel želite dobiti zelenilo, 1284 01:04:44,650 --> 01:04:46,480 dobili plave, dobiti crveni u. 1285 01:04:46,480 --> 01:04:51,440 A onda je ovdje, to će biti x, ovo će biti y vrijednosti, 1286 01:04:51,440 --> 01:04:55,379 a to će biti broj. 1287 01:04:55,379 --> 01:04:57,170 Tako ćemo učiniti prvi Linija to zajedno 1288 01:04:57,170 --> 01:05:00,220 a onda ću ga ostaviti na vas pokušati zaključiti ostalo. 1289 01:05:00,220 --> 01:05:03,100 Dakle, po uputama na ovoj stranici, moramo 1290 01:05:03,100 --> 01:05:08,960 povećati crvenu faktorom 10, i moramo ukloniti zeleni 1291 01:05:08,960 --> 01:05:09,930 i ukloniti plavu boju. 1292 01:05:09,930 --> 01:05:12,410 Počnimo s potonjim scenarija. 1293 01:05:12,410 --> 01:05:17,760 Dakle, ako želim, a ja ću alineji pomoću neke prostore, 1294 01:05:17,760 --> 01:05:22,291 ako želim postaviti crvenu boju, zeleni ili plavi vrijednost, 1295 01:05:22,291 --> 01:05:23,540 Ja ću učiniti sljedeće. 1296 01:05:23,540 --> 01:05:31,280 >> Slika, im.setBlue, a zatim temelji se na mojim uputama ovdje, 1297 01:05:31,280 --> 01:05:36,700 Koje tri stvari bih upišite unutar zagrada sada? 1298 01:05:36,700 --> 01:05:41,960 Trebam x vrijednost, y vrijednosti, a što je broj 1299 01:05:41,960 --> 01:05:48,770 trebao sam staviti ovdje ako želite riješiti vedra neba, na temelju ove priče ovdje? 1300 01:05:48,770 --> 01:05:49,630 Samo nula. 1301 01:05:49,630 --> 01:05:52,420 Ako želim ni plava, ja sam samo će ga promijeniti na nulu. 1302 01:05:52,420 --> 01:05:54,465 >> Sada samo ponovimo što to radi. 1303 01:05:54,465 --> 01:05:56,970 1304 01:05:56,970 --> 01:06:01,170 Imam ovdje na ovim vrh Drugo i treće linije, 1305 01:06:01,170 --> 01:06:04,080 tvrdio sam dvije petlje, ugniježđena petlje, ako vas 1306 01:06:04,080 --> 01:06:08,360 će, da će imati učinak napredovanja s lijeva na desno, 1307 01:06:08,360 --> 01:06:11,590 vrha do dna nad svim x vrijednosti i sve y vrijednosti. 1308 01:06:11,590 --> 01:06:15,167 Jer opet, slika samo grid redaka i stupaca. 1309 01:06:15,167 --> 01:06:17,000 Dakle, to je idući u dobiti osloboditi od svih plave. 1310 01:06:17,000 --> 01:06:18,627 Pusti me da odem u sljedećem retku za vas. 1311 01:06:18,627 --> 01:06:20,043 Kako mogu dobiti osloboditi od svih zelene? 1312 01:06:20,043 --> 01:06:23,747 1313 01:06:23,747 --> 01:06:25,140 >> PUBLIKA: [nečujan] 1314 01:06:25,140 --> 01:06:26,151 >> DAVID Malan: Nice. 1315 01:06:26,151 --> 01:06:28,260 >> PUBLIKA: [nečujan] 1316 01:06:28,260 --> 01:06:30,850 >> DAVID Malan: Nice. 1317 01:06:30,850 --> 01:06:36,120 I ja idem na smanjivanje, a samo uzeti briga o tome što nisam učinio ispravno napisane. 1318 01:06:36,120 --> 01:06:39,390 A ako ste zadovoljni s tim što ste učinili, 1319 01:06:39,390 --> 01:06:42,936 ići naprijed i kliknite na gumb Trčanje / Save i vidjeti što ste dobili. 1320 01:06:42,936 --> 01:06:46,982 1321 01:06:46,982 --> 01:06:48,690 I opet, mi smo napravili samo tri promjene. 1322 01:06:48,690 --> 01:06:52,130 Izbrisali smo da je prvi komentirati i zamijenio ga 1323 01:06:52,130 --> 01:06:53,575 s ove dvije linije koda. 1324 01:06:53,575 --> 01:06:55,742 1325 01:06:55,742 --> 01:06:58,450 I to je u redu, ako je potrebno pogoditi gumb Run / Save par puta 1326 01:06:58,450 --> 01:07:01,190 nešto popraviti. 1327 01:07:01,190 --> 01:07:03,610 >> I neka mi također uvećanje na mom broj tako da možete prepisati. 1328 01:07:03,610 --> 01:07:04,110 Dobro. 1329 01:07:04,110 --> 01:07:08,720 Tako ja vidim Andrew ima što Čini se da je pogreška. 1330 01:07:08,720 --> 01:07:11,110 Upravo je dobio veliki crni pravokutnik na svom ekranu. 1331 01:07:11,110 --> 01:07:13,120 Se bilo tko drugi imaju velika crna pravokutnik? 1332 01:07:13,120 --> 01:07:13,390 >> PUBLIKA: Da. 1333 01:07:13,390 --> 01:07:14,360 >> DAVID Malan: Veliki crni pravokutnik? 1334 01:07:14,360 --> 01:07:16,068 U redu, pa ćemo razmišljati o tome što to znači. 1335 01:07:16,068 --> 01:07:20,560 Rekli smo da je nula, nula, nula, tako da nema zeleno, ne crvene, ne plave, 1336 01:07:20,560 --> 01:07:21,980 će vam dati crno. 1337 01:07:21,980 --> 01:07:24,467 I ispada da većina naših prijenosnih računala 1338 01:07:24,467 --> 01:07:25,800 jednostavno nemaju dovoljno vjernost. 1339 01:07:25,800 --> 01:07:27,750 Ne možete baš reći da zapravo nešto tamo. 1340 01:07:27,750 --> 01:07:30,340 A ako vrsta možda nagnuti Vaš zaslon prema naprijed i natrag, 1341 01:07:30,340 --> 01:07:32,850 možda ne vidite nešto malo tamo? 1342 01:07:32,850 --> 01:07:34,820 Možda, nekako, na neki način? 1343 01:07:34,820 --> 01:07:36,640 To nije posve crno. 1344 01:07:36,640 --> 01:07:38,050 >> PUBLIKA: [nečujan] 1345 01:07:38,050 --> 01:07:39,510 >> DAVID Malan: Spoiler! 1346 01:07:39,510 --> 01:07:42,610 Tu je neke crvene tamo, ali sjećam iz specifikacije 1347 01:07:42,610 --> 01:07:44,940 problema, Nick ga smirio. 1348 01:07:44,940 --> 01:07:47,860 On je to desaturated nešto, ali ne sve do nule. 1349 01:07:47,860 --> 01:07:51,670 Dakle, ako želimo uvećati iznos Crvena, neka mi predloži ovaj trik. 1350 01:07:51,670 --> 01:07:53,750 Pusti me uvećanje na mom ekranu. 1351 01:07:53,750 --> 01:07:58,678 I neka mi ići naprijed i reći iznos jednak im.getRed (x, y). 1352 01:07:58,678 --> 01:08:02,440 1353 01:08:02,440 --> 01:08:05,790 >> Ova linija koda je davanje mene nešto što se zove varijablu. 1354 01:08:05,790 --> 01:08:09,643 Imam proizvoljno, ali, vjerojatno, opravdano nazvao moj varijabla što, 1355 01:08:09,643 --> 01:08:10,143 očito? 1356 01:08:10,143 --> 01:08:13,530 1357 01:08:13,530 --> 01:08:14,340 Iznos. 1358 01:08:14,340 --> 01:08:14,980 Samo iznos. 1359 01:08:14,980 --> 01:08:16,960 Mogao sam to nazvao sve što želim, ali ja sam 1360 01:08:16,960 --> 01:08:19,490 koristite ovu drugu funkciju da sam opisao ranije 1361 01:08:19,490 --> 01:08:25,359 da bi dobili iznos crvenom x zarezom y. 1362 01:08:25,359 --> 01:08:27,520 Zašto sam to učinio? 1363 01:08:27,520 --> 01:08:30,004 Što želite raditi ovdje? 1364 01:08:30,004 --> 01:08:32,910 1365 01:08:32,910 --> 01:08:33,619 Morate add-- 1366 01:08:33,619 --> 01:08:34,493 PUBLIKA: [nečujan] 1367 01:08:34,493 --> 01:08:36,279 DAVID Malan: Da, možda umnožiti ga 10. 1368 01:08:36,279 --> 01:08:38,862 A ako ne znaju, ja sam ići naprijed i učiniti. 1369 01:08:38,862 --> 01:08:42,060 Ja ću ići naprijed i recimo, ja želim količinu crvene boje 1370 01:08:42,060 --> 01:08:46,550 Želim biti što god je u minusu, puta 10, 1371 01:08:46,550 --> 01:08:50,330 i zvijezda, zvjezdica na vašem Tipkovnica je the-- ne koriste x. 1372 01:08:50,330 --> 01:08:51,569 Koristite zvjezdicu. 1373 01:08:51,569 --> 01:08:55,350 To je kako se množe stvari u većini programskih jezika. 1374 01:08:55,350 --> 01:08:59,790 >> Dakle, prema Kareem intuiciju, pohranjena u toj varijabli zove iznos, 1375 01:08:59,790 --> 01:09:03,649 koliko crvena želim na mjesto xy. 1376 01:09:03,649 --> 01:09:11,500 Kako sad, mogu napraviti da Pixel ima taj broj? 1377 01:09:11,500 --> 01:09:12,859 Već ste to učinili prije. 1378 01:09:12,859 --> 01:09:17,666 Možete postaviti zelena i plavo bez vrijednosti, na nulu. 1379 01:09:17,666 --> 01:09:18,540 PUBLIKA: [nečujan] 1380 01:09:18,540 --> 01:09:20,040 DAVID Malan: Da, dobro vi to ne želite 10. 1381 01:09:20,040 --> 01:09:21,460 Već je učinio math ovdje. 1382 01:09:21,460 --> 01:09:24,779 Dakle, mi smo dobivanje vrijednosti crvene, što je mali broj, vjerojatno. 1383 01:09:24,779 --> 01:09:26,180 Mi smo množenjem od strane 10. 1384 01:09:26,180 --> 01:09:29,139 Što želite učiniti s varijabilni iznos sada? 1385 01:09:29,139 --> 01:09:30,130 >> PUBLIKA: [nečujan] 1386 01:09:30,130 --> 01:09:30,880 >> DAVID Malan: Nice. 1387 01:09:30,880 --> 01:09:34,616 Pa im.set-- što? 1388 01:09:34,616 --> 01:09:35,640 >> PUBLIKA: setRed. 1389 01:09:35,640 --> 01:09:39,760 >> DAVID Malan: setRed, na mjesto xy. 1390 01:09:39,760 --> 01:09:40,260 Da. 1391 01:09:40,260 --> 01:09:41,200 I samo iznos. 1392 01:09:41,200 --> 01:09:44,257 Drugim riječima, varijabla je privremeno rezervirano mjesto 1393 01:09:44,257 --> 01:09:45,840 da možete staviti sve što želite u. 1394 01:09:45,840 --> 01:09:48,680 Mi se dogoditi da se stavljanjem broj u njemu, u ovom trenutku. 1395 01:09:48,680 --> 01:09:51,569 Mi smo je pomnožen 10 da bi ga veći. 1396 01:09:51,569 --> 01:09:56,480 I sada sam zamjenom tu varijablu kao i onaj treći argument, ili ulaz 1397 01:09:56,480 --> 01:09:57,810 postaviti crveno. 1398 01:09:57,810 --> 01:10:00,440 I tako da, kada vas dovršiti, i uzeti na znanje 1399 01:10:00,440 --> 01:10:02,330 od točkom sa zarezom i zagradama. 1400 01:10:02,330 --> 01:10:06,290 >> Idi naprijed i kliknite pokrenuti / spremanje opet, a vi 1401 01:10:06,290 --> 01:10:10,690 treba vidjeti, magično, što je zapravo tamo. [? Arwa,?] Što je tamo? 1402 01:10:10,690 --> 01:10:16,412 Eiffelov toranj u punopravno crvena, ne sasvim taman. 1403 01:10:16,412 --> 01:10:17,870 to bi trebalo biti očitije sada, zar ne? 1404 01:10:17,870 --> 01:10:18,840 U REDU. 1405 01:10:18,840 --> 01:10:20,215 I Andrija, nema više crne kutije? 1406 01:10:20,215 --> 01:10:21,090 PUBLIKA: [nečujan] 1407 01:10:21,090 --> 01:10:22,180 DAVID Malan: U redu. 1408 01:10:22,180 --> 01:10:23,610 Dakle, ja ću zadržati ovaj na ekranu. 1409 01:10:23,610 --> 01:10:27,010 Ako želite igrati s tim kasnije ću stvoriti za vas. 1410 01:10:27,010 --> 01:10:29,140 Ali to kod ovdje upravo to. 1411 01:10:29,140 --> 01:10:31,460 Zašto ne napravite nešto drugo. 1412 01:10:31,460 --> 01:10:33,880 Dopustite mi da se pomaknite prema dolje malo. 1413 01:10:33,880 --> 01:10:36,760 >> Dakle, u ovom slučaju, projektora zapravo ne učiniti pravdu. 1414 01:10:36,760 --> 01:10:40,486 No, na svojim ekranima, vjerojatno imaju vrlo crveni i vrlo crnu kutiju. 1415 01:10:40,486 --> 01:10:42,610 To je, također, je zagonetka koja pokazuje nešto poznata. 1416 01:10:42,610 --> 01:10:44,193 Međutim, slika je iskrivljena. 1417 01:10:44,193 --> 01:10:47,740 Pravi slika, ovaj put je u plavim i zelenim vrijednosti. 1418 01:10:47,740 --> 01:10:51,820 Međutim, oni su svi bili podijeljeni za 20 tako da su vrijednosti vrlo male. 1419 01:10:51,820 --> 01:10:54,660 Crvene su vrijednosti samo slučajnih brojeva, šum. 1420 01:10:54,660 --> 01:10:57,190 Poništi ovim iskrivljenim otkriti pravu sliku. 1421 01:10:57,190 --> 01:10:59,200 >> Dakle, Nick onda vam kaže što treba učiniti. 1422 01:10:59,200 --> 01:11:04,290 Postavite crvene vrijednosti na nulu, a onda se ne pokvari ono što je. 1423 01:11:04,290 --> 01:11:07,110 Zatim pomnožite plavi i zelene vrijednosti za 20. 1424 01:11:07,110 --> 01:11:09,820 Tako da je gotovo isti program kao i prije, 1425 01:11:09,820 --> 01:11:11,380 ali ste obrnutim postupkom. 1426 01:11:11,380 --> 01:11:13,780 A ja ću se kod iz Prije nego se na zaslonu u slučaju 1427 01:11:13,780 --> 01:11:16,650 želite uputiti natrag na njega ili igrati dalje s tom jednom. 1428 01:11:16,650 --> 01:11:18,100 Pusti me uvećanje na to. 1429 01:11:18,100 --> 01:11:21,450 No riješiti bakra sliku puzzle, broj dva. 1430 01:11:21,450 --> 01:11:37,623 1431 01:11:37,623 --> 01:11:40,580 >> PUBLIKA: [nečujan] 1432 01:11:40,580 --> 01:11:44,010 >> DAVID Malan: OK, tako da je ovo jedan sam neće dati što više savjeta. 1433 01:11:44,010 --> 01:11:47,220 Tako sam would-- oh, neka je vidjeti, imate pogrešno napisali ovdje. 1434 01:11:47,220 --> 01:11:49,621 Dakle, zapamtite, ovo ovdje zapravo treba ići tamo. 1435 01:11:49,621 --> 01:11:52,870 Dakle, ono što bih predložiti, ako želite usredotočiti na ovom jednom, tu je odgovor. 1436 01:11:52,870 --> 01:11:57,060 Ako želite prepisati to, da trebao dobiti prvi koji radi. 1437 01:11:57,060 --> 01:11:59,910 I onda možete koristiti kao inspiracija za druge. 1438 01:11:59,910 --> 01:12:02,230 Nice. 1439 01:12:02,230 --> 01:12:02,730 Dobro. 1440 01:12:02,730 --> 01:12:05,430 1441 01:12:05,430 --> 01:12:08,180 >> A za znatiželjne, ovo je jednostavan primjer 1442 01:12:08,180 --> 01:12:11,080 od znanosti ili umjetnosti zove steganography, 1443 01:12:11,080 --> 01:12:14,100 umjetnost skrivanja informacija u slikama. 1444 01:12:14,100 --> 01:12:16,890 Tipično, slike mogu biti watermarked vrlo napadan 1445 01:12:16,890 --> 01:12:19,500 s logotipom na dnu kutak, ali jasno, vi 1446 01:12:19,500 --> 01:12:22,070 može biti puno sofisticiraniji o tome i zapravo 1447 01:12:22,070 --> 01:12:25,050 sakriti druge slike na slikama nekako ove tehnike. 1448 01:12:25,050 --> 01:12:59,890 1449 01:12:59,890 --> 01:13:05,770 >> Uzmi još 30 sekundi, a onda ćemo barem objaviti ono što bi trebao vidjeti. 1450 01:13:05,770 --> 01:13:08,330 A ja ću otići treći ona kao kod kuće vježbe, 1451 01:13:08,330 --> 01:13:11,353 ako želite više od a izazov ovog vikenda. 1452 01:13:11,353 --> 01:13:18,240 1453 01:13:18,240 --> 01:13:20,390 I mislim da je Andrew možda ga prvi stečen. 1454 01:13:20,390 --> 01:13:22,645 Koja je druga slika, Andrew? 1455 01:13:22,645 --> 01:13:23,920 >> PUBLIKA: Kip slobode. 1456 01:13:23,920 --> 01:13:28,500 >> DAVID Malan: Kip slobode će biti odgovor ovaj put. 1457 01:13:28,500 --> 01:13:31,140 Pa opet, samo su neke jednostavne primjeri, čiji je cilj 1458 01:13:31,140 --> 01:13:35,040 je da vam dati osjećaj kako smo prevedene slikovno Scratch 1459 01:13:35,040 --> 01:13:40,410 blokovi za više neugodno i više komplicirano kod, ali sve ideje 1460 01:13:40,410 --> 01:13:42,980 još uvijek su isti, ali s uvođenjem 1461 01:13:42,980 --> 01:13:48,380 sad pojma varijable, kao mogućnosti pohraniti nešto privremeno. 1462 01:13:48,380 --> 01:13:51,750 >> Neka je to još jedan hands-on, tek sada povezati točkice 1463 01:13:51,750 --> 01:13:53,880 na nešto malo više u stvarnom svijetu. 1464 01:13:53,880 --> 01:13:56,610 Kada ste spremni, ako bi mogao ići na ovaj URL na ekranu. 1465 01:13:56,610 --> 01:14:00,610 To je također u svoj primjerak tobogani, developers.google.com/maps~~V. 1466 01:14:00,610 --> 01:14:03,660 Idemo zapravo učiniti nešto stvarno, da tako kažemo, na webu 1467 01:14:03,660 --> 01:14:07,600 pomoću Google Maps API, ili sučelje za programiranje aplikacija, 1468 01:14:07,600 --> 01:14:08,940 na sljedeći način. 1469 01:14:08,940 --> 01:14:12,341 >> Google, kao i mnoge tvrtke, daje puno slobodnog funkcionalnosti 1470 01:14:12,341 --> 01:14:14,840 koje možete koristiti za izgradnju svoje vlastite zanimljivih aplikacija. 1471 01:14:14,840 --> 01:14:18,890 U stvari, ako ste ikada koristili Uber dobiti taksi ili automobila, 1472 01:14:18,890 --> 01:14:21,640 vjerojatno znate da Uber ima karti i to pokazuje automobile na njega. 1473 01:14:21,640 --> 01:14:24,870 To je, kako je najbolje što mogu reci, Google Maps API. 1474 01:14:24,870 --> 01:14:28,884 Oni su zapravo koristi Googleove karte, ali Uber nije mapiranje tvrtka, 1475 01:14:28,884 --> 01:14:31,050 niti bi to bio Posebno zanimljiv problem 1476 01:14:31,050 --> 01:14:33,510 riješiti na vrhu svoje car usluga problema. 1477 01:14:33,510 --> 01:14:35,510 I tako oni stajali, opet, na ramenima 1478 01:14:35,510 --> 01:14:37,520 od drugih, Google je u ovom slučaju. 1479 01:14:37,520 --> 01:14:42,850 Dakle, oni koriste Googleove karte, ali sami car usluge i druge takve značajke. 1480 01:14:42,850 --> 01:14:47,770 >> Tako ćemo iskoristiti to učiniti sljedeće. 1481 01:14:47,770 --> 01:14:50,230 A ako sam otišao prebrzo, Samo me zvati više u ovom trenutku. 1482 01:14:50,230 --> 01:14:53,500 Sretan da ponovimo neke od slika stvari. 1483 01:14:53,500 --> 01:14:56,290 Te bi trebao vidjeti sebe na stranici kao što je ovaj. 1484 01:14:56,290 --> 01:14:58,230 Dakle, Google je lijepo, i oni su među najboljima 1485 01:14:58,230 --> 01:15:01,364 pružiti ne samo API-ja, ali slobodan API koju 1486 01:15:01,364 --> 01:15:02,780 Možete igrati sa ili koristiti u komercijalne svrhe. 1487 01:15:02,780 --> 01:15:06,450 Oni ne počnu s naplatom ako je vaš običaj je visoka, ali sam otišao naprijed unaprijed 1488 01:15:06,450 --> 01:15:10,490 i potpisao nam se za besplatni korisnički račun da, nadam se, 10 računala 1489 01:15:10,490 --> 01:15:12,480 Neće nas diskvalificirati za naglo. 1490 01:15:12,480 --> 01:15:14,320 Dakle, nadamo se da ovo Demonstracija će raditi. 1491 01:15:14,320 --> 01:15:18,840 >> I primijetiti da su API za Android, iOS, web i web usluge, 1492 01:15:18,840 --> 01:15:19,620 što god da je. 1493 01:15:19,620 --> 01:15:20,700 Idemo se fokusirati na webu. 1494 01:15:20,700 --> 01:15:26,560 Dakle, kliknite na roza kutija, web, i to će vas voditi, nadamo se, na stranicu 1495 01:15:26,560 --> 01:15:27,630 ovdje. 1496 01:15:27,630 --> 01:15:29,335 I oni 'je dobio hrpu API. 1497 01:15:29,335 --> 01:15:31,210 I to može biti malo neodoljiv na prvom mjestu, 1498 01:15:31,210 --> 01:15:33,000 ali ja ću nam kormilariti kroz ono što želimo. 1499 01:15:33,000 --> 01:15:38,500 >> U gornjem lijevom kutu je Google Maps JavaScript API, JavaScript API. 1500 01:15:38,500 --> 01:15:40,380 Pa ići naprijed i kliknite da je jedan. 1501 01:15:40,380 --> 01:15:49,360 A to će vas dovesti do sad Sljedeće stranice, demonstracije i uzorak koda. 1502 01:15:49,360 --> 01:15:51,190 Pusti me udaljili ovdje. 1503 01:15:51,190 --> 01:15:56,300 I daj da nam to-- pomicati prema dolje gdje se kaže brzih koraka start. 1504 01:15:56,300 --> 01:15:57,970 Vaš zaslon bi trebao izgledati moj. 1505 01:15:57,970 --> 01:16:01,130 >> I tu je dva koraka, dobiti ključ i start u razvoju. 1506 01:16:01,130 --> 01:16:04,190 Već jesam jedan korak za nas, uzimajući tzv ključ. 1507 01:16:04,190 --> 01:16:05,320 A to je uobičajena ideja. 1508 01:16:05,320 --> 01:16:09,210 API ključ je uglavnom samo veliki slučajni broj ili string 1509 01:16:09,210 --> 01:16:11,130 da ste trebali zalijepiti u kodu, 1510 01:16:11,130 --> 01:16:15,280 tako da Google ne zna tko ste kada koju koristite njihove usluge, njihovo API. 1511 01:16:15,280 --> 01:16:17,370 To ne znači da smo se naplaćuje ništa. 1512 01:16:17,370 --> 01:16:21,030 A sada, klik, umjesto jednom, kliknite na početak razvoja. 1513 01:16:21,030 --> 01:16:25,990 Ako samo bi me val više ako niste sigurni gdje smo. 1514 01:16:25,990 --> 01:16:28,040 >> Dakle, mi ćemo samo ogrepsti površina, ovdje ali ono 1515 01:16:28,040 --> 01:16:31,000 Mislio sam da će biti uvjerljiv je zapravo sve nas, 1516 01:16:31,000 --> 01:16:34,240 koristeći Cloud9 u jednom prozoru i ovaj tutorial u drugom prozoru, 1517 01:16:34,240 --> 01:16:37,120 nadamo se zaista dobiti naše vlastite Primjena gore i trčanje 1518 01:16:37,120 --> 01:16:40,920 koji ugrađuje običaj Google Karta u vlastitoj web-stranici, 1519 01:16:40,920 --> 01:16:43,010 a onda dodaje jednu ili dvije značajke. 1520 01:16:43,010 --> 01:16:45,520 No, mi ćemo samo ogrepsti površina što možemo učiniti. 1521 01:16:45,520 --> 01:16:47,020 >> Dakle, samo brzo duševne ček. 1522 01:16:47,020 --> 01:16:49,740 Jesu li svi na ovoj stranici, Google Maps API JavaScript? 1523 01:16:49,740 --> 01:16:50,872 Treba reći početak. 1524 01:16:50,872 --> 01:16:53,330 Nećemo proći cijela stvar na bilo koji način. 1525 01:16:53,330 --> 01:16:58,090 U redu, u drugoj kartici, ako ne imaju ga otvoriti, ne ide u Cloud9 1526 01:16:58,090 --> 01:17:03,500 i sami da se samo nova kartica, u konačnici. 1527 01:17:03,500 --> 01:17:11,070 Pa opet, c9.io od jučer, c9.io, i samo stvoriti novu datoteku. 1528 01:17:11,070 --> 01:17:13,500 I ići naprijed i poziv što god želite. 1529 01:17:13,500 --> 01:17:16,495 Zvao sam mina map.html. 1530 01:17:16,495 --> 01:17:17,870 Nazovite to sve završava u .html. 1531 01:17:17,870 --> 01:17:23,930 1532 01:17:23,930 --> 01:17:26,580 A ti bi trebao biti otprilike gdje sam ja u tom procesu 1533 01:17:26,580 --> 01:17:31,470 sa samo treperi retka u prazan Kartica se zove nešto poput map.html. 1534 01:17:31,470 --> 01:17:35,808 1535 01:17:35,808 --> 01:17:38,148 Ili datoteke, nova datoteka ovaj put. 1536 01:17:38,148 --> 01:17:41,960 1537 01:17:41,960 --> 01:17:48,000 >> A sada, više na Google Maps JavaScript API, 1538 01:17:48,000 --> 01:17:50,010 ćemo preskočiti čitanje kroz sve ovog teksta. 1539 01:17:50,010 --> 01:17:53,760 Ali primijetite da pozdravi svijet doista posvuda, možete ga vidjeti. 1540 01:17:53,760 --> 01:17:58,020 Pozdrav svijetu ima ovaj veliki šareni Primjer cijela hrpa HTML-a. 1541 01:17:58,020 --> 01:18:03,590 Idi naprijed i kopirati i zalijepiti samo to HTML, tako da od tipa doc na vrhu 1542 01:18:03,590 --> 01:18:08,810 sve do bliske HTML oznake, idi naprijed i kopirati sve that-- opet, 1543 01:18:08,810 --> 01:18:14,430 to je pod Hello World example-- i zalijepite da u kartici Cloud9, 1544 01:18:14,430 --> 01:18:17,996 tako da je sada vaš zaslon bi trebao izgledati otprilike kao i moje. 1545 01:18:17,996 --> 01:18:22,280 1546 01:18:22,280 --> 01:18:24,520 >> A možete ga spasiti, ali nemojte ga učitati samo još. 1547 01:18:24,520 --> 01:18:26,290 Neka prvi pogled kod i vidjeti ako mi 1548 01:18:26,290 --> 01:18:29,110 ne može zaključiti ili saznati od onoga što je Google 1549 01:18:29,110 --> 01:18:30,860 ima nas slijepo kopirati i zalijepiti. 1550 01:18:30,860 --> 01:18:33,334 Oni samo žele pomoći, doslovno, da nas počeli, 1551 01:18:33,334 --> 01:18:35,500 ali ne toliko Složenost zapravo tamo. 1552 01:18:35,500 --> 01:18:40,100 1553 01:18:40,100 --> 01:18:42,210 Bilo kakva pitanja samo još? 1554 01:18:42,210 --> 01:18:43,790 Sigurni smo da se kretati? 1555 01:18:43,790 --> 01:18:44,330 U REDU. 1556 01:18:44,330 --> 01:18:46,800 >> Tako brzo, neka je samo napraviti neke brze razum provjere. 1557 01:18:46,800 --> 01:18:48,800 Linija jedan od onoga što sam vidi, i nadamo se, ti 1558 01:18:48,800 --> 01:18:51,710 vidjeti, što to znači, DOCTYPEhtml? 1559 01:18:51,710 --> 01:18:52,385 Kareem, sjećam? 1560 01:18:52,385 --> 01:18:53,260 PUBLIKA: [nečujan] 1561 01:18:53,260 --> 01:18:53,968 DAVID Malan: Da. 1562 01:18:53,968 --> 01:18:54,870 Ovdje dolazi HTML 5. 1563 01:18:54,870 --> 01:18:57,950 U međuvremenu, linija dva na Zaslon ovdje znači Hej preglednik, 1564 01:18:57,950 --> 01:18:59,482 ovdje dolazi stvarni HTML. 1565 01:18:59,482 --> 01:19:01,440 Linija tri je hej preglednik evo glava. 1566 01:19:01,440 --> 01:19:04,260 Linija četiri je, naravno, hej preglednik, ovdje dolazi naslov. 1567 01:19:04,260 --> 01:19:07,780 Što napraviti liniju od pet? 1568 01:19:07,780 --> 01:19:09,930 Zapravo, to ne stvarno učiniti ništa za nas. 1569 01:19:09,930 --> 01:19:13,340 U ovom slučaju, to samo mijenja veličinu stranica na zadanu. Linija šest, 1570 01:19:13,340 --> 01:19:16,140 nismo razgovarali o tome, ali to određuje kodiranje znakova. 1571 01:19:16,140 --> 01:19:19,181 Ima različitih načina za kodiranje datoteka, posebno za strane jezike. 1572 01:19:19,181 --> 01:19:21,100 UTF-8 samo teži biti zadana. 1573 01:19:21,100 --> 01:19:26,580 >> Dakle, sada ćemo vidjeti u liniji od sedam do 16 godina, a neki CSS. 1574 01:19:26,580 --> 01:19:29,260 I iako nismo vidjeli sve te stvari prije, 1575 01:19:29,260 --> 01:19:30,810 možemo vrsta zaključiti. 1576 01:19:30,810 --> 01:19:37,075 Dakle, linija osam sredstva, hej preglednik, primjenjuju sve od sljedećeg na koje dvije oznake, 1577 01:19:37,075 --> 01:19:37,575 očito? 1578 01:19:37,575 --> 01:19:40,650 1579 01:19:40,650 --> 01:19:41,701 HTML i tijela teksta. 1580 01:19:41,701 --> 01:19:43,200 Dakle, zarez je nova stvar tamo. 1581 01:19:43,200 --> 01:19:46,140 A to je samo jedan od načina navodeći više oznaka odjednom. 1582 01:19:46,140 --> 01:19:47,640 >> Tada smo dobili vitičastim zagradama. 1583 01:19:47,640 --> 01:19:51,170 Dakle, očito, ovo govori preglednik, bi visinu stranice 100%. 1584 01:19:51,170 --> 01:19:54,170 Dakle, čak i ako postoji vrlo malo sadržaj, čine cijelu stranicu, 1585 01:19:54,170 --> 01:19:55,530 bi stvar popuniti stranicu. 1586 01:19:55,530 --> 01:19:57,524 Provjerite karta u konačnici ispuniti stranicu. 1587 01:19:57,524 --> 01:19:58,690 Margina, što to znači? 1588 01:19:58,690 --> 01:20:01,559 To je obično kao proizvoljna bijeli prostor oko rubova 1589 01:20:01,559 --> 01:20:04,350 da su neki preglednik dizajner upravo odlučio trebao biti tamo, jer to 1590 01:20:04,350 --> 01:20:05,540 vrsta čini stvari izgledaju čišće. 1591 01:20:05,540 --> 01:20:06,498 No, mi ne želimo to. 1592 01:20:06,498 --> 01:20:08,710 Želimo se karta ide sve do rubova. 1593 01:20:08,710 --> 01:20:10,930 Padding, slični u duhu do margine. 1594 01:20:10,930 --> 01:20:14,980 Margine znači vani, nadopunu sredstva unutra, ali to je ista vrsta posla. 1595 01:20:14,980 --> 01:20:17,520 To je malo tampon između vas i rubovima. 1596 01:20:17,520 --> 01:20:21,170 >> A onda je dobra linija 13 prilika za brzi pregled. 1597 01:20:21,170 --> 01:20:26,440 Što znači oštar znak kartu znači, ili hashtag karta znači? 1598 01:20:26,440 --> 01:20:29,650 Što to odnosi na, u principu? 1599 01:20:29,650 --> 01:20:31,485 >> PUBLIKA: [nečujan] 1600 01:20:31,485 --> 01:20:32,360 DAVID Malan: Upravo tako. 1601 01:20:32,360 --> 01:20:36,900 Ovaj objekt, ovaj CSS svojstvo se odnosi na samo jednu stvar, HTML oznake 1602 01:20:36,900 --> 01:20:41,180 koja ima ID citat, citat "kartu". 1603 01:20:41,180 --> 01:20:44,460 brzo naprijed, pomicanje i sad idemo dolje na dnu datoteke koje 1604 01:20:44,460 --> 01:20:49,860 Nije previše daleko, a obavijest o liniji 19, ako ga zalijepiti baš kao što sam učinio, 1605 01:20:49,860 --> 01:20:53,405 linija 19 ima samo jedan div, koji je podjela stranice, koje sam jučer 1606 01:20:53,405 --> 01:20:54,820 zove se pravokutno područje. 1607 01:20:54,820 --> 01:20:55,820 To je dobio ništa u njemu. 1608 01:20:55,820 --> 01:20:57,550 To je otvorena oznaka, u blizini oznaka. 1609 01:20:57,550 --> 01:20:59,490 No, to ne imati jedinstveni ID. 1610 01:20:59,490 --> 01:21:02,090 >> Dakle, ono što čini se da je događa ovdje je Google 1611 01:21:02,090 --> 01:21:05,880 se priprema našu web stranicu imaju potpunu 100% visine, 1612 01:21:05,880 --> 01:21:09,680 i bez podloge, bez margina, jer što ćemo staviti unutra 1613 01:21:09,680 --> 01:21:13,647 ovog diva, čiji je jedinstveni ID Karta je stvarna ugrađena karta. 1614 01:21:13,647 --> 01:21:15,480 I želimo ispuniti stranica, a ne samo 1615 01:21:15,480 --> 01:21:17,560 biti neki mali pravokutnik u sredini. 1616 01:21:17,560 --> 01:21:24,220 Tako slično naglašava linije 14, map se treba imati visinu od 100%. 1617 01:21:24,220 --> 01:21:29,220 >> Tako sada primijetiti između redaka 20 i 28, ovo je JavaScript kod. 1618 01:21:29,220 --> 01:21:33,020 A to je, iako je sintaktički malo čudno, 1619 01:21:33,020 --> 01:21:34,730 nije to sve što je mnogo događa ovdje. 1620 01:21:34,730 --> 01:21:39,310 U skladu 21, to je progla nešto što se zove varijablu. 1621 01:21:39,310 --> 01:21:42,030 Umjesto da ga zovete iznosi, kao što smo učinili prije, 1622 01:21:42,030 --> 01:21:44,500 mi preciznije govoreći var, što samo znači da varijabla. 1623 01:21:44,500 --> 01:21:46,520 Mogli smo koristili da se u Nick broj, ali nije, pa sam 1624 01:21:46,520 --> 01:21:48,190 nije smetalo to radi bilo. 1625 01:21:48,190 --> 01:21:50,240 To je varijabla zove map, a zatim tu je 1626 01:21:50,240 --> 01:21:53,360 funkcija koja je očito se zove initMap. 1627 01:21:53,360 --> 01:21:55,780 >> Dakle, to je kao naš vlastiti običaj zagonetka komad u nule. 1628 01:21:55,780 --> 01:21:58,830 Stvorili smo komad Funkcija se zove initMap, 1629 01:21:58,830 --> 01:22:00,980 i možete vrsta zaključiti što se ovdje događa. 1630 01:22:00,980 --> 01:22:02,930 Na lijevoj strani, imamo varijablu, 1631 01:22:02,930 --> 01:22:06,000 pa ćemo staviti sljedeće stvar u tom varijablom, 1632 01:22:06,000 --> 01:22:07,362 s desna na lijevo. 1633 01:22:07,362 --> 01:22:11,940 Na desnoj strani, kaže, hej preglednik, daj mi novi Google kartu. 1634 01:22:11,940 --> 01:22:16,490 I google.maps.map je samo funky način određivanja da tu funkciju 1635 01:22:16,490 --> 01:22:19,790 pripada Google Maps. 1636 01:22:19,790 --> 01:22:23,010 >> Nakon zagradi, vidjeli smo ovo prije, hej preglednik, dobiti 1637 01:22:23,010 --> 01:22:29,210 meni su elementi u stranicu, oznaka na stranici čiji je jedinstveni ID is-- 1638 01:22:29,210 --> 01:22:30,710 >> PUBLIKA: [nečujan] 1639 01:22:30,710 --> 01:22:31,790 >> DAVID Malan: --map. 1640 01:22:31,790 --> 01:22:35,770 A što se događa, dobro, ova linija zajedno, linija 23, 1641 01:22:35,770 --> 01:22:38,630 u biti govori: hej preglednik, idi mi 1642 01:22:38,630 --> 01:22:42,800 onaj prazan div na stranici čiji je jedinstveni ID je karta, 1643 01:22:42,800 --> 01:22:45,600 jer želim umetnuti u it-- uvelo u njega, 1644 01:22:45,600 --> 01:22:49,520 ako will-- hrpu sadržaja to se događa da dolazi s weba, 1645 01:22:49,520 --> 01:22:50,427 naknadno. 1646 01:22:50,427 --> 01:22:52,010 I Google je radi sve to za nas. 1647 01:22:52,010 --> 01:22:55,350 >> Pa opet, na samom kraju dana, imamo primjer apstrakcije. 1648 01:22:55,350 --> 01:22:58,610 Nemam pojma što je mapa ili kako provesti API na karti. 1649 01:22:58,610 --> 01:22:59,460 Mi ne treba da. 1650 01:22:59,460 --> 01:23:02,740 Mi samo trebate reći na karti gdje da se probije i ostavite 1651 01:23:02,740 --> 01:23:04,880 one temeljne provedbe detalji na Google. 1652 01:23:04,880 --> 01:23:08,190 Sada je očito dva komada podataka 1653 01:23:08,190 --> 01:23:11,940 da je ovaj primjer je pružajući na Googleov API. 1654 01:23:11,940 --> 01:23:16,450 Očigledno je središte karte, i na razini zumiranja, da tako kažemo. 1655 01:23:16,450 --> 01:23:21,390 >> I bilo tko prepoznati te koordinate, zemljopisna širina i dužina? 1656 01:23:21,390 --> 01:23:24,364 Vjerojatno ne, ali možemo se vratiti na udžbenik, doslovno vidjeti. 1657 01:23:24,364 --> 01:23:25,780 No, mi ćemo ga vidjeti u samo jednom trenutku. 1658 01:23:25,780 --> 01:23:29,880 Razina zuma je vrijednost između, ne znam Znaš, jedan u 13 ili nešto slično. 1659 01:23:29,880 --> 01:23:32,880 To samo ima veze s koliko ste zumirana u ili izvan, i to je to. 1660 01:23:32,880 --> 01:23:35,690 A sada, na samom kraju stranica, obavijesti linija 29-- 1661 01:23:35,690 --> 01:23:39,960 to je malo ružno, jer to wraps-- ovu liniju koda 1662 01:23:39,960 --> 01:23:44,570 je ono što se preuzima na Preglednik Google je stvarna API. 1663 01:23:44,570 --> 01:23:47,500 Sve koda da je Google-a Inženjeri su napisali da provede 1664 01:23:47,500 --> 01:23:50,000 cijela ova značajka ugradivi karata. 1665 01:23:50,000 --> 01:23:51,470 >> Sada ne mijenja ništa. 1666 01:23:51,470 --> 01:23:54,761 Ako ste nakon zajedno, ići naprijed i samo spremiti tu datoteku, ako doista imate 1667 01:23:54,761 --> 01:23:55,760 ono što imam. 1668 01:23:55,760 --> 01:23:57,370 Idi na URL-a. 1669 01:23:57,370 --> 01:23:59,820 Možete kliknuti na gumb Run do vrha, a koji će reći 1670 01:23:59,820 --> 01:24:03,050 što je URL web poslužitelju opet. 1671 01:24:03,050 --> 01:24:06,010 I to će vas dovesti do nove kartice. 1672 01:24:06,010 --> 01:24:11,910 Ako kliknite Otvori za map.html, a izgledi su da ste 1673 01:24:11,910 --> 01:24:15,520 će dobiti upozorenje, poruka o pogrešci, da? 1674 01:24:15,520 --> 01:24:18,570 Poruka o pogrešci, poruka o pogrešci? 1675 01:24:18,570 --> 01:24:21,170 >> Dakle, na žalost, pogreška Poruka se ne da rasvijetliti 1676 01:24:21,170 --> 01:24:23,890 osim ako zaista otvoriti konzola, posebnu tab smo 1677 01:24:23,890 --> 01:24:27,110 zadržao je jučer otvaranje i malo ranije danas. 1678 01:24:27,110 --> 01:24:29,445 Ali naletio sam na to ranije, tako da sam već 1679 01:24:29,445 --> 01:24:30,820 shvatio što je rješenje. 1680 01:24:30,820 --> 01:24:34,440 U današnjem slajdova, ili Umjesto toga, u Cloud9, obavijest 1681 01:24:34,440 --> 01:24:36,430 da nismo učinili nešto namjerno. 1682 01:24:36,430 --> 01:24:40,690 Primijetite da je ova skripta oznaka u linija 29, ako ste pročitali kroz njega, 1683 01:24:40,690 --> 01:24:44,440 to je kao maps.googleapis.com/~~pobj nešto, nešto, nešto, 1684 01:24:44,440 --> 01:24:46,430 onda primjetiti nekoga, jedan od developera, 1685 01:24:46,430 --> 01:24:50,040 napisao je u svom glavnom gradu pisma, vaš API ključ. 1686 01:24:50,040 --> 01:24:51,700 >> Moramo zalijepiti nešto unutra. 1687 01:24:51,700 --> 01:24:53,450 I to je bio korak Ja sam za nas prije, 1688 01:24:53,450 --> 01:24:57,190 i opet bi mogli člana nam da je iznenada, 12 ili više od nas 1689 01:24:57,190 --> 01:24:59,470 početi koristiti isti ključ, ali vidjet ćemo što će se dogoditi. 1690 01:24:59,470 --> 01:25:03,030 Dakle, ako idete u današnjem tobogani, jedan tobogan kasnije, tu je 1691 01:25:03,030 --> 01:25:07,070 Ovo je vrlo funky izgleda koji tekst. 1692 01:25:07,070 --> 01:25:12,230 Idi naprijed i samo kopirati to i zalijepite ga gdje piše svoj API ključ. 1693 01:25:12,230 --> 01:25:15,120 To je onaj sam se prijavio za. 1694 01:25:15,120 --> 01:25:17,700 >> I definitivno ne probati ga upisivati ​​ručno, 1695 01:25:17,700 --> 01:25:21,210 jer se osjeća ispunjen s pri upisu, potencijalno. 1696 01:25:21,210 --> 01:25:23,260 Tako je samo kopirati i zalijepiti to. 1697 01:25:23,260 --> 01:25:26,090 I to će napraviti liniju duže, ali sada, samo da bude jasno, 1698 01:25:26,090 --> 01:25:29,540 to bi trebalo izgledati malo više ovako, gdje ključ jednak ne 1699 01:25:29,540 --> 01:25:32,200 kapitaliziraju viče na vas. 1700 01:25:32,200 --> 01:25:34,810 Spremite svoju stranicu, vrati se na drugu karticu, ponovno, 1701 01:25:34,810 --> 01:25:36,770 i nadam se da vidjeti kartu gdje? 1702 01:25:36,770 --> 01:25:37,790 >> PUBLIKA: Australija. 1703 01:25:37,790 --> 01:25:38,748 >> DAVID Malan: Australija. 1704 01:25:38,748 --> 01:25:41,200 Dakle, očito oni su GPS koordinate Australije. 1705 01:25:41,200 --> 01:25:44,491 I neka mi hodati okolo samo na trenutak i pomoći svakome tko nije baš tamo, 1706 01:25:44,491 --> 01:25:47,729 ali neka mi predloži, putem Googlea, pronaći GPS koordinate vlastitog rodnog grada 1707 01:25:47,729 --> 01:25:48,770 ili svoju vlastitu domovinu. 1708 01:25:48,770 --> 01:25:51,436 I vjerojatno Google može pretvoriti ovo gore ili Wikipedia mogu ti reći. 1709 01:25:51,436 --> 01:25:54,410 No odabrati dvije različite vrijednosti za zemljopisne širine i dužine, 1710 01:25:54,410 --> 01:25:57,530 vratiti i zalijepiti ih i a zatim se ponovno učitati stranicu nakon spremanja 1711 01:25:57,530 --> 01:26:00,718 i vidjeti ako možete imati Karta za vlastitom rodnom gradu. 1712 01:26:00,718 --> 01:26:04,500 1713 01:26:04,500 --> 01:26:08,042 >> A kad ste gotovi sa da, follow-up challenge-- 1714 01:26:08,042 --> 01:26:11,250 a ja ću dati malo manje smjera, namjerno, tako da vas namjerno 1715 01:26:11,250 --> 01:26:13,791 moraju da se bore za par minuta s dokumentacijom, 1716 01:26:13,791 --> 01:26:18,740 promijeniti kartu da se ne to cartoonish zadani, ali satelitska karta. 1717 01:26:18,740 --> 01:26:24,600 Tako da zapravo vidjeti satelit slika umjesto lijepih boja. 1718 01:26:24,600 --> 01:26:29,710 >> A hint ću ti dati je promijeniti tip na kartu. 1719 01:26:29,710 --> 01:26:33,084 Vrati se da je dobivanje počela stranicu za inspiraciju. 1720 01:26:33,084 --> 01:26:40,599 1721 01:26:40,599 --> 01:26:42,390 Kao što ste mogli sakupljen, Ako ste u potrazi, 1722 01:26:42,390 --> 01:26:44,250 postoji toliko mnogo više stvari koje možete učiniti. 1723 01:26:44,250 --> 01:26:46,380 Neki od vas su već tip karte mjesta na promijenilo. 1724 01:26:46,380 --> 01:26:49,890 Ali možete do-- na primjer, neka me ići na nešto što je učinio za tečaj 1725 01:26:49,890 --> 01:26:52,050 Ja teach-- maps.cs50.net. 1726 01:26:52,050 --> 01:26:53,470 Jedan od naših undergrads to učinio. 1727 01:26:53,470 --> 01:26:58,890 Mi centar mape preko Harvard Yarda i prekriti sva ova imena zgrada, 1728 01:26:58,890 --> 01:27:01,070 i morali smo ga dodali ovaj. 1729 01:27:01,070 --> 01:27:04,270 Dakle, ako želim tražiti, Na primjer, Matthews Hall, 1730 01:27:04,270 --> 01:27:05,730 imamo malo padajući izbornik. 1731 01:27:05,730 --> 01:27:09,080 I ja mislim da je on pomoću programa, pa se Knjižnica smo ranije za to. 1732 01:27:09,080 --> 01:27:12,190 A ako kliknete na Matthews Hall, odmah 1733 01:27:12,190 --> 01:27:14,790 skokovi kartu na određeni položaj, i to pokazuje 1734 01:27:14,790 --> 01:27:16,440 što je slika u ovom malom pop-up. 1735 01:27:16,440 --> 01:27:18,670 >> No, čak i to malo pop-up, nismo provesti. 1736 01:27:18,670 --> 01:27:27,521 Ako sam se pomaknite prema dolje na našem dobivanje započeo stranice i tražiti info prozora, 1737 01:27:27,521 --> 01:27:29,770 vidjet ćete da su neki od Funkcionalnost vi sami 1738 01:27:29,770 --> 01:27:31,561 Možete dodati, ali s malo više složenosti, 1739 01:27:31,561 --> 01:27:33,970 nešto što se zove prozor s podacima. 1740 01:27:33,970 --> 01:27:37,190 A ako ja kliknite na primjer ovdje, a to je ono što je zabavno, 1741 01:27:37,190 --> 01:27:40,530 što možete učiniti stvari kao što je ovaj, Klikom na marker i voila, 1742 01:27:40,530 --> 01:27:42,400 Informacije pops gore. 1743 01:27:42,400 --> 01:27:45,874 >> Pa nismo baš uveden dovoljno značajke JavaScript 1744 01:27:45,874 --> 01:27:49,040 obojiti sliku točno kako vam mogao žice sve ove stvari zajedno, 1745 01:27:49,040 --> 01:27:50,706 ali smo nekako zagrebali površinu. 1746 01:27:50,706 --> 01:27:53,140 U stvari, ono što sam upravo učinio, kada kliknuo sam na taj marker, 1747 01:27:53,140 --> 01:27:55,819 se pokreće jedan događaj, Takozvani na klik događaj. 1748 01:27:55,819 --> 01:27:57,610 I mi zapravo vidio taj Događaj je ranije danas, 1749 01:27:57,610 --> 01:28:00,670 tzv podnijeti događaj, kad smo sprečavanju 1750 01:28:00,670 --> 01:28:02,490 korisnik od potrazi za mačke. 1751 01:28:02,490 --> 01:28:06,560 Tako smo nekako pokupila i choosed između svih tih različitih mogućnosti, 1752 01:28:06,560 --> 01:28:08,990 da vam dati osjećaj, nadajmo se, od onoga što zapravo može 1753 01:28:08,990 --> 01:28:11,000 učiniti s malo više udobnost u programiranju, 1754 01:28:11,000 --> 01:28:12,587 i potpuno besplatno resursi. 1755 01:28:12,587 --> 01:28:15,856 1756 01:28:15,856 --> 01:28:18,770 >> Ima li pitanja? 1757 01:28:18,770 --> 01:28:19,790 Ne? 1758 01:28:19,790 --> 01:28:22,542 Ovo je vaša konačna prilika, barem danas, u petak, 1759 01:28:22,542 --> 01:28:25,000 kako bi dobili ništa od svoje grudi tako da hoda odavde 1760 01:28:25,000 --> 01:28:27,067 osjećaj sigurni i udobni. 1761 01:28:27,067 --> 01:28:27,566 Da. 1762 01:28:27,566 --> 01:28:29,740 >> PUBLIKA: Zašto ne dodate još jednu stvar? 1763 01:28:29,740 --> 01:28:32,720 >> DAVID Malan: Ajme meni. 1764 01:28:32,720 --> 01:28:35,260 Moram se odmoriti ovaj vikend, mislim. 1765 01:28:35,260 --> 01:28:36,180 Ostala pitanja? 1766 01:28:36,180 --> 01:28:37,055 >> PUBLIKA: [nečujan] 1767 01:28:37,055 --> 01:28:44,130 1768 01:28:44,130 --> 01:28:46,810 >> DAVID Malan: Vi can-- u Internet Explorer, počivao u miru, 1769 01:28:46,810 --> 01:28:49,310 si nekad bio u mogućnosti staviti VB skripta, virtualni osnovni scenarij, 1770 01:28:49,310 --> 01:28:50,643 ali to zapravo nikada nije zaživjela. 1771 01:28:50,643 --> 01:28:52,490 Dakle, kratak odgovor je jednostavno JavaScript. 1772 01:28:52,490 --> 01:28:55,144 1773 01:28:55,144 --> 01:28:55,810 Ostala pitanja? 1774 01:28:55,810 --> 01:28:58,427 1775 01:28:58,427 --> 01:28:59,760 U redu, dobro, neka mi to učiniti. 1776 01:28:59,760 --> 01:29:02,070 Dopustite mi da zgrabite naše kolege vani. 1777 01:29:02,070 --> 01:29:04,500 Oni imaju neku procjenu Oblici koje žele svima 1778 01:29:04,500 --> 01:29:06,310 provesti nekoliko minuta da ispunite. 1779 01:29:06,310 --> 01:29:08,775 Žele prikupiti taj obrazac i bilo odricanja koje ste možda vani. 1780 01:29:08,775 --> 01:29:10,240 Oni će također imati certifikate. 1781 01:29:10,240 --> 01:29:12,380 Pretpostavljam da postoji još neke grickalice vani. 1782 01:29:12,380 --> 01:29:14,360 Pusti me proći ove out, a ako Za sva pitanja u međuvremenu, 1783 01:29:14,360 --> 01:29:17,120 Ja ću hodati okolo više pojedinačno i mi možemo dobiti koju je započeo. 1784 01:29:17,120 --> 01:29:17,879 Da naravno. 1785 01:29:17,879 --> 01:29:18,754 PUBLIKA: [nečujan] 1786 01:29:18,754 --> 01:29:26,737 1787 01:29:26,737 --> 01:29:28,570 DAVID Malan: To je Obično vrijedi ovih dana. 1788 01:29:28,570 --> 01:29:30,730 Dakako, s weba softver, vi ste naslonjena 1789 01:29:30,730 --> 01:29:32,901 o drugima ili ste estetski korištenjem stvari 1790 01:29:32,901 --> 01:29:35,400 kao što Bootstrap, tako da ne moraju provesti nisku razinu 1791 01:29:35,400 --> 01:29:37,169 detalji izbornika i tipke i sve to. 1792 01:29:37,169 --> 01:29:39,210 Ti si naslonjen na nekoga kao što su Google, tako da vas 1793 01:29:39,210 --> 01:29:42,050 ne moraju se graditi Uber posao i mapiranje poslovnih, 1794 01:29:42,050 --> 01:29:44,850 i bilo koji broj slične aplikacije, kao dobro. 1795 01:29:44,850 --> 01:29:46,350 >> U stvari, prijave su popularni, previše. 1796 01:29:46,350 --> 01:29:48,500 Ako ste koristili Spotify ili bilo koji broj stranica, 1797 01:29:48,500 --> 01:29:51,210 ćete se prijaviti na neki web stranica koje koriste Facebook. 1798 01:29:51,210 --> 01:29:53,350 Dakle, ono što je lijepo, tamo su API-ja za prijave 1799 01:29:53,350 --> 01:29:56,570 danas, tako da ne morate da imaju svoj vlastiti korisnicima stol 1800 01:29:56,570 --> 01:29:59,440 a sve svoje vlastite baze podataka nužno u istoj mjeri. 1801 01:29:59,440 --> 01:30:01,795 Možete pustiti Facebook učiniti sve te složenosti za vas. 1802 01:30:01,795 --> 01:30:03,920 Dakle, to je uzbudljivo vrijeme, iskreno, u programiranju, 1803 01:30:03,920 --> 01:30:07,200 jer postoji toliko mnogo treća strana Usluge koje se mogu graditi na vrhu. 1804 01:30:07,200 --> 01:30:10,890 >> I opet, to je cijena koju plaćate je bilo financijski ili zastoja. 1805 01:30:10,890 --> 01:30:13,750 Ako Google ide dolje, tako da se Uber, nedvojbeno, 1806 01:30:13,750 --> 01:30:15,690 ali možda to je razuman kompromis. 1807 01:30:15,690 --> 01:30:18,040 I opet, to je jedna od tema, nadamo se, u posljednjih nekoliko dana, 1808 01:30:18,040 --> 01:30:18,780 je ove ustupke. 1809 01:30:18,780 --> 01:30:20,738 I rijetko je tamo ide da bude pravi odgovor. 1810 01:30:20,738 --> 01:30:25,700 To stvarno je bolji dva ili više odgovora. 1811 01:30:25,700 --> 01:30:26,682 >> Pass ovih okolo. 1812 01:30:26,682 --> 01:30:36,830 1813 01:30:36,830 --> 01:30:41,110 >> I ove Cloud9 računi će se nastaviti na posao, u teoriji, u vječnost. 1814 01:30:41,110 --> 01:30:45,000 Možda će vam ako pričekate nekoliko dana ili tjedan ili više kako bi se ponovno prijaviti u njih, 1815 01:30:45,000 --> 01:30:49,170 to bi moglo potrajati kao jedan ili pet minuta otvoriti natrag gore, 1816 01:30:49,170 --> 01:30:54,090 ali to je samo zato što su stavili ona spavati uštedjeti na resursima. 1817 01:30:54,090 --> 01:31:10,527