1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:01,560 >> David MALAN: Lahat ng karapatan, kami ay bumalik. 3 00:00:01,560 --> 00:00:03,830 Kaya para sa mga kapana-panabik konklusyon, ang aming huling seksyon 4 00:00:03,830 --> 00:00:06,900 sa web programming, na aking naisip gusto namin gamitin bilang isang pangkalahatang kataga 5 00:00:06,900 --> 00:00:08,440 upang makuha ang isang ilang mga natitirang mga paksa. 6 00:00:08,440 --> 00:00:10,390 Kaya sa katapusan ng araw, kami ay talagang gawin 7 00:00:10,390 --> 00:00:14,830 isang maliit na piraso ng hands-on web programming sa isang wika na tinatawag JavaScript. 8 00:00:14,830 --> 00:00:17,510 At sa tingin ko kami ay kumuha ng isang pagtingin sa isang bagay na may kaugnayan sa mga imahe 9 00:00:17,510 --> 00:00:20,040 at pagtuklas ng isang bagay lihim na nakatago sa isang imahe, 10 00:00:20,040 --> 00:00:23,230 at ring kumuha ng isang pagtingin sa mga Google Maps API, application programming 11 00:00:23,230 --> 00:00:26,040 interface, bilang isang bagay kinatawan ng uri ng software 12 00:00:26,040 --> 00:00:28,800 iyon increasingly at malayang magagamit ngayon. 13 00:00:28,800 --> 00:00:32,029 >> Ngunit bakit hindi namin kumuha ng isang pagtingin sa isang sahog sa mundong ito 14 00:00:32,029 --> 00:00:34,070 na namin ang uri ng naging pagkuha para sa ipinagkaloob umiiral 15 00:00:34,070 --> 00:00:36,720 para sa ilang mga panahon, ang isang database. 16 00:00:36,720 --> 00:00:39,150 Para sa nakalipas na araw at kalahating na ipinapalagay namin 17 00:00:39,150 --> 00:00:42,910 na kami ay may access sa isang database, ngunit kung ano ang problema ay isang database malutas? 18 00:00:42,910 --> 00:00:45,540 Ano ang ginagawa nito para sa atin? 19 00:00:45,540 --> 00:00:47,030 Ano ito? 20 00:00:47,030 --> 00:00:48,679 >> Madla: [hindi marinig] 21 00:00:48,679 --> 00:00:51,720 David MALAN: Pagpipigil lahat ng impormasyon, OK, at kung ano ang mga uri ng impormasyon 22 00:00:51,720 --> 00:00:53,186 maaaring ilagay mo sa loob nito? 23 00:00:53,186 --> 00:00:54,590 >> Madla: [hindi marinig] 24 00:00:54,590 --> 00:00:56,450 >> David MALAN: Ang impormasyong may mong ilagay sa loob nito, makakakuha ka ng likod. 25 00:00:56,450 --> 00:00:57,070 Tama iyan. 26 00:00:57,070 --> 00:01:01,900 At sa isang tipikal na web-based na site o web application, ano ang mga uri ng impormasyon, 27 00:01:01,900 --> 00:01:03,385 partikular, maaari mong ilagay sa? 28 00:01:03,385 --> 00:01:04,260 Madla: [hindi marinig] 29 00:01:04,260 --> 00:01:05,051 David MALAN: Ang mga gumagamit. 30 00:01:05,051 --> 00:01:07,000 Kaya kung ano ang isang user? 31 00:01:07,000 --> 00:01:09,765 >> Madla: [hindi marinig] 32 00:01:09,765 --> 00:01:11,640 David MALAN: OK, na nakarehistro user ng site. 33 00:01:11,640 --> 00:01:15,100 At kung ano ang ibig sabihin ng imbak ng impormasyon gumagamit? 34 00:01:15,100 --> 00:01:17,260 Ano composes isang user? 35 00:01:17,260 --> 00:01:18,331 Ang isang gumagamit ay may kung ano ang? 36 00:01:18,331 --> 00:01:19,206 Madla: [hindi marinig] 37 00:01:19,206 --> 00:01:21,040 David MALAN: Oo, personal data, at ako na tulad ng. 38 00:01:21,040 --> 00:01:21,970 ni maging mas tumpak Hayaan. 39 00:01:21,970 --> 00:01:25,275 Kaya ang isang gumagamit ay karaniwang ay may pangalan, ano pa ang maaaring magkaroon ng isang user? 40 00:01:25,275 --> 00:01:26,150 Madla: [hindi marinig] 41 00:01:26,150 --> 00:01:29,130 David MALAN: Ang isang addr-- OK, kaya unang pangalan, apelyido. 42 00:01:29,130 --> 00:01:29,630 Mabuti yan. 43 00:01:29,630 --> 00:01:31,463 Sa totoo lang, sabihin ayusin na, dahil ito ay pagpunta 44 00:01:31,463 --> 00:01:35,010 para buksan ang up ng pagkakataon para sa discussion, pa rin, mas malayo. 45 00:01:35,010 --> 00:01:39,090 Unang pangalan, apelyido, kasarian. 46 00:01:39,090 --> 00:01:41,820 47 00:01:41,820 --> 00:01:43,481 Isang ID ng ilang mga uri. 48 00:01:43,481 --> 00:01:43,980 Ano pa? 49 00:01:43,980 --> 00:01:45,438 Narinig ko ibang bagay bago, masyadong. 50 00:01:45,438 --> 00:01:51,600 Isang email, postal address. 51 00:01:51,600 --> 00:01:58,170 >> Kaya sabihin i-pause doon at ngayon isaalang-alang hindi kung ano ang aming pag-iimbak sa database, 52 00:01:58,170 --> 00:02:01,980 but-- at hindi kung bakit, dahil ito ay marahil kitang-kita na sa sandaling ikaw ay magrehistro ng isang user, 53 00:02:01,980 --> 00:02:03,730 na nais mong matandaan ang mga ito para sa ilang oras. 54 00:02:03,730 --> 00:02:05,480 Hindi mo nais ito sa lamang naka-imbak sa RAM 55 00:02:05,480 --> 00:02:08,690 at ma-forgotten-- kaya tingnan natin ang kung paano. 56 00:02:08,690 --> 00:02:11,700 >> Ito ay lumiliko out na sa mundo ng mga database, 57 00:02:11,700 --> 00:02:14,410 mayroong hindi bababa sa dalawang uri ang mga araw. 58 00:02:14,410 --> 00:02:20,010 Isang bagay na tinatawag ng isang SQL database, Wika Structured Query, 59 00:02:20,010 --> 00:02:24,770 o, cutely pinangalanan, NoSQL, na kung saan ay hindi SQL. 60 00:02:24,770 --> 00:02:26,980 At ang huli ay isang halimbawa ng kung ano ang maaaring 61 00:02:26,980 --> 00:02:30,660 na tawaging object-oriented, o isang bagay na tindahan, isang database 62 00:02:30,660 --> 00:02:36,010 na nag-iimbak ng mga bagay, at hindi, excuse sa akin, bilang namin ay malapit nang makita, mga hilera. 63 00:02:36,010 --> 00:02:41,800 >> Kaya kami ay tumutok para sa sandali lamang sa ang unang ng mga, namely, ang isang SQL 64 00:02:41,800 --> 00:02:46,850 database, kung lamang dahil sa ito ay kaya pamilyar na, sa kahit sino 65 00:02:46,850 --> 00:02:51,070 na nag-ginamit Excel o Sheets Google o Apple 66 00:02:51,070 --> 00:02:53,740 Numero o anumang pamantayan spreadsheet program, 67 00:02:53,740 --> 00:02:56,040 o, equivalently, o mas sophisticatedly, 68 00:02:56,040 --> 00:02:58,610 isang bagay tulad ng Microsoft Access o Oracle 69 00:02:58,610 --> 00:03:03,890 o MySQL o PostgreSQL, ang lahat ay ay mga pangalan produkto pagpapatupad 70 00:03:03,890 --> 00:03:04,865 sa mga sumusunod na ideya. 71 00:03:04,865 --> 00:03:10,350 >> A pamanggit database ay simpleng isang bagay na may hanay at haligi. 72 00:03:10,350 --> 00:03:12,850 At sa pamamagitan ng hanay at haligi, Ako literal ibig sabihin ng isang bagay 73 00:03:12,850 --> 00:03:21,860 tulad nito, kaya kung saan maaari naming magkaroon ng pangalan ng isang patlang at ang uri nito sa paglipas dito. 74 00:03:21,860 --> 00:03:25,800 At talagang, hayaan mo akong ngayon simulan upang i-map ang mga ito. 75 00:03:25,800 --> 00:03:29,420 Kaya talaga, hindi ko alam kung bakit ako Drew ng isang hiwalay na chart. 76 00:03:29,420 --> 00:03:30,780 panatilihin ang mga ito simpleng Hayaan. 77 00:03:30,780 --> 00:03:34,830 >> Mayroon kaming karapatan dito sa Beginnings ng aming table, kung saan 78 00:03:34,830 --> 00:03:40,150 ito ay ang pangalan ng patlang at ito ay ang uri ng data, 79 00:03:40,150 --> 00:03:41,660 at ayon sa uri ibig sabihin ko ang mga sumusunod. 80 00:03:41,660 --> 00:03:45,510 Ito ba ay isang bilang, ito ay isang string, isang maikling string tulad ng isang salita, 81 00:03:45,510 --> 00:03:49,340 ito ay isang talata, ay ito binary data, tulad ng isang imahe? 82 00:03:49,340 --> 00:03:51,980 At sabihin lamang mambiro ito ilaan para lamang sa isang sandali. 83 00:03:51,980 --> 00:03:57,575 Kaya unang pangalan, numero, string, malaking tipak ng text-- 84 00:03:57,575 --> 00:03:58,450 Madla: [hindi marinig] 85 00:03:58,450 --> 00:03:59,616 David MALAN: Oo, kaya string. 86 00:03:59,616 --> 00:04:04,744 At sa isang database konteksto, kami karaniwang itawag sa char field. 87 00:04:04,744 --> 00:04:07,660 kukunin ko na lang sabihin char para sa ngayon ngunit kami pagpunta upang pinuhin ito sa isang sandali. 88 00:04:07,660 --> 00:04:09,180 field Character. 89 00:04:09,180 --> 00:04:11,365 Apelyido ay marahil pareho. 90 00:04:11,365 --> 00:04:11,865 Kasarian? 91 00:04:11,865 --> 00:04:16,230 92 00:04:16,230 --> 00:04:18,310 >> Lalaki o babae, kaya ito ay maaaring isang pansamantalang trabaho field. 93 00:04:18,310 --> 00:04:21,380 Ito ay maaaring maging alinman sa quote, magpanipi "Lalaki" o quote, magpanipi "babae" 94 00:04:21,380 --> 00:04:23,650 o maaaring ito ay m o f. 95 00:04:23,650 --> 00:04:26,540 Kung nais mong maging mas inclusive, maaaring kailangan mo ng isang third halaga 96 00:04:26,540 --> 00:04:28,640 o ilang mga uri ng iba pang mga patlang kabuuan. 97 00:04:28,640 --> 00:04:31,350 At kaya maaari mong gamitin ang tunay na hindi totoo. 98 00:04:31,350 --> 00:04:35,036 Ang bukid ay maaaring tinawag na lalake, at pagkatapos ay maaari mong sabihin totoo o hindi. 99 00:04:35,036 --> 00:04:38,160 Ngunit iyon ay hindi kinakailangang makuha lahat ng impormasyon na maaari mong. 100 00:04:38,160 --> 00:04:41,118 >> Kaya ito lumiliko out mayroong isa pang uri ng mga patlang na maaaring maging kapaki-pakinabang dito 101 00:04:41,118 --> 00:04:46,040 sa isang tipikal na database, na tinatawag na isang enum, kung saan ito ay isang patlang ng character, 102 00:04:46,040 --> 00:04:50,480 ngunit ikaw, ang taga-disenyo, kumuha na magbilang ang mga posibleng halaga, 103 00:04:50,480 --> 00:04:54,630 tulad quote, magpanipi "lalaki", quote, magpanipi "babae" at iba pa. 104 00:04:54,630 --> 00:04:57,620 Kaya na kung ano ang halaga ay nasa iyong database, 105 00:04:57,620 --> 00:05:00,670 ay sa katunayan character-based, ngunit ito ay upang maging isa sa mga halaga. 106 00:05:00,670 --> 00:05:03,520 Kami ay marahil ay hindi gusto ng isang enum para sa unang pangalan o apelyido. 107 00:05:03,520 --> 00:05:05,630 Kung hindi man kami ay may sa magbilang, tulad ng pangalan 108 00:05:05,630 --> 00:05:09,570 derives mula sa, literal bawat posibleng unang pangalan at apelyido. 109 00:05:09,570 --> 00:05:13,960 >> OK, kaya ID kung ano ang dapat ng isang ID na ito? 110 00:05:13,960 --> 00:05:15,200 Oo, kaya siguro ang isang numero. 111 00:05:15,200 --> 00:05:17,870 Kaya sabihin stick sa na para sa ngayon, numero. 112 00:05:17,870 --> 00:05:22,010 At sa pamamagitan ng numero, numero ay isang maliit na masyadong malawak na ngayon. 113 00:05:22,010 --> 00:05:23,900 Para sa katapusan ng ikalawang araw, Pakiramdam ko ay tulad namin 114 00:05:23,900 --> 00:05:25,280 ay dapat na isang maliit na mas tiyak. 115 00:05:25,280 --> 00:05:29,280 Number ay maaaring ibig sabihin tulad ng, ito maaaring maging isang bagay tulad ng 1.236. 116 00:05:29,280 --> 00:05:31,500 At iyon ay marahil hindi kung ano ang aming ibig sabihin sa pamamagitan ng isang ID. 117 00:05:31,500 --> 00:05:34,635 Ano ang gagawin namin malamang na ibig sabihin sa pamamagitan ng isang ID? 118 00:05:34,635 --> 00:05:36,382 >> Madla: [hindi marinig] 119 00:05:36,382 --> 00:05:38,590 David MALAN: Oh, OK, kaya marahil ito ay hindi kahit na ang isang numero. 120 00:05:38,590 --> 00:05:42,840 Siguro ito ay talagang isang natatanging identifier na ang isang string, tulad ng isang user name. 121 00:05:42,840 --> 00:05:44,580 Kaya walang pasubali, ay maaaring. 122 00:05:44,580 --> 00:05:46,730 Sa tingin ko ang isang tao marahil sinadya numeric, bagaman. 123 00:05:46,730 --> 00:05:48,460 Kaya sabihin manatili sa na. 124 00:05:48,460 --> 00:05:49,320 Anong klaseng number? 125 00:05:49,320 --> 00:05:51,960 Ano ang isang mas precise-- isang integer. 126 00:05:51,960 --> 00:05:56,710 Kaya ang isang numero tulad ng 0, 1, 2, 3, kaya ipapakita namin itawag sa isang integer. 127 00:05:56,710 --> 00:05:58,909 At kahit pagkatapos, kaya kong ay nitpicking, ito ay 128 00:05:58,909 --> 00:06:00,700 hindi talagang lamang ng isang general integer na gusto mo. 129 00:06:00,700 --> 00:06:04,340 Ikaw marahil ay hindi nais negatibong halaga, dahil lang sa, ito lamang ang nararamdaman kakaiba. 130 00:06:04,340 --> 00:06:06,070 Maaring nais positive integers. 131 00:06:06,070 --> 00:06:07,920 Kaya maaari mo ring ipahayag ang na sa isang database, 132 00:06:07,920 --> 00:06:09,450 ngunit sa ngayon, kami ay sabihin integer. 133 00:06:09,450 --> 00:06:10,650 >> Email? 134 00:06:10,650 --> 00:06:13,550 Ito ay marahil just-- isang kung ano? 135 00:06:13,550 --> 00:06:14,460 >> Madla: [hindi marinig] 136 00:06:14,460 --> 00:06:16,980 >> David MALAN: Ito ay isang email, ngunit iyan ay mga character, i-right? 137 00:06:16,980 --> 00:06:19,813 Ito lamang ay may isang funky character tulad ng isang "sa" simbolo o iba pang dahilan, 138 00:06:19,813 --> 00:06:21,580 ngunit ito ay pa rin ng isang patlang character. 139 00:06:21,580 --> 00:06:23,900 At postal address? 140 00:06:23,900 --> 00:06:25,360 field Character. 141 00:06:25,360 --> 00:06:31,400 Kaya na ang isang magandang simula, ngunit sabihin maging isang maliit na mas tiyak na ngayon. 142 00:06:31,400 --> 00:06:34,540 >> Kaya ito ay lumiliko out na sa isang database, ikaw ay madalas na 143 00:06:34,540 --> 00:06:39,120 magkaroon ng isang pagpipilian ng higit sa mas pino bersyon ng mga bagay na ito. 144 00:06:39,120 --> 00:06:44,330 Sa katunayan, sa isang tipikal na SQL database, SQL, o sa mas pangkalahatang, pamanggit database, 145 00:06:44,330 --> 00:06:46,680 database na may mga hilera at mga haligi, ikaw ay madalas na 146 00:06:46,680 --> 00:06:53,610 makakuha upang tukuyin hindi lamang ang uri ng mga field-- hayaan mo akong gumawa ng ilang mga kuwarto here-- 147 00:06:53,610 --> 00:06:56,600 kundi pati na rin ang haba. 148 00:06:56,600 --> 00:06:59,900 >> Kaya kung gaano katagal ay isang unang pangalan? 149 00:06:59,900 --> 00:07:07,060 Sa tingin ko, D-A-V-I-D. OK, nakuha ko ko marahil lamang naapi tulad ng kalahati 150 00:07:07,060 --> 00:07:11,260 ng mga tao sa kuwarto, kanan, dahil ang inyong mga pangalan ay mas mahaba kaysa sa limang 151 00:07:11,260 --> 00:07:16,608 titik, kaya limang tila isang maliit na makasarili at walang muwang, kaya kung ano ang isang mas mahusay na halaga? 152 00:07:16,608 --> 00:07:19,320 153 00:07:19,320 --> 00:07:24,330 10, lahat ng karapatan, at sa tingin ko kami ay OK sa kuwarto. 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 Bakit hindi ko gawin ang mga diskarte ng mas maaga kapag kami 157 00:07:29,540 --> 00:07:31,081 ay pakikipag-usap tungkol sa arrays at memory? 158 00:07:31,081 --> 00:07:32,450 Bakit hindi ko na lang sabihin tulad 1,000? 159 00:07:32,450 --> 00:07:35,260 pangalan Walang sinuman ay pagpunta upang maging mas mahaba kaysa sa 1,000. 160 00:07:35,260 --> 00:07:36,706 Uurong. 161 00:07:36,706 --> 00:07:38,005 >> Madla: [hindi marinig] 162 00:07:38,005 --> 00:07:40,130 David MALAN: Oo, ito ay mapag-aksaya, right, lalo na 163 00:07:40,130 --> 00:07:44,630 kung karamihan pangalan ay lamang ng lima o 10 o 15 mga character, napakagaling mapag-aksaya. 164 00:07:44,630 --> 00:07:45,810 Kaya alam mo kung ano? 165 00:07:45,810 --> 00:07:48,020 Ito ay uri ng isang mahirap na tanong. 166 00:07:48,020 --> 00:07:51,721 Ngayon, maaari naming tiyak na pag-aralan English at mga pangalan ng anumang iba pang mga wika ni 167 00:07:51,721 --> 00:07:54,470 at malaman kung, well, kung ano ang average-- average ay hindi tunay 168 00:07:54,470 --> 00:07:57,150 matulungan us-- ano ang max ay marahil kung ano ang aming talagang gusto. 169 00:07:57,150 --> 00:07:59,920 Ngunit ito ay lumiliko out namin kahit na magkaroon ng ilang choice ibabaw ng type dito. 170 00:07:59,920 --> 00:08:03,400 >> Sa isang tipikal na SQL database, ikaw may isang bagay na tinatawag na isang char field 171 00:08:03,400 --> 00:08:07,505 at din ng isang varchar, V-A-R, para sa mga variable char field. 172 00:08:07,505 --> 00:08:08,630 At ang pagkakaiba ay na ito. 173 00:08:08,630 --> 00:08:12,400 Ang isang pansamantalang trabaho field, ikaw ang taga-disenyo, kung tukuyin nang maaga 174 00:08:12,400 --> 00:08:14,900 ang eksaktong haba ng field. 175 00:08:14,900 --> 00:08:20,530 Kaya siguro ang unang pangalan tulad ng 20 nararamdaman uri ng safe. 176 00:08:20,530 --> 00:08:23,950 Maaaring may sa gawin ang ilang mga googling sa makita kung na talagang ligtas na sapat. 177 00:08:23,950 --> 00:08:26,910 May marahil ng isang pangalan na may 21 character, ngunit sa ngayon, ipagpalagay 20 178 00:08:26,910 --> 00:08:27,620 ay ligtas. 179 00:08:27,620 --> 00:08:30,070 >> Ang isang pansamantalang trabaho field ay magpahiwatig sa isang database na kayo 180 00:08:30,070 --> 00:08:33,289 ay gumagamit ng 20 at laging 20 character. 181 00:08:33,289 --> 00:08:37,419 Ngayon kung ito ay lamang ng D-A-V-I-D, 15 ng mga ay lamang ang pagpunta sa maging blangko character, 182 00:08:37,419 --> 00:08:40,450 ngunit pa rin ang ginagamit mo ang lahat ng 20 bytes. 183 00:08:40,450 --> 00:08:46,302 A varchar field, sa pamamagitan ng kaibahan, ay nangangahulugan na ang string ay dapat na hanggang sa 20 mga character 184 00:08:46,302 --> 00:08:48,260 ngunit kung ito ay lamang ng limang, lamang ikaw ay pagpunta sa gamitin 185 00:08:48,260 --> 00:08:51,270 limang, o marahil anim para sa isang espesyal na halaga sa dulo, 186 00:08:51,270 --> 00:08:54,980 tulad na 0 napag-usapan namin na Sumisimbolo sa dulo ng isang character 187 00:08:54,980 --> 00:08:56,790 sequence sa memorya. 188 00:08:56,790 --> 00:08:59,950 >> Kaya kapag sa tingin ninyo maaari mong piliin char 189 00:08:59,950 --> 00:09:05,240 versus varchar, na ibinigay na trade-off? 190 00:09:05,240 --> 00:09:09,321 Char ay gumagamit na ang maraming mga character, varchar ay gumagamit ng walang higit pa kaysa sa maraming mga character. 191 00:09:09,321 --> 00:09:10,196 Madla: [hindi marinig] 192 00:09:10,196 --> 00:09:13,859 193 00:09:13,859 --> 00:09:16,900 David MALAN: OK, kapag alam mo ang haba ng string pretty nakakahimok 194 00:09:16,900 --> 00:09:19,316 sa makatarungan gumamit char, dahil kung alam mo ito, lamang ilagay ito pababa. 195 00:09:19,316 --> 00:09:23,390 At marahil na totoo para sa isang zip code, sa US, hindi bababa sa, 02138, 196 00:09:23,390 --> 00:09:26,660 palagi itong pagpunta sa maging limang character hanggang mong idagdag ang dash apat. 197 00:09:26,660 --> 00:09:29,750 Ngunit maaari kang makakuha ng ilang mga halaga para sa na lagi mong malaman ang haba. 198 00:09:29,750 --> 00:09:32,310 O siguro estado simbolo, tulad NY para sa New York, 199 00:09:32,310 --> 00:09:33,811 at MA para sa Massachusetts sa US. 200 00:09:33,811 --> 00:09:36,560 Siguro ikaw ay walang ilang mga sitwasyon kung saan na lubos makatwirang, 201 00:09:36,560 --> 00:09:39,520 ngunit sa pamamagitan ng lohika na, bakit namin kahit overthinking ito? 202 00:09:39,520 --> 00:09:41,800 Bakit hindi namin lamang gamitin varchar at pagkatapos lamang namin idedetalye 203 00:09:41,800 --> 00:09:46,730 laging gumamit ng dalawang character pa rin, o laging gumamit ng limang mga character pa rin? 204 00:09:46,730 --> 00:09:50,300 Bakit hindi lamang i-save ang varchar para lahat ng bagay, sa pamamagitan ng lohika na? 205 00:09:50,300 --> 00:09:51,677 Dapat ay may isang catch. 206 00:09:51,677 --> 00:09:52,552 Madla: [hindi marinig] 207 00:09:52,552 --> 00:09:54,952 208 00:09:54,952 --> 00:09:56,660 David MALAN: Could magsulat ng isang bagay na mali. 209 00:09:56,660 --> 00:09:58,090 Kaya na ay totoo. 210 00:09:58,090 --> 00:10:01,030 Ngunit kahit na pagkatapos, hindi nila maaaring gamitin mas memory kaysa maglaan ko. 211 00:10:01,030 --> 00:10:03,340 Ako pa rin ay ang pangwakas na sabihin sa ibabaw ng haba, 212 00:10:03,340 --> 00:10:06,780 kaya hindi sinasadyang sila ay maaaring gumawa ng na di-tama, ngunit isang mahusay na pag-iisip. 213 00:10:06,780 --> 00:10:10,510 Ito ay mas pino, ngunit ito ay napaka-kaugnay na sa aming mga talakayan, talaga, ng arrays 214 00:10:10,510 --> 00:10:12,390 at naka-link listahan nang mas maaga. 215 00:10:12,390 --> 00:10:16,290 >> Ito ay lumiliko out na ang isang database, kung ito alam na ang lahat ng mga halaga ay 216 00:10:16,290 --> 00:10:19,250 ng isang nakapirming haba, kahit na ang ilan sa mga halaga ay blangko, 217 00:10:19,250 --> 00:10:22,484 uri ng aesthetically blangko, D-A-V-I-D at pagkatapos ay 15 blanks, 218 00:10:22,484 --> 00:10:24,650 ito ay lumiliko out na kung ang bawat bukid ay ang parehong haba, 219 00:10:24,650 --> 00:10:28,670 marami tulad ng isang array ay ang lahat ng mga bagay-bagay sa kanyang back to back upang i-back upang i-back upang ang 220 00:10:28,670 --> 00:10:33,480 maaari mo lamang plus 1 upang makakuha ng sa susunod na halaga, parehong ideya sa isang database table. 221 00:10:33,480 --> 00:10:37,550 Kung ang lahat ng iyong mga character string ay ang parehong haba, 222 00:10:37,550 --> 00:10:39,390 ikaw ay may kung ano ang tinatawag random access. 223 00:10:39,390 --> 00:10:41,850 Kung ang lahat ng mga string ay ng length 20, hindi mo lamang 224 00:10:41,850 --> 00:10:45,230 gawin plus 1 mo lamang gawin plus 20, plus 20, plus 20, plus 20, 225 00:10:45,230 --> 00:10:48,775 at maaari mong masyadong mabilis mag-scroll sa o maghanap sa lahat ng iyong data. 226 00:10:48,775 --> 00:10:54,420 >> Ang isang variable char field, sa pamamagitan ng kaibahan, ay hindi laging magkaroon ng 20 mga character. 227 00:10:54,420 --> 00:10:58,000 Ito ay maaaring magkaroon ng 20 at pagkatapos ay 15 at pagkatapos ay 19 at pagkatapos ay 10, 228 00:10:58,000 --> 00:11:00,720 at kaya kung nais mong maghanap sa pamamagitan ng ito, maaari mong hindi lamang nang walang taros 229 00:11:00,720 --> 00:11:03,050 magdagdag ng 20 bytes upang makakuha ng sa susunod na isa. 230 00:11:03,050 --> 00:11:07,280 Ikaw literal na kailangang maghanap sa pamamagitan ng dahil sa gilid ng istraktura ng data, 231 00:11:07,280 --> 00:11:08,340 kung ikaw ay, ay punit-punit. 232 00:11:08,340 --> 00:11:11,480 Ito ay uri ng napupunta sa at sa labas batay sa aktwal na haba ng string. 233 00:11:11,480 --> 00:11:14,460 Kaya kapag alam mo ang haba, bilang Kareem sabi ni, gumamit ng isang char field, 234 00:11:14,460 --> 00:11:16,460 dahil ikaw ay makakuha ng na kahusayan ng pagiging 235 00:11:16,460 --> 00:11:19,170 magagawang upang maghanap sa pamamagitan ng ito nang mas mabilis kapag kayo ay naghahanap para sa data, 236 00:11:19,170 --> 00:11:20,550 kung hindi man gumamit ng isang variable. 237 00:11:20,550 --> 00:11:24,450 >> Sa kasamaang palad, wala akong magandang sagot sa kung gaano katagal ang pangalan ay dapat na, 238 00:11:24,450 --> 00:11:26,360 ngunit para sa isang bagay tulad ng isang pangalan, nais kong sabihin 239 00:11:26,360 --> 00:11:28,470 isang varchar ay karaniwan dahil hindi ito ay pagpunta 240 00:11:28,470 --> 00:11:30,430 upang maging isang nakapirming haba para sa lahat. 241 00:11:30,430 --> 00:11:33,650 20, hindi ko alam, 20 nararamdaman ng isang maliit na masikip. 242 00:11:33,650 --> 00:11:36,460 Sabihin lang sabihin 50, 50. 243 00:11:36,460 --> 00:11:39,210 Ito ay hindi talagang gastos sa iyo na marami pang iba upang sabihin 50 sa halip ng 40, 244 00:11:39,210 --> 00:11:41,260 ngunit sa ilang mga punto, kailangan mong upang gumawa ng isang paghatol na tawag. 245 00:11:41,260 --> 00:11:43,090 >> Napaka-pangkaraniwan, lantaran, para sa [? makasaysayang?] 246 00:11:43,090 --> 00:11:47,670 dahilan, kahit na ito ay labis na, sa makatuwid baga'y 255, dahil ang ilang mga oras ang nakalipas, 247 00:11:47,670 --> 00:11:51,440 sa popular na sistema ng database, tulad ng MySQL, isang libreng open source tool 248 00:11:51,440 --> 00:11:53,790 na ang isang pulutong ng mga kompanya tulad ng kahit Facebook ginamit, 249 00:11:53,790 --> 00:11:56,654 ito ay ang maximum default kaya mga tao lamang nagpunta dito. 250 00:11:56,654 --> 00:11:59,070 Kaya hindi makatwiran, ngunit bibigyan namin gumamit ng isang maliit na mas intuwisyon 251 00:11:59,070 --> 00:12:02,970 At iyong sabihin, bang 50, na ang dahilan marahil ng isang maliit na labis. 252 00:12:02,970 --> 00:12:05,720 >> Kasarian, Gagawin ko tulad enum, at sa gayon kami ay maaaring samakatuwid 253 00:12:05,720 --> 00:12:08,760 magbilang lalaki o babae, o marahil mas mahusay, 254 00:12:08,760 --> 00:12:13,420 m o f o ilang iba pang symbology, ngunit enum nararamdaman tulad ng isang mahusay na pagpili doon. 255 00:12:13,420 --> 00:12:16,740 Upang maging malinaw, kasarian maaari lamang maging isang varchar, 256 00:12:16,740 --> 00:12:19,090 at kami ay maaaring lamang ang lahat sumasang-ayon bilang magaling na tao, 257 00:12:19,090 --> 00:12:21,010 na laging ilagay ang parehong mga halaga doon. 258 00:12:21,010 --> 00:12:22,720 Lalaki o babae o watnat. 259 00:12:22,720 --> 00:12:27,800 >> Ngunit ang problema pagkatapos, ay na maaari naming gumawa ng isang pagkakamali, tulad ng [hindi marinig] iminungkahi 260 00:12:27,800 --> 00:12:29,140 mas maaga sa isang iba't ibang konteksto. 261 00:12:29,140 --> 00:12:32,780 Kung gumawa kami ng isang pagkakamali, maaari naming makakuha ng hindi tamang mga halaga sa aming database. 262 00:12:32,780 --> 00:12:36,320 Kaya kung ano ang maganda tungkol database tulad ng Oracle at MySQL at iba pa, 263 00:12:36,320 --> 00:12:39,280 ay na kayo ay may ito huling layer ng depensa kung saan 264 00:12:39,280 --> 00:12:43,010 iyong DBA, database administrator, kahit sino ay pagdisenyo ng talahanayan na ito tulad namin 265 00:12:43,010 --> 00:12:46,440 Isasama sa salita, ay maaaring ilagay sa lugar ng isang enum na 266 00:12:46,440 --> 00:12:51,250 pinoprotektahan laban na sa pamamagitan ng pagtukoy lalaki, babae, at sa gayon walang sinuman 267 00:12:51,250 --> 00:12:54,230 sino pa ang paririto walang programmer Maaari sinasadyang magpasok ng anumang iba pang mga halaga. 268 00:12:54,230 --> 00:12:55,480 Kaya ito ay magiging isang magandang bagay. 269 00:12:55,480 --> 00:12:56,660 Ito ay isang tampok. 270 00:12:56,660 --> 00:13:00,760 >> Kaya isang ID, sa pag-aakala ng isang numeric ID, ito marahil ay dapat na isang positibong integer. 271 00:13:00,760 --> 00:13:04,380 At hindi na namin minsan ang mayroon pagkakataon upang talakayin haba. 272 00:13:04,380 --> 00:13:06,830 Ng gagawin mo hindi karaniwang tukuyin ang isang numero dito, 273 00:13:06,830 --> 00:13:11,310 Gusto mo sa halip tukuyin ito ay isang int, o isang malaking int, 274 00:13:11,310 --> 00:13:12,980 bilang ang mga ito ay karaniwang tinatawag na. 275 00:13:12,980 --> 00:13:18,840 Ngunit karaniwan, isang integer ay magiging, sabihin nating, 4 bytes. 276 00:13:18,840 --> 00:13:23,694 At kung ito ay 4 bytes, na ang dahilan kung gaano karaming mga bits? 277 00:13:23,694 --> 00:13:24,630 >> Madla: [hindi marinig] 278 00:13:24,630 --> 00:13:26,610 >> David MALAN: 32 bits. 279 00:13:26,610 --> 00:13:30,270 Kaya kung gaano karaming mga gumagamit ay maaari naming magkaroon sa aming database kung lahat sila ay may isang ID 280 00:13:30,270 --> 00:13:33,320 at ID na ito ay may upang maging natatangi? 281 00:13:33,320 --> 00:13:36,780 32 bits ay nangangahulugan na mayroon kami kataga ng isa, dalawa, tatlo, apat, five-- 282 00:13:36,780 --> 00:13:41,000 kaya kung gaano karaming iba't ibang mga pattern ng mga zero at mga bago maaari kang magkaroon ng kung may mga 32? 283 00:13:41,000 --> 00:13:43,235 Iyan ay ang parehong bagay bilang humihingi sa kung ano ang dalawa hanggang sa 32? 284 00:13:43,235 --> 00:13:46,472 285 00:13:46,472 --> 00:13:48,430 Isa itong malaking numero na Hindi pa ko makakuha ng karapatan, 286 00:13:48,430 --> 00:13:50,270 ngunit alam ko ito ay halos 4 bilyon. 287 00:13:50,270 --> 00:13:53,970 Kaya ito nangangahulugan na ang iyong database talahanayan ay maaaring may apat na bilyong mga gumagamit at iyon ito. 288 00:13:53,970 --> 00:13:56,410 >> Kaya ito ay isang kawili-wiling disenyo implikasyon. 289 00:13:56,410 --> 00:14:00,840 Ang isang disenteng bilang ng mga kumpanya nagpasya, siguro hindi kaya magkano 290 00:14:00,840 --> 00:14:04,860 para sa kanilang mga gumagamit ng talahanayan, dahil sa pagkakaroon 4 billion user ay isang bihirang problema. 291 00:14:04,860 --> 00:14:08,410 Ito ay uri ng isang Facebook-style problema, hindi isang tipikal na problema ng kumpanya. 292 00:14:08,410 --> 00:14:12,670 Pero siguro kung mayroon kang transaksyon logs o ilang mga uri ng data na patuloy 293 00:14:12,670 --> 00:14:15,610 makakakuha ng nakasulat sa iyong database na walang pasubali ay maaaring magkaroon ng mga bilyun-bilyong 294 00:14:15,610 --> 00:14:18,900 at bilyun-bilyong ng mga hilera, at gumamit ka ng isang integer para dito, 295 00:14:18,900 --> 00:14:22,750 kung ano ang pagpunta sa mangyayari sa lalong madaling kumuha ka sa hilera number 4 billion 296 00:14:22,750 --> 00:14:26,210 at pagkatapos mong subukan upang ipasok ang 4 billionth at 1, kaya na magsalita? 297 00:14:26,210 --> 00:14:29,610 Ako simplifying ang mga numero ng kaunti. 298 00:14:29,610 --> 00:14:33,740 >> Maaari mong i-cut pabalik, ibig sabihin ko sa iyo kung hawakan ito sa anumang paraan. 299 00:14:33,740 --> 00:14:37,910 At kung ano ang isang computer ay karaniwang gawin, isipin ang tungkol dito kahit na mula sa ito umaga, 300 00:14:37,910 --> 00:14:42,430 kung ikaw ay may isang 4-bit na halaga tulad ng 1, 1, 1, 1, na kung saan, 301 00:14:42,430 --> 00:14:44,920 lamang upang itali ang umaga sama-sama sa hapon, kung ano 302 00:14:44,920 --> 00:14:48,369 ay ang bilang na ito ay kumakatawan sa binary? 303 00:14:48,369 --> 00:14:49,410 OK, kami ay gawin itong mas madali. 304 00:14:49,410 --> 00:14:53,310 Ano ang numerong ito kumakatawan sa binary? 305 00:14:53,310 --> 00:14:56,794 OK, kami ay gumawa ng mas madali, kung ano ay ito ay kumakatawan sa binary? 306 00:14:56,794 --> 00:14:57,460 Madla: Three. 307 00:14:57,460 --> 00:14:59,670 David MALAN: Three, dahil mayroon kaming ang mga column-- 308 00:14:59,670 --> 00:15:00,450 [TAWA] 309 00:15:00,450 --> 00:15:01,350 Whew! 310 00:15:01,350 --> 00:15:03,980 Nagkaroon kami ng mga haligi at ang twos haligi. 311 00:15:03,980 --> 00:15:07,250 Kaya ipagpalagay na, sa katunayan, ang aming [? infield?] ay hindi 32 bits, 312 00:15:07,250 --> 00:15:13,440 ngunit ito ay dalawang bits, maaari naming count mula sa gumagamit number 0, 1, 2, 3, 313 00:15:13,440 --> 00:15:18,040 at pagkatapos ay kami ay uri ng pabalik sa user 00 muli. 314 00:15:18,040 --> 00:15:19,739 Kaya ito ay kung ano ay karaniwang mangyayari. 315 00:15:19,739 --> 00:15:22,780 Kung sakaling mo na narinig ang expression-- marahil ay may hindi, ngunit kung have-- mo 316 00:15:22,780 --> 00:15:26,500 integer overflow, kung saan mo panatilihin flipping ang lahat ng iyong mga piraso 317 00:15:26,500 --> 00:15:29,640 na ang pinakamalaking posibleng halaga, at pagkatapos ikaw ay out ng mga piraso, 318 00:15:29,640 --> 00:15:30,850 kung ano ang nais ay karaniwang mangyayari? 319 00:15:30,850 --> 00:15:32,280 Bakit sinasabi ko 00? 320 00:15:32,280 --> 00:15:33,220 Well, ito ay tatlo. 321 00:15:33,220 --> 00:15:34,230 Paano ko kakatawanin ko 4? 322 00:15:34,230 --> 00:15:36,890 323 00:15:36,890 --> 00:15:38,915 Paano ko ay kumakatawan sa mga para sa numero 4 sa binary? 324 00:15:38,915 --> 00:15:39,790 Madla: [hindi marinig] 325 00:15:39,790 --> 00:15:41,780 David MALAN: one-- yeah, huwag sabihin 100 per se, 326 00:15:41,780 --> 00:15:44,190 dahil ito ay may mali kahulugan, ngunit 1-0-0. 327 00:15:44,190 --> 00:15:48,920 Kaya na number 1-0-0 ay talagang tama, ngunit kung ikaw ay may lamang ng dalawang bits, 328 00:15:48,920 --> 00:15:50,820 ano ang mayroon kang talagang ginawa? 329 00:15:50,820 --> 00:15:53,219 Mo na pinagsama sa ibabaw sa 00. 330 00:15:53,219 --> 00:15:54,760 At sa katunayan, iyan ay kung ano ang mangyayari. 331 00:15:54,760 --> 00:15:56,884 Talaga, maaari mong isipin tungkol sa mga ito ng mas maraming pabihasa. 332 00:15:56,884 --> 00:15:59,350 Kung isipin ang mo, ano, 16 taon na ang nakakaraan, ang mundo 333 00:15:59,350 --> 00:16:03,380 ay dapat na nagtatapos kapag ang Y2K problema ang nangyari. 334 00:16:03,380 --> 00:16:04,330 Bakit ay na? 335 00:16:04,330 --> 00:16:08,170 Well karamihan ng mga computer, para sa makatwirang desisyon, 336 00:16:08,170 --> 00:16:15,320 ay pag-iimbak ng mga numero tulad ng mga taon 1975 o ang taong 1999 337 00:16:15,320 --> 00:16:19,010 sa pamamagitan lamang ng paggamit ng dalawang numero sa memory ng computer. 338 00:16:19,010 --> 00:16:21,950 Kaya siyempre, kung ano ang mangyayari kapag nakarating ka na sa taong 2000, 339 00:16:21,950 --> 00:16:25,790 kang pumunta sa ito, o sa halip, yeah. 340 00:16:25,790 --> 00:16:30,120 Kaya kang pumunta sa taong 2000, ngunit kung lamang ikaw ay gumagamit ng dalawang numero sa hitsura nito 341 00:16:30,120 --> 00:16:32,660 tulad ng mga taong 00 at kaya mo na lulon sa ibabaw. 342 00:16:32,660 --> 00:16:36,820 At ito ay kung bakit ang isang pulutong ng mga sistema ng kailangan upang ma-update sa panahon. 343 00:16:36,820 --> 00:16:42,500 >> Kaya sa na sinabi, mga kumpanya tulad ng Facebook magkatagpo ito. 344 00:16:42,500 --> 00:16:46,147 Kaya ang tanging paraan upang panghawakan ang sitwasyon, lantaran, ay upang mahulaan ito. 345 00:16:46,147 --> 00:16:47,980 O ang cleanest paraan upang hawakan ito kalagayan 346 00:16:47,980 --> 00:16:50,330 ay upang mahulaan ito nang sa gayon hindi mo gusto kung gumawa ng mga pagbabago sa ibang pagkakataon. 347 00:16:50,330 --> 00:16:51,970 Kaya sa halip ng 8 bytes, alam mo kung ano? 348 00:16:51,970 --> 00:16:54,261 Pupunta ako upang maging forward-iisip dito, kahit na ito ay 349 00:16:54,261 --> 00:16:56,760 isang maliit na maasahin sa mabuti na kami ay pagpunta sa magkaroon ng 4 bilyong 350 00:16:56,760 --> 00:16:58,850 at 1 mga gumagamit sa aming website. 351 00:16:58,850 --> 00:17:01,790 Ngunit sabihin lamang gamitin 8 bytes, o 64 bits, na kung saan ay karaniwang maging 352 00:17:01,790 --> 00:17:05,640 tinatawag na isang malaking integer, napaka-teknikal. 353 00:17:05,640 --> 00:17:10,280 At na lamang ay nangangahulugan na maaari kang magkaroon ng kahit na higit pa digits sa iyong numero. 354 00:17:10,280 --> 00:17:12,599 Ngunit ito ay isang mahalagang disenyo desisyon, 355 00:17:12,599 --> 00:17:16,400 dahil kung pinili mo ang isang numero na may masyadong ilang mga piraso ng expressiveness 356 00:17:16,400 --> 00:17:19,089 maaari mong tunay na lumikha isang bug sa iyong software. 357 00:17:19,089 --> 00:17:21,750 >> O sige, kaya sabihin balutin may email at postal address. 358 00:17:21,750 --> 00:17:26,369 Kaya email, kung gaano katagal dapat ng isang email address na ito? 359 00:17:26,369 --> 00:17:26,869 50. 360 00:17:26,869 --> 00:17:29,220 Ako tunay na walang ideya, ngunit ito ay marahil isang bagay tulad na, 361 00:17:29,220 --> 00:17:32,261 dahil kung hindi man walang isa ay pagpunta sa isulat sa iyo kung ito ay makakakuha ng masyadong mahaba, kaya 50, 362 00:17:32,261 --> 00:17:33,360 sabihin pumunta sa mga ito para sa ngayon. 363 00:17:33,360 --> 00:17:35,770 Postal address, kung gaano katagal dapat na maging? 364 00:17:35,770 --> 00:17:38,325 365 00:17:38,325 --> 00:17:39,200 Madla: [hindi marinig] 366 00:17:39,200 --> 00:17:41,900 367 00:17:41,900 --> 00:17:43,890 >> David MALAN: Ito ay hindi lamang ng isang zip code, bagaman. 368 00:17:43,890 --> 00:17:45,720 Postal address, aking narinig. 369 00:17:45,720 --> 00:17:50,720 Kaya ito ay tulad ng 1 Brattle Square, comma, Cambridge Mass., kuwit, 02138. 370 00:17:50,720 --> 00:17:53,860 At sa katunayan, ipaalam sa akin lamang hilahin up ng isang maliit worksheet dito. 371 00:17:53,860 --> 00:17:56,510 Ito nararamdaman tulad ng ito ay isang hindi nakuha ng pagkakataon. 372 00:17:56,510 --> 00:18:01,480 Kung kami ay may 1 Brattle Square, comma, Cambridge MA 02138, 373 00:18:01,480 --> 00:18:04,510 Pakiramdam ko ay tulad ng maaari naming gawin mas mahusay pa sa postal address. 374 00:18:04,510 --> 00:18:07,100 Bakit hindi namin sumabog ito nang kaunti? 375 00:18:07,100 --> 00:18:08,030 Ano ako nakakakuha sa? 376 00:18:08,030 --> 00:18:10,970 Ano ang dapat namin sa halip ay may para sa aming mga hilera dito, marahil? 377 00:18:10,970 --> 00:18:12,260 >> Madla: [hindi marinig] 378 00:18:12,260 --> 00:18:17,579 >> David MALAN: Oo, kaya sabihin tumawag ito street_number, 379 00:18:17,579 --> 00:18:20,620 at isang salungguhit ay lamang ng isang karaniwang paraan ng pagkakaroon ng kung ano ang hitsura tulad ng isang space, 380 00:18:20,620 --> 00:18:22,360 ngunit ito ay hindi, talaga. 381 00:18:22,360 --> 00:18:26,240 Street, at pagkatapos ay city-- paumanhin? 382 00:18:26,240 --> 00:18:28,440 >> Madla: [hindi marinig] 383 00:18:28,440 --> 00:18:29,690 David MALAN: Maaari naming gawin iyon. 384 00:18:29,690 --> 00:18:30,702 Line isa, dalawa linya. 385 00:18:30,702 --> 00:18:32,410 Bakit hindi kami ay patuloy itong simple para sa ngayon, 386 00:18:32,410 --> 00:18:34,840 ngunit iyan ay walang pasubali isang katanggap-tanggap na desisyon. 387 00:18:34,840 --> 00:18:38,180 At pagkatapos ng estado, at pagkatapos ay sabihin maging isang maliit na US-sentrik para sa ngayon 388 00:18:38,180 --> 00:18:42,040 at lamang gawin zip code, dahil lang Makikita ito ay humantong sa isang nakawiwiling pagkakamali 389 00:18:42,040 --> 00:18:43,090 o problema dito. 390 00:18:43,090 --> 00:18:44,655 Kaya ipagpalagay na ngayon ang aming address. 391 00:18:44,655 --> 00:18:47,280 Ito ay isang maliit na mas nakakainis na mayroon kaming ang lahat ng mga higit pang mga patlang, 392 00:18:47,280 --> 00:18:49,200 ngunit ngayon maaari naming i-tag mga bagay ng kaunti mas mahusay. 393 00:18:49,200 --> 00:18:53,210 >> Kaya ngayon street number marahil ay hindi dapat maging isang pansamantalang trabaho, dapat ito? 394 00:18:53,210 --> 00:18:54,835 Ano ang dapat na mangyari? 395 00:18:54,835 --> 00:18:55,710 Madla: [hindi marinig] 396 00:18:55,710 --> 00:18:57,835 David MALAN: Maaari, ang isang bilang tulad ng isang integer muli? 397 00:18:57,835 --> 00:19:00,170 Isang malaking integer? 398 00:19:00,170 --> 00:19:02,170 Ikaw ay malamang na hindi nakatira sa 4 billion Main Street 399 00:19:02,170 --> 00:19:03,490 o anumang bagay mabaliw tulad na. 400 00:19:03,490 --> 00:19:06,850 Kaya integer ay marahil fine, ngunit kahit sino ay may 401 00:19:06,850 --> 00:19:13,880 kailanman nanirahan sa isang address tulad ng 1A Brattle Square, o 1 at 1/2? 402 00:19:13,880 --> 00:19:17,030 Ang mga bagay na umiiral, sa kasamaang palad, kahit na hindi mo na nanirahan doon, 403 00:19:17,030 --> 00:19:21,240 may mga mga anomalies tulad apartment 1A, 1B, 1C. 404 00:19:21,240 --> 00:19:24,260 Kaya alam mo kung ano, kami ay marahil ay hindi dapat pumunta sa integer, 405 00:19:24,260 --> 00:19:27,440 kung hindi man kami ay pagpunta upang mawala ang ilang mga benta. 406 00:19:27,440 --> 00:19:29,920 >> Char field, siguro? 407 00:19:29,920 --> 00:19:30,870 Hindi ko alam kung gaano katagal. 408 00:19:30,870 --> 00:19:33,370 Ito ay marahil hindi pagpunta sa maging na mahaba, kaya 10 o isang bagay. 409 00:19:33,370 --> 00:19:34,950 Walang sinuman ay pagpunta sa sumulat ang mas matagal na number, siguro. 410 00:19:34,950 --> 00:19:37,070 Ngunit muli, dapat namin marahil makapagbigay ng higit pang pag-iisip na iyon. 411 00:19:37,070 --> 00:19:39,900 Siguro google, gawin ang ilang mga pananaliksik, ngunit kami ay yayaon sangpu ng aming mga bayag para sa ngayon. 412 00:19:39,900 --> 00:19:44,565 Kalye, char, 50, hindi ko alam. 413 00:19:44,565 --> 00:19:46,940 Sa ilang mga punto, walang sinuman ang nangyayari upang isulat ito sa isang sobre, 414 00:19:46,940 --> 00:19:49,350 masyadong, kaya doon ay marahil ilang itaas na hangganan doon. 415 00:19:49,350 --> 00:19:54,200 City, parehong, sigurado, kaya char 50. 416 00:19:54,200 --> 00:19:59,120 >> State, ay maaaring maging US-sentrik para sa ngayon. 417 00:19:59,120 --> 00:20:01,850 Kaya maaaring ito ay isang listahan, kaya uri ng isang tawag paghatol, state. 418 00:20:01,850 --> 00:20:04,000 Ito ay maaaring maging tulad ng dalawang character. 419 00:20:04,000 --> 00:20:06,140 Kaya talaga, siguro, ay iningatan ko sinasabi char. 420 00:20:06,140 --> 00:20:09,420 Ako marahil ibig sabihin varchar, lamang para sa ilang mga kahusayan, 421 00:20:09,420 --> 00:20:12,240 ngunit kami ay bumalik sa na ang desisyon sa isang sandali. 422 00:20:12,240 --> 00:20:16,150 Puwede maging isang pansamantalang trabaho ng haba 2 para sa estado. 423 00:20:16,150 --> 00:20:20,670 Kung sa US ay mayroon sila, tulad ng MA, Massachusetts, NY, New York, NJ, New 424 00:20:20,670 --> 00:20:22,100 Jersey, at iba pa. 425 00:20:22,100 --> 00:20:23,630 Kaya ito ay maaaring taning na sa ganoon. 426 00:20:23,630 --> 00:20:25,900 DC para sa Washington DC. 427 00:20:25,900 --> 00:20:29,915 >> Ngunit tingin ko, Olivier, ikaw iminungkahi ng isa pang diskarte. 428 00:20:29,915 --> 00:20:30,790 Madla: [hindi marinig] 429 00:20:30,790 --> 00:20:33,670 David MALAN: Oo, kaya ito ay isang maliit na nakakainis na i-type, 430 00:20:33,670 --> 00:20:37,890 ngunit isang enum maaaring maging mas makatuturan, dahil sa ganitong paraan, hindi bababa sa US, 431 00:20:37,890 --> 00:20:41,320 maaari mong magbilang, kung tediously, ngunit gawin mo ito nang isang beses lamang sa iyong database 432 00:20:41,320 --> 00:20:47,480 at hindi na muling mag-isip tungkol ito, ang lahat ng 50 dalawang-character codes. 433 00:20:47,480 --> 00:20:48,660 Kaya gusto ko enum. 434 00:20:48,660 --> 00:20:51,720 ni stick sa na Hayaan, dahil ito uri ng enforces mas kahirapan. 435 00:20:51,720 --> 00:20:53,620 At pagkatapos ay i-zip code? 436 00:20:53,620 --> 00:20:55,306 Sa tingin ko Andrew ay nagkaroon ng isang pag-iisip sa na 437 00:20:55,306 --> 00:20:56,180 Madla: [hindi marinig] 438 00:20:56,180 --> 00:20:57,240 David MALAN: Oo, lima o siyam. 439 00:20:57,240 --> 00:20:58,323 Sabihin lamang panatilihin ito simple. 440 00:20:58,323 --> 00:20:59,380 Lamang gawin limang para sa ngayon. 441 00:20:59,380 --> 00:21:03,070 Pero siguro ko kaya lang gawin ang isang integer, right? 442 00:21:03,070 --> 00:21:08,750 kaya kong, ngunit alam mo kung ano, na aking ginawa ang pagkakamaling ito sa isang beses, sa ilang mga kahulugan. 443 00:21:08,750 --> 00:21:13,110 Taon na ang nakaraan, ako ay lilipat mula sa Microsoft Outlook sa Gmail, 444 00:21:13,110 --> 00:21:18,640 at Outlook ay isang paraan ng pag-export ang lahat ng iyong mga contact bilang isang Excel file, 445 00:21:18,640 --> 00:21:21,280 isang CSV file, comma separated values ​​file. 446 00:21:21,280 --> 00:21:23,950 At ako ginawa ang pagkakamali, ako mag-isip, ng pag-double click ito, 447 00:21:23,950 --> 00:21:27,380 isang beses ko nai-download sa pag-export, upang tiyakin na ito ay tumingin tulad ng inaasahan ko. 448 00:21:27,380 --> 00:21:31,320 ako dapat may hit I-save o hayaan auto-i-save ang sipa sa o isang bagay. 449 00:21:31,320 --> 00:21:35,100 Dahil kapag ako ipinapasok naman ito sa Gmail, ang lahat ng ito ay nagtrabaho. 450 00:21:35,100 --> 00:21:39,910 Ngunit para sa taon, sa araw na ito, at Ako did ito ng limang, 10 taon na ang nakakaraan, 451 00:21:39,910 --> 00:21:44,380 Pa rin ako paghahanap ng mga kaibigan na may address na ganito ang hitsura. 452 00:21:44,380 --> 00:21:45,700 Bakit? 453 00:21:45,700 --> 00:21:47,900 >> Madla: [hindi marinig] 454 00:21:47,900 --> 00:21:50,650 >> David MALAN: Ito ay kinuha ang 0, well, sa halip, ito 455 00:21:50,650 --> 00:21:53,810 kinuha ang buong zip code bilang isang numero, at samakatuwid ito ay 456 00:21:53,810 --> 00:21:56,590 isang nangungunang 0 na nangangahulugan ito ay walang kahulugan. 457 00:21:56,590 --> 00:21:59,470 At kaya 2138 ay anyong ang aking zip code. 458 00:21:59,470 --> 00:22:07,100 At ito ay, lantaran, isang nakakainis Excel tampok na kung saan sa tingin ko sa pamamagitan ng default, 459 00:22:07,100 --> 00:22:10,980 kahit na ito ay sinadya upang lamang maging teksto, Microsoft Excel 460 00:22:10,980 --> 00:22:13,780 nagpasiya, hayaan mo akong maging helpful, at oh, nakikita ko lamang ng mga numero. 461 00:22:13,780 --> 00:22:15,290 ni tinatrato ang mga ito bilang mga numero Hayaan. 462 00:22:15,290 --> 00:22:16,790 At ito truncates ang nangungunang mga zero. 463 00:22:16,790 --> 00:22:19,165 >> Ako ay nanunumpa sa Diyos, ang bawat pares buwan Tingin ko ng isang address, 464 00:22:19,165 --> 00:22:22,300 at sa labas ng isang uri ng OCD, pumunta ako pabalik in at magdagdag ng mga 0, kahit na ako ay hindi kailanman 465 00:22:22,300 --> 00:22:23,700 magpadala ng mga tao ng mga titik o kahit ano. 466 00:22:23,700 --> 00:22:25,510 Ngunit pa rin ako sa paghahanap labi ng ito. 467 00:22:25,510 --> 00:22:28,820 Kaya ito ay upang sabihin, ito ay isang magandang ideya? 468 00:22:28,820 --> 00:22:31,610 OK, hindi, dahil kahit sino sa Massachusetts, sa lugar na ito, 469 00:22:31,610 --> 00:22:33,270 ay pagpunta sa magkaroon ng isang o pinangungunahan ang mga ito. 470 00:22:33,270 --> 00:22:38,070 Kaya sabihin pumunta sa tulad ng char, marahil, lima. 471 00:22:38,070 --> 00:22:41,450 >> At dito, Napagtanto namin maaaring gamitin ang isang enum at kami 472 00:22:41,450 --> 00:22:44,600 maaaring magbilang 10,000 posibleng zip codes, 473 00:22:44,600 --> 00:22:48,530 ngunit na nararamdaman tulad ng ito ay maaring tumatawid ng isang linya ng, tulad ng, mga benepisyo. 474 00:22:48,530 --> 00:22:51,350 Kung mayroon kang upang input na magkano ang data sa iyong database 475 00:22:51,350 --> 00:22:52,940 upang maprotektahan laban sa isang bagay. 476 00:22:52,940 --> 00:22:57,400 Kaya char natanto maaari mong i-type sa H-E-L-L-O bilang iyong zip code, 477 00:22:57,400 --> 00:22:59,180 kung saan ay hindi, nang walang alinlangan, numeric. 478 00:22:59,180 --> 00:23:01,680 Kaya walang paraan, sa isang tipikal na database, 479 00:23:01,680 --> 00:23:05,561 upang tukuyin lamang numeric at lamang limang mga character ang haba, 480 00:23:05,561 --> 00:23:07,310 kaya kami ay pagpunta sa magkaroon ng gawin na sa code. 481 00:23:07,310 --> 00:23:11,100 Kami ay pagpunta sa gawin na sa PHP o Java o kahit anong wika kami 482 00:23:11,100 --> 00:23:14,230 gamit sa server upang ipatupad na uri ng pagpilit. 483 00:23:14,230 --> 00:23:14,860 >> Whoo! 484 00:23:14,860 --> 00:23:18,322 O sige, kaya ang anumang mga katanungan lamang pa? 485 00:23:18,322 --> 00:23:19,780 ni gumawa ng isa pang desisyon disenyo Hayaan. 486 00:23:19,780 --> 00:23:22,500 Ito ay lumiliko out na kayo ring makakuha ng upang pumili, 487 00:23:22,500 --> 00:23:26,600 kapag pagdisenyo ng isang SQL database, o tipikal pamanggit database-- kung saan 488 00:23:26,600 --> 00:23:28,790 muli, pamanggit lamang nangangahulugan hanay at haligi, 489 00:23:28,790 --> 00:23:35,500 na kung paano mo ayusin ang iyong data-- at mapagtanto na kung ano ang ibig sabihin nito ay, 490 00:23:35,500 --> 00:23:37,740 Gumagamit ako nakaliligaw in na, ako drawing-- ito 491 00:23:37,740 --> 00:23:40,190 ay kung ano ang tinatawag na ang schema para sa isang database table. 492 00:23:40,190 --> 00:23:42,810 Ito ay tulad ng mga pagtutukoy para sa table-- 493 00:23:42,810 --> 00:23:48,040 ngunit kapag ito ay dumating na oras upang aktwal na tindahan ng data, 494 00:23:48,040 --> 00:23:52,081 at kami gawin ito sa pamamagitan lamang ng halimbawa dito. 495 00:23:52,081 --> 00:23:55,080 Pupunta ako upang buksan up Excel, dahil Excel ay magbibigay sa akin hanay at haligi. 496 00:23:55,080 --> 00:23:58,050 At iyon mismo ang Oracle at MySQL at iba pang mga kasangkapan ay magbibigay sa akin. 497 00:23:58,050 --> 00:24:02,270 Kaya lang ako sa pagpunta sa paggamit ito alang-alang sa discussion. 498 00:24:02,270 --> 00:24:05,250 Hayaan akong sige at buksan up ng isang kinatawan dokumento dito, 499 00:24:05,250 --> 00:24:06,310 mag-zoom in ng kaunti. 500 00:24:06,310 --> 00:24:15,200 Kaya halimbawa, ang aming mga header ay ngayon unang pangalan, apelyido, kasarian, ID, 501 00:24:15,200 --> 00:24:20,980 email, numero ng kalye, kalye, Whoops. 502 00:24:20,980 --> 00:24:25,710 Street, lungsod, estado, lamang tungkol umaangkop sa screen. 503 00:24:25,710 --> 00:24:29,080 >> Kaya kung ano ang ibig sabihin nito ay na kapag ang isang user unang nagrerehistro para sa aking website, 504 00:24:29,080 --> 00:24:32,880 ito ay pagpunta sa maging isang bagay tulad David, Malan, m, sabihin natin 1, 505 00:24:32,880 --> 00:24:42,910 malan@harvard.edu, numero ng kalye ay maging tulad ng 1 Brattle Square, Cambridge, MA, 506 00:24:42,910 --> 00:24:44,780 02138, at pagkatapos ay sa gayon pasulong. 507 00:24:44,780 --> 00:24:48,290 Kaya kapag sinabi ko na ang isang pamanggit database o SQL database ay hanay at haligi, 508 00:24:48,290 --> 00:24:49,350 Ibig sabihin ko ito. 509 00:24:49,350 --> 00:24:51,900 Iyon aktwal na data ay naka-imbak sa hanay at haligi. 510 00:24:51,900 --> 00:24:53,950 Ito ay lamang ng isang pagkakataon, na kami ay pakikipag-usap, 511 00:24:53,950 --> 00:24:56,033 at lamang ako ay pagguhit ito out sa mga hilera at mga hanay. 512 00:24:56,033 --> 00:24:58,320 Ito ay lamang ang panukala, ang overarching definition. 513 00:24:58,320 --> 00:25:01,640 >> Kaya ng mga patlang na ito dito, o equivalently, doon, 514 00:25:01,640 --> 00:25:06,270 na kung saan ay ang mga patlang na sa tingin mo ako malamang na maghanap sa kung ako ay isang user 515 00:25:06,270 --> 00:25:09,200 o kung ako ang database administrator? 516 00:25:09,200 --> 00:25:12,426 Like, kung ano ang patlang Ako aktwal na pagpunta upang maghanap sa? 517 00:25:12,426 --> 00:25:13,830 >> Madla: [hindi marinig] 518 00:25:13,830 --> 00:25:17,690 >> David MALAN: Ang pangalan, yeah kaya Gusto ko ang katotohanan na- yeah, 519 00:25:17,690 --> 00:25:19,750 email ay maaaring maging medyo pangkaraniwan. 520 00:25:19,750 --> 00:25:21,440 Paumanhin, ang sinabi mo pangalan. 521 00:25:21,440 --> 00:25:24,030 Kaya maybe-- at muli, hindi namin uri ng pakikipag-usap sa abstract. 522 00:25:24,030 --> 00:25:25,988 hindi ko alam kung bakit Gusto mo na naghahanap para sa isang pangalan, 523 00:25:25,988 --> 00:25:29,340 ngunit na nararamdaman makatwirang kung ka na naghahanap para sa isang user. 524 00:25:29,340 --> 00:25:31,170 Siguro estado, sigurado, ID. 525 00:25:31,170 --> 00:25:34,100 526 00:25:34,100 --> 00:25:36,160 >> At ito ay isang madulas slope, dahil kaya kong 527 00:25:36,160 --> 00:25:38,890 balakin isang sitwasyon kung saan marahil ang aking boss ay nagtanong sa akin, 528 00:25:38,890 --> 00:25:40,417 kung gaano karaming mga tao ang mayroon kami sa aming site? 529 00:25:40,417 --> 00:25:42,000 Gaano karaming mga babae ang mayroon kami sa aming site? 530 00:25:42,000 --> 00:25:45,210 At kaya sa puntong iyon, baka gusto upang maghanap sa patlang kasarian, masyadong, 531 00:25:45,210 --> 00:25:45,940 at wala pang tao. 532 00:25:45,940 --> 00:25:47,350 Kaya mayroong isang kalakalan-off dito. 533 00:25:47,350 --> 00:25:49,180 Muli, walang tamang sagot, ngunit may 534 00:25:49,180 --> 00:25:53,760 ay isang tampok sa karamihan ng SQL database na kilala bilang pag-index, na sukat 535 00:25:53,760 --> 00:25:56,100 mo, ang taga-disenyo, ang database administrator, 536 00:25:56,100 --> 00:26:01,730 makakuha magpasiya nang maaga kung saan ng mga patlang sa database ay dapat i-optimize 537 00:26:01,730 --> 00:26:02,980 para sa mga paghahanap sa. 538 00:26:02,980 --> 00:26:07,620 >> Maaari mong napaka naively sabihin, i-optimize ito, i-optimize na, i-optimize ito, 539 00:26:07,620 --> 00:26:10,300 optimize na at ito, at ang database ay 540 00:26:10,300 --> 00:26:14,882 gawin ang ilang mga kahima-himala bagay sa ilalim ng hood, at gawin ang isang bagay sa paraan 541 00:26:14,882 --> 00:26:17,090 na ang susunod na panahon na kayo maghanap sa alinman sa mga patlang na ito, 542 00:26:17,090 --> 00:26:18,400 ito, sa katunayan, ay mas mabilis. 543 00:26:18,400 --> 00:26:19,110 Ito ay posible. 544 00:26:19,110 --> 00:26:20,530 Hindi ito i-cancel ang sarili out. 545 00:26:20,530 --> 00:26:22,500 Ngunit dapat na mayroong isang presyo na babayaran. 546 00:26:22,500 --> 00:26:27,220 >> Kung ikaw naively, o over-enthusiastically sabihin nating, index ang lahat ng mga patlang na ito, 547 00:26:27,220 --> 00:26:29,810 kaya na magsalita, gawin mo silang lahat mahusay nahahanap, 548 00:26:29,810 --> 00:26:31,625 kung ano ang presyo ay ikaw ay malamang na nagbabayad? 549 00:26:31,625 --> 00:26:32,500 Madla: [hindi marinig] 550 00:26:32,500 --> 00:26:33,090 David MALAN: Pagganap. 551 00:26:33,090 --> 00:26:33,798 Anong ibig mong sabihin? 552 00:26:33,798 --> 00:26:37,380 Well pagganap, doon man lamang sa konteksto ako tinatalakay, ay mas mahusay na ngayon. 553 00:26:37,380 --> 00:26:38,830 Iyan ang kahulugan ng pag-index. 554 00:26:38,830 --> 00:26:41,180 Ito ay gumawa ng mga paghahanap nang mas mabilis. 555 00:26:41,180 --> 00:26:43,366 Kaya oras na bumababa, kaya na magsalita. 556 00:26:43,366 --> 00:26:44,240 Madla: [hindi marinig] 557 00:26:44,240 --> 00:26:45,031 David MALAN: Space. 558 00:26:45,031 --> 00:26:46,520 Kaya muli, ang mga ito ay isang karaniwang kalakalan. 559 00:26:46,520 --> 00:26:50,820 maaari kong pabilisin ang iyong paghahanap, ngunit ito ay pagpunta sa gastos sa iyo ng karagdagang bytes ng espasyo. 560 00:26:50,820 --> 00:26:51,610 Bakit? 561 00:26:51,610 --> 00:26:55,230 Well, sa pamamagitan ng default, kung kami ay may wala sa mga mga pulang bituin, wala sa mga ito ini-index, 562 00:26:55,230 --> 00:26:58,797 bilang ako na sinasabi, paano mo maghanap para sa isang pangalan sa database na ito? 563 00:26:58,797 --> 00:27:00,630 Kaya sabihin gumuhit ng aming pansin sa halimbawa na ito. 564 00:27:00,630 --> 00:27:06,300 Kung kami ay may David at Scully at Kareem at Arwa at iba pa sa mga hilera, 565 00:27:06,300 --> 00:27:06,910 halimbawa. 566 00:27:06,910 --> 00:27:08,390 >> Kaya sabihin gawin eksakto na. 567 00:27:08,390 --> 00:27:13,990 Scully ay in dito, at pagkatapos ay mayroon kaming Kareem, at Arwa, 568 00:27:13,990 --> 00:27:18,390 at ang iba, kung hindi mo gusto magkaroon ng isang index na tinukoy, kaya na magsalita, 569 00:27:18,390 --> 00:27:20,160 ang pinakamahusay na maaari mong gawin ay linear paghahanap. 570 00:27:20,160 --> 00:27:23,470 Kung naghahanap ka para Arwa, hindi kami pagpunta sa magagawang upang tumalon karapatan sa kanya 571 00:27:23,470 --> 00:27:24,140 mabilis. 572 00:27:24,140 --> 00:27:26,556 Kami ay pagpunta upang simulan ang itaas at pumunta sa lahat ng mga paraan sa ibaba, 573 00:27:26,556 --> 00:27:28,600 hindi hindi katulad aming orihinal na Mike Smith halimbawa. 574 00:27:28,600 --> 00:27:33,470 >> Kung, gayunpaman, sinasabi ko, hey, database, index sa unang field ng pangalan, 575 00:27:33,470 --> 00:27:37,000 pagkatapos ay ito ay pagpunta sa gawin ang isang bagay may interes at suporta ng isang bagay 576 00:27:37,000 --> 00:27:38,130 tulad binary paghahanap. 577 00:27:38,130 --> 00:27:39,820 Ito ay marahil hindi binary search per se. 578 00:27:39,820 --> 00:27:42,810 Databases ay may posibilidad na gamitin ang isa pang data istraktura na tinatawag na b-puno, 579 00:27:42,810 --> 00:27:46,540 hindi dapat malito sa binary puno, na gumawa lamang ito nang mas mabilis sa paghahanap 580 00:27:46,540 --> 00:27:48,500 isang bagay logarithmic sa kalikasan. 581 00:27:48,500 --> 00:27:53,510 Ngunit ang presyo na babayaran mo upang bumuo ng up na tampok na ito, na ang data na istraktura sa memorya, 582 00:27:53,510 --> 00:27:54,570 ay mas bytes. 583 00:27:54,570 --> 00:27:57,170 Kaya maaari itong tumagal ng ilang megabytes, ilang gigabytes, na nakakaalam? 584 00:27:57,170 --> 00:27:58,410 Ito ay depende sa data. 585 00:27:58,410 --> 00:28:02,640 >> Kaya sa isang punto, kailangan mong magpasya, ito ay marahil hindi isang pangkaraniwang kaso. 586 00:28:02,640 --> 00:28:06,000 Kaya kung ano ay ang aktwal na karaniwang kaso, kung ikaw talaga ay may upang pumili, 587 00:28:06,000 --> 00:28:10,080 ano ang maaaring maging ang iyong mga paboritong mga patlang? 588 00:28:10,080 --> 00:28:10,580 Email. 589 00:28:10,580 --> 00:28:14,400 At gusto ko email dahil ang email, sa teorya, ay dapat na kakaiba. 590 00:28:14,400 --> 00:28:17,650 At kaya kadalasan, kapag alam mo in advance na ang isa sa iyong mga patlang 591 00:28:17,650 --> 00:28:20,277 ay o ay natatangi, na ay may gawi na maging isang magandang field 592 00:28:20,277 --> 00:28:22,860 upang maghanap sa, dahil na paraan, kapag naghanap ka para sa isang bagay, 593 00:28:22,860 --> 00:28:26,194 ikaw ay pagpunta upang makakuha ng bumalik sa isa o zero kasagutan at pagkatapos ay tapos ka na. 594 00:28:26,194 --> 00:28:28,110 Hindi mo na kailangang panatilihin ang naghahanap para sa isa sa iba. 595 00:28:28,110 --> 00:28:31,992 >> At kaya sa kasong ito dito, email, kaya hangga't hindi ka maaaring magrehistro ng dalawang beses 596 00:28:31,992 --> 00:28:33,450 na may parehong email, ay isang magandang isa. 597 00:28:33,450 --> 00:28:36,710 ID sa pamamagitan ng kahulugan, sa computer science mundo, 598 00:28:36,710 --> 00:28:39,610 kung ikaw ay pakikipag-usap tungkol sa isang ID, na ay mas mahusay na maging kakaiba. 599 00:28:39,610 --> 00:28:42,970 Iyon ay uri ng mga kahulugan ng ID o identifier. 600 00:28:42,970 --> 00:28:46,440 Ang iba nga sa mga ito ay maaaring maging, sabihin tumawag sa kanila nice to haves, 601 00:28:46,440 --> 00:28:47,860 ngunit hindi talaga kinakailangan. 602 00:28:47,860 --> 00:28:49,976 >> At kaya sa isang database, na tinukoy mo ini-index, 603 00:28:49,976 --> 00:28:51,350 ngunit maaari kang maging kahit na mas tumpak. 604 00:28:51,350 --> 00:28:56,060 Maaari mong sabihin, hey, database, siguraduhin na ang bawat ID sa table na ito ay natatangi. 605 00:28:56,060 --> 00:28:59,330 Huwag kahit na ipaalam sa isang programmer sinasadyang ilagay sa isang duplicate email 606 00:28:59,330 --> 00:29:00,740 o duplicate ID number. 607 00:29:00,740 --> 00:29:03,140 So magkano ang gusto enums protektahan sa amin katulad, mo 608 00:29:03,140 --> 00:29:04,881 ay maaaring magkaroon ng mga mas mababa sa antas panlaban. 609 00:29:04,881 --> 00:29:07,130 At kaya database disenyo, ilang mga kahulugan, ay uri ng masaya, 610 00:29:07,130 --> 00:29:08,380 dahil ginagawa mo ito defensively. 611 00:29:08,380 --> 00:29:11,460 Ikaw uri ng ipinapalagay na ang trabaho mo sa kakila-kilabot, kakila-kilabot programmers 612 00:29:11,460 --> 00:29:15,550 at nais mong ilagay sa ng maraming mga panlaban tulad ng maaari mong upang protektahan ang iyong data, 613 00:29:15,550 --> 00:29:18,940 ngunit sabay-sabay nais mong upang matulungan silang gumanap ng mas mahusay 614 00:29:18,940 --> 00:29:21,386 sa pamamagitan ng pagpili kung aling patlang upang i-optimize para sa. 615 00:29:21,386 --> 00:29:24,260 Ngunit hindi kinakailangan mo maaaring gawin ito sa isang vacuum tulad namin uri ng ay dito. 616 00:29:24,260 --> 00:29:26,480 Mayroon kayong upang malaman kung ano ang mga karaniwang mga kaso pagiging. 617 00:29:26,480 --> 00:29:29,397 Kung ang mga developer ay pagpapatupad ng isang address book, 618 00:29:29,397 --> 00:29:32,230 maaari mong napakahusay nais na ma upang maghanap sa halos bawat field, 619 00:29:32,230 --> 00:29:33,830 sa pamamagitan lamang ng likas na katangian ng application. 620 00:29:33,830 --> 00:29:37,910 Kaya siguro ang gusto ninyong gastusin na dagdag na espasyo. 621 00:29:37,910 --> 00:29:39,090 >> Right, anumang mga katanungan? 622 00:29:39,090 --> 00:29:41,820 623 00:29:41,820 --> 00:29:42,486 Yeah. 624 00:29:42,486 --> 00:29:43,470 >> Madla: [hindi marinig] 625 00:29:43,470 --> 00:29:44,404 >> David MALAN: No. 626 00:29:44,404 --> 00:29:45,279 >> Madla: [hindi marinig] 627 00:29:45,279 --> 00:29:47,840 628 00:29:47,840 --> 00:29:48,826 >> David MALAN: OK. 629 00:29:48,826 --> 00:29:49,701 >> Madla: [hindi marinig] 630 00:29:49,701 --> 00:29:52,420 631 00:29:52,420 --> 00:29:54,850 >> David MALAN: Oh, kaya kami ang pinag-uusapan sa isang paraan 632 00:29:54,850 --> 00:29:57,940 ngayon na ang ganap na wika agnostiko. 633 00:29:57,940 --> 00:30:02,370 Kaya pinag-uusapan natin ngayon ang tungkol sa pamanggit database mas pangkalahatang paraan, 634 00:30:02,370 --> 00:30:04,760 o SQL database sa mas pangkalahatang. 635 00:30:04,760 --> 00:30:06,870 >> Madla: [hindi marinig] 636 00:30:06,870 --> 00:30:10,030 >> David MALAN: Ang isang mas mahusay na salita upang gamitin ay, ay maaaring magamit sa pamamagitan ng anumang wika. 637 00:30:10,030 --> 00:30:15,280 Kaya ang maaari kong isulat JavaScript code, C code, C ++ code, Java code, Ruby code, 638 00:30:15,280 --> 00:30:19,010 ang lahat ng na makipag-usap sa isang database at execute query. 639 00:30:19,010 --> 00:30:22,310 Sa katunayan, iyon ay hindi isang masamang segue sa isang query halimbawa. 640 00:30:22,310 --> 00:30:25,720 At muli, hindi kami ay pagpunta sa pumunta sa Java o C ++ o anumang ng na anymore, 641 00:30:25,720 --> 00:30:29,420 ngunit sa SQL, ang wika na kung saan panatilihin ko nagre-refer, nakabalangkas Query Language, 642 00:30:29,420 --> 00:30:32,790 ito mismo ay isang programming language, ngunit ito ay sinadya upang gamitin para sa, walang 643 00:30:32,790 --> 00:30:37,330 sorpresa, nakabalangkas query query. 644 00:30:37,330 --> 00:30:38,660 >> Sa pamamagitan ng na ibig sabihin ko ito. 645 00:30:38,660 --> 00:30:41,190 Ang paraan na pinili mo data mula sa isang MySQL database 646 00:30:41,190 --> 00:30:49,330 ay mong literal i-type sa iyong programa isang bagay tulad ng piliin ang star mula sa mga gumagamit. 647 00:30:49,330 --> 00:30:52,200 Ako ipagpapalagay na nakatanggap na ang talaang ito, simula ngayon ay tinatawag na mga gumagamit. 648 00:30:52,200 --> 00:30:54,860 kaya kong tumawag ito anumang nais namin, ngunit na uri ng saysay. 649 00:30:54,860 --> 00:30:57,240 At kaya piliin ay isang napaka karaniwang pandiwa, kung ikaw 650 00:30:57,240 --> 00:30:59,290 ay, sa SQL, na literal ay na. 651 00:30:59,290 --> 00:31:02,730 Ano sa tingin ninyo star nangangahulugan sa kontekstong ito? 652 00:31:02,730 --> 00:31:04,410 >> Madla: [hindi marinig] 653 00:31:04,410 --> 00:31:05,380 >> David MALAN: Sorry? 654 00:31:05,380 --> 00:31:06,300 >> Madla: [hindi marinig] 655 00:31:06,300 --> 00:31:09,580 >> David MALAN: Hindi kinakailangan, ito ay mas napapabilang kaysa sa na, talaga. 656 00:31:09,580 --> 00:31:11,700 Ito ay ang wild card character. 657 00:31:11,700 --> 00:31:14,740 Lagyan ng star ang halos palaging nangangahulugan ng kahit ano, kaya ito ay nangangahulugan na, sa kasong ito, 658 00:31:14,740 --> 00:31:16,510 piliin ang lahat mula sa database. 659 00:31:16,510 --> 00:31:20,730 Kaya kapag sinabi ko ito, ibig sabihin ko bigyan ako bumalik sa bawat column 660 00:31:20,730 --> 00:31:22,440 mula sa aking table na tinatawag na mga gumagamit. 661 00:31:22,440 --> 00:31:24,730 Kaya bigyan ako ng isang resulta set, tulad ng ito ay tinatawag na. 662 00:31:24,730 --> 00:31:28,210 Sa ibang salita, bigyan ako ng isang kopya ng spreadsheet, ay kung ano ang Nakakakuha ako sa. 663 00:31:28,210 --> 00:31:34,890 >> Ngunit kung sinabi ko piliin star mula sa mga gumagamit kung saan ang ID ay katumbas ng 1, kung paano malaki dapat 664 00:31:34,890 --> 00:31:36,640 ang aking mga resulta set na pagkatapos? 665 00:31:36,640 --> 00:31:41,680 O equivalently, kung gaano karaming mga hilera ay dapat Ako ay ipinasa pabalik mula sa database? 666 00:31:41,680 --> 00:31:45,860 Marahil isa lamang, kung mayroon akong katunayan ginagamot ID bilang isang natatanging identifier, 667 00:31:45,860 --> 00:31:50,710 at kung David ay may na natatanging ID, ako dapat makabalik isa at isa lamang hilera 668 00:31:50,710 --> 00:31:53,220 na naglalaman ng lahat ng impormasyon na si David. 669 00:31:53,220 --> 00:31:56,390 Kung sinabi ko na ito kung saan ID ay katumbas ng 99, ang dapat kong makakuha ng likod, 670 00:31:56,390 --> 00:32:00,320 sa ganitong konteksto, zero hilera, ng hindi bababa sa sandaling ito. 671 00:32:00,320 --> 00:32:03,620 >> Gayunpaman, kung hindi ko talaga pag-aalaga tungkol sa lahat ng impormasyon na iyon, 672 00:32:03,620 --> 00:32:06,970 hindi ko na lang sabihin, kung saan ay si David? 673 00:32:06,970 --> 00:32:10,860 Pumili ng zip code mula sa user kung saan ID ay 1. 674 00:32:10,860 --> 00:32:15,820 Pipiliin lamang sa akin zip ni David code at hindi ang kabuuan ng hilerang iyon. 675 00:32:15,820 --> 00:32:19,541 Bakit maaaring kong gawin ito sa halip ng ang bituin query, ang mga ligaw na card? 676 00:32:19,541 --> 00:32:21,950 >> Madla: [hindi marinig] 677 00:32:21,950 --> 00:32:24,590 >> David MALAN: Oo, maaari ko lamang ito kailangan. 678 00:32:24,590 --> 00:32:26,350 Kaya pagganap ay muli ang sagot dito. 679 00:32:26,350 --> 00:32:28,540 Bakit humingi ng higit pa impormasyon kaysa sa kailangan mo, 680 00:32:28,540 --> 00:32:32,020 dahil kahit na ito ay ang lahat ng karapatan magkasama, mayroon ka pa ring upang kopyahin ang data na iyon, 681 00:32:32,020 --> 00:32:35,560 ito ay tila, mula sa database sa inyong programa sa anumang paraan, 682 00:32:35,560 --> 00:32:38,490 at ito lamang ulok kung ikaw lamang ang kailangan ng limang ng mga digit, 683 00:32:38,490 --> 00:32:40,340 hindi ang kabuuan ng hilera. 684 00:32:40,340 --> 00:32:42,180 >> Kaya paano ko magsingit ng isang user? 685 00:32:42,180 --> 00:32:44,780 Ipagpalagay na ang isang user ay may lamang nakarehistro para sa unang pagkakataon. 686 00:32:44,780 --> 00:32:46,560 Ang syntax ay karaniwang ganito ang hitsura. 687 00:32:46,560 --> 00:32:52,700 Ipasok sa mga gumagamit, at pagkatapos Gusto naming sabihin na mga halaga, 688 00:32:52,700 --> 00:33:00,150 at pagkatapos ay gusto naming sabihin mga halaga tulad ng, sabihin nating, Lauren Scully, 689 00:33:00,150 --> 00:33:02,380 aming videographer dito mismo. 690 00:33:02,380 --> 00:33:04,390 At ang susunod na field ay kasarian. 691 00:33:04,390 --> 00:33:08,020 Kaya makikita namin sabihin quote, magpanipi "F", at pagkatapos ay kami ay may isang ID 692 00:33:08,020 --> 00:33:12,250 at ako pagpunta sa say-- sabihin magpanggap siya ay hindi tunay na dito, 693 00:33:12,250 --> 00:33:14,380 kaya kami ay i-rewind sa kuwento. 694 00:33:14,380 --> 00:33:16,530 Kaya 2 ay magiging kanyang ID. 695 00:33:16,530 --> 00:33:19,130 At pagkatapos ay ang susunod na field dito ay ang kanyang email. 696 00:33:19,130 --> 00:33:22,140 Kaya ito ay pagpunta sa maging tulad ng Lauren Scully at iba pa, 697 00:33:22,140 --> 00:33:24,360 at kami lang dot dot dot ito ang layo mula dito sa. 698 00:33:24,360 --> 00:33:26,890 Ngayon ito ay makakuha ng isang maliit na nakakapagod, ngunit ang insert query 699 00:33:26,890 --> 00:33:28,310 sa huli hitsura na. 700 00:33:28,310 --> 00:33:30,970 >> Kung gusto kong kumuha alisan ng Scully, uh-oh, sabihin deregister 701 00:33:30,970 --> 00:33:37,420 kanya, siya tinatanggal ang kanyang account, tanggalin mula sa mga gumagamit na kung saan ang ID ay katumbas ng 2, 702 00:33:37,420 --> 00:33:38,500 ay kumuha alisan ng Scully. 703 00:33:38,500 --> 00:33:48,050 O maaari kong sabihin update ang mga gumagamit ay naka-set, sabihin nating, kung ano ang maaari naming baguhin? 704 00:33:48,050 --> 00:33:49,430 Ipagpalagay siya gumagalaw. 705 00:33:49,430 --> 00:33:53,730 Set zip katumbas 021-- nope, na ang kanyang kasalukuyang zip. 706 00:33:53,730 --> 00:33:54,487 90210. 707 00:33:54,487 --> 00:33:56,320 Ang tanging iba pang zip code Alam ko sa mundo. 708 00:33:56,320 --> 00:33:59,002 Kaya na ay magbabago kanyang zip code-- talaga, 709 00:33:59,002 --> 00:34:00,460 na hindi baguhin ang kanyang zip code. 710 00:34:00,460 --> 00:34:02,170 >> Ano ang ginawa ko na lang gawin? 711 00:34:02,170 --> 00:34:04,292 Kahit na ang syntax ay marahil bago. 712 00:34:04,292 --> 00:34:05,302 >> Madla: [hindi marinig] 713 00:34:05,302 --> 00:34:08,010 David MALAN: Oo, inilipat ko ang lahat sa Beverly Hills, California. 714 00:34:08,010 --> 00:34:11,920 Kaya ko dapat talaga sabihin kung saan ID ay katumbas ng 2. 715 00:34:11,920 --> 00:34:12,820 At iba pa. 716 00:34:12,820 --> 00:34:15,290 Kaya SQL ay ang lahat ng tungkol sa mga uri ng mga tagubilin. 717 00:34:15,290 --> 00:34:20,260 Piliin, ipasok, tanggalin, i-update, sa mga predicates sa dulo 718 00:34:20,260 --> 00:34:22,139 mga kung saan clauses, kaya na magsalita. 719 00:34:22,139 --> 00:34:25,170 At mayroong isang pulutong more na maaari mong gawin, ngunit ito ay talagang lamang kahulihan babagsak 720 00:34:25,170 --> 00:34:29,750 na lang, kung arcanely, pagpapahayag kung ano ang nais mo ang database na gawin. 721 00:34:29,750 --> 00:34:31,580 >> At pagkatapos ay ang database ay malaman kung, kapag 722 00:34:31,580 --> 00:34:35,630 ipasok mo Lauren Scully sa database, kung saan upang ilagay ang kanyang sa memory 723 00:34:35,630 --> 00:34:38,230 upang maaari naming masyadong mabilis makakuha kanyang batay sa kanyang email address 724 00:34:38,230 --> 00:34:42,610 o batay sa kanyang ID number o mga katulad. 725 00:34:42,610 --> 00:34:43,391 Yeah, Dan. 726 00:34:43,391 --> 00:34:44,266 Madla: [hindi marinig] 727 00:34:44,266 --> 00:34:46,364 728 00:34:46,364 --> 00:34:47,780 David MALAN: Talagang mahusay na tanong. 729 00:34:47,780 --> 00:34:50,370 Makakaapekto ba baguhin ang mga script mula sa Microsoft Access sa Oracle 730 00:34:50,370 --> 00:34:52,290 sa MySQL sa PostgreSQL? 731 00:34:52,290 --> 00:34:53,790 Ang maikling sagot ay ito ay depende. 732 00:34:53,790 --> 00:34:58,697 Sa teorya, diyan ay a tunay makabuluhang karaniwang subset ng SQL 733 00:34:58,697 --> 00:35:00,780 na ibinahagi sa lahat ng sa mga pagpapatupad. 734 00:35:00,780 --> 00:35:03,340 Gayunpaman, iba't-ibang mga tagagawa may idinagdag na mga tampok 735 00:35:03,340 --> 00:35:07,120 sa kanilang database na gawin ang ilang mga bagay hindi na saklaw ng mga tampok na ito, 736 00:35:07,120 --> 00:35:08,720 na maaaring, sa katunayan, masira. 737 00:35:08,720 --> 00:35:11,210 >> Kaya ang paraan developer pimpin laban na ito, 738 00:35:11,210 --> 00:35:14,350 ay na sa halip na pagsulat raw SQL code tulad ako ng pagsulat dito, 739 00:35:14,350 --> 00:35:19,460 sila sa halip gamitin ang isang library, isang karaniwang library na mismo 740 00:35:19,460 --> 00:35:23,650 ay isang uri ng mas mataas na antas at abstracts ang layo kung aling mga produkto na iyong ginagamit. 741 00:35:23,650 --> 00:35:25,710 At binibigyan ka nito function at mga pamamaraan 742 00:35:25,710 --> 00:35:28,810 na tumawag sa gayon ikaw ay hindi kailanman aktwal na magsulat raw SQL. 743 00:35:28,810 --> 00:35:32,609 >> Sa teorya, at pagkatapos, maaari mong baguhin mga produkto mula sa Oracle sa Microsoft 744 00:35:32,609 --> 00:35:34,650 o vice versa o anumang bagay sino pa ang paririto, at ikaw ay literal 745 00:35:34,650 --> 00:35:36,920 baguhin wala tungkol sa iyong code. 746 00:35:36,920 --> 00:35:40,180 Ang katotohanan, bagaman, ay, ikaw minsan sumuko tampok bilang isang resulta. 747 00:35:40,180 --> 00:35:43,860 Maaari mong pinili ng isang produkto dahil ito ay nakuha ang mga halaga-idinagdag mga tampok, 748 00:35:43,860 --> 00:35:46,610 at ikaw lamang ngayon ay hindi paggamit ng mga ito sinasadya. 749 00:35:46,610 --> 00:35:51,630 >> At anecdotally, karamihan sa mga kompanya ay may posibilidad hindi kailanman upang ilipat ang layo mula sa kanilang database. 750 00:35:51,630 --> 00:35:54,002 Kaya habang ito ay isang nice to may tampok na ito, ang katotohanan 751 00:35:54,002 --> 00:35:55,960 ay, kung ikaw ay overhauling iyong database, ikaw ay 752 00:35:55,960 --> 00:35:59,890 marahil paggawa bunches ng iba pang mga pagbabago anyway, na hindi mo kinakailangang 753 00:35:59,890 --> 00:36:01,360 kailangang mauna na. 754 00:36:01,360 --> 00:36:03,720 Kaya ito ay arguably over-engineering ang problema, 755 00:36:03,720 --> 00:36:05,670 ngunit ito ay talagang depende sa konteksto. 756 00:36:05,670 --> 00:36:09,960 Ngunit sa teorya, SQL ay ibinabahagi sa kabila ng mga iba't ibang mga produkto. 757 00:36:09,960 --> 00:36:11,560 Talagang mahusay na mga katanungan. 758 00:36:11,560 --> 00:36:12,272 Yeah. 759 00:36:12,272 --> 00:36:13,147 >> Madla: [hindi marinig] 760 00:36:13,147 --> 00:36:17,820 761 00:36:17,820 --> 00:36:21,480 >> David MALAN: Oo, kaya maaari mong isipin ng isang database 762 00:36:21,480 --> 00:36:25,020 ay lamang ng isang server, sa dulo ng araw, at sa loob ng server na 763 00:36:25,020 --> 00:36:28,670 ay isang buong grupo ng mga mga talahanayan, hanay at haligi. 764 00:36:28,670 --> 00:36:33,410 At kapag nagpadala ka ng isang query tulad nito mula sa iyong programa, ang iyong website, 765 00:36:33,410 --> 00:36:39,340 nakasulat sa Java, Ruby, sawa, ano pa man, ang server ay tumatanggap ng utos na ito 766 00:36:39,340 --> 00:36:41,660 at pagbibigay-kahulugan ito sa literal sa parehong paraan 767 00:36:41,660 --> 00:36:43,660 namin tinalakay nang mas maaga sa interpreted wika, 768 00:36:43,660 --> 00:36:47,333 at pagkatapos ay gumagawa ng ilang pagkilos sa zero o higit pang mga hilera sa zero o higit pang mga talahanayan. 769 00:36:47,333 --> 00:36:48,208 Madla: [hindi marinig] 770 00:36:48,208 --> 00:36:53,540 771 00:36:53,540 --> 00:36:55,070 >> David MALAN: Eksaktong, eksakto. 772 00:36:55,070 --> 00:36:58,450 Kaya ang pseudocode para sa isang bagay tulad na maaaring maging ito. 773 00:36:58,450 --> 00:37:02,450 Sa iyong PHP file o ang iyong Python file o ang iyong Java file, 774 00:37:02,450 --> 00:37:09,210 nais mong magkaroon ng pseudocode code, o Scratch-tulad ng mga bloke bilang, kung pagbisita ng gumagamit 775 00:37:09,210 --> 00:37:19,870 acme.com/register~~V para sa unang pagkakataon, pagkatapos ay ipasok sa mga gumagamit at sa gayon pasulong. 776 00:37:19,870 --> 00:37:22,619 At gusto naming i-translate ito sa mas kongkreto code sa dulo. 777 00:37:22,619 --> 00:37:24,660 Ngunit talagang, mayroon kaming lahat ang mga bloke ng gusali dito, 778 00:37:24,660 --> 00:37:27,680 kahit na kami ay laktaw ilang sa mga hakbang na pagpapatupad. 779 00:37:27,680 --> 00:37:31,560 >> Kaya hayaan mo akong maghanap ng pula sa kung ano ang aming kamangha-mangha ang ginawa ng ilang sandali lamang ang nakalipas. 780 00:37:31,560 --> 00:37:36,470 Lumikha ka ng isang pretty kumpletong talahanayan para sa mga gumagamit. 781 00:37:36,470 --> 00:37:38,920 Tinatanggap na, maaari naming ipatupad ito sa loob ng ilang iba't ibang paraan, 782 00:37:38,920 --> 00:37:43,030 pero sa totoo ikaw ay humantong sa amin down ang path-- at sinasabi ko sa iyo, 783 00:37:43,030 --> 00:37:48,080 ngunit ito ay marahil ang aking mga fault-- ng isang medyo hindi sanay database pagpapatupad. 784 00:37:48,080 --> 00:37:49,950 Hindi ito normalize. 785 00:37:49,950 --> 00:37:52,320 >> At sa pamamagitan ng normalized ibig sabihin ko diyan ay pagpunta sa maging, 786 00:37:52,320 --> 00:37:57,380 sa paglipas ng panahon, ang isang makabuluhang kalabisan, at samakatuwid kawalan ng kaalaman, 787 00:37:57,380 --> 00:38:00,210 iyon ay pag-aaksaya ng espasyo. 788 00:38:00,210 --> 00:38:05,650 Batay sa lamang kung ano ang nakikita mo dito, maaari makita sa kaisipan mo kung saan ito-aaksaya ng espasyo 789 00:38:05,650 --> 00:38:08,710 ay pagpunta sa darating mula sa, sa paglipas ng panahon, bilang mas at mas maraming mga user magparehistro 790 00:38:08,710 --> 00:38:10,860 para sa iyong website? 791 00:38:10,860 --> 00:38:13,047 Anong data ay maaaring maging kalabisan? 792 00:38:13,047 --> 00:38:19,084 793 00:38:19,084 --> 00:38:20,940 >> Madla: [hindi marinig] 794 00:38:20,940 --> 00:38:22,686 >> David MALAN: Bakit mo ibig sabihin nito? 795 00:38:22,686 --> 00:38:23,561 Madla: [hindi marinig] 796 00:38:23,561 --> 00:38:32,180 797 00:38:32,180 --> 00:38:32,930 David MALAN: Oo. 798 00:38:32,930 --> 00:38:35,622 At sabihin ipinapalagay para sa mga layunin ng araw na ito na iyon ay totoo. 799 00:38:35,622 --> 00:38:38,330 Lumiliko out, at ang aming natutunan ito ang mahirap na paraan, iyon ay hindi totoo. 800 00:38:38,330 --> 00:38:41,670 Sa paano pa man maraming mga lungsod ay may, sa anumang paraan, ang parehong zip code, 801 00:38:41,670 --> 00:38:43,390 na break ito kahanga-hangang intuwisyon. 802 00:38:43,390 --> 00:38:46,180 Ngunit sabihin ipagpalagay na ay totoo, dahil sa ito ay halos palaging totoo. 803 00:38:46,180 --> 00:38:51,390 Kaya ipagpalagay na ang isang zip code ay palaging na kaugnay sa parehong lungsod 804 00:38:51,390 --> 00:38:53,600 at estado, kung saan ay uri ng makatwirang palagay, 805 00:38:53,600 --> 00:38:54,840 ngunit hindi tama, ito ay lumiliko out. 806 00:38:54,840 --> 00:38:57,310 Ngunit ang isang makatwirang palagay para sa mga layunin ngayon. 807 00:38:57,310 --> 00:39:01,650 >> Pagkatapos ipagpalagay na ako ay nakatira sa Cambridge, MA, ayon sa talahanayan na ito user, 808 00:39:01,650 --> 00:39:04,100 at ipagpalagay na Lauren Scully nakatira sa Cambridge, MA, 809 00:39:04,100 --> 00:39:06,120 at ipagpalagay na Kareem nakatira sa Cambridge, MA, 810 00:39:06,120 --> 00:39:10,400 at Arwa nakatira sa Cambridge, MA, ang lahat ng sa amin sa 02138. 811 00:39:10,400 --> 00:39:15,890 Bakit kami pagtanda Cambridge, MA, 02138 para sa lahat ng apat na sa atin? 812 00:39:15,890 --> 00:39:18,903 Ano ang dapat sumapat sa tandaan? 813 00:39:18,903 --> 00:39:20,249 >> Madla: [hindi marinig] 814 00:39:20,249 --> 00:39:21,540 David MALAN: lamang ang zip code. 815 00:39:21,540 --> 00:39:25,080 Lamang na 02138 ay umiiral, dahil alam mo kung ano ang maaari naming gawin? 816 00:39:25,080 --> 00:39:32,650 Maaari naming makakuha ng isang maliit magarbong dito at sa paglipas dito, tukuyin ibang table 817 00:39:32,650 --> 00:39:35,850 kung saan ito ay pagpunta sa maging ang pangalan, ito ay pagpunta sa maging ang uri, 818 00:39:35,850 --> 00:39:38,840 ito ay pagpunta sa maging ang haba, at mula ngayon, ako 819 00:39:38,840 --> 00:39:42,900 pagpunta sa tumawag ito ang aking mga lungsod table. 820 00:39:42,900 --> 00:39:47,011 Ito ay tinatawag na, ng Siyempre, aking dulang gumagamit. 821 00:39:47,011 --> 00:39:49,885 At kaya kung ano ang dapat kong ilagay sa paglipas dito para sa aking mga lungsod table, sa tingin ninyo? 822 00:39:49,885 --> 00:39:53,605 823 00:39:53,605 --> 00:39:54,535 >> Madla: [hindi marinig] 824 00:39:54,535 --> 00:39:55,930 >> David MALAN: Oo. 825 00:39:55,930 --> 00:40:01,440 Kaya zip at estado at lungsod. 826 00:40:01,440 --> 00:40:05,350 At kaya ang type dito, kami sabihin ito ay pagpunta sa maging isang char 5 muli, 827 00:40:05,350 --> 00:40:06,750 napapailalim sa mga debate ng mas maaga. 828 00:40:06,750 --> 00:40:14,810 Ito ay magiging isang enum, marahil tulad ng bago, at lungsod ay magiging isang varchar 50. 829 00:40:14,810 --> 00:40:17,960 At kaya ngayon kung ano ang makukuha ko upang burahin mula sa dulang ito 830 00:40:17,960 --> 00:40:21,995 upang maalis ang kawalan ng kaalaman na? 831 00:40:21,995 --> 00:40:23,100 >> Madla: [hindi marinig] 832 00:40:23,100 --> 00:40:23,850 David MALAN: Nice. 833 00:40:23,850 --> 00:40:30,239 Estado at lungsod umalis, kaya na hindi ko na ngayon eliminated ang mga potensyal na kawalan ng kaalaman 834 00:40:30,239 --> 00:40:33,280 para redundantly pagtanda, Cambridge, MA, Cambridge, MA, Cambridge, MA, 835 00:40:33,280 --> 00:40:35,712 Cambridge, MA, na kung saan, sana ay hindi kailanman pagpunta upang baguhin. 836 00:40:35,712 --> 00:40:37,670 At kahit na kung ito ay, ito ay minorly nakakainis, ngayon 837 00:40:37,670 --> 00:40:39,750 na kailangan kong baguhin ito sa maramihang mga hilera, 838 00:40:39,750 --> 00:40:43,770 samantalang dito, ako ay maaaring lamang baguhin ito sa isang lugar. 839 00:40:43,770 --> 00:40:46,890 >> Ngayon kung ano ang mga trade-off, marahil? 840 00:40:46,890 --> 00:40:48,020 Ito ay sobrang maginhawa. 841 00:40:48,020 --> 00:40:50,730 Ay ang lahat ng aking data ng mabuti sama-sama. 842 00:40:50,730 --> 00:40:53,644 Ngunit kung ano ang malinaw na ang kaso ngayon? 843 00:40:53,644 --> 00:40:55,684 >> Madla: [hindi marinig] 844 00:40:55,684 --> 00:40:58,100 David MALAN: Eksakto, at ako natutuwa na ginamit mo ang salitang sumali, 845 00:40:58,100 --> 00:41:01,320 dahil na talagang ang keyword, sa mundo ng pamanggit database 846 00:41:01,320 --> 00:41:05,270 sa SQL, ito ay isang aktwal na salita na iyong maaaring i-type o hindi bababa sa ihatid. 847 00:41:05,270 --> 00:41:09,280 At sa katunayan, kung ano ang ngayon ay mayroon kaming upang gawin upang piliin ang buong impormasyon ni David ay 848 00:41:09,280 --> 00:41:19,700 isang bagay tulad ng piliin ang bituin mula gumagamit, sumali lungsod, on-- at ngayon 849 00:41:19,700 --> 00:41:24,010 Pupunta ako upang ilipat lamang sa isang pangalawang linya kaya na ito fits-- users.zip katumbas 850 00:41:24,010 --> 00:41:34,570 cities.zip, kung saan users.ID katumbas ng 1. 851 00:41:34,570 --> 00:41:35,550 >> Kaya kung ano kaya ang nangyari? 852 00:41:35,550 --> 00:41:38,970 Walang pangit naghahanap, ngunit maaari mong uri ng basahin ito sa kaliwa papunta sa kanan, itaas hanggang sa ibaba. 853 00:41:38,970 --> 00:41:41,030 Pumili ng star mula sa mga gumagamit ay ang parehong tulad ng dati, 854 00:41:41,030 --> 00:41:42,930 ngunit ito ay hindi mula sa mga gumagamit, per se. 855 00:41:42,930 --> 00:41:45,910 Ito ay mula sa mga gumagamit sumali lunsod. 856 00:41:45,910 --> 00:41:48,520 Ano ako sumali sa mga may dalawang dulang sa? 857 00:41:48,520 --> 00:41:51,820 Well, tila, ang gumagamit ng mga talahanayan zip field, 858 00:41:51,820 --> 00:41:54,810 at panahon na ito ay lamang ng mga espesyal na syntax upang ipahayag na ideya, 859 00:41:54,810 --> 00:41:58,130 at ito ay ang mga lungsod tables zip field. 860 00:41:58,130 --> 00:42:01,580 Gusto kong ang mga dalawang na maging pantay-pantay, ngunit gusto kong sa huli piliin 861 00:42:01,580 --> 00:42:06,280 lamang ang mga hilera kung saan ID sa table ng mga gumagamit 862 00:42:06,280 --> 00:42:08,730 ay katumbas ng 1, na kung saan nangyari sa maging akin. 863 00:42:08,730 --> 00:42:11,781 >> At lamang maging malinaw, ang isang programmer, kadalasan kapag 864 00:42:11,781 --> 00:42:14,780 hardcode isang bagay tulad ng bilang 1, dahil kung hindi, ang website lamang 865 00:42:14,780 --> 00:42:17,630 sinusuportahan David o ang pinakaunang user, ikaw 866 00:42:17,630 --> 00:42:20,720 Gusto sa halip na gawin isang bagay tulad ng ID, kung saan 867 00:42:20,720 --> 00:42:22,510 ito ay kumakatawan sa isang variable, isang bagay na 868 00:42:22,510 --> 00:42:26,210 maaaring baguhin sa paglipas ng panahon, katulad sa espiritu sa kung ano ang sinabi ko ng mas maaga 869 00:42:26,210 --> 00:42:28,080 sa mga uri ng mga placeholder. 870 00:42:28,080 --> 00:42:30,396 Ngunit para sa ngayon kami na lang hardcode ito bilang 1. 871 00:42:30,396 --> 00:42:31,520 At kaya kung ano ang ibig sabihin nito? 872 00:42:31,520 --> 00:42:35,100 Well, isang magandang paraan upang maisalarawan ito ay na kung ito kamay ay ang mga gumagamit ng talahanayan, 873 00:42:35,100 --> 00:42:38,090 at ito kamay niya ang zips mesa, hindi namin uri ng finding-- 874 00:42:38,090 --> 00:42:41,330 at ang mga tip ng aking mga daliri ay zip sa paglipas dito, at ang mga tip ng aking mga daliri 875 00:42:41,330 --> 00:42:43,740 narito ang zip, ikaw ay uri ng interlocking ito 876 00:42:43,740 --> 00:42:47,950 sa gayon ay makakuha ka pabalik ang mga nagresultang orihinal na mesa, sa pamamagitan ng tunay na pagsali 877 00:42:47,950 --> 00:42:49,590 ang dalawang tapyas sa mga karaniwang field. 878 00:42:49,590 --> 00:42:50,840 At ito ay hindi kailangang maging zip. 879 00:42:50,840 --> 00:42:54,460 Ito ay maaaring maging pinaka-anumang bagay, ngunit zip ay nice, dahil ang isa, ito ay maikli, 880 00:42:54,460 --> 00:42:56,470 dalawa, ito ay palaging ang parehong haba, kaya may 881 00:42:56,470 --> 00:43:02,270 isang tunay na kahusayan sa kung ano ang Olivier ipinanukalang dito 882 00:43:02,270 --> 00:43:05,200 sa factoring out ang zip, at [Hindi marinig] pagpapanukala na namin mapupuksa 883 00:43:05,200 --> 00:43:07,110 ng lungsod at estado. 884 00:43:07,110 --> 00:43:11,370 >> Kaya ito ay ang proseso kilala bilang normalisasyon. 885 00:43:11,370 --> 00:43:14,171 Ang anumang mga katanungan sa mga iyon? 886 00:43:14,171 --> 00:43:16,170 Well hayaan mo akong ituro ito ay ang uri ng mga bagay-bagay, 887 00:43:16,170 --> 00:43:19,202 kahit na ito ay medyo mababa-level, talakayang ito, na nais mong mag-isip 888 00:43:19,202 --> 00:43:20,910 ka na uri ng pagkuha nawala sa damo, 889 00:43:20,910 --> 00:43:26,690 ito ay isang paghahayag ng sapat na pagkakataon para sa mga developer upang maging masama. 890 00:43:26,690 --> 00:43:29,600 At sa katunayan, noon pa mang kami, sa kurso ko na nagturo, kapag mayroon kaming, 891 00:43:29,600 --> 00:43:32,290 halimbawa, walang karanasan undergraduate programmers 892 00:43:32,290 --> 00:43:35,920 bumuo ng mga website, sa unang tingin, ang mga website ay maaaring tumingin kakila-kilabot. 893 00:43:35,920 --> 00:43:38,280 At mayroon silang lahat ng mga functionality namin hiniling, 894 00:43:38,280 --> 00:43:40,650 ang mga developer ay isang magandang trabaho. 895 00:43:40,650 --> 00:43:43,370 >> Subalit sila ay hindi kinakailangang malaman sapat na tungkol sa mga database ng disenyo 896 00:43:43,370 --> 00:43:46,680 o hindi nila isip nang husto sapat na ang tungkol sa mga uri ng data 897 00:43:46,680 --> 00:43:49,220 at ang mga uri ng mga gumagamit ang website ay pagpunta sa magkaroon ng, 898 00:43:49,220 --> 00:43:53,240 at nakita namin, at pagkatapos ay, anim na buwan mamaya, pagkatapos nilang nagtapos o inilipat sa, 899 00:43:53,240 --> 00:43:56,016 na mapapahamak ang mga ito, ang aming website ay talagang, na tunay mabagal. 900 00:43:56,016 --> 00:43:58,890 At hindi ako kahit na pakikipag-usap tungkol sa pagkakaroon ng milyon-milyong o libu-libong ng mga gumagamit. 901 00:43:58,890 --> 00:44:02,580 Ibig kong sabihin ng ilang daang mga gumagamit sa campus, lahat ng kanino nais na, halimbawa, 902 00:44:02,580 --> 00:44:04,870 shop para sa mga kurso sa Kasabay nito, ang mga ito ay 903 00:44:04,870 --> 00:44:07,010 gamit na kurso catalog application ko nabanggit 904 00:44:07,010 --> 00:44:10,410 at ang bagay ay nakakakuha ng talagang mabagal dahil walang index. 905 00:44:10,410 --> 00:44:13,740 Walang mga pulang bituin, kaya na makipag-usap, o hindi namin ay may kinakailangang 906 00:44:13,740 --> 00:44:17,690 factored out karaniwang data sa makakuha ng ilang mga pagtitipid ng space. 907 00:44:17,690 --> 00:44:21,880 >> At kaya kapag vetting isang developer o database tao o mga katulad, 908 00:44:21,880 --> 00:44:25,864 ang mga uri ng mga katanungan-isip sa pamamagitan ay kahit na, kapag sinusuri code ng isang tao, 909 00:44:25,864 --> 00:44:28,530 sa makatuwid baga'y hindi kinakailangang tumingin sa pamamagitan ng lahat ng kanilang mga code, ngunit sabihin, 910 00:44:28,530 --> 00:44:30,154 tingnan natin sa pamamagitan ng mga talahanayan ng database. 911 00:44:30,154 --> 00:44:31,150 Ano ikaw ay pag-iimbak? 912 00:44:31,150 --> 00:44:33,941 At pagkatapos ay sabihin, well, maghintay ng isang minuto, kung bakit ikaw ay gumagamit ng isang integer? 913 00:44:33,941 --> 00:44:36,224 Paano kung kami ay may 4 billion at 1 sa mga hilera? 914 00:44:36,224 --> 00:44:38,140 At lalakip ang mga uri ng tanong na ito ay isang pagkakataon 915 00:44:38,140 --> 00:44:40,170 sa uri ng itulak sa likod at makakuha ng isang pakiramdam ng pagkakaroon ng, kung saan 916 00:44:40,170 --> 00:44:42,300 kung ikaw ay hindi komportable paggawa ito, pagkakaroon ng isang tao sa mga teknikal na 917 00:44:42,300 --> 00:44:45,425 itanong ang mga ito, kung o hindi ang taong tunay na nakakaalam ng kanilang mga bagay-bagay. 918 00:44:45,425 --> 00:44:47,890 At ito ay ang uri ng mga bagay-bagay, masyadong, na ang mga tao 919 00:44:47,890 --> 00:44:50,540 sa internet na ay self-itinuro, siguro 920 00:44:50,540 --> 00:44:53,920 matuto mas madalas, dahil ikaw ay hindi kinakailangang dumating sa kabuuan ito 921 00:44:53,920 --> 00:44:56,630 ng mas maraming, dahil maaari kang makakuha ang database ng up at tumatakbo, 922 00:44:56,630 --> 00:44:58,880 ngunit maliban kung nabasa mo na up sa mga tutorial o naging 923 00:44:58,880 --> 00:45:01,880 sinabi tungkol sa database normalisasyon at pag-index at pagganap, 924 00:45:01,880 --> 00:45:04,255 ito ay ang mga uri ng mga bagay na pagpunta sa saktan ka. 925 00:45:04,255 --> 00:45:07,480 At maaari mong isipin, o isang masamang engineer maaaring sabihin, oh, well, kami ay mas mahusay na pay 926 00:45:07,480 --> 00:45:09,600 para sa isang mas malaking database o isang mas mabilis na database 927 00:45:09,600 --> 00:45:13,360 o lamang magtapon ng pera sa ito, patayo scale, hindi naman ito. 928 00:45:13,360 --> 00:45:16,920 Kung pupunta ka in-- at maaari kang pumunta sa pagkatapos ng fact-- at magdagdag ng index, 929 00:45:16,920 --> 00:45:20,320 at maaari itong tumagal ng ilang oras para sa mga database upang bumuo ng up na ang mga bagong data 930 00:45:20,320 --> 00:45:24,100 istraktura na ko alluded sa mas maaga, maaari mo pa ring ayusin ito pagkatapos ng katotohanan, 931 00:45:24,100 --> 00:45:26,180 na ito ay kung saan mo simulan upang makilala 932 00:45:26,180 --> 00:45:28,830 magandang designers mula sa masamang designers, hindi lamang aesthetically, 933 00:45:28,830 --> 00:45:32,972 ngunit ang pagganap-pera pati na rin. 934 00:45:32,972 --> 00:45:33,555 May tanong? 935 00:45:33,555 --> 00:45:36,420 936 00:45:36,420 --> 00:45:37,480 Hindi? 937 00:45:37,480 --> 00:45:41,980 Kaya para sa NoSQL, na siyang iba pang uri ng database na kung saan ako alluded mas maaga, 938 00:45:41,980 --> 00:45:43,490 hindi mo na kailangang hanay at haligi. 939 00:45:43,490 --> 00:45:47,000 Sa halip, nais mong magkaroon ng isang bagay na mukhang ng kaunti pa tulad nito. 940 00:45:47,000 --> 00:45:48,630 Ako pagpunta sa gamitin ang mga karaniwang syntax. 941 00:45:48,630 --> 00:45:51,270 Curly braces mangyari sa gamitin dito lubos ng maraming. 942 00:45:51,270 --> 00:45:55,400 Maaari mong magkaroon ng isang bagay tulad ng unang pangalan ko ay David, 943 00:45:55,400 --> 00:46:00,180 maaari kang magkaroon ng huling pangalan ko ay Malan, quotes, 944 00:46:00,180 --> 00:46:07,530 maaari kang magkaroon ng ID is-- patawarin ninyo ako, whoops-- ID ay 1, 945 00:46:07,530 --> 00:46:13,410 email ay malan@harvard.edu, at Ayaw ko abala ng pag-type ang natitirang bahagi, at pagkatapos ay 946 00:46:13,410 --> 00:46:14,380 ilang mga iba pang mga bagay. 947 00:46:14,380 --> 00:46:17,380 >> Sa ibang salita, ito ay isang tekstuwal representasyon 948 00:46:17,380 --> 00:46:20,720 ng kung ano ang kami ay karaniwang tawag isang bagay sa isang computer program. 949 00:46:20,720 --> 00:46:26,079 At ang isang bagay ay karaniwang lamang isang koleksyon ng mga pangunahing mga pares ng halaga. 950 00:46:26,079 --> 00:46:27,370 Kaya muli, ito paulit-ulit na tema. 951 00:46:27,370 --> 00:46:30,440 Nakita namin susi halaga pares sa HTML, nakita natin susi pares halaga ngayon 952 00:46:30,440 --> 00:46:34,020 sa konteksto ng mga database, at hindi na namin Nakita susi pares halaga sa konteksto 953 00:46:34,020 --> 00:46:35,970 ng, sa tingin ko, ang isang wika mas maaga sa araw. 954 00:46:35,970 --> 00:46:36,890 Mapigil ang paparating na. 955 00:46:36,890 --> 00:46:39,620 At sa katunayan, iyan ay talagang kung ano ang data na bumabagsak sa, 956 00:46:39,620 --> 00:46:44,240 data at metadata, o halaga at mga susi, buong galang. 957 00:46:44,240 --> 00:46:47,430 >> Kaya ang isang non-pamanggit database, isang bagay batay 958 00:46:47,430 --> 00:46:50,680 sa mga bagay, kung saan mo lamang kimpal lahat ng bagay magkasama at ilagay ito 959 00:46:50,680 --> 00:46:55,640 sa memorya, ay pangkaraniwang magiging inilalarawan bilang, o naisip ng, bilang na ito. 960 00:46:55,640 --> 00:47:00,500 At kukunin ko na umalis na ngayon bilang isang uri ng alternatibong paraan. 961 00:47:00,500 --> 00:47:03,750 At ang isa ay hindi kinakailangang mas mahusay kaysa sa isa. 962 00:47:03,750 --> 00:47:07,310 Sa katunayan, very much sa popularidad mga araw na ito ay mga sistema ng database 963 00:47:07,310 --> 00:47:11,942 tulad MongoDB at Redis at ng ilang mga iba pang tulad ng mga kasangkapan, malayang magagamit, 964 00:47:11,942 --> 00:47:13,400 ngunit ang mga ito increasingly en popularidad. 965 00:47:13,400 --> 00:47:18,850 Bahagyang dahil nag-aalok sila ng karagdagang tampok sa paglipas ng mga hugis ng mga talaan approach na ito, 966 00:47:18,850 --> 00:47:20,850 kundi pati na rin dahil ang mga ito isang maliit na mas madaling gamitin, 967 00:47:20,850 --> 00:47:24,099 dahil hindi mo na kailangang mag-isip bilang mahirap tungkol sa isang pulutong ng mga desisyon disenyo. 968 00:47:24,099 --> 00:47:25,970 Kaya pluses at minuses. 969 00:47:25,970 --> 00:47:29,740 Kaya Napagtanto may mga pagpipilian lampas sa kung ano lang namin na ginugol ng oras sa. 970 00:47:29,740 --> 00:47:32,310 >> Kaya sabihin gawin ito. 971 00:47:32,310 --> 00:47:37,870 ni-transition ng kaunti Hayaan bumalik ngayon sa web programming, 972 00:47:37,870 --> 00:47:40,470 kaya na namin uri ng tapusin ngayon na may isang bagay 973 00:47:40,470 --> 00:47:43,930 na ang isang maliit na mga kamay-on, pagpuno sa ilang mga gaps mula kahapon. 974 00:47:43,930 --> 00:47:45,340 Hayaan akong pumunta sa ito muna. 975 00:47:45,340 --> 00:47:49,310 Kaya isipin ang na kahapon kami ay nagkaroon ng ilang mga canonical HTML 976 00:47:49,310 --> 00:47:55,110 mga pahina na nagkaroon sa una, lamang HTML, at pagkatapos ay secondarily nagkaroon CSS, 977 00:47:55,110 --> 00:47:56,620 cascading style sheet. 978 00:47:56,620 --> 00:47:59,830 Ito ay isang bagong tag na kami ay hindi makita kahapon, o tumira sa, 979 00:47:59,830 --> 00:48:01,490 tinaguriang script tag. 980 00:48:01,490 --> 00:48:05,830 >> Lumiliko out maaari mong aktwal na-embed ng isang wika na tinatawag na JavaScript sa iyong web 981 00:48:05,830 --> 00:48:08,310 pahina at gumawa ng iyong web mga pahina gawin ang isang bagay. 982 00:48:08,310 --> 00:48:09,710 Kaya kung ano ang ibig sabihin ko sa pamamagitan ng na? 983 00:48:09,710 --> 00:48:12,630 Well, hayaan mo akong magpatuloy at lamang humiram ang code na ito para sa isang sandali. 984 00:48:12,630 --> 00:48:15,860 Pupunta ako sa pumunta sa Cloud9, hindi na kailangan upang pumunta doon ang inyong mga sarili sa ngayon, 985 00:48:15,860 --> 00:48:21,350 at ako pagpunta sa tumawag ito alert.HTML. 986 00:48:21,350 --> 00:48:23,650 Pupunta ako sa ilagay sa aking file dito. 987 00:48:23,650 --> 00:48:32,070 At lamang upang linawin kung ano ang aking nagawa, sabihin akong pumunta sa address na ito at pumunta upang alertuhan, 988 00:48:32,070 --> 00:48:33,870 at nakikita mo ang Hello World. 989 00:48:33,870 --> 00:48:35,440 >> Ngunit ito ay uri ng underwhelming. 990 00:48:35,440 --> 00:48:37,410 Gusto kong gawin ang isang bagay isang maliit na naiiba. 991 00:48:37,410 --> 00:48:40,610 Kaya ako pagpunta sa aktwal na gawin ito. 992 00:48:40,610 --> 00:48:43,820 Pupunta ako sa pumunta sa dito e, at sa pagitan ng aking mga script tag, 993 00:48:43,820 --> 00:48:53,460 sabihin alert ( 'hello, world'); kaya notice ito ay isang maliit nanggigitata, ngunit Mayroon akong HTML, 994 00:48:53,460 --> 00:48:56,180 loob ng kung saan ay isang wika na tinatawag na JavaScript, 995 00:48:56,180 --> 00:48:59,420 at ito ay kung ano ang tinatawag na isang function na tawag o procedure call. 996 00:48:59,420 --> 00:49:04,500 Ito ay isang verb, literal, sa kasong ito, at ako ay invoking code functionality 997 00:49:04,500 --> 00:49:06,310 na ang isang tao sino pa ang paririto ay nagsulat. 998 00:49:06,310 --> 00:49:09,630 >> Kaya na pag-andar ay isang alerto, kaya sabihin pumunta sa pahinang ito 999 00:49:09,630 --> 00:49:14,046 ngayon at i-click reload, at ngayon ikaw makita ang isang maliit na piraso ng interactivity. 1000 00:49:14,046 --> 00:49:15,420 Ito ay uri ng lumang paaralan at pangit. 1001 00:49:15,420 --> 00:49:18,580 Ang ganitong uri ng reminds mo ng pop-ups, marahil, ng nakalipas na panahon 1002 00:49:18,580 --> 00:49:22,030 ngunit ito ay gumawa ng isang bagay ng isang kaunti pa program. 1003 00:49:22,030 --> 00:49:26,940 >> Kaya higit sa na, sabihin gawin isang bagay na mas kawili-wiling. 1004 00:49:26,940 --> 00:49:30,980 Hayaan akong pumunta sa dito at kumuha alisan ng ito. 1005 00:49:30,980 --> 00:49:33,840 At ako pagpunta sa sige at lumikha ng isang form tulad ng ginawa namin kahapon. 1006 00:49:33,840 --> 00:49:34,840 Sa totoo lang, alam mo kung ano? 1007 00:49:34,840 --> 00:49:37,350 Pupunta ako sa pumunta sa google.html, na aming 1008 00:49:37,350 --> 00:49:43,027 nagsimula sa kahapon, na mukhang ito, sa pamamagitan ng kung saan namin hinanap cat 1009 00:49:43,027 --> 00:49:45,360 Ngunit mapansin mayroong uri ng isang bug sa kasalukuyang bersyon. 1010 00:49:45,360 --> 00:49:49,770 Ito ay gumagana para sa pusa, ngunit ipagpalagay na Hindi ko makipagtulungan at i-type ko wala, 1011 00:49:49,770 --> 00:49:53,290 at ako lang i-click ang isumite. 1012 00:49:53,290 --> 00:49:54,540 Iyan ay uri ng kakaiba pag-uugali. 1013 00:49:54,540 --> 00:49:57,300 Kinuha sa akin sa tunay na Google, ay hindi nagbigay sa akin ng isang error na mensahe. 1014 00:49:57,300 --> 00:50:00,590 Gusto kong sabihin sa user kailangan mo upang bigyan kami ng isang halaga. 1015 00:50:00,590 --> 00:50:01,780 >> Kaya kung paano maaaring gawin namin ito? 1016 00:50:01,780 --> 00:50:06,790 Well hayaan mo akong bumalik sa Cloud9 at hayaan mo akong pumunta sa tuktok ng aking pahina 1017 00:50:06,790 --> 00:50:11,980 at magdagdag ng isang script tag na tulad nito, kung saan Pupunta ako mag-type ng ilang JavaScript code. 1018 00:50:11,980 --> 00:50:15,420 At ako pagpunta sa gawin ang mga sumusunod. 1019 00:50:15,420 --> 00:50:22,910 Kung (document.getelementByID-- at pagpapabalik na usapan natin ang tungkol sa na mas maaga, 1020 00:50:22,910 --> 00:50:23,960 na function. 1021 00:50:23,960 --> 00:50:25,310 Ano ID nais ko upang makakuha ng? 1022 00:50:25,310 --> 00:50:33,050 Gusto kong makakuha ng q, at ako pagpunta sa say katumbas wala, tulad this-- 1023 00:50:33,050 --> 00:50:38,220 aktwal na hayaan mo akong gamitin double quotes lamang para sa consistency-- katumbas wala, 1024 00:50:38,220 --> 00:50:46,650 pagkatapos alert ( "Mangyari lamang na mag-type ng query") dito. 1025 00:50:46,650 --> 00:50:49,200 >> Kaya Mayroon akong kung ano ang ay lilitaw upang maging isang bagay tulad ng isang kondisyon. 1026 00:50:49,200 --> 00:50:51,410 Nakita namin ang pangkalahatang ideya sa scratch. 1027 00:50:51,410 --> 00:50:54,240 Ito ay tulad ng isa sa mga puzzle piraso na na mukhang ito. 1028 00:50:54,240 --> 00:50:55,780 At kung ano ako sinasabi? 1029 00:50:55,780 --> 00:50:59,520 Well, down na dito, mapansin ako pagpunta sa gawin ang mga sumusunod. 1030 00:50:59,520 --> 00:51:02,790 Pupunta ako upang bigyan ang form na ito larangan hindi lamang isang pangalan ng q, na kung saan 1031 00:51:02,790 --> 00:51:06,630 ay kung ano ang makakakuha ng lumipas sa Google, ngunit ako pagpunta sa bigyan ito ng isang lokal na identifier, 1032 00:51:06,630 --> 00:51:07,630 tinatawag din na q. 1033 00:51:07,630 --> 00:51:11,780 Ngunit maaari kong itawag sa kahit ano ako gusto, tingin lang ako pagpunta sa panatilihin ito simple 1034 00:51:11,780 --> 00:51:14,570 at ring tumawag ito q, para lamang sa pagiging simple. 1035 00:51:14,570 --> 00:51:17,650 >> At ngayon ako pagpunta sa gawin isang bagay ng kaunti pa. 1036 00:51:17,650 --> 00:51:22,600 Sa field ng form dito, pupuntahan ko magdagdag ng kung ano ay tinatawag na isang kaganapan handler. 1037 00:51:22,600 --> 00:51:32,260 On isumite, gusto kong tumawag isang function na tinatawag patunayan. 1038 00:51:32,260 --> 00:51:35,520 Na ito ay hindi pa umiiral, ito salita, o ito verb patunayan, 1039 00:51:35,520 --> 00:51:38,560 dahil kung ano ako pagpunta sa gawin up dito ngayon ay magdagdag ng ilang mga code. 1040 00:51:38,560 --> 00:51:42,200 >> Pupunta ako sa sabihin function na patunayan. 1041 00:51:42,200 --> 00:51:48,280 Pupunta ako upang i-indent na ito at magdagdag ng isa pang kulot suhay dito at isa pa dito. 1042 00:51:48,280 --> 00:51:50,110 Isaalang-alang kung ano ito ngayon ay paggawa. 1043 00:51:50,110 --> 00:51:54,210 Mayroon akong now-- isipin na ito bilang nilikha ang aking sariling mga piraso puzzle na dati 1044 00:51:54,210 --> 00:51:57,440 umiiral, at ko na tinatawag na ito puzzle pagdugtong ang piraso patunayan puzzle. 1045 00:51:57,440 --> 00:52:01,620 Ang layunin nito sa buhay ay mag-execute ang apat na linya ng code sa loob ng mga ito. 1046 00:52:01,620 --> 00:52:04,940 >> Kung document.getElementByID kaya conceptually, 1047 00:52:04,940 --> 00:52:09,380 na ay pagpunta sa pumunta sa na elemento, ang HTML element na natatanging 1048 00:52:09,380 --> 00:52:12,930 ideya ay lamang q, at pagkatapos ay kahit na ang syntax hitsura ng isang maliit na kakaiba, 1049 00:52:12,930 --> 00:52:16,430 na katumbas ay katumbas nangangahulugan lamang katumbas. 1050 00:52:16,430 --> 00:52:20,950 Kaya nangangahulugan na kung ang elemento na may natatanging identifier ng q, kapag nakuha, 1051 00:52:20,950 --> 00:52:25,700 ay walang halaga, ito lamang ay katumbas ng quote magpanipi, wala sa doon, 1052 00:52:25,700 --> 00:52:27,170 pagkatapos ay kung ano ang gusto kong gawin? 1053 00:52:27,170 --> 00:52:29,360 Gusto kong sumigaw sa user. 1054 00:52:29,360 --> 00:52:31,710 >> At hindi namin ay pumunta mahusay na detalye dito. 1055 00:52:31,710 --> 00:52:32,960 Pupunta ako sa bumalik false. 1056 00:52:32,960 --> 00:52:34,380 Iyon ay isang error. 1057 00:52:34,380 --> 00:52:38,746 Iba Pa, ako pagpunta upang bumalik totoo. 1058 00:52:38,746 --> 00:52:40,120 Kaya ang alinman sa ito ay nagtrabaho o ito ay hindi. 1059 00:52:40,120 --> 00:52:41,800 False o totoo. 1060 00:52:41,800 --> 00:52:47,820 At ngayon kung hindi ko gumawa ng anumang mga pagkakamali, hayaan mo akong i-save ito at i-reload ito. 1061 00:52:47,820 --> 00:52:50,940 At ipaalam sa akin lamang double check na Hindi ko, sa katunayan, gumawa ng anumang mga typos, 1062 00:52:50,940 --> 00:52:52,690 kaya hindi ko mapahiya sa aking sarili. 1063 00:52:52,690 --> 00:52:54,240 Tingnan natin kung ito gumagana. 1064 00:52:54,240 --> 00:52:56,930 >> Kaya ngayon ako pagpunta sa i-type cats. 1065 00:52:56,930 --> 00:52:59,421 Ito pa rin gumagana, o kalahati mga gawa, hindi bababa sa. 1066 00:52:59,421 --> 00:53:02,170 Ngayon hayaan mo akong i-reload ito, at ngayon hayaan akong subukan pagsusumite walang pag-type 1067 00:53:02,170 --> 00:53:05,860 anything-- damn it, sinira ito. 1068 00:53:05,860 --> 00:53:06,430 Isang sandali. 1069 00:53:06,430 --> 00:53:09,380 1070 00:53:09,380 --> 00:53:12,660 Hayaan akong buksan ang console, [Hindi marinig] mag-log, i-reload ang pahina. 1071 00:53:12,660 --> 00:53:13,576 Hayaan akong subukan ito muli. 1072 00:53:13,576 --> 00:53:17,000 1073 00:53:17,000 --> 00:53:17,501 Oh, damn it. 1074 00:53:17,501 --> 00:53:18,000 Nakalimutan ko. 1075 00:53:18,000 --> 00:53:18,630 Ginawa ko ang isang typo. 1076 00:53:18,630 --> 00:53:20,760 Natatandaan ko kung ano ito. 1077 00:53:20,760 --> 00:53:21,350 .value. 1078 00:53:21,350 --> 00:53:27,060 sinadya kong sabihin na ang halaga ng elemento na ang ID ay q 1079 00:53:27,060 --> 00:53:29,800 ay katumbas na, pagkatapos ay sumigaw sa user. 1080 00:53:29,800 --> 00:53:31,870 >> Kaya ngayon hayaan mo akong hawakan ang aking hininga muli. 1081 00:53:31,870 --> 00:53:33,480 Ayan na naman. 1082 00:53:33,480 --> 00:53:34,130 Mayroon kaming pumunta. 1083 00:53:34,130 --> 00:53:35,010 Paki-type ang isang query. 1084 00:53:35,010 --> 00:53:36,840 Kaya ito ay hindi pagpapaalam sa akin sa pamamagitan ng. 1085 00:53:36,840 --> 00:53:40,210 ang maaari kong maging uri ng mapaglaro sa mga ito, at sa halip ng paglagay ng tsek para sa walang halaga, 1086 00:53:40,210 --> 00:53:46,720 maaari kong sabihin ng isang bagay tulad ng, wala nang mga naghahanap para sa pusa, 1087 00:53:46,720 --> 00:53:51,150 at ngayon maaari naming lamang sa higit pang playfully ipaalam ang paghahanap ng gumagamit para sa mga aso kung siya 1088 00:53:51,150 --> 00:53:57,490 Nais ni, o kung pumunta ako dito at maghanap para sa cats, ngayon ay hindi ko makakaya. 1089 00:53:57,490 --> 00:53:58,690 >> Kaya kung ano ang takeaway dito? 1090 00:53:58,690 --> 00:54:03,010 Kaya isa, kami ipinakilala sa ating mundo ng HTML at CSS, 1091 00:54:03,010 --> 00:54:04,320 programming functionality. 1092 00:54:04,320 --> 00:54:06,300 Maaari ko talagang ngayon gumawa ng mga desisyon sa code. 1093 00:54:06,300 --> 00:54:10,570 Noong nakaraan, ang lahat ng maaari kong gawin ay markahan up tekstuwal nilalaman o graphical na nilalaman 1094 00:54:10,570 --> 00:54:13,080 at sabihin dito kung ano ang hahanapin at saan na ipapakita. 1095 00:54:13,080 --> 00:54:16,650 Ngayon ay maaari ko talagang magtanong tanong ng web page 1096 00:54:16,650 --> 00:54:20,010 at gumawa ng mga pagpapasya batay sa mga ito, at i-prompt ang user 1097 00:54:20,010 --> 00:54:22,780 kung kailangan ko upang sumigaw sa kanya. 1098 00:54:22,780 --> 00:54:28,740 >> Kaya sabihin subukan ang isang bagay sa aming sariling sa ito. 1099 00:54:28,740 --> 00:54:33,350 Sige, hayaan mo akong buksan ang susunod na slide dito, at lamang ituro ang isang bagay. 1100 00:54:33,350 --> 00:54:37,250 Katulad ng CSS, maaari naming kadahilanan out aming JavaScript code sa isang hiwalay na file, 1101 00:54:37,250 --> 00:54:40,660 maaari mong gawin ang parehong bagay sa JavaScript bilang sa CSS. 1102 00:54:40,660 --> 00:54:44,520 At gamitin mo na ang paggamit ng isang pinagmulan attribute ng script tag. 1103 00:54:44,520 --> 00:54:46,540 Ngunit hindi pa namin ay makapagpalubha bagay para sa ngayon. 1104 00:54:46,540 --> 00:54:50,440 Sa halip, kung maaari mong pumunta sa hindi pahinang ito, 1105 00:54:50,440 --> 00:55:02,690 but-- hayaan mo akong ilipat ito sa paligid sa order-- pumunta sa, kung maaari mong, ang pahinang ito dito. 1106 00:55:02,690 --> 00:55:03,592 Ito URL dito. 1107 00:55:03,592 --> 00:55:04,550 Ito ay sa slide ngayong araw. 1108 00:55:04,550 --> 00:55:07,133 Maaaring mayroon kang upang i-reload dahil Nagdagdag ako ng isang pares ng mga bagay. 1109 00:55:07,133 --> 00:55:09,970 1110 00:55:09,970 --> 00:55:13,890 >> Ngunit pumunta doon kung saan ang ilang mga puzzle hintayin. 1111 00:55:13,890 --> 00:55:16,670 At ito ay magbibigay sa amin ng isang pagkakataon, sa isang bahagyang mas masaya konteksto, 1112 00:55:16,670 --> 00:55:20,610 sa magwilig sa ilang JavaScript. 1113 00:55:20,610 --> 00:55:25,505 At kapag nakakuha ka doon, kukunin ko na ipaliwanag kung ano ang naghihintay. 1114 00:55:25,505 --> 00:55:47,350 1115 00:55:47,350 --> 00:55:47,850 Kumuha green. 1116 00:55:47,850 --> 00:56:03,063 1117 00:56:03,063 --> 00:56:03,562 Itakda asul. 1118 00:56:03,562 --> 00:56:11,030 1119 00:56:11,030 --> 00:56:13,930 Sets green, nagtatakda pula. 1120 00:56:13,930 --> 00:56:19,220 1121 00:56:19,220 --> 00:56:20,220 Oops. 1122 00:56:20,220 --> 00:56:22,330 Sorry. 1123 00:56:22,330 --> 00:56:27,630 >> Ito ay ang lawak ng aming dokumentasyon para sa hamong ito. 1124 00:56:27,630 --> 00:56:29,920 At ito ay pagpunta sa trabaho tulad ng sumusunod. 1125 00:56:29,920 --> 00:56:33,340 Kaya kung ano ang mayroon ka sa ito pahina ay isang buo paglangkay-langkayin 1126 00:56:33,340 --> 00:56:38,024 ng mga puzzle larawan sa pamamagitan ng isang buddy sa Stanford University. 1127 00:56:38,024 --> 00:56:41,190 Kaya kung ano ang iyong nakikita dito ay halos uri ng isa sa mga magic puzzle mata, 1128 00:56:41,190 --> 00:56:43,815 ngunit kung ikaw lamang tumitig sa mga ito, walang pupuntahan pop out sa iyo. 1129 00:56:43,815 --> 00:56:46,000 Sa halip, ang isang bagay ay nakatago sa imahe na ito. 1130 00:56:46,000 --> 00:56:47,790 At ito ay nakatago sa ang mga sumusunod na paraan. 1131 00:56:47,790 --> 00:56:51,740 Images, dahil maaaring alam mo na, ay maaaring maging binubuo ng mga lamang tatlong kulay. 1132 00:56:51,740 --> 00:56:53,346 Ang ilang mga pula, ilang mga asul na, at ang ilan berde. 1133 00:56:53,346 --> 00:56:55,220 At maaari naming gawin ang lahat ng mga kulay sa bahaghari 1134 00:56:55,220 --> 00:56:57,570 sa pamamagitan ng paghahalo ng mga tatlong kulay sa anumang paraan. 1135 00:56:57,570 --> 00:57:01,940 >> Kaya ito asta halos berde at asul, ngunit bilang Nick sabi ni dito, 1136 00:57:01,940 --> 00:57:04,060 ito iron puzzle imahe ay isang palaisipan. 1137 00:57:04,060 --> 00:57:06,780 Ito ay naglalaman ng isang imahe ng isang bagay sikat, gayunpaman, 1138 00:57:06,780 --> 00:57:08,310 ang imahe ay pangit. 1139 00:57:08,310 --> 00:57:11,500 Ang sikat na object ay nasa red halaga. 1140 00:57:11,500 --> 00:57:13,810 Gayunman, ang pulang mga halaga kung ang lahat ay hinati sa 10. 1141 00:57:13,810 --> 00:57:16,230 Kaya ang mga ito masyadong maliit na sa pamamagitan ng isang factor ng 10. 1142 00:57:16,230 --> 00:57:18,280 Kaya sa ibang salita, Nick kinuha ng isang orihinal na imahe, 1143 00:57:18,280 --> 00:57:21,500 at siya desaturated lahat ng pulang mula sa mga ito, 1144 00:57:21,500 --> 00:57:23,850 pagbaba ng halaga ng red tinta, kung ikaw ay, sa loob nito. 1145 00:57:23,850 --> 00:57:26,060 >> Ang bughaw at luntiang mga halaga ay ang lahat ng lamang walang kahulugan, 1146 00:57:26,060 --> 00:57:30,000 random na mga halaga, aka ingay dinisenyo upang palabuin ang tunay na imahe. 1147 00:57:30,000 --> 00:57:32,250 Kaya kung ano Nick did ay siya toned down ang pula at pagkatapos ay 1148 00:57:32,250 --> 00:57:34,380 siya lamang threw random halaga ng bughaw at luntiang 1149 00:57:34,380 --> 00:57:37,590 sa imahe sa uri ng nakatago kung ano ang talagang pa rin doon. 1150 00:57:37,590 --> 00:57:41,089 Kailangan mong i-undo ang mga distortions upang ipakita ang mga imahe. 1151 00:57:41,089 --> 00:57:44,255 Una, itakda ang lahat ng bughaw at luntiang mga halaga sa zero upang makuha ang mga ito sa labas ng paraan, 1152 00:57:44,255 --> 00:57:48,700 at tignan ang resulta. pagkatapos multiply bawat red halaga sa pamamagitan ng 10, 1153 00:57:48,700 --> 00:57:51,720 scaling likod hanggang sa humigit-kumulang sa kanyang huling halaga. 1154 00:57:51,720 --> 00:57:53,035 Ano ang sikat na object? 1155 00:57:53,035 --> 00:57:57,920 >> Kaya lahat sa inyo ay may ito rectangle sa iyong browser ngayon. 1156 00:57:57,920 --> 00:58:00,830 At mapansin na may ilang starter code, kaya na magsalita. 1157 00:58:00,830 --> 00:58:04,370 Ito ang JavaScript code na Nick ay may nakasulat na para sa iyo. 1158 00:58:04,370 --> 00:58:07,250 At mapansin na mayroong isang linya sa gitna na 1159 00:58:07,250 --> 00:58:10,380 nagsisimula sa isang slash slash, na ang dahilan kung ano ang pangkalahatan ay tinatawag na isang puna. 1160 00:58:10,380 --> 00:58:14,660 Ito ay nangangahulugan na ito ay isang parirala sa programista na ay walang functional kahulugan. 1161 00:58:14,660 --> 00:58:16,520 Ito ay lamang ng isang visual na cue sa tao. 1162 00:58:16,520 --> 00:58:18,670 >> Sa gayon maaari mong sige, at tanggalin lamang na line, 1163 00:58:18,670 --> 00:58:22,214 at maging sobrang maingat sa hindi tanggalin o baguhin ang anumang bagay sino pa ang paririto. 1164 00:58:22,214 --> 00:58:25,130 At ipaalam sa akin lamang ituturo sa iyo kung ano ang ginagawa ang code na ito at kukunin ko na iwanan ito 1165 00:58:25,130 --> 00:58:28,580 sa iyo upang malaman ang mga lihim na imahe. 1166 00:58:28,580 --> 00:58:32,226 Ang unang linya dito na ko na lang naka-highlight na nagbibigay sa iyo ng ang mga sumusunod. 1167 00:58:32,226 --> 00:58:34,100 Sa kaliwang bahagi, ikaw ay may kung ano ang tinatawag 1168 00:58:34,100 --> 00:58:39,140 isang variable na Nick ay nagkataon, ngunit makatwirang tinatawag im para sa imahe. 1169 00:58:39,140 --> 00:58:41,660 Sa kanang bahagi kamay ng na katumbas sign, 1170 00:58:41,660 --> 00:58:45,240 siya ay sinasabi ninyo ako ng bagong quote, magpanipi "simple imahe". 1171 00:58:45,240 --> 00:58:49,680 >> Simple image, sa ganitong konteksto ay kung ano ang tinatawag na isang klase, well, 1172 00:58:49,680 --> 00:58:53,910 ito ay uri ng tulad ng isang class-- technically isang prototype-- ngunit talagang, 1173 00:58:53,910 --> 00:58:58,000 ito ay nagbibigay sa akin ng isang bagong bagay, ang mga nilalaman ng kung saan ay ang file, 1174 00:58:58,000 --> 00:58:59,610 iron-puzzle.png. 1175 00:58:59,610 --> 00:59:03,190 Sa ibang salita, Nick ay lumikha ito paniwala ng isang simpleng imahe 1176 00:59:03,190 --> 00:59:05,920 sa gayon ay maaari namin, para paturo mga layunin, i-play na may mga imahe 1177 00:59:05,920 --> 00:59:09,790 at baguhin red nito, berde, at asul na mga halaga. 1178 00:59:09,790 --> 00:59:11,750 >> At kung paano ang aming ginagawa iyon? 1179 00:59:11,750 --> 00:59:15,360 Ito medyo misteriyoso syntax dito ay uri ng tulad ng mga paulit-ulit na block 1180 00:59:15,360 --> 00:59:19,140 na ang ilan sa iyong nakita sa scratch mas maaga ngayon, kung saan maaari mong ulitin 10 beses. 1181 00:59:19,140 --> 00:59:22,220 Sa kasong ito, Nick ay hindi hardcoded isang numero tulad ng 10. 1182 00:59:22,220 --> 00:59:28,020 Sa halip siya ay sinasabi, magpasimula isang variable na tinatawag na x sa 0, 1183 00:59:28,020 --> 00:59:33,180 suriin kung x ay mas mababa sa ang lapad ng imahe. 1184 00:59:33,180 --> 00:59:38,160 >> At kaya na maging mas tamang, imahe ay ang variable, tuldok ay nangangahulugang pumunta sa loob ng mga ito 1185 00:59:38,160 --> 00:59:40,900 at makakuha ng lapad nito, at pagkatapos ay buksan paren, sarado 1186 00:59:40,900 --> 00:59:43,687 paren ay lamang paraan ng isang programmer ni na sabihing ito ay isang function. 1187 00:59:43,687 --> 00:59:44,520 Ito ay isang pamamaraan. 1188 00:59:44,520 --> 00:59:46,430 Ito ang pag-andar ibang tao sinulat ni. 1189 00:59:46,430 --> 00:59:48,570 Gamitin ito at bigyan ako ng likod ng isang sagot. 1190 00:59:48,570 --> 00:59:53,610 At pagkatapos ay x ++ ay isang magarbong paraan ng na sinasabi, pagkatapos nagawa mo na ito nang isang beses, 1191 00:59:53,610 --> 00:59:55,850 dagdagan x sa pamamagitan ng 1. 1192 00:59:55,850 --> 00:59:58,760 Sa ibang salita, ito ay isang programmer ng paraan 1193 00:59:58,760 --> 01:00:05,760 ng pampalaglag isang loop na pagpunta upang umulit sa 1194 01:00:05,760 --> 01:00:10,410 lahat ng mga haligi sa isang imahe. 1195 01:00:10,410 --> 01:00:14,790 >> Isang imahe ay lamang ng isang grid ng mga tuldok, mga hanay at haligi ng mga tuldok. 1196 01:00:14,790 --> 01:00:18,270 Ito ay isang paraan ng iterating sa ibabaw ng lahat ng mga haligi. 1197 01:00:18,270 --> 01:00:20,770 At sa loob, samantala, kami ay iterating 1198 01:00:20,770 --> 01:00:24,030 sa ibabaw ng heights, dito at dito at dito. 1199 01:00:24,030 --> 01:00:29,442 Kaya ito ay lamang ng isang paraan ng traipsing, halos tulad ng isang lumang makinilya paaralan, 1200 01:00:29,442 --> 01:00:32,230 pumunta lamang sa ibabaw ng buong imahe iteratively. 1201 01:00:32,230 --> 01:00:36,370 Kahit na hindi lubos wholly malinaw, tumagal lamang sa pananampalataya para sa ngayon, 1202 01:00:36,370 --> 01:00:38,880 na ang mga tatlong linya ng code magkasama ay 1203 01:00:38,880 --> 01:00:43,090 pagpunta sa magpapahintulot sa inyo na iteratively tumingin sa bawat pixel, ang bawat tuldok sa imahe. 1204 01:00:43,090 --> 01:00:43,790 >> Ano ang isang pixel? 1205 01:00:43,790 --> 01:00:46,250 Well, upang maging malinaw, kung tiningnan namin sa orihinal na at mag-zoom in, 1206 01:00:46,250 --> 01:00:49,060 kung talagang ilagay ang iyong mga mata sa computer screen, na ang dahilan 1207 01:00:49,060 --> 01:00:53,510 lamang ng isang buo paglangkay-langkayin ng mga tuldok, ilang thousand tuldok nakaimpake magkasama doon. 1208 01:00:53,510 --> 01:00:56,180 At kaya kung ano ang ikaw ay tungkol sa gawin? 1209 01:00:56,180 --> 01:00:59,240 Ang bawat isa sa mga tuldok, ng isang pangwakas na kahulugan, 1210 01:00:59,240 --> 01:01:06,350 ay ang resulta ng kung ano ang pangkalahatan ay tinatawag RGB, pula, berde, asul, na kung saan 1211 01:01:06,350 --> 01:01:09,940 muli, ay maaaring pinagsama upang magbibigay sa iyo ng anumang bilang ng mga kulay. 1212 01:01:09,940 --> 01:01:13,200 >> Sa katunayan, kung tandaan mo mula sa maraming, maraming mga taon na nakalipas, 1213 01:01:13,200 --> 01:01:17,320 projector screen tulad ng mga bagay na ginagamit upang magkaroon ng hindi isa lens ngunit tatlo. 1214 01:01:17,320 --> 01:01:20,700 Isa sa mga ito sabihin ang lahat red light, isa sa ang mga ito ay sabihin ang lahat luntiang ilaw, isa sa kanila 1215 01:01:20,700 --> 01:01:21,600 sabihin ang lahat bughaw na ilaw. 1216 01:01:21,600 --> 01:01:24,391 At kung ikaw ay sa isang middle school tulad ng ako ay kung saan sila ay hindi kailanman 1217 01:01:24,391 --> 01:01:27,000 maayos na nakahanay, ikaw ay palaging nanonood kasaysayan movies 1218 01:01:27,000 --> 01:01:29,770 na ay bahagyang pangit, dahil ang tatlong kulay ay hindi 1219 01:01:29,770 --> 01:01:30,970 Kombinasyon ng maayos. 1220 01:01:30,970 --> 01:01:36,330 >> Ngunit ito ay lumiliko out na ang bawat isa ang mga halagang ito pula, berde, at asul, 1221 01:01:36,330 --> 01:01:37,980 ay maaaring magkaroon ng isang bilang kaugnay sa kanila. 1222 01:01:37,980 --> 01:01:42,500 Halimbawa, 0 para sa red ay nangangahulugan na walang pula, 0 para sa berde ay nangangahulugan walang berde, 1223 01:01:42,500 --> 01:01:45,120 at 0 para sa asul ay nangangahulugan na walang asul. 1224 01:01:45,120 --> 01:01:49,403 Kaya kung mayroon kang walang red, walang berde, at walang blue, kung ano ang kulay ang mayroon kayo? 1225 01:01:49,403 --> 01:01:51,009 >> Madla: [hindi marinig] 1226 01:01:51,009 --> 01:01:52,800 David MALAN: Gusto mo Sana nga, ito ay puti. 1227 01:01:52,800 --> 01:01:55,333 Sa kasamaang palad, ito operates-- paumanhin? 1228 01:01:55,333 --> 01:01:56,380 >> Madla: [hindi marinig] 1229 01:01:56,380 --> 01:01:58,630 David MALAN: Kaya mo talagang may itim, sa kasong ito. 1230 01:01:58,630 --> 01:02:01,530 Kaya kung mayroon kang wala sa mga ito kulay naka-on, ikaw ay may itim. 1231 01:02:01,530 --> 01:02:06,510 Gayunpaman, kung mayroon kang, sabihin natin ng isang pulutong ng mga ito, tulad ng maraming mga pulang, 255 ng mga ito, 1232 01:02:06,510 --> 01:02:10,340 isang pulutong ng mga berde, at isang pulutong bughaw upang ay puti. 1233 01:02:10,340 --> 01:02:12,230 Kaya ito ay ang dalawang extremes. 1234 01:02:12,230 --> 01:02:17,460 Kaya sa pamamagitan ng logic na ito, kung mayroon akong isang pulutong ng pula at walang sariwang at walang blue, 1235 01:02:17,460 --> 01:02:18,485 kung ano ang kulay ay na? 1236 01:02:18,485 --> 01:02:19,360 Madla: [hindi marinig] 1237 01:02:19,360 --> 01:02:20,610 David MALAN: Right, nang walang alinlangan. 1238 01:02:20,610 --> 01:02:25,940 At pagkatapos ay walang pula, pulutong ng mga green, walang asul, at pagkatapos ay 1239 01:02:25,940 --> 01:02:29,590 kung have-- mo na rin, kami na lang tapusin ito, dahil lang sa, ngunit ito, siyempre, 1240 01:02:29,590 --> 01:02:31,350 ngayon, ay asul. 1241 01:02:31,350 --> 01:02:33,030 At ngayon maaari mong pagsamahin ang mga kulay. 1242 01:02:33,030 --> 01:02:36,430 Ngayon bilang isang bukod, kung mayroon man sa inyo ay may kailanman tapos na ang ilang mga aktwal na disenyo ng website, 1243 01:02:36,430 --> 01:02:38,360 maaari mong aktwal na makita simbolo tulad nito. 1244 01:02:38,360 --> 01:02:42,030 FFF-- at talagang, ito ay marahil hindi kahit na. 1245 01:02:42,030 --> 01:02:44,380 Ito ay FFFFFF. 1246 01:02:44,380 --> 01:02:48,970 >> Kahit sino kailanman makikita F at E at A through-- kaya ito ay lumiliko out, 1247 01:02:48,970 --> 01:02:52,970 usapan natin kahapon tungkol sa decimal, at ngayon, uri ng tungkol sa decimal. 1248 01:02:52,970 --> 01:02:54,570 Ngayon kami talked tungkol sa binary. 1249 01:02:54,570 --> 01:02:59,010 Lumiliko out, hexadecimal ay isang napaka karaniwang base system upang gamitin sa computing. 1250 01:02:59,010 --> 01:03:04,960 Binary ay dalawang, decimal ay 10, hex ay 16. 1251 01:03:04,960 --> 01:03:08,640 At ito ay lumiliko out, kung paano gawin bilangin mo sa hexadecimal? 1252 01:03:08,640 --> 01:03:11,620 Zero, isa, dalawa, tatlo, apat, lima, anim, pito, walo, 1253 01:03:11,620 --> 01:03:14,730 siyam, ano ang gagawin mo gamitin pagkatapos ng siyam? 1254 01:03:14,730 --> 01:03:16,600 Ano ang susunod na number? 1255 01:03:16,600 --> 01:03:19,180 Kami ay ginagamit na zero. 1256 01:03:19,180 --> 01:03:20,570 Kailangan ko 16 sa mga ito. 1257 01:03:20,570 --> 01:03:25,770 Zero, isa, dalawa, tatlo, apat, lima, anim, pito, walo, siyam, 1258 01:03:25,770 --> 01:03:27,520 kailangan mo ng ilang arbitrary convention. 1259 01:03:27,520 --> 01:03:30,810 >> At kung ano ang sangkatauhan ay nagpasya sa ilang oras nakaraan na pagkatapos ng siyam na dumating ang sulat 1260 01:03:30,810 --> 01:03:34,450 A at pagkatapos ay B at pagkatapos C. Kaya ang paraan bilangin mo sa hexadecimal 1261 01:03:34,450 --> 01:03:37,040 ay zero, isa, dalawa, tatlo, apat, lima, anim, pito, walo, siyam, 1262 01:03:37,040 --> 01:03:42,880 A, B, C, D, E, F, at na bibilangin mo ang lahat ng paraan, ito ay lumiliko out, hanggang 15. 1263 01:03:42,880 --> 01:03:47,850 Kaya sa zero sa 15 ay zero sa pamamagitan ng F. Ngayon kung bakit ay na makabuluhang? 1264 01:03:47,850 --> 01:03:51,570 Well, kapag mayroon kang dalawang F ni, na kung paano mo ipahayag ang 255. 1265 01:03:51,570 --> 01:03:54,350 >> Kaya mahaba kuwento maikli, sa mundo ng Photoshop, 1266 01:03:54,350 --> 01:03:57,299 na graphic disenyo ng software, sa mundo ng web development, 1267 01:03:57,299 --> 01:03:59,590 kung saan mayroon kang maraming ng mga kulay, siyempre, upang i-play sa, 1268 01:03:59,590 --> 01:04:02,350 madalas programmers ay ipahayag ang mga nasa hexadecimal, 1269 01:04:02,350 --> 01:04:05,260 dahil lang sa ito ay may gawi na maging isang maliit na mas simple. 1270 01:04:05,260 --> 01:04:07,850 Kahit na sa unang tingin ito ay mas mahirap unawain. 1271 01:04:07,850 --> 01:04:11,590 >> Kaya sa anumang kaso, ito ay mahalaga dahil Nick sa Stanford 1272 01:04:11,590 --> 01:04:15,100 ay nagbigay sa amin anim na piraso ng pag-andar na ikaw, ang namumuko programmers, 1273 01:04:15,100 --> 01:04:17,060 ay ngayon ay may kakayahan upang gamitin. 1274 01:04:17,060 --> 01:04:19,960 Itinayo sa ito web pahina ay anim na function, 1275 01:04:19,960 --> 01:04:21,820 anim pamamaraan na sinulat Nick. 1276 01:04:21,820 --> 01:04:26,800 Tatlong ng mga ito ay makakuha ka ng isang numero, isang pula, isang green, o isang asul na halaga. 1277 01:04:26,800 --> 01:04:28,787 Tatlong ng mga ito ay magse-set ng halagang iyon. 1278 01:04:28,787 --> 01:04:30,620 At lalakip ang mga underscore ay lamang placeholder, 1279 01:04:30,620 --> 01:04:32,600 kaya kailangan mong malaman kung ano ang mga ito ay. 1280 01:04:32,600 --> 01:04:36,240 >> Kaya may mga tatlong mga pag-andar, ang una sa mga bagay na ito 1281 01:04:36,240 --> 01:04:39,190 ay pagpunta sa maging isang x-coordinate, at ang pangalawang ng mga bagay na ito 1282 01:04:39,190 --> 01:04:40,700 ay pagpunta sa maging isang y-coordinate. 1283 01:04:40,700 --> 01:04:44,650 Sa ibang salita, na kung saan tuldok, na kung saan pixel ang gusto mong makuha ang green ng, 1284 01:04:44,650 --> 01:04:46,480 makuha ang asul ng, kumuha ng mga pula ng. 1285 01:04:46,480 --> 01:04:51,440 At pagkatapos dito, ito ay pagpunta sa maging x, ito ay pagpunta sa maging isang y halaga, 1286 01:04:51,440 --> 01:04:55,379 at ito ay pagpunta sa maging isang numero. 1287 01:04:55,379 --> 01:04:57,170 Kaya sabihin gawin ang unang line ng mga ito nang sama-sama 1288 01:04:57,170 --> 01:05:00,220 at pagkatapos ay makikita ko bang iwan ito sa iyo upang subukan upang pagbatayan ang natitira. 1289 01:05:00,220 --> 01:05:03,100 Kaya ayon sa mga tagubilin sa pahinang ito, kailangan namin 1290 01:05:03,100 --> 01:05:08,960 upang madagdagan ang red sa pamamagitan ng isang factor ng 10, at kailangan namin upang alisin ang berdeng 1291 01:05:08,960 --> 01:05:09,930 at alisin ang mga asul na. 1292 01:05:09,930 --> 01:05:12,410 Magsimula tayo sa mga huling pangyayari Hayaan. 1293 01:05:12,410 --> 01:05:17,760 Kaya kapag gusto kong, at ako pagpunta upang i-indent sa pamamagitan ng paggamit ng ilang mga puwang, 1294 01:05:17,760 --> 01:05:22,291 kung gusto ko upang i-set ang pula, berde, o ang mga asul na halaga, 1295 01:05:22,291 --> 01:05:23,540 Ako pagpunta sa gawin ang mga sumusunod. 1296 01:05:23,540 --> 01:05:31,280 >> Image, im.setBlue, at pagkatapos ay batay sa aking mga tagubilin dito, 1297 01:05:31,280 --> 01:05:36,700 ano ang tatlong bagay ang dapat kong type sa loob ng mga panaklong ngayon? 1298 01:05:36,700 --> 01:05:41,960 Kailangan ko ang x halaga, ang y halaga, at kung ano ang numero 1299 01:05:41,960 --> 01:05:48,770 ang dapat kong ilagay dito kung gusto ko upang makakuha ng mapupuksa ng asul, batay sa kuwentong ito dito? 1300 01:05:48,770 --> 01:05:49,630 Just zero. 1301 01:05:49,630 --> 01:05:52,420 Kung gusto kong walang blue, ako lang pagpunta sa baguhin ito sa zero. 1302 01:05:52,420 --> 01:05:54,465 >> Ngayon sabihin lamang paglalagom kung ano ito ay paggawa. 1303 01:05:54,465 --> 01:05:56,970 1304 01:05:56,970 --> 01:06:01,170 Mayroon akong dito sa mga top pangalawa at pangatlong linya, 1305 01:06:01,170 --> 01:06:04,080 I-claim ng dalawang mga loop, nested loops, kung ikaw 1306 01:06:04,080 --> 01:06:08,360 ay, na ay pagpunta sa may ang epekto ng progressing mula sa kaliwa papunta sa kanan, 1307 01:06:08,360 --> 01:06:11,590 itaas hanggang sa ibaba sa ibabaw ng lahat ng x halaga at lahat ng mga halaga y. 1308 01:06:11,590 --> 01:06:15,167 Dahil muli, ang isang larawan ay lamang ng isang grid ng mga hanay at haligi. 1309 01:06:15,167 --> 01:06:17,000 Kaya ito ay pagpunta upang makakuha alisan ng lahat ng asul. 1310 01:06:17,000 --> 01:06:18,627 Hayaan akong mag-iwan sa susunod na linya sa iyo. 1311 01:06:18,627 --> 01:06:20,043 Paano ako makakakuha ng alisan ng lahat ng mga green? 1312 01:06:20,043 --> 01:06:23,747 1313 01:06:23,747 --> 01:06:25,140 >> Madla: [hindi marinig] 1314 01:06:25,140 --> 01:06:26,151 >> David MALAN: Nice. 1315 01:06:26,151 --> 01:06:28,260 >> Madla: [hindi marinig] 1316 01:06:28,260 --> 01:06:30,850 >> David MALAN: Nice. 1317 01:06:30,850 --> 01:06:36,120 At ako pagpunta upang mag-zoom out, at lang ang dadalhin pag-aalaga ng na hindi mo nagawa ang anumang mga typo. 1318 01:06:36,120 --> 01:06:39,390 At kung ikaw ay komportable sa kung ano ang nagawa mo na, 1319 01:06:39,390 --> 01:06:42,936 sige, at i-click ang pindutan ng Patakbuhin / I-save at makita kung ano ang makukuha mo. 1320 01:06:42,936 --> 01:06:46,982 1321 01:06:46,982 --> 01:06:48,690 At muli, ginawa naming lamang ng tatlong mga pagbabago. 1322 01:06:48,690 --> 01:06:52,130 tinanggal na namin na unang magkomento at papalitan ito 1323 01:06:52,130 --> 01:06:53,575 gamit ang dalawang linya ng code. 1324 01:06:53,575 --> 01:06:55,742 1325 01:06:55,742 --> 01:06:58,450 At ito ay OK kung kailangan mo na matumbok ang Run / I-save button ng ilang beses 1326 01:06:58,450 --> 01:07:01,190 upang ayusin ang isang bagay. 1327 01:07:01,190 --> 01:07:03,610 >> At hayaan mo akong ring mag-zoom in sa aking code para makita mo isalin sa ibang papel. 1328 01:07:03,610 --> 01:07:04,110 Good. 1329 01:07:04,110 --> 01:07:08,720 Kaya nakikita ko Andrew ay may kung ano mukhang may tama. 1330 01:07:08,720 --> 01:07:11,110 Siya lamang ay nakuha ng isang malaking itim na parihaba sa kanyang screen. 1331 01:07:11,110 --> 01:07:13,120 Does kahit sino may isang malaking itim na rectangle? 1332 01:07:13,120 --> 01:07:13,390 >> Madla: Oo. 1333 01:07:13,390 --> 01:07:14,360 >> David MALAN: Big black rectangle? 1334 01:07:14,360 --> 01:07:16,068 OK, kaya sabihin sa tingin tungkol sa kung ano ang ibig sabihin nito. 1335 01:07:16,068 --> 01:07:20,560 Sinabi namin na zero, zero, zero, kaya walang green, walang red, walang asul, 1336 01:07:20,560 --> 01:07:21,980 ay pagpunta sa magbibigay sa iyo ng itim. 1337 01:07:21,980 --> 01:07:24,467 At ito ay lumiliko out na karamihan ng aming mga laptops 1338 01:07:24,467 --> 01:07:25,800 lamang ay hindi magkaroon ng sapat na katapatan. 1339 01:07:25,800 --> 01:07:27,750 hindi lubos mo maaaring sabihin doon ay talagang isang bagay doon. 1340 01:07:27,750 --> 01:07:30,340 At kung ikaw uri ng siguro sandalan iyong screen pasulong at pabalik, 1341 01:07:30,340 --> 01:07:32,850 siguro mo makita ang isang maliit na isang bagay doon? 1342 01:07:32,850 --> 01:07:34,820 Siguro, uri ng, uri ng? 1343 01:07:34,820 --> 01:07:36,640 Ito ay hindi ganap na itim. 1344 01:07:36,640 --> 01:07:38,050 >> Madla: [hindi marinig] 1345 01:07:38,050 --> 01:07:39,510 >> David MALAN: Spoiler! 1346 01:07:39,510 --> 01:07:42,610 Mayroong ilang mga red doon, ngunit tandaan mula sa mga pagtutukoy 1347 01:07:42,610 --> 01:07:44,940 ng problema, Nick toned down na ito. 1348 01:07:44,940 --> 01:07:47,860 Siya desaturated ito medyo, ngunit hindi lahat ng mga paraan sa zero. 1349 01:07:47,860 --> 01:07:51,670 Kaya kung gusto naming upang i-magnify ang halaga ng pula, hayaan mo akong magpanukala na ito kahanga-hangang gawa. 1350 01:07:51,670 --> 01:07:53,750 Hayaan akong mag-zoom in sa aking screen. 1351 01:07:53,750 --> 01:07:58,678 At hayaan mo akong sige at sabihin halaga ay katumbas im.getRed (x, y). 1352 01:07:58,678 --> 01:08:02,440 1353 01:08:02,440 --> 01:08:05,790 >> Ang linya ng code ay nagbibigay sa akin isang bagay na tinatawag na isang variable. 1354 01:08:05,790 --> 01:08:09,643 Mayroon akong nagkataon, ngunit, arguably, makatuwirang tinawag kong aking variable ano, 1355 01:08:09,643 --> 01:08:10,143 tila? 1356 01:08:10,143 --> 01:08:13,530 1357 01:08:13,530 --> 01:08:14,340 Halaga. 1358 01:08:14,340 --> 01:08:14,980 Just halaga. 1359 01:08:14,980 --> 01:08:16,960 maaari ko na tinatawag na ito kahit ano ang gusto ko, ngunit ako 1360 01:08:16,960 --> 01:08:19,490 paggamit ng iba pang mga function na ako ng inilarawan mas maaga 1361 01:08:19,490 --> 01:08:25,359 upang makuha ang halaga ng pulang sa x comma y. 1362 01:08:25,359 --> 01:08:27,520 Bakit gagawin ko na? 1363 01:08:27,520 --> 01:08:30,004 Ano ang gusto mong gawin dito? 1364 01:08:30,004 --> 01:08:32,910 1365 01:08:32,910 --> 01:08:33,619 Kailangan mong add-- 1366 01:08:33,619 --> 01:08:34,493 Madla: [hindi marinig] 1367 01:08:34,493 --> 01:08:36,279 David MALAN: Oo, siguro multiply ito sa pamamagitan ng 10. 1368 01:08:36,279 --> 01:08:38,862 At kung hindi mo alam ito, ako pagpunta sa sige at gawin ito. 1369 01:08:38,862 --> 01:08:42,060 Ako pagpunta sa sige at sabihin nating, gusto ko ang mga halaga ng pulang 1370 01:08:42,060 --> 01:08:46,550 Gusto kong maging ano pa man ay ang pulang, oras 10, 1371 01:08:46,550 --> 01:08:50,330 At ang bituin, ang asterisk sa iyong keyboard ay hindi the-- gumagamit x. 1372 01:08:50,330 --> 01:08:51,569 Gamitin ang mga bituin. 1373 01:08:51,569 --> 01:08:55,350 Iyan ay kung paano mo i-multiply bagay sa karamihan ng mga wika programming. 1374 01:08:55,350 --> 01:08:59,790 >> Kaya ayon sa Kareem intuwisyon, naka-imbak sa ito variable na tinatawag na halaga, 1375 01:08:59,790 --> 01:09:03,649 ay kung magkano ang red ko gusto sa xy lokasyon. 1376 01:09:03,649 --> 01:09:11,500 Paano, ngayon, ginagawa ko na Pixel ay may numerong iyon? 1377 01:09:11,500 --> 01:09:12,859 Kayo ay nakagawa tapos na ito bago. 1378 01:09:12,859 --> 01:09:17,666 Itakda mo ang berde at ang asul sa walang halaga, sa zero. 1379 01:09:17,666 --> 01:09:18,540 Madla: [hindi marinig] 1380 01:09:18,540 --> 01:09:20,040 David MALAN: Oo, well hindi mo nais na ito sa 10. 1381 01:09:20,040 --> 01:09:21,460 Mayroon ka nang ginawa ng math dito. 1382 01:09:21,460 --> 01:09:24,779 Kaya kami ay pagkuha ng halaga ng pula, na kung saan ay isang mababang bilang, siguro. 1383 01:09:24,779 --> 01:09:26,180 Kami ay pag-multiply sa pamamagitan ng 10. 1384 01:09:26,180 --> 01:09:29,139 Ano ang gusto mong gawin sa ang mga variable na halaga ngayon? 1385 01:09:29,139 --> 01:09:30,130 >> Madla: [hindi marinig] 1386 01:09:30,130 --> 01:09:30,880 >> David MALAN: Nice. 1387 01:09:30,880 --> 01:09:34,616 Kaya im.set-- ano? 1388 01:09:34,616 --> 01:09:35,640 >> Madla: setRed. 1389 01:09:35,640 --> 01:09:39,760 >> David MALAN: setRed, sa xy lokasyon. 1390 01:09:39,760 --> 01:09:40,260 Yeah. 1391 01:09:40,260 --> 01:09:41,200 At lamang na halaga. 1392 01:09:41,200 --> 01:09:44,257 Sa ibang salita, ang isang variable ay isang pansamantalang placeholder 1393 01:09:44,257 --> 01:09:45,840 na maaari mong ilagay ang anumang nais mo in. 1394 01:09:45,840 --> 01:09:48,680 mangyari namin upang ma-paglalagay ng number sa loob nito, sa sandaling ito. 1395 01:09:48,680 --> 01:09:51,569 dumami na namin ito sa pamamagitan ng 10 upang gawin itong mas malaki. 1396 01:09:51,569 --> 01:09:56,480 At ngayon ako substituting na variable bilang na ang mga third argument, o input 1397 01:09:56,480 --> 01:09:57,810 upang i-set red. 1398 01:09:57,810 --> 01:10:00,440 At kaya na sa sandaling ikaw matapos iyon, at itala 1399 01:10:00,440 --> 01:10:02,330 ng semi-colons at ang panaklong. 1400 01:10:02,330 --> 01:10:06,290 >> Sige at i-click ang tumakbo / i-save muli, at ikaw 1401 01:10:06,290 --> 01:10:10,690 dapat makita, magically, kung ano ay talagang doon. [? Arwa,?] Kung ano ang doon? 1402 01:10:10,690 --> 01:10:16,412 Ang Eiffel Tower sa full-fledged pula, hindi masyadong madilim. 1403 01:10:16,412 --> 01:10:17,870 ito ay dapat na mas kitang-kita ngayon, yes? 1404 01:10:17,870 --> 01:10:18,840 OK. 1405 01:10:18,840 --> 01:10:20,215 At Andrew, wala nang black box? 1406 01:10:20,215 --> 01:10:21,090 Madla: [hindi marinig] 1407 01:10:21,090 --> 01:10:22,180 David MALAN: Lahat ng karapatan. 1408 01:10:22,180 --> 01:10:23,610 Kaya kukunin ko na panatilihin ito sa screen. 1409 01:10:23,610 --> 01:10:27,010 Kung nais mong i-play na may ito mamaya, kukunin ko na muling likhain ito para sa iyo. 1410 01:10:27,010 --> 01:10:29,140 Ngunit ang code na ito dito ay eksakto na. 1411 01:10:29,140 --> 01:10:31,460 Bakit hindi gawin namin ang isa isa. 1412 01:10:31,460 --> 01:10:33,880 Hayaan akong mag-scroll pababa bahagyang. 1413 01:10:33,880 --> 01:10:36,760 >> Kaya sa kasong ito, ang projector ay hindi talagang gawin ito hustisya. 1414 01:10:36,760 --> 01:10:40,486 Ngunit sa iyong screen, ikaw ay malamang na magkaroon ng isang napaka pula at napaka itim na kahon. 1415 01:10:40,486 --> 01:10:42,610 Ito, masyadong, ay isang palaisipan na nagpapakita ng isang bagay sikat. 1416 01:10:42,610 --> 01:10:44,193 Gayunman, ang mga imahe ay pangit. 1417 01:10:44,193 --> 01:10:47,740 Ang tunay na larawan, oras na ito, ay sa bughaw at luntiang mga halaga. 1418 01:10:47,740 --> 01:10:51,820 Gayunman, sila na ang lahat ay nahahati sa pamamagitan ng 20 kaya ang halaga ay masyadong maliit. 1419 01:10:51,820 --> 01:10:54,660 Ang mga pulang mga halaga ay lamang random na numero, ingay. 1420 01:10:54,660 --> 01:10:57,190 I-undo ang mga distortions upang ipakita ang tunay na larawan. 1421 01:10:57,190 --> 01:10:59,200 >> Kaya Nick pagkatapos ay nagsasabi sa iyo kung ano ang gagawin. 1422 01:10:59,200 --> 01:11:04,290 Itakda ang red halaga sa zero, at at pagkatapos ay hindi palayawin kung ano ito. 1423 01:11:04,290 --> 01:11:07,110 Pagkatapos i-multiply ang mga asul na at luntiang mga halaga sa pamamagitan ng 20. 1424 01:11:07,110 --> 01:11:09,820 Kaya ito ay halos ang parehong programa tulad ng dati, 1425 01:11:09,820 --> 01:11:11,380 ngunit ikaw ay pagtaliwas ang proseso. 1426 01:11:11,380 --> 01:11:13,780 At aking ilalagay ang aking code mula sa bago sa screen kung sakaling 1427 01:11:13,780 --> 01:11:16,650 gusto mong sumangguni bumalik sa mga ito o i-play pa sa na ang isa. 1428 01:11:16,650 --> 01:11:18,100 Hayaan akong mag-zoom in sa mga iyon. 1429 01:11:18,100 --> 01:11:21,450 Ngunit malutas tanso image puzzle, bilang dalawang. 1430 01:11:21,450 --> 01:11:37,623 1431 01:11:37,623 --> 01:11:40,580 >> Madla: [hindi marinig] 1432 01:11:40,580 --> 01:11:44,010 >> David MALAN: OK, kaya ang isang ito ako hindi pagpunta sa bigyan ng maraming mga pahiwatig. 1433 01:11:44,010 --> 01:11:47,220 Kaya ko would-- oh, sabihin makita, kang magkaroon ng isang typo dito. 1434 01:11:47,220 --> 01:11:49,621 Kaya tandaan, na ito dito aktwal na mga pangangailangan upang pumunta doon. 1435 01:11:49,621 --> 01:11:52,870 Kaya kung ano ang Gusto ko imungkahi, kung nais mong focus sa isang ito, may mga sagot. 1436 01:11:52,870 --> 01:11:57,060 Kung nais mong isalin sa ibang papel na yaon, na dapat tumanggap ng unang isa pagtatrabaho. 1437 01:11:57,060 --> 01:11:59,910 At pagkatapos ay maaari mong gamitin na bilang inspirasyon para sa ikalawang isa. 1438 01:11:59,910 --> 01:12:02,230 Nice. 1439 01:12:02,230 --> 01:12:02,730 Good. 1440 01:12:02,730 --> 01:12:05,430 1441 01:12:05,430 --> 01:12:08,180 >> At para sa mga curious, ito ay isang simpleng halimbawa 1442 01:12:08,180 --> 01:12:11,080 ng isang agham o isang sining tinatawag steganography, 1443 01:12:11,080 --> 01:12:14,100 ang sining ng pagtatago ng impormasyon sa mga imahe. 1444 01:12:14,100 --> 01:12:16,890 Karaniwan, mga imahe ay maaaring maging watermarked very blatantly 1445 01:12:16,890 --> 01:12:19,500 na may isang logo sa ibaba sulok, ngunit malinaw, ikaw 1446 01:12:19,500 --> 01:12:22,070 ay maaaring maging mas sopistikadong tungkol dito at talagang 1447 01:12:22,070 --> 01:12:25,050 itago ang iba pang mga imahe sa Images kahit papaano sa diskarteng ito. 1448 01:12:25,050 --> 01:12:59,890 1449 01:12:59,890 --> 01:13:05,770 >> Kumuha ng isa pang 30 segundo, at pagkatapos ay kami ay hindi bababa sa ipahayag kung ano ang dapat mong makita. 1450 01:13:05,770 --> 01:13:08,330 At kukunin ko na mag-iwan ang ikatlong isa bilang isang sa-bahay ehersisyo, 1451 01:13:08,330 --> 01:13:11,353 kung gusto mong higit pa sa isang hamunin ito weekend. 1452 01:13:11,353 --> 01:13:18,240 1453 01:13:18,240 --> 01:13:20,390 At sa tingin ko Andrew baka nakuha muna ito. 1454 01:13:20,390 --> 01:13:22,645 Ano ang pangalawang imahe, Andrew? 1455 01:13:22,645 --> 01:13:23,920 >> Madla: Statue of Liberty. 1456 01:13:23,920 --> 01:13:28,500 >> David MALAN: Statue of Liberty ay maaaring ang sagot ngayon. 1457 01:13:28,500 --> 01:13:31,140 Kaya muli, lamang ng ilang simpleng halimbawa, ang layunin ng kung saan 1458 01:13:31,140 --> 01:13:35,040 ay upang bigyan ka ng isang pakiramdam ng kung paano isinalin namin ang pictorial Scratch 1459 01:13:35,040 --> 01:13:40,410 bloke upang mas nakakainis at higit pa asawa code, ngunit ang lahat ng mga ideya 1460 01:13:40,410 --> 01:13:42,980 ay pa rin eksakto ang parehong, kahit na may sa pagpapakilala 1461 01:13:42,980 --> 01:13:48,380 mo nga sa mga kuru-kuro ng isang variable, pagiging makakapag-imbak ng isang bagay pansamantalang. 1462 01:13:48,380 --> 01:13:51,750 >> Natin gawin isa pang hands-on Hayaan, lamang sa ngayon ikonekta ang mga tuldok 1463 01:13:51,750 --> 01:13:53,880 sa isang bagay ng kaunti pa sa totoong buhay. 1464 01:13:53,880 --> 01:13:56,610 Kapag handa ka na, kung maaari mong pumunta sa URL na ito sa screen. 1465 01:13:56,610 --> 01:14:00,610 Iyon ang dahilan din sa iyong kopya ng slide, developers.google.com/maps~~V. 1466 01:14:00,610 --> 01:14:03,660 Natin ang aktwal na gawin ang isang bagay real, kaya na magsalita, sa web 1467 01:14:03,660 --> 01:14:07,600 gamit ang Google Maps API, o application programming interface, 1468 01:14:07,600 --> 01:14:08,940 sa mga sumusunod na paraan. 1469 01:14:08,940 --> 01:14:12,341 >> Google, tulad ng maraming mga kumpanya, ay nagbibigay ng isang pulutong ng mga libreng pag-andar 1470 01:14:12,341 --> 01:14:14,840 na maaari mong gamitin upang bumuo ng iyong sariling mga kagiliw-giliw na mga aplikasyon. 1471 01:14:14,840 --> 01:14:18,890 Sa katunayan, kung ikaw ay kailanman ginamit Uber upang makakuha ng isang taksi o isang kotse, 1472 01:14:18,890 --> 01:14:21,640 ikaw ay malamang na malaman na ang Uber ay isang mapa at ito ay nagpapakita ng mga kotse dito. 1473 01:14:21,640 --> 01:14:24,870 Iyon ay, bilang pinakamahusay na hangga't maaari ko sabihin, ang Google Maps API. 1474 01:14:24,870 --> 01:14:28,884 aktwal na sila ay gumagamit ng mga mapa ng Google, ngunit Uber ay hindi isang kumpanya mapping, 1475 01:14:28,884 --> 01:14:31,050 o nais na maging isang lalo na kawili-wiling problema 1476 01:14:31,050 --> 01:14:33,510 upang malutas sa tuktok ng kanilang kotse serbisyo problema. 1477 01:14:33,510 --> 01:14:35,510 At kaya sila ay nakatayo, muli, sa mga balikat 1478 01:14:35,510 --> 01:14:37,520 ng iba, Google sa kasong ito. 1479 01:14:37,520 --> 01:14:42,850 Kaya ginagamit nila mga mapa ng Google ay ang kanilang sariling mga serbisyo ng kotse at iba pang mga tulad na mga tampok. 1480 01:14:42,850 --> 01:14:47,770 >> Kaya kami ay pagpunta upang samantalahin ng mga ito upang gawin ang mga sumusunod. 1481 01:14:47,770 --> 01:14:50,230 At kung ako na wala na masyadong mabilis, tumawag lamang sa akin sa paglipas sa isang sandali. 1482 01:14:50,230 --> 01:14:53,500 Happy sa pagbabalik-tanaw ang ilan sa mga bagay-bagay na imahe. 1483 01:14:53,500 --> 01:14:56,290 Dapat mong makita ang iyong sarili sa isang pahina tulad nito. 1484 01:14:56,290 --> 01:14:58,230 Kaya ng Google nice, at ang mga ito ay kabilang sa mga pinakamahusay 1485 01:14:58,230 --> 01:15:01,364 ng pagbibigay ng hindi lamang APIs, ngunit libre APIs na kayo 1486 01:15:01,364 --> 01:15:02,780 maaaring i-play nang mayroon o pangkomersyal na gamitin. 1487 01:15:02,780 --> 01:15:06,450 sila magsisimulang maningil sa iyo kung ang iyong paggamit ay mataas, ngunit ako nagpunta maaga nang maaga 1488 01:15:06,450 --> 01:15:10,490 at nag-sign up sa amin para sa isang libreng account na, sana, 10 mga computer 1489 01:15:10,490 --> 01:15:12,480 Hindi maa-alisan ng karapatan sa amin para sa bigla. 1490 01:15:12,480 --> 01:15:14,320 Kaya sana ito demonstration gagana. 1491 01:15:14,320 --> 01:15:18,840 >> At mapansin na sila ay may mga API para sa Android, iOS, mga serbisyo sa web, at web, 1492 01:15:18,840 --> 01:15:19,620 anumang na. 1493 01:15:19,620 --> 01:15:20,700 ni-focus sa web Hayaan. 1494 01:15:20,700 --> 01:15:26,560 Kaya mag-click ang mga kulay rosas na kahon, web, at na ay hahantong sa iyo, sana, sa isang pahina 1495 01:15:26,560 --> 01:15:27,630 dito. 1496 01:15:27,630 --> 01:15:29,335 At sila na nakuha ng isang buong grupo ng mga API. 1497 01:15:29,335 --> 01:15:31,210 At ito ay maaaring maging isang maliit na napakalaki sa una, 1498 01:15:31,210 --> 01:15:33,000 ngunit Kukunin ko patnubapan sa amin pamamagitan ng kung ano ang gusto namin. 1499 01:15:33,000 --> 01:15:38,500 >> Sa tuktok kaliwa ay ang Google Maps JavaScript API, ang JavaScript API. 1500 01:15:38,500 --> 01:15:40,380 Kaya't sige at i-click ang isa. 1501 01:15:40,380 --> 01:15:49,360 At na ay magdadala sa iyo ngayon sa sumusunod na pahina, mga demo at sample code. 1502 01:15:49,360 --> 01:15:51,190 Hayaan akong mag-zoom out dito. 1503 01:15:51,190 --> 01:15:56,300 At hayaan mo akong makakuha ng sa amin to-- mag-scroll pababa upang kung saan sinasabi nito mabilis na pagsisimula hakbang. 1504 01:15:56,300 --> 01:15:57,970 dapat magmukhang ang iyong screen tulad ng minahan. 1505 01:15:57,970 --> 01:16:01,130 >> At mayroong dalawang hakbang, kumuha isang susi at simulan ang pagbuo. 1506 01:16:01,130 --> 01:16:04,190 Mayroon na ginawa unang hakbang para sa sa amin, sa pagkuha ng isang tinatawag na key. 1507 01:16:04,190 --> 01:16:05,320 At ito ay isang pangkaraniwang ideya. 1508 01:16:05,320 --> 01:16:09,210 Isang API key ay karaniwang lamang isang malaking random na numero o string 1509 01:16:09,210 --> 01:16:11,130 na ikaw ay dapat i-paste sa iyong code, 1510 01:16:11,130 --> 01:16:15,280 kaya na alam ng Google kung sino ka kapag gumagamit ka ng kanilang mga serbisyo, ang kanilang mga API. 1511 01:16:15,280 --> 01:16:17,370 Ay hindi nangangahulugan kami sinisingil ng kahit ano. 1512 01:16:17,370 --> 01:16:21,030 At ngayon, i-click, sa halip na isa, i-click ang simulan ang pagbuo. 1513 01:16:21,030 --> 01:16:25,990 Kung maaari mo lamang iwagayway sa akin higit sa kung hindi sigurado kung saan kami. 1514 01:16:25,990 --> 01:16:28,040 >> Kaya kami na lang scratch ang ibabaw, dito ngunit kung ano 1515 01:16:28,040 --> 01:16:31,000 Akala ko ay magiging nakakahimok ay ang aktwal na magkaroon ng lahat ng sa amin, 1516 01:16:31,000 --> 01:16:34,240 gamit Cloud9 sa isang window at ang tutorial na ito sa ibang window, 1517 01:16:34,240 --> 01:16:37,120 hinahayaan talagang makakuha ng aming sariling application up at tumatakbo 1518 01:16:37,120 --> 01:16:40,920 na embeds ng isang pasadyang Google map sa aming sariling webpage, 1519 01:16:40,920 --> 01:16:43,010 at pagkatapos ay nagdadagdag ng isa o dalawang mga tampok. 1520 01:16:43,010 --> 01:16:45,520 Ngunit kami ay lamang makalmot ang ibabaw ng kung ano ang maaari naming gawin. 1521 01:16:45,520 --> 01:16:47,020 >> Kaya lamang ng isang mabilis katinuan check. 1522 01:16:47,020 --> 01:16:49,740 Ay lahat ng tao sa pahinang ito, Google Maps JavaScript API? 1523 01:16:49,740 --> 01:16:50,872 Dapat sabihin sa pagsisimula. 1524 01:16:50,872 --> 01:16:53,330 Hindi namin ay pagpunta sa pumunta sa pamamagitan ng ang buong bagay sa pamamagitan ng anumang mga pamamaraan. 1525 01:16:53,330 --> 01:16:58,090 OK, sa ibang tab, kung hindi mo gusto ito bukas, huwag pumunta sa Cloud9 1526 01:16:58,090 --> 01:17:03,500 at makakuha ng iyong sarili sa makatarungan isang bagong tab, sa huli. 1527 01:17:03,500 --> 01:17:11,070 Kaya muli, c9.io mula sa kahapon, c9.io, at lamang lumikha ng isang bagong file. 1528 01:17:11,070 --> 01:17:13,500 At sige at call ito kahit anong gusto mo. 1529 01:17:13,500 --> 01:17:16,495 Tumawag ako mine map.html. 1530 01:17:16,495 --> 01:17:17,870 Tumawag ito ng anumang bagay na nagtatapos sa .html. 1531 01:17:17,870 --> 01:17:23,930 1532 01:17:23,930 --> 01:17:26,580 At dapat ay humigit-kumulang kung nasaan ako sa prosesong ito 1533 01:17:26,580 --> 01:17:31,470 sa pamamagitan lamang ng isang nagbi-blink prompt sa isang walang laman tab na tinatawag na isang bagay tulad ng map.html. 1534 01:17:31,470 --> 01:17:35,808 1535 01:17:35,808 --> 01:17:38,148 O file, ang mga bagong file ngayon. 1536 01:17:38,148 --> 01:17:41,960 1537 01:17:41,960 --> 01:17:48,000 >> At ngayon, sa ibabaw sa Google Maps JavaScript API, 1538 01:17:48,000 --> 01:17:50,010 kami laktawan pagbabasa sa pamamagitan ng lahat ng mga tekstong ito. 1539 01:17:50,010 --> 01:17:53,760 Ngunit mapansin na hello world ay sa katunayan sa lahat ng dako, maaari mo makita ito ngayon. 1540 01:17:53,760 --> 01:17:58,020 Hello world ay ito malaki makulay halimbawa ng isang buong grupo ng mga HTML. 1541 01:17:58,020 --> 01:18:03,590 Sige at i-copy at i-paste lamang na HTML, kaya mula sa type doc sa tuktok 1542 01:18:03,590 --> 01:18:08,810 ang lahat ng mga paraan upang ang mga malapit HTML tag, pumunta magpatuloy at kopyahin ang lahat ng na- muli, 1543 01:18:08,810 --> 01:18:14,430 na sa ilalim ng hello world example-- at i-paste na sa iyong Cloud9 tab, 1544 01:18:14,430 --> 01:18:17,996 kaya na ngayon ang iyong screen dapat magmukhang halos tulad ng minahan. 1545 01:18:17,996 --> 01:18:22,280 1546 01:18:22,280 --> 01:18:24,520 >> At maaari mong i-save ito, ngunit huwag i-load ito lamang pa. 1547 01:18:24,520 --> 01:18:26,290 Sabihin unang pagtingin sa ang code at makita kung kami 1548 01:18:26,290 --> 01:18:29,110 hindi maaaring magpakilala o matutunan mula sa kung ano ito ay Google 1549 01:18:29,110 --> 01:18:30,860 ay nagkaroon sa amin nang walang taros kopyahin at i-paste. 1550 01:18:30,860 --> 01:18:33,334 Sila lamang ang nais upang matulungan, literal, kumuha sa amin na nagsimula, 1551 01:18:33,334 --> 01:18:35,500 ngunit mayroong hindi na magkano kumplikado talagang doon. 1552 01:18:35,500 --> 01:18:40,100 1553 01:18:40,100 --> 01:18:42,210 Ang anumang mga katanungan lamang pa? 1554 01:18:42,210 --> 01:18:43,790 kami ay ligtas upang sumulong? 1555 01:18:43,790 --> 01:18:44,330 OK. 1556 01:18:44,330 --> 01:18:46,800 >> Kaya mabilis, sabihin lamang gawin ilang mabilis katinuan tseke. 1557 01:18:46,800 --> 01:18:48,800 Line isa sa kung ano ang aking makita, at sana, ikaw 1558 01:18:48,800 --> 01:18:51,710 makita, ano ang ibig sabihin nito, doctype HTML? 1559 01:18:51,710 --> 01:18:52,385 Kareem, isipin? 1560 01:18:52,385 --> 01:18:53,260 Madla: [hindi marinig] 1561 01:18:53,260 --> 01:18:53,968 David MALAN: Oo. 1562 01:18:53,968 --> 01:18:54,870 Heto na HTML 5. 1563 01:18:54,870 --> 01:18:57,950 Samantala, line dalawang sa screen dito ay nangangahulugan hey browser, 1564 01:18:57,950 --> 01:18:59,482 dito ay ang aktwal na HTML. 1565 01:18:59,482 --> 01:19:01,440 Line tatlong ay hey browser, heto na ang ulo. 1566 01:19:01,440 --> 01:19:04,260 Line apat ay, siyempre, hey browser, dito ay ang pamagat. 1567 01:19:04,260 --> 01:19:07,780 Ano ang ibig limang linya gawin? 1568 01:19:07,780 --> 01:19:09,930 Sa totoo lang, ito ay hindi talagang gumawa ng anumang bagay para sa amin. 1569 01:19:09,930 --> 01:19:13,340 Sa kasong ito, ito lamang resizes ang pahina sa isang default. Line anim, 1570 01:19:13,340 --> 01:19:16,140 hindi pa namin talked tungkol sa, ngunit ito Tinutukoy ang character encoding. 1571 01:19:16,140 --> 01:19:19,181 Mayroong iba't ibang mga paraan upang i-encode ang mga file, lalo na para sa mga banyagang wika. 1572 01:19:19,181 --> 01:19:21,100 UTF-8 lang may kaugaliang ay ang default. 1573 01:19:21,100 --> 01:19:26,580 >> Kaya ngayon kami ay makita sa linya pitong sa pamamagitan ng 16, ang ilang mga CSS. 1574 01:19:26,580 --> 01:19:29,260 At kahit na hindi namin nakita ang lahat ng mga bagay na ito bago, 1575 01:19:29,260 --> 01:19:30,810 maaari naming uri ng magpakilala. 1576 01:19:30,810 --> 01:19:37,075 Kaya line walong paraan, hey browser, mag-apply lahat ng mga sumusunod na kung saan ang dalawang mga tag, 1577 01:19:37,075 --> 01:19:37,575 tila? 1578 01:19:37,575 --> 01:19:40,650 1579 01:19:40,650 --> 01:19:41,701 Ang HTML at teksto ng katawan. 1580 01:19:41,701 --> 01:19:43,200 Kaya ang comma ay ang bagong bagay doon. 1581 01:19:43,200 --> 01:19:46,140 At ito lamang isang paraan ng pagtukoy ng maramihang mga tag sa iisang pagkakataon. 1582 01:19:46,140 --> 01:19:47,640 >> Pagkatapos namin nakuha ang kulot tirante. 1583 01:19:47,640 --> 01:19:51,170 Kaya tila, ito ay nagsasabi sa browser, gawin ang mga kataasan ng mga pahina 100%. 1584 01:19:51,170 --> 01:19:54,170 Kaya kahit na may masyadong maliit na nilalaman, gawin ang buong pahina, 1585 01:19:54,170 --> 01:19:55,530 gawin ang mga bagay na punan ang mga pahina. 1586 01:19:55,530 --> 01:19:57,524 Gawin ang mapa huli punan ang pahina. 1587 01:19:57,524 --> 01:19:58,690 Margin, ano ang ibig sabihin nito? 1588 01:19:58,690 --> 01:20:01,559 Iyan ay karaniwang tulad ng arbitrary white space sa paligid ng mga gilid 1589 01:20:01,559 --> 01:20:04,350 na ang ilang mga designer browser lang nagpasya dapat doon, dahil ito 1590 01:20:04,350 --> 01:20:05,540 uri ng gumagawa ng mga bagay hitsura cleaner. 1591 01:20:05,540 --> 01:20:06,498 Ngunit hindi namin nais na. 1592 01:20:06,498 --> 01:20:08,710 Gusto naming ang mapa pagpunta lahat ng paraan upang ang mga dulo. 1593 01:20:08,710 --> 01:20:10,930 Padding, katulad sa espiritu sa mga margin. 1594 01:20:10,930 --> 01:20:14,980 Mga margin ibig sabihin sa labas, padding paraan sa loob, ngunit ito ay ang parehong uri ng deal. 1595 01:20:14,980 --> 01:20:17,520 Ito ay isang maliit na bit ng isang buffer sa pagitan mo at ang mga dulo. 1596 01:20:17,520 --> 01:20:21,170 >> At pagkatapos line 13 ay isang magandang pagkakataon para sa isang mabilis na pagsusuri. 1597 01:20:21,170 --> 01:20:26,440 Ano ang matalim sign mapa ibig sabihin, o ibig sabihin hashtag mapa? 1598 01:20:26,440 --> 01:20:29,650 Ano ang ginagawa na mag-refer sa, sa prinsipyo? 1599 01:20:29,650 --> 01:20:31,485 >> Madla: [hindi marinig] 1600 01:20:31,485 --> 01:20:32,360 David MALAN: Mismong. 1601 01:20:32,360 --> 01:20:36,900 Ito ari-arian, ito CSS ari-arian nalalapat sa makatarungan isang bagay, ang HTML tag 1602 01:20:36,900 --> 01:20:41,180 na may isang ID ng quote, magpanipi "mapa". 1603 01:20:41,180 --> 01:20:44,460 At ngayon sabihin fast forward, mag-scroll pababa sa ilalim ng file, na kung saan 1604 01:20:44,460 --> 01:20:49,860 ay hindi masyadong malayo, at notice on line 19, kung i-paste mo ito nang eksakto tulad ng ginawa ko, 1605 01:20:49,860 --> 01:20:53,405 line 19 ay may lamang ng isang div, na isang division ng pahina, na kung saan kahapon ko 1606 01:20:53,405 --> 01:20:54,820 tinatawag na isang hugis-parihaba rehiyon. 1607 01:20:54,820 --> 01:20:55,820 Ito ay nakuha wala sa loob nito. 1608 01:20:55,820 --> 01:20:57,550 Ito ay isang bukas na tag, malapit tag. 1609 01:20:57,550 --> 01:20:59,490 Ngunit ito ay magkaroon ng isang natatanging ID. 1610 01:20:59,490 --> 01:21:02,090 >> Kaya kung ano ang tila na maging nangyayari dito ay Google 1611 01:21:02,090 --> 01:21:05,880 ay readying ang aming web page sa magkaroon ng isang kumpletong 100% taas, 1612 01:21:05,880 --> 01:21:09,680 at walang padding, walang margin, dahil kung ano kami ay pagpunta sa ilagay sa loob 1613 01:21:09,680 --> 01:21:13,647 ng div, na ang natatanging ID ay mapa, ay isang aktwal na naka-embed na mapa. 1614 01:21:13,647 --> 01:21:15,480 At gusto naming ito upang punan pahina at hindi lamang 1615 01:21:15,480 --> 01:21:17,560 ang ilang mga maliit na parihaba sa gitna. 1616 01:21:17,560 --> 01:21:24,220 Kaya line 14 parehas emphasizes, ang map mismo ay dapat magkaroon ng isang taas ng 100%. 1617 01:21:24,220 --> 01:21:29,220 >> Kaya ngayon mapansin pagitan ng mga linya 20 at 28, ito ay JavaScript code. 1618 01:21:29,220 --> 01:21:33,020 At ito ay, kahit na ito ay syntactically isang maliit na kakaiba, 1619 01:21:33,020 --> 01:21:34,730 mayroong hindi lahat na magkano ang pagpunta sa dito. 1620 01:21:34,730 --> 01:21:39,310 Sa linya 21, ito ay deklarasyon isang bagay na tinatawag na isang variable. 1621 01:21:39,310 --> 01:21:42,030 Sa halip na tumawag ito halaga, tulad ng ginawa namin bago, 1622 01:21:42,030 --> 01:21:44,500 kami ay mas tiyak na sinasabi var, na kung saan ay nangangahulugan lamang variable. 1623 01:21:44,500 --> 01:21:46,520 Maaari naming ay may ginagamit na sa ni Nick code, ngunit siya ay hindi, kaya ko 1624 01:21:46,520 --> 01:21:48,190 ay hindi abala sa paggawa ng ito alinman. 1625 01:21:48,190 --> 01:21:50,240 Ito ay isang variable na tinatawag na map, at pagkatapos ay mayroong 1626 01:21:50,240 --> 01:21:53,360 isang function na tila tinatawag initMap. 1627 01:21:53,360 --> 01:21:55,780 >> Kaya ito ay tulad ng ating sariling pasadyang puzzle piraso sa scratch. 1628 01:21:55,780 --> 01:21:58,830 Lumikha kami ng isang piraso ng functionality tinatawag initMap, 1629 01:21:58,830 --> 01:22:00,980 at maaari mong uri ng magpakilala anong nangyayari dito. 1630 01:22:00,980 --> 01:22:02,930 Sa kaliwang bahagi, Mayroon namin ang isang variable, 1631 01:22:02,930 --> 01:22:06,000 kaya kami ay pagpunta sa ilagay ang mga sumusunod na bagay sa loob variable na, 1632 01:22:06,000 --> 01:22:07,362 mula sa kanan papuntang kaliwa. 1633 01:22:07,362 --> 01:22:11,940 Ang kanang bahagi kamay nagsasabing, hey browser, bigyan ako ng isang bagong mapa ng Google. 1634 01:22:11,940 --> 01:22:16,490 At google.maps.map ay lamang ng isang funky paraan ng pagtukoy na pag-andar na ito 1635 01:22:16,490 --> 01:22:19,790 ay kabilang sa Google Maps. 1636 01:22:19,790 --> 01:22:23,010 >> Pagkatapos ng panaklong, nasaksihan namin ito bago, hey browser, kumuha 1637 01:22:23,010 --> 01:22:29,210 sa akin ang mga elemento sa pahina, ang tag sa pahina na kung saan ang natatanging ID is-- 1638 01:22:29,210 --> 01:22:30,710 >> Madla: [hindi marinig] 1639 01:22:30,710 --> 01:22:31,790 >> David MALAN: --map. 1640 01:22:31,790 --> 01:22:35,770 At kung ano ang nangyayari, well, ang linyang ito nang sama-sama, linya 23, 1641 01:22:35,770 --> 01:22:38,630 ay mahalagang na nagsasabi, hey browser, pumunta makakuha ng sa akin 1642 01:22:38,630 --> 01:22:42,800 na walang laman div sa pahina na ang natatanging ID ay mapa, 1643 01:22:42,800 --> 01:22:45,600 dahil gusto kong ipasok sa it-- iniksyon sa ito, 1644 01:22:45,600 --> 01:22:49,520 kung ikaw will-- ang maramihang mga nilalaman na ang mangyayari sa darating mula sa web, 1645 01:22:49,520 --> 01:22:50,427 sa dakong huli. 1646 01:22:50,427 --> 01:22:52,010 At Google paggawa ng lahat ng na para sa amin. 1647 01:22:52,010 --> 01:22:55,350 >> Kaya muli, sa pinakadulo ng araw, taglay namin ang halimbawa ng abstraction. 1648 01:22:55,350 --> 01:22:58,610 Wala akong ideya kung ano ang isang mapa ay o kung paano upang ipatupad ang isang mapa API. 1649 01:22:58,610 --> 01:22:59,460 Hindi namin kailangan sa. 1650 01:22:59,460 --> 01:23:02,740 Kailangan lang namin upang sabihin ang mapa kung saan upang ilagay ang sarili nito, at mag-iwan 1651 01:23:02,740 --> 01:23:04,880 mga batayan pagpapatupad mga detalye sa Google. 1652 01:23:04,880 --> 01:23:08,190 Ngayon ay mayroong ay tila dalawang piraso ng data 1653 01:23:08,190 --> 01:23:11,940 na halimbawa na ito ay pagbibigay sa Google API. 1654 01:23:11,940 --> 01:23:16,450 Tila ang gitna ng mapa, at ang antas ng zoom, kaya na magsalita. 1655 01:23:16,450 --> 01:23:21,390 >> At ang sinuman makilala ang mga coordinate, latitude at longitude? 1656 01:23:21,390 --> 01:23:24,364 Marahil hindi, ngunit maaari naming bumalik sa tutorial, literal makita. 1657 01:23:24,364 --> 01:23:25,780 Ngunit kami ay makita ito sa loob lamang ng ilang sandali. 1658 01:23:25,780 --> 01:23:29,880 Mag-zoom antas ay isang halaga sa pagitan, hindi ako alam, isa sa 13 o isang bagay tulad na. 1659 01:23:29,880 --> 01:23:32,880 Ito lamang ay may sa gawin sa kung gaano kalayo ikaw ay naka-zoom in o out, at na ito. 1660 01:23:32,880 --> 01:23:35,690 At ngayon sa pinakadulo dulo ng pahina, notice linya 29-- 1661 01:23:35,690 --> 01:23:39,960 ito ay isang maliit na pangit dahil ito wraps-- ito linya ng code 1662 01:23:39,960 --> 01:23:44,570 ay kung ano ang nagda-download sa browser aktwal API ng Google. 1663 01:23:44,570 --> 01:23:47,500 Ang lahat ng mga code na Google mga inhinyero ay may nakasulat na ipatupad 1664 01:23:47,500 --> 01:23:50,000 ito buong tampok ng embeddable mapa. 1665 01:23:50,000 --> 01:23:51,470 >> Ngayon sabihin hindi baguhin ang anumang. 1666 01:23:51,470 --> 01:23:54,761 Kung ikaw ay sumusunod na kasama, sige at i-save lamang ang file na iyon, kung ikaw sa katunayan ay may 1667 01:23:54,761 --> 01:23:55,760 mayroon ako. 1668 01:23:55,760 --> 01:23:57,370 Pumunta sa URL nito. 1669 01:23:57,370 --> 01:23:59,820 Maaari mong i-click ang pindutan ng Run up tuktok at na magsasabi 1670 01:23:59,820 --> 01:24:03,050 mo ang URL ng iyong web server muli. 1671 01:24:03,050 --> 01:24:06,010 At ito ay humantong sa iyo sa isang bagong tab. 1672 01:24:06,010 --> 01:24:11,910 Kung nag-click ang Buksan para sa map.html, at logro ay ikaw ay 1673 01:24:11,910 --> 01:24:15,520 pagpunta upang makakuha ng isang alerto, isang error na mensahe, yes? 1674 01:24:15,520 --> 01:24:18,570 Error mensahe, mensahe ng error? 1675 01:24:18,570 --> 01:24:21,170 >> Kaya sa kasamaang-palad, ang mga error mensahe ay hindi na nakapapaliwanag 1676 01:24:21,170 --> 01:24:23,890 maliban kung ang iyong aktwal na buksan ang console, na ang espesyal na tab namin 1677 01:24:23,890 --> 01:24:27,110 iningatan pagbubukas kahapon at Medyo mas maaga sa araw. 1678 01:24:27,110 --> 01:24:29,445 Ngunit ako stumbled sa kabuuan ng ito nang mas maaga, kaya ko na 1679 01:24:29,445 --> 01:24:30,820 may korte out kung ano ang solusyon ay. 1680 01:24:30,820 --> 01:24:34,440 Sa slide ngayong araw, o sa halip, sa Cloud9, pansinin 1681 01:24:34,440 --> 01:24:36,430 na hindi namin ginawa isang bagay kusa. 1682 01:24:36,430 --> 01:24:40,690 Pansinin na ang script na ito na tag sa line 29, kung basahin mo sa pamamagitan nito, 1683 01:24:40,690 --> 01:24:44,440 ito ay tulad ng maps.googleapis.com/ isang bagay, isang bagay, isang bagay, 1684 01:24:44,440 --> 01:24:46,430 pagkatapos ay mapansin ang isang tao, isa sa mga developer, 1685 01:24:46,430 --> 01:24:50,040 wrote sa lahat ng mga malalaking titik, ang iyong API key. 1686 01:24:50,040 --> 01:24:51,700 >> Kailangan namin upang ilagay ang isang bagay sa doon. 1687 01:24:51,700 --> 01:24:53,450 At ito ay ang hakbang Ginawa ko para sa amin bago, 1688 01:24:53,450 --> 01:24:57,190 at muli upang kanilang blacklist sa amin kung bigla, 12 o higit pa sa amin 1689 01:24:57,190 --> 01:24:59,470 simulang gamitin ang parehong key, ngunit sabihin makita kung ano ang mangyayari. 1690 01:24:59,470 --> 01:25:03,030 Kaya kung pumunta ka sa araw na ito slide, isang slide sa ibang pagkakataon, mayroong 1691 01:25:03,030 --> 01:25:07,070 ito tunay funky-naghahanap string ng teksto. 1692 01:25:07,070 --> 01:25:12,230 Sige at kopyahin lamang iyon at i-paste ito kung saan sinasabi nito ang iyong API key. 1693 01:25:12,230 --> 01:25:15,120 Iyan ang isa ko nag-sign up para sa. 1694 01:25:15,120 --> 01:25:17,700 >> At tiyak hindi subukan pag-type ito out mano-mano, 1695 01:25:17,700 --> 01:25:21,210 dahil ito nararamdaman puno na may typos, potensyal. 1696 01:25:21,210 --> 01:25:23,260 Kaya kopyahin lamang at i-paste na. 1697 01:25:23,260 --> 01:25:26,090 At ito ay pagpunta sa gawin ang mga linya mas mahaba, ngunit ngayon, lamang na maging malinaw, 1698 01:25:26,090 --> 01:25:29,540 dapat itong tumingin ng kaunti pa tulad nito, kung saan key kapantay ng hindi 1699 01:25:29,540 --> 01:25:32,200 malaking titik yelling sa iyo. 1700 01:25:32,200 --> 01:25:34,810 I-save ang iyong pahina, bumalik sa kabilang tab, i-reload, 1701 01:25:34,810 --> 01:25:36,770 at pag-asa upang makita ang isang mapa ng kung saan? 1702 01:25:36,770 --> 01:25:37,790 >> Madla: Australia. 1703 01:25:37,790 --> 01:25:38,748 >> David MALAN: Australia. 1704 01:25:38,748 --> 01:25:41,200 Kaya tila ang mga ito ay ang GPS coordinates ng Australia. 1705 01:25:41,200 --> 01:25:44,491 At hayaan mo akong maglakad sa paligid para sa sandali lamang at makatulong sa sinuman kung sino ang hindi pa doon, 1706 01:25:44,491 --> 01:25:47,729 ngunit hayaan mo akong imungkahi, sa pamamagitan ng Google, hanapin ang GPS coordinates ng iyong sariling bayan 1707 01:25:47,729 --> 01:25:48,770 o ang iyong sariling sariling bansa. 1708 01:25:48,770 --> 01:25:51,436 At marahil ang Google ay maaaring isara ito up, o Wikipedia maaaring sabihin sa iyo. 1709 01:25:51,436 --> 01:25:54,410 Ngunit pumili ng dalawang iba't ibang mga halaga para sa latitude at longitude, 1710 01:25:54,410 --> 01:25:57,530 bumalik sa nakaraan at i-paste ang mga ito, at pagkatapos ay i-reload ang pahina pagkatapos ng pag-save 1711 01:25:57,530 --> 01:26:00,718 at tingnan kung maaari kang magkaroon ng isang map para sa iyong sariling bayan. 1712 01:26:00,718 --> 01:26:04,500 1713 01:26:04,500 --> 01:26:08,042 >> At kapag tapos ka na sa iyon, ang follow-up challenge-- 1714 01:26:08,042 --> 01:26:11,250 at kukunin ko na magbigay ng isang maliit na mas mababa direksyon, kusa, upang ikaw kusa 1715 01:26:11,250 --> 01:26:13,791 may sa pakikibaka para sa isang pares ilang minuto gamit ang mga babasahin, 1716 01:26:13,791 --> 01:26:18,740 baguhin ang mapa upang huwag ito cartoonish default, ngunit isang satellite mapa. 1717 01:26:18,740 --> 01:26:24,600 Kaya mo talaga makita satellite imagery sa halip na ang pretty kulay. 1718 01:26:24,600 --> 01:26:29,710 >> At ang hint Bibigyan kita ay baguhin ang uri ng mapa. 1719 01:26:29,710 --> 01:26:33,084 Bumalik sa na ang pagkuha nagsimula page para sa inspirasyon. 1720 01:26:33,084 --> 01:26:40,599 1721 01:26:40,599 --> 01:26:42,390 Tulad ng maaaring mo gleaned, kung ikaw ay naghahanap, 1722 01:26:42,390 --> 01:26:44,250 may mga kaya maraming iba pang mga mga bagay na maaari mong gawin. 1723 01:26:44,250 --> 01:26:46,380 Ang ilan sa iyo ay may na nagbago ang uri ng mapa. 1724 01:26:46,380 --> 01:26:49,890 Ngunit maaari mong do-- halimbawa, ipaalam sa akin pumunta sa isang bagay ginawa namin para sa kurso 1725 01:26:49,890 --> 01:26:52,050 I teach-- maps.cs50.net. 1726 01:26:52,050 --> 01:26:53,470 Ang isa sa aming undergrads nagsisigawa nito. 1727 01:26:53,470 --> 01:26:58,890 igitna namin ang aming mapa paglipas Harvard Yard at overlay ang lahat ng mga pangalan na ito gusali, 1728 01:26:58,890 --> 01:27:01,070 at kami ay nagkaroon sa kanya si ito. 1729 01:27:01,070 --> 01:27:04,270 Kaya kung nais ko upang maghanap para sa, halimbawa, Matthews Hall, 1730 01:27:04,270 --> 01:27:05,730 kami ay may isang maliit na drop-down menu. 1731 01:27:05,730 --> 01:27:09,080 At sa tingin ko siya gamit Bootstrap, ang library namin tinalakay nang mas maaga para sa. 1732 01:27:09,080 --> 01:27:12,190 At kung nag-click ka sa Matthews Hall, agad ito 1733 01:27:12,190 --> 01:27:14,790 jumps ang mapa sa isang tiyak na lokasyon, at ito palabas 1734 01:27:14,790 --> 01:27:16,440 iyo ng isang larawan sa mga ito maliit na pop-up. 1735 01:27:16,440 --> 01:27:18,670 >> Ngunit kahit na ito maliit na pop-up, hindi namin ginawa ipatupad. 1736 01:27:18,670 --> 01:27:27,521 Kung mag-scroll ko pababa sa aming pagkuha nagsimula page at hanapin para sa mga window ng impormasyon, 1737 01:27:27,521 --> 01:27:29,770 makikita mo na ang ilan sa mga functionality mo ang iyong sarili 1738 01:27:29,770 --> 01:27:31,561 ay maaaring magdagdag ng, kahit na may ng kaunti pang kumplikado, 1739 01:27:31,561 --> 01:27:33,970 ay isang bagay na tinatawag na isang window ng impormasyon. 1740 01:27:33,970 --> 01:27:37,190 At kung nag-click ko ang isang halimbawa dito, at ito ay kung ano ay masaya, 1741 01:27:37,190 --> 01:27:40,530 maaari mong gawin ang mga bagay na tulad nito, pag-click sa isang marker at pagkatapos ay voila, 1742 01:27:40,530 --> 01:27:42,400 impormasyon nagpa-pop up. 1743 01:27:42,400 --> 01:27:45,874 >> Kaya kami ay hindi masyadong ipinakilala sapat na mga tampok ng JavaScript 1744 01:27:45,874 --> 01:27:49,040 pintura ng isang larawan ng eksakto kung paano mo maaaring kawad ang lahat ng ito bagay-bagay na magkasama, 1745 01:27:49,040 --> 01:27:50,706 ngunit namin ang uri ng scratched ang ibabaw. 1746 01:27:50,706 --> 01:27:53,140 Sa katunayan, kung ano lang ang ginawa ko kapag Ako nag-click sa marker na iyon, 1747 01:27:53,140 --> 01:27:55,819 ay naghuhudyat ng isang kaganapan, ang isang tinatawag sa pag-click ng kaganapan. 1748 01:27:55,819 --> 01:27:57,610 At hindi na namin talagang nakita ko ang isang kaganapan mas maaga sa araw, 1749 01:27:57,610 --> 01:28:00,670 ang tinatawag na mag-sumite ng kaganapan, kapag kami ay pumipigil 1750 01:28:00,670 --> 01:28:02,490 ang user mula sa paghahanap para sa pusa. 1751 01:28:02,490 --> 01:28:06,560 Kaya namin ang uri ng kinuha at choosed mula sa lahat ng mga iba't-ibang mga tampok, 1752 01:28:06,560 --> 01:28:08,990 upang bigyan ka ng isang pakiramdam, sana, ng kung ano ang maaari mong talagang 1753 01:28:08,990 --> 01:28:11,000 gawin na may kaunti pang ginhawa sa programming, 1754 01:28:11,000 --> 01:28:12,587 at ganap na libreng mapagkukunan. 1755 01:28:12,587 --> 01:28:15,856 1756 01:28:15,856 --> 01:28:18,770 >> May tanong? 1757 01:28:18,770 --> 01:28:19,790 Hindi? 1758 01:28:19,790 --> 01:28:22,542 Ito ay ang iyong huling pagkakataon, hindi bababa sa araw na ito, sa araw ng Biyernes, 1759 01:28:22,542 --> 01:28:25,000 upang makakuha ng kahit ano mula sa iyong dibdib nang sa gayon ay ituturo sa iyo sa labas ng dito 1760 01:28:25,000 --> 01:28:27,067 pakiramdam tiwala at kumportable. 1761 01:28:27,067 --> 01:28:27,566 Oo. 1762 01:28:27,566 --> 01:28:29,740 >> Madla: Bakit hindi nagdagdag ka ng isa pang bagay? 1763 01:28:29,740 --> 01:28:32,720 >> David MALAN: Oh aking kabutihan. 1764 01:28:32,720 --> 01:28:35,260 Kailangan ko sa pamamahinga ito katapusan ng linggo, tingin ko. 1765 01:28:35,260 --> 01:28:36,180 Iba pang mga tanong? 1766 01:28:36,180 --> 01:28:37,055 >> Madla: [hindi marinig] 1767 01:28:37,055 --> 01:28:44,130 1768 01:28:44,130 --> 01:28:46,810 >> David MALAN: can-- You in Internet Explorer, pahinga sa kapayapaan, 1769 01:28:46,810 --> 01:28:49,310 na ginamit mo upang magagawang upang ilagay VB script, virtual basic script, 1770 01:28:49,310 --> 01:28:50,643 ngunit na talagang hindi kailanman nahuli sa. 1771 01:28:50,643 --> 01:28:52,490 Kaya ang maikling sagot ay lamang JavaScript. 1772 01:28:52,490 --> 01:28:55,144 1773 01:28:55,144 --> 01:28:55,810 Iba pang mga tanong? 1774 01:28:55,810 --> 01:28:58,427 1775 01:28:58,427 --> 01:28:59,760 O sige, well, hayaan mo akong gawin ito. 1776 01:28:59,760 --> 01:29:02,070 Hayaan akong sunggaban ang aming mga kasamahan sa labas. 1777 01:29:02,070 --> 01:29:04,500 Sila ay may ilang pagsusuri mga form na gusto nilang lahat 1778 01:29:04,500 --> 01:29:06,310 na gumastos ng ilang minuto pagpuno out. 1779 01:29:06,310 --> 01:29:08,775 Gusto nila upang kulektahin ang form at anumang waivers na maaaring mayroon ka sa labas. 1780 01:29:08,775 --> 01:29:10,240 Kailangan din nila magkaroon ng sertipiko. 1781 01:29:10,240 --> 01:29:12,380 Ako guessing mayroong pa rin ang ilang mga meryenda sa labas. 1782 01:29:12,380 --> 01:29:14,360 Paraanin mo ako ang mga out, at kung ikaw may anumang mga katanungan sa habang panahon, 1783 01:29:14,360 --> 01:29:17,120 makikita ba akong maglakad sa paligid ng higit nang paisa-isa at maaari naming makakuha ng iyong sinimulan. 1784 01:29:17,120 --> 01:29:17,879 Oo naman. 1785 01:29:17,879 --> 01:29:18,754 Madla: [hindi marinig] 1786 01:29:18,754 --> 01:29:26,737 1787 01:29:26,737 --> 01:29:28,570 David MALAN: Iyan ay karaniwang tunay na mga araw na ito. 1788 01:29:28,570 --> 01:29:30,730 Ay tiyak na may web software, ikaw ay nakahilig 1789 01:29:30,730 --> 01:29:32,901 sa iba ikaw ay alinman sa aesthetically paggamit ng mga bagay 1790 01:29:32,901 --> 01:29:35,400 tulad Bootstrap, kaya hindi mo kung ipatupad ang mababang antas 1791 01:29:35,400 --> 01:29:37,169 detalye ng mga menu at mga pindutan at ang lahat na. 1792 01:29:37,169 --> 01:29:39,210 Ikaw ay nakahilig sa isang tao tulad ng Google nang sa gayon ay 1793 01:29:39,210 --> 01:29:42,050 Hindi mo na kailangang bumuo ng isang Uber negosyo at isang mapping negosyo, 1794 01:29:42,050 --> 01:29:44,850 at anumang bilang ng mga katulad na aplikasyon rin. 1795 01:29:44,850 --> 01:29:46,350 >> Sa katunayan, logins ay popular, masyadong. 1796 01:29:46,350 --> 01:29:48,500 Kung nakagamit ka na Spotify o anumang bilang ng mga website, 1797 01:29:48,500 --> 01:29:51,210 makikita mong mag-log in sa ilang mga website gamit ang Facebook. 1798 01:29:51,210 --> 01:29:53,350 Kaya kung ano ang maganda, may Isasama API para sa mga pag-login 1799 01:29:53,350 --> 01:29:56,570 sa panahong ito, sa gayon ay hindi mo na kailangang magkaroon ng iyong sariling mga gumagamit ng talahanayan 1800 01:29:56,570 --> 01:29:59,440 at lahat ng iyong sariling database kinakailangang sa parehong lawak. 1801 01:29:59,440 --> 01:30:01,795 Maaari mong ipaalam sa Facebook gawin ang lahat ng ng na kumplikado para sa iyo. 1802 01:30:01,795 --> 01:30:03,920 Kaya ito ay isang nakapupukaw ng oras, sa totoo lang, sa programming, 1803 01:30:03,920 --> 01:30:07,200 dahil may mga kaya maraming mga third party serbisyo na maaari mong bumuo sa tuktok ng. 1804 01:30:07,200 --> 01:30:10,890 >> At muli, ang presyo na babayaran mo ay mag-pinansiyal o downtime. 1805 01:30:10,890 --> 01:30:13,750 Kung ang Google goes down, kaya ang ginagawa Uber, arguably, 1806 01:30:13,750 --> 01:30:15,690 ngunit marahil na ang isang makatwirang kalakalan-off. 1807 01:30:15,690 --> 01:30:18,040 At muli, na noon ay isa sa mga tema, sana, para sa nakalipas na ilang mga araw, 1808 01:30:18,040 --> 01:30:18,780 ay ang mga trade-offs. 1809 01:30:18,780 --> 01:30:20,738 At bihira ay may pagpunta na maging isang tamang sagot. 1810 01:30:20,738 --> 01:30:25,700 Ito ay tunay na ang mas mahusay na ng dalawa o higit pang mga sagot. 1811 01:30:25,700 --> 01:30:26,682 >> Ipasa ang mga paligid. 1812 01:30:26,682 --> 01:30:36,830 1813 01:30:36,830 --> 01:30:41,110 >> At lalakip ang mga Cloud9 account ay patuloy sa trabaho, sa teorya, sa habang-buhay. 1814 01:30:41,110 --> 01:30:45,000 Maaari mong mahanap kung naghihintay ka ng ilang araw o sa isang linggo o higit pa upang mag-log pabalik sa kanila, 1815 01:30:45,000 --> 01:30:49,170 maaaring tumagal ng tulad ng isa o limang minuto upang buksan back up, 1816 01:30:49,170 --> 01:30:54,090 ngunit ito lamang dahil sila ay ilagay ito sa pagtulog upang makatipid sa mga mapagkukunan. 1817 01:30:54,090 --> 01:31:10,527