DAVID Malan: Labi, mēs esam atpakaļ. Tātad aizraujošu secinājums, mūsu pēdējā nodaļa par web programmēšana, kas I domāju, mēs gribētu izmantot kā vispārējs termins lai attēlotu dažus atlikušos tematus. Tātad beigās no diena, mēs faktiski darīt mazliet hands-on Web programmēšana ar valodu sauc JavaScript. Un es domāju, ka mēs to apskatīt kaut ko, kas saistīts ar attēliem un atklāt kaut ko slepeni paslēptas attēlu, un arī to apskatīt Google Maps API, lietojumprogrammu programmēšanas interfeiss, kā kaut ko pārstāvis veida programmatūru tas ir arvien vairāk un brīvi pieejams jau šodien. Bet kāpēc nav mēs to apskatīt pie sastāvdaļas šajā pasaulē ka mēs esam veida bijuši ņemot par pašsaprotamu pastāv kādu laiku, datu bāzes. Par iepriekšējo dienu un pusotra mēs esam pieņēmuši, ka mums ir pieejami datu bāzē, bet kāda problēma nav datubāze atrisināt? Ko tas dara mums? Kas tas ir? Mērķauditorija: [dzirdams] DAVID Malan: Nolemj visu informāciju, OK, un kāda veida informācija varētu jums īstenot to? Mērķauditorija: [dzirdams] DAVID Malan: Jebkura informācija jums īstenot to, jūs saņemsiet atpakaļ. Tā ir taisnība. Un par tipisku tīmekļa vietnes vai tīmekļa piemērošana, kāda veida informāciju, Konkrētāk, var jūs nodot? Mērķauditorija: [dzirdams] DAVID Malan: lietotāji. Tātad, kas ir lietotājs? Mērķauditorija: [dzirdams] DAVID Malan: Labi, reģistrēts lietotājs no vietas. Un ko tas nozīmē veikala lietotājiem 'informācija? Kas komponē lietotājs? Lietotājam ir, ko? Mērķauditorija: [dzirdams] DAVID Malan: Jā, personas dati, un man patīk, ka. Būsim precīzāks. Tātad lietotājam parasti ir nosaukums, ko vēl varētu lietotājam ir? Mērķauditorija: [dzirdams] DAVID Malan: An addr-- OK, tā vārds, uzvārds. Tas ir labi. Patiesībā, pieņemsim noteikt ka, jo tas notiek atvērt iespēju diskusija, vēl, vēl. Vārds, uzvārds, dzimums. ID sava veida. Kas vēl? Es dzirdēju kaut ko citu, pirms, too. E-pasta, pasta adrese. Tātad, pieņemsim pauze tur un tagad uzskata nav tas, ko mēs esam uzglabāt datu bāzē, but-- un nav iemesls, kāpēc, jo tas ir iespējams, skaidrs, ka tad, kad jūs reģistrēt lietotāju, Jūs vēlaties, lai atcerēties tos kādu laiku. Jūs nevēlaties, lai tikai glabāt RAM un jābūt forgotten-- tā pieņemsim koncentrēties uz how. Izrādās, ka pasaule datu bāzes, tur ir vismaz divu veidu šajās dienās. Kaut ko sauc par SQL datu bāzi, Strukturēts Query Language, vai, cutely nosaukts, NoSQL, kas nav SQL. Un pēdējais ir piemērs tam, ko varētu saukt objektorientēta, vai objekts veikals, datu bāzes kas saglabā objektus, un nevis, attaisnojums mani, kā mēs drīz redzēt, rindas. Tāpēc mēs koncentrējamies tikai brīdi par pirmais no tiem, proti, SQL datu bāzē, ja tikai tāpēc, ka tas ir tik pazīstami jau, ikvienam kurš ir izmantojis Excel vai Google Sheets vai Apple Numuri vai jebkura standarta izklājlapu programma, vai, līdzvērtīgi, vai vairāk sophisticatedly, kaut kā Microsoft Access vai Oracle vai MySQL vai PostgreSQL, kas visi ir produktu nosaukumi implementāciju par šādu ideju. Relāciju datu bāze ir vienkārši kaut kas ir rindas un kolonnas. Un rindas un kolonnas, Es burtiski nozīmē kaut ko kā šis, lai kur mēs varētu būt Nosaukums lauka un tā veidu vairāk nekā šeit. Un tiešām, ļaujiet man Tagad sāk karti tiem. Tik tiešām, es nezinu kāpēc es vērsa atsevišķu diagrammu. Pieņemsim saglabāt šo vienkāršs. Mums ir labi šeit pirmsākumiem mūsu galda, kur šis ir nosaukums lauka un tas ir datu tips, un veida es domāju sekojošo. Vai tas ir skaitlis, tas ir virkne, īss string kā vārds, tas ir punkts, tas ir bināro dati, piemēram, attēlu? Un pieņemsim tikai kaitināt šis izņemot tikai brīdi. Tātad vispirms nosaukums, numurs, string, liels rieciens text-- Mērķauditorija: [dzirdams] DAVID Malan: Jā, tā virknes. Un datu bāzē kontekstā, mēs parasti saucam par char lauku. Es ņemšu tikai teikt char tagad, bet mēs esam gatavojas uzlabot šo brīdi. Character lauks. Uzvārds ir iespējams tāds pats. Dzimums? Vīrietis vai sieviete, tāpēc varētu būt char lauks. Tas varētu būt vai nu piedāvājumu, likt pēdiņas beigās "Vīrietis" vai citātu, likt pēdiņas beigās "sieviešu" vai tas varētu būt m vai f. Ja jūs vēlaties būt vairāk iekļaujoša, Jums var būt nepieciešams trešo vērtību vai kādu citu lauka veida vispār. Un, lai jūs varētu izmantot true false. Lauks varētu nosaukt vīrietis, un tad jūs varētu teikt, patiess vai nepatiess. Bet tas ne vienmēr uztveršanas visu informāciju, jūs varētu vēlēties. Tātad izrādās, tur ir vēl viens veids lauka, kas varētu būt noderīga šeit tipisks datu bāzē, ko sauc par ENUM, kur tas ir raksturs lauks, bet jūs, dizainers, nokļūt uzskaitīt iespējamās vērtības, piemēram, quote, likt pēdiņas beigās "vīriešu", citēju, likt pēdiņas beigās "sieviešu" un tā tālāk. Tā, ka kāda vērtība ir jūsu datu bāzē, patiešām raksturs bāzes, bet tas ir viens no šīm vērtībām. Mēs, iespējams, negribētu enum par vārda vai uzvārda. Pretējā gadījumā mēs būtu uzskaitīt, kā nosaukums izriet no, burtiski ik iespējams vārds un uzvārds. Labi, tā ID Kādam būtu ID būt? Jā, tāpēc varbūt vairāki. Tātad pieņemsim stick ar ka tagad, skaits. Un pēc skaita, skaits ir pārāk plašs tagad. Gada beigās otro diena, es jūtos kā mēs būtu nedaudz precīzāks. Skaits varētu nozīmēt, piemēram, to varētu būt kaut kas līdzīgs 1.236. Un tas ir iespējams, nav Ko mēs saprotam ar ID. Ko mēs, iespējams, nozīmē, ar ID? Mērķauditorija: [dzirdams] DAVID Malan: Ak, OK, lai varbūt tas nav pat vairāki. Varbūt tas tiešām unikāls identifikators ka ir virkne, piemēram, lietotāja vārdu. Tātad pilnīgi, varētu būt. Es domāju, ka kāds, iespējams, nozīmēja ciparu, though. Tātad, pieņemsim palikt ar to. Kādu numuru? Kas ir vairāk precise-- vesels skaitlis. Tātad skaitlis, piemēram, 0, 1, 2, 3, tāpēc mēs dēvējam vesels skaitlis. Un pat tad, es varētu tikt piekasīgiem, tas ir nav īsti tikai Kopumā skaitlis vēlaties. Jūs, iespējams, nevēlaties negatīvas vērtības, tikai tāpēc, ka tas vienkārši jūtas dīvaini. Jūs, iespējams, vēlas pozitīvi veseli skaitļi. Tātad jūs varat izteikt ka datu bāzē, bet tagad, mēs sakām skaitlim. E-pasts? Tas ir iespējams just-- ko? Mērķauditorija: [dzirdams] DAVID Malan: Tas ir e-pasts, bet tas ir rakstzīmes, vai ne? Tā vienkārši ir bailīgs raksturs, piemēram, par "at" simbols vai kaut kas cits, bet tas joprojām raksturs lauks. Un pasta adrese? Character lauks. Tātad tas ir jauki sākums, bet pieņemsim būt nedaudz precīzāks tagad. Tātad izrādās, ka datubāze, jūs bieži ir izvēle pār smalkāku versijas šīm lietām. Patiesībā, tipisks SQL datu bāzi, SQL, vai vispārīgāk, relāciju datu bāzes, datubāzes ar rindām un kolonnas, jūs bieži nokļūt norādīt ne tikai no veida field-- ļaujiet man veikt dažas telpas here-- bet arī garumu. Tātad, cik ilgi ir vārds? Es domāt, D-A-V-I-D. Labi, sapratu es iespējams, tikai aizvaino, piemēram, pusi cilvēku telpā, pa labi, jo jūsu vārdi ir ilgāks par pieciem burti, tāpēc piecas šķiet mazliet egoistiski un naivs, lai to, kas ir izdevīgāks? 10, viss labi, un es domāju, ka mēs esam OK telpā. 13? 30? Kāpēc es ņemiet līdzi pieeja agrāk, kad mēs runājām par masīvu un atmiņu? Kāpēc es tikai saku, piemēram, 1000? Neviens vārds notiek būt garāks par 1000. Atgrūst. Mērķauditorija: [dzirdams] DAVID Malan: Jā, tas ir izšķērdīgs, pa labi, it īpaši ja lielākā daļa vārdi ir tikai piecas vai 10, vai 15 rakstzīmes, kas ir ļoti izšķērdīgs. Tātad, jūs zināt, ko? Tas ir sava veida grūti jautājums. Tagad mēs varam noteikti analizēt angļu un jebkurā citā valodā ir vārdi un izdomāt, labi, kas ir average-- vidēji nav īsti palīdzēt us-- kāda ir max ir iespējams, ko mēs patiešām vēlamies. Bet izrādās, mums pat ir daži izvēle pār veidu šeit. Tipisks SQL datu bāzi, jūs ir kaut ko sauc char lauks un arī varchar, V-A-R, mainīgo char laukā. Un atšķirība ir šī. Char lauks, jūs dizainers, ir jānorāda iepriekš precīzs garums no lauka. Tātad varbūt vārds tāpat 20 jūtas veida droši. Iespējams, ir darīt daži googling līdz redzētu, vai tas ir pietiekami reāli droši. Tur droši vien vārdu ar 21 zīmes, bet tagad, pieņemsim, 20 ir droša. Char lauks nozīmētu datubāzē, kas jums ir, izmantojot 20 un vienmēr 20 rakstzīmes. Tagad, ja tas ir tikai D-A-V-I-D, 15 no tiem, ir tikai būs tukšas zīmes, bet jūs joprojām izmantojot visus 20 baiti. Varchar lauks, savukārt, nozīmē, ka string vajadzētu būt līdz 20 rakstzīmēm bet, ja tas ir tikai pieci, jūs tikai gatavojas izmantot pieci, vai varbūt seši priekšlikums īpašā vērtība gada beigās, piemēram, ka 0 mēs runājām, ka nozīmē beigas rakstura secība atmiņā. Tātad, ja jūs domājat jūs varētu izvēlēties char versus varchar, ņemot vērā, ka kompromisu? Char izmanto šo daudz rakstzīmes, varchar izmanto ne vairāk, nekā daudzi rakstzīmes. Mērķauditorija: [dzirdams] DAVID Malan: Labi, ja jūs zināt garums string diezgan pārliecinoši tikai izmantot char, "iemesls, ja jūs zināt, tikai likt to uz leju. Un varbūt tas ir taisnība par rāvējslēdzēju kods, ASV, vismaz, 02138, tas vienmēr būs pieci zīmes, līdz jūs pievienot domuzīme četri. Bet jūs varētu būt dažas vērtības ko jūs vienmēr zināt garumu. Vai varbūt valsts simboli, piemēram, NY uz Ņujorku, un MA par Masačūsetsā ASV. Varbūt jums ir dažas situācijas, kur tas ir pilnīgi pamatoti, bet līdz tam loģika, kāpēc mēs pat overthinking šo? Kāpēc ne mēs tikai izmantot varchar un tad mēs vienkārši vienmēr izmantojiet divas rakstzīmes vienalga, vai vienmēr izmantojiet piecas rakstzīmes anyway? Kāpēc ne tikai ietaupīt varchar par viss, ko šī loģika? Ir jābūt nozvejas. Mērķauditorija: [dzirdams] DAVID Malan: Varētu rakstīt kaut ko nepareizi. Tāpēc, ka ir taisnība. Bet pat tad, viņi nevar izmantot vairāk atmiņas nekā es piešķirt. Man joprojām ir galīgā saka garumā, tāpēc tās nevar nejauši izdarīt ka kļūda, bet labs doma. Tas ir vairāk izsmalcināts, bet tas ir ļoti saistīta mūsu diskusiju, faktiski, no masīvi un saistīti saraksti agrāk. Izrādās, ka datu bāzē, ja tas ir zināms, ka visi no vērtībām ir fiksēta garuma, pat tad, ja dažas no šīm vērtībām ir tukšs, veida estētiski tukšs, D-A-V-I-D un pēc tam 15 sagataves, izrādās, ka, ja katrs lauks ir vienāda garuma, daudz, piemēram, masīvs bija visu savu sīkumi atpakaļ atpakaļ atpakaļ atpakaļ, lai jūs varētu tikai plus 1, lai saņemtu uz nākamo vērtība, pati ideja datu bāzes tabulā. Ja visas jūsu raksturu virknes garums ir tāds pats, jums ir, ko sauc par brīvpiekļuves. Ja visas stīgas ir garums 20, jūs ne tikai do plus 1 jūs vienkārši darīt plus 20, plus 20, plus 20, plus 20, un jūs varat ļoti ātri ritināt vai pārlūkot visus datus. Mainīgais char lauks, gluži pretēji, ne vienmēr ir 20 rakstzīmes. Tas varētu būt 20 un pēc tam 15 un pēc tam 19 un pēc tam 10, un tādēļ, ja jūs vēlaties, lai meklētu caur to, jūs varat ne tikai akli pievieno 20 baiti, lai saņemtu uz nākamo. Jūs burtiski ir meklēt, izmantojot jo mala datu struktūru, ja jūs, ir noplīsis. Tā veida iet un, balstoties uz faktisko garumu virknes. Tātad, kad jūs zināt garumu, kā Kareem saka, izmantojiet char lauku, jo jums iegūt, ka efektivitāte ir iespēja meklēt caur to ātrāk ja jūs meklējat datiem, citādi izmantot mainīgo. Diemžēl, man nav labu atbildi lai cik ilgi vārds būtu, bet par kaut ko līdzīgu nosaukumu, es teiktu varchar ir kopīgs jo tas nav gatavojas būt fiksēta garuma ikvienam. 20, es nezinu, 20 jūtas nedaudz saspringts. Pieņemsim tikai teikt, 50, 50. Tas nav īsti izmaksās, ka daudz vairāk ko teikt 40 50 vietā, bet kādā brīdī jums ir nepieciešams spriest zvanu. Ļoti bieži, atklāti sakot, par [? vēsturiskā?] iemeslu dēļ, pat ja tas ir pārmērīgs, ti 255, jo kādu laiku atpakaļ, tautas datu bāzu sistēmas, piemēram, MySQL, bezmaksas atvērtā koda rīks ka daudzi uzņēmumi tāpat arī Facebook lieto, tas bija maksimālais noklusējuma lai cilvēki vienkārši gāja ar to. Tātad nav nesaprātīgs, bet mēs izmantot nedaudz vairāk intuīcija un teikt, pārliecināts 50, kas ir iespējams, mazliet pārmērīgs. Dzimums, man patīk enum, un tā mēs tāpēc varam uzskaitīt vīrietis vai sieviete, vai varbūt efektīvāk, m vai f vai kādu citu Symbology, bet enum jūtas kā laba izvēle tur. Lai būtu skaidrs, dzimums varētu būt tikai varchar, un mēs varētu tikai visu vienojas par jauki cilvēki, vienmēr likt pašas vērtības tur. Vīrietis vai sieviete vai plauktiņš. Bet problēma, tad ir tā, ka mēs varētu kļūdīties, jo [nedzirdama] ierosināja agrāk citā kontekstā. Ja mēs kļūdāties, mēs varētu iegūt nepareizas vērtības mūsu datu bāzē. Tātad, kas ir jauki par datu bāzēm piemēram, Oracle un MySQL un citiem, ir tas, ka jums ir šis pēdējais slānis aizstāvības kur Jūsu DBA, datu bāzes administrators, kurš ir projektēšana šo tabulu kā mēs ir mutiski, varētu likt vietā ENUM, kas aizsargā pret to, norādot vīrietis, sieviete, un tāpēc neviens cits neviens programmētājs var nejauši ievietot jebkuru citu vērtību. Tātad tas varētu būt laba lieta. Tas ir līdzeklis. Tātad ID, pieņemot, ka ciparu ID, to iespējams, būtu pozitīvs vesels skaitlis. Un mēs dažreiz darīt ir iespēja apspriest garumu. Jūs nevarētu parasti norādiet numuru šeit, jūs tā vietā norādīt tas ir int, vai liels int, jo viņi parasti sauc. Bet parasti, vesels skaitlis būtu, teiksim, 4 baiti. Un, ja tas ir 4 baiti, tas, cik daudz bitu? Mērķauditorija: [dzirdams] DAVID Malan: 32 biti. Tik, cik daudz lietotāju mēs varam būt Mūsu datu bāzē, ja tie visi ir ID un šis ID ir unikāls? 32 biti nozīmē, ka mums ir modeļus ir viens, divi, trīs, četri, five-- tik, cik daudz dažādu modeļi nullēm un tiem var jums ir, ja ir 32? Tas ir tas pats, kas jautā, kas ir divas līdz 32? Tas ir liels skaits, kas Es nevaru gluži iegūt tiesības, bet es zinu, tas ir aptuveni 4000000000. Tātad tas nozīmē, ka jūsu datu bāzes tabulu var ir četri miljardi lietotāju, un tas arī viss. Tātad šis ir interesants dizains Ietekme. Pienācīgas uzņēmumu skaits nolēmām, varbūt ne tik daudz to lietotājiem galda, jo, ņemot 4 miljardi lietotājiem ir reta problēma. Tas ir sava veida Facebook stila problēma, nav tipisks uzņēmums problēma. Bet varbūt, ja jums ir darījumu žurnālus vai kāda veida dati, kas pastāvīgi izpaužas rakstīts savā datu bāzē ka pilnīgi varētu būt miljardiem un miljardiem rindām, un Jūs lietojat vesels skaitlis par to, kas notiek, tiklīdz gadās jums rindu skaits 4 miljardus un tad jūs mēģināt ievietot 4000000000. un 1, tā runāt? Es esmu vienkāršojot ciparus mazliet. Jūs varat samazināt, es domāju tevi ir rīkoties tā kaut kā. Un ko dators varētu parasti darīt, domāju par to pat no šī rīta, ja jums ir 4 bitu vērtību piemēram, 1, 1, 1, 1, kurā, tikai, lai tie no rīta kopā pēcpusdienā, ko tas skaitlis pārstāv bināro? Labi, mēs vieglāk. Ko šo numuru pārstāv bināro? Labi, mēs vieglāk, ko tas pārstāv bināro? Mērķauditorija: Trīs. DAVID Malan: Trīs, jo mums ir tiem column-- [Smiekli] Whew! Mums bija tie kolonnu un veica šo divu reģistru kolonna. Tātad pieņemsim, ka, protams, mūsu [? aramzeme?] nebija 32 biti, bet tas bija divi biti, mēs varam skaits no lietotāju skaits ir 0, 1, 2, 3, un tad mēs esam sava veida atpakaļ uz lietotāja 00. vēlreiz. Tātad šis ir tas, kas parasti notiek. Ja esat kādreiz dzirdējuši expression-- droši vien nav, bet, ja jūs have-- skaitlis pārplūdes, kur jums saglabāt flipping visas jūsu bitiem būt iespējamie lielākās vērtības, un tad jūs no bitiem, kādi būtu parasti notiktu? Kāpēc es saku 00? Nu, tas ir trīs. Kā es varu pārstāvēt 4? Kā es varu pārstāvēt par numuru 4 binārā? Mērķauditorija: [dzirdams] DAVID Malan: One-- yeah, nesaku 100 per se, jo tas ir nepareizi nozīmes, bet 1-0-0. Tā, ka numurs 1-0-0 patiešām pareizs, bet, ja jums ir tikai divi biti, ko jūs esat īsti darīt? Jūs esat pārnest uz 00. Un tiešām, tas, kas notiktu. Patiesībā, jūs varat domāt par to vairāk familiarly. Ja jūs atceraties, ko, pirms 16 gadiem, pasaule bija paredzēts beigt kad Y2K problēma ir noticis. Kāpēc tā? Nu lielākā daļa datoru, lai saprātīgi lēmumi, Tika uzglabātu skaitļus patīk 1975 gads vai 1999 gads , tikai ar diviem cipariem in datora atmiņā. Tātad, protams, to, kas notiek kad jūs nokļūt līdz 2000. gadam, jums iet uz to, vai drīzāk, yeah. Tātad jūs iet uz 2000. gadu, bet, ja jūs tikai ar diviem cipariem tas izskatās kā gada 00, un lai jūs esat pārnest. Un tas ir iemesls, kāpēc daudz sistēmu kas vajadzīga, lai tiktu atjaunināti tajā laikā. Tātad ar to teica, uzņēmumiem, piemēram, Facebook gatavojoties pret to. Tāpēc vienīgais veids, kā rīkoties situācija, godīgi sakot, ir paredzēt to. Vai tīrākais veids, lai rīkoties ar šo situāciju ir paredzēt to, lai jums nav ir veikt izmaiņas vēlāk. Tā vietā, 8 baitiem, jūs zināt, ko? Es esmu būs tālredzīgā šeit, pat ja tas ir nedaudz optimistisks, ka mēs esam nāksies 4 miljardus un 1 lietotāji uz mūsu mājas lapā. Bet pieņemsim tikai izmantot 8 baiti, vai 64 biti, kas parasti būtu sauc liels skaitlis, ļoti tehniski. Un tas vienkārši nozīmē, ka jūs varat būt vēl vairāk cipari jūsu numuru. Bet tas ir svarīgs lēmums dizains, jo, ja jūs izvēlaties numuru, ir pārāk maz biti izteiksmīgumu jūs patiešām varētu radīt bug jūsu programmatūru. Labi, tāpēc pieņemsim satīt ar e-pastu un pasta adresi. Tātad e-pastu, cik ilgi e-pasta adrese ir? 50. Man tiešām nav ne jausmas, bet tas ir iespējams, kaut kas līdzīgs, ka, jo citādi neviens gatavojas rakstīt jums, ja tā kļūst pārāk garš, tāpēc 50, iesim ar to tagad. Pasta adrese, cik ilgi tas būtu? Mērķauditorija: [dzirdams] DAVID Malan: Tas nav tikai zip kodu, though. Pasta adrese, es dzirdēju. Tātad tas ir kā 1 BRATTLE laukumā, komats, Cambridge Mass., komats, 02138. Un patiesībā, ļaujiet man tikai pull up nedaudz darblapā šeit. Tas uzskata, tāpat kā tas ir neizmantota iespēja. Ja mums ir 1 BRATTLE Square, komats, Cambridge MA 02138, Es jūtos kā mēs varam darīt labāk nekā tikai pasta adresi. Kāpēc nav mēs eksplodēt tas mazliet? Ko es saņemu pie? Ko mums vajadzētu nevis būt mūsu rindās šeit, varbūt? Mērķauditorija: [dzirdams] DAVID Malan: Jā, tāpēc pieņemsim to sauc street_number, un pasvītrojums ir tikai kopīgs veids, kam kas izskatās kā telpu, bet tas nav, faktiski. Ielu, un pēc tam city-- žēl? Mērķauditorija: [dzirdams] DAVID Malan: Mēs varētu darīt. vienā rindā, līnija divi. Kāpēc mēs turpināsim tas vienkārši tagad, bet tas ir absolūti pieņemams lēmums. Un tad valsts, un tad pieņemsim būt nedaudz ASV orientētus tagad un vienkārši darīt zip kodu, tikai tāpēc, ka tas būs radīt interesantu kļūda vai problēma šeit. Tātad pieņemsim, ka tagad mūsu adrese. Tas ir nedaudz vairāk kaitinošas, ka mums ir visas šīs vairāk laukus, bet tagad mēs varam atzīmēt lietas mazliet labāk. Tāpēc tagad street skaits, iespējams, nevajadzētu būt char, ja tā? Kas tas būtu? Mērķauditorija: [dzirdams] DAVID Malan: Varbūt, vairāki tāpat veselam skaitlim atkal? Liels vesels skaitlis? Jūs, iespējams, nedzīvo 4 miljardi Main Street vai kaut kas traks, piemēram, ka. Tātad skaitlis, iespējams, labi, bet ir kāds kādreiz dzīvoja adresi, piemēram, 1A Brattle Square, vai 1 un 1/2? Šīs lietas pastāv, diemžēl, pat ja neesat tur dzīvojis, ir šīs anomālijas piemēram, dzīvokļa 1A, 1B, 1C. Tātad, jūs zināt, ko, mēs, iespējams, nedrīkst iet ar skaitlim, pretējā gadījumā mēs ejam zaudēt dažus pārdošanu. Char lauks, varbūt? Es nezinu, cik ilgi. Tas droši vien nebūs ka ilgi, lai 10 vai kaut ko. Neviens gatavojas rakstīt garāks numurs, varbūt. Bet atkal, mēs, iespējams, vairāk apsvērt to. Varbūt google, do kādu pētījumu, bet mēs iet ar mūsu iekšām tagad. Streets, palija, 50, es nezinu. Kādā brīdī, neviens gatavojas rakstīt to uz aploksnes, pārāk, tāpēc tur ir iespējams daži augšējo robežas tur. Pilsēta, tas pats, protams, tā char 50. Valsts, var būt ASV orientētus tagad. Tātad tas varētu būt sarakstā, tik laipns Sprieduma zvanu, valsts. Tas varētu būt, piemēram, divām zīmēm. Tātad faktiski, varbūt, es tur saka char. Es droši vien domāju varchar, tikai kādu efektivitāti, bet mēs atgriezties ka lēmums brīdi. Varētu būt char 2 garumu stāvoklī. Ja ASV tie ir, piemēram, MA, Massachusetts, NY, New York, NJ, New Jersey, un tā tālāk. Tātad tas varētu būt noteikts, ka. DC par Vašingtonā. Bet es domāju, Olivier, jūs ierosināja citu pieeju. Mērķauditorija: [dzirdams] DAVID Malan: Jā, tā tas ir mazliet kaitinošas rakstīt, bet enum varētu daudz lietderīgāk, jo šādā veidā, vismaz ASV, jūs varētu uzskaitīt, ja tediously, bet jūs darīt to tikai vienu reizi savā datu bāzē un nekad atkal ir jādomā par tas, visi 50 divu rakstzīmju kodi. Tāpēc man patīk ENUM. Paliksim pie ka tur, jo tā veida īsteno lielāku stingrību. Un tad zip kodu? Es domāju, ka Andrew bija doma par to Mērķauditorija: [dzirdams] DAVID Malan: Jā, pieci vai deviņi. Pieņemsim tikai glabā to vienkārši. Just do pieci tagad. Bet varbūt es varētu tikai do vesels skaitlis, vai ne? Es varētu, bet jūs zināt, ko, es šī kļūda reizi, savā ziņā. Gadus atpakaļ, man bija migrē no Microsoft Outlook Gmail, un Outlook ir veids, kā eksportēt visiem jūsu kontaktiem kā Excel failā, CSV failu, komatiem atdalītas vērtības failu. Un es sniedza kļūda, es domā, par divreiz noklikšķinot uz tā, kad es lejupielādēt eksportu, lai pārliecinieties, ka tas izskatījās kā es gaidīju. Man ir hit saglabāšana vai ļaut auto-save kick vai kaut ko. Jo, kad es tad importēta tas Gmail, tas viss strādāja. Bet gadiem, līdz pat šai dienai, un I did this pieci, pirms 10 gadiem, Es joprojām atrast draugi, kas ir adreses, kas izskatās kā šis. Kāpēc? Mērķauditorija: [dzirdams] DAVID Malan: Pagāja 0., labi, drīzāk, to paņēma visu pasta indeksu, kā numurs, un tāpēc tas ir vadošais 0, kas nozīmē, tam nav nozīmes. Un tā 2138, šķiet, ir mans pasta indekss. Un tas ir, atklāti sakot, kaitinošas Excel iezīme, ar kuru es domāju, pēc noklusējuma, pat ja tas ir domāts, lai tikai būt teksts, Microsoft Excel nolemj, ļaujiet man būt noderīgi, un oh, es redzu tikai ciparus. Pieņemsim ārstēt tos kā skaitļi. Un tas saīsina vadošajiem nullēm. Es zvēru pie Dieva, ik pāris mēnešus es atrast adresi, un no sava veida OKT, es dodos atpakaļ un pievienot 0, lai gan es nekad sūtīt cilvēkus burtus vai neko. Bet es esmu vēl atrast paliekas šo. Tātad tas ir, tas ir laba ideja? Labi, nē, jo ikviens, kas Massachusetts, šajā jomā, ir nāksies o vadošo tos. Tātad, pieņemsim iet ar, piemēram, char, iespējams, pieci. Un šeit, saprotu, mēs varētu izmantot ENUM un mēs varētu uzskaitīt 10000 iespējams zip kodi, bet uzskata, tāpat kā tas ir iespējams, šķērso līnijas, piemēram, pabalstiem. Ja jums ir ievadīt ka daudz datus savā datu bāzē aizsardzībai pret kaut ko. Tātad char sapratu, jūs varētu rakstīt H-E-L-L-O-grupas, kā savu zip kodu, kas nav, protams, ciparu. Tāpēc tur nav veids, jo tipisks datu bāze, norādīt tikai ciparu un tikai piecas rakstzīmes garš, tāpēc mēs esam nāksies to darīt, ka kodu. Mēs darīsim, ka PHP vai Java vai kāds valodas mēs esam izmantojot uz servera, lai ieviestu šāda veida ierobežojumu. Whoo! Labi, lai kādi jautājumi tikai vēl? Veidosim citu dizaina lēmumu. Izrādās, ka jums arī nokļūt izvēlēties, projektējot SQL datu bāzi, vai tipiski relāciju database-- kur atkal, relāciju tikko nozīmē, rindas un kolonnas, tas, kā organizēt jūsu data-- un saprast, ka tas, ko tas nozīmē, Esmu bijis maldinošs ka es esmu drawing-- šis ir tas, ko sauc par shēma par datu bāzes tabulā. Tas ir tāpat kā specifikācijas table-- bet, kad runa ir laiks faktiski datu glabāšanai, un mēs to izdarītu, vienkārši piemērs šeit. Es esmu gatavojas atvērt Excel, jo Excel dos man rindas un kolonnas. Un tas ir tieši tas, ko Oracle un MySQL un citus instrumentus dos man. Tāpēc es esmu tikai gatavojas izmantot tā apspriešanai dēļ. Ļaujiet man iet uz priekšu un atvērt pārstāvim dokuments šeit, tuvinātu mazliet. Tā, piemēram, mūsu galvenes tagad vārds, uzvārds, dzimums, ID, e-pasts, ielu numurs, ielas, whoops. Street, pilsēta, valsts, tikai par der uz ekrāna. Tātad, ko tas nozīmē, ka tad, kad lietotājs pirmo reizi reģistrē par manu mājas lapā, tas būs kaut kas līdzīgs David, Malan, m, teiksim 1, malan@harvard.edu, ielu numurs būt, piemēram, 1 BRATTLE Square, Cambridge, MA, 02138, un pēc tam tā tālāk. Tātad, kad es saku, ka relāciju datu bāzes vai SQL datu bāze ir rindas un kolonnas, Es arī domāju. Ka faktiskie dati tiek glabāti rindās un kolonnās. Tas ir tikai sakritība, ka mēs runājām, un man bija tikai zīmēšanas to out rindās un kolonnās. Tas ir tikai shēma, visaptverošs definīcija. Tātad no šiem laukiem šeit, vai līdzvērtīgi, tur, kas ir lauki, kas jūs domājat, ka Es esmu, iespējams, meklēt, ja es esmu lietotājs vai ja es esmu datu bāzes administrators? Tāpat, kādi lauki es esmu faktiski gatavojas meklēt? Mērķauditorija: [dzirdams] DAVID Malan: nosaukums, jā tā Man patīk tas, that-- yeah, e-pasts var būt diezgan bieži. Atvainojiet, jūs teicāt nosaukums. Tik maybe-- un atkal, mēs esam veida runāt abstrakti. Es nezinu, kāpēc jūs būt meklējot vārdu, bet kas jūtas saprātīgs, ja jūs meklējat lietotājam. Varbūt ir noteikts, pārliecināts, ID. Un tas ir slidens slīpums, jo es varētu pamanīties scenāriju, kurā varbūt mans priekšnieks man lūdza, cik vīrieši mums ir mūsu mājas lapā? Cik daudz sieviešu mums ir mūsu mājas lapā? Un tā tajā brīdī, jūs varētu vēlēties meklēt uz dzimumu jomā, arī un nekas cits. Tātad tur ir kompromiss šeit. Atkal, tur nav pareizā atbilde, bet tur ir iezīme vairākumā SQL datu bāzēm pazīstams kā indeksāciju, saskaņā ar kuru tu, dizainers, tad datu bāzes administrators, nokļūt jāizlemj iepriekš, kas redzes laukos noteikt datubāzei būtu optimizēt par meklēšanu par. Jūs varētu ļoti naivi teikt, optimizēt Tas, optimizēt ka, optimizēt to, optimizēt ka, un tas, un datu bāze tie daži burvju lieta zem pārsegs, un kaut ko darīt tādā veidā, ka nākamreiz jūs meklēt uz kādu no šiem laukiem, tas, patiesībā, ir ātrāk. Tas ir iespējams. Tas nav atcelt sevi out. Bet ir jābūt cena, ko maksā. Ja jūs naivi, vai pārāk aizrautīgi teiksim, indekss visi no šiem laukiem, tā sakot, lai tos visus efektīvi meklēšanu, kādu cenu tu droši vien maksā? Mērķauditorija: [dzirdams] DAVID Malan: Performance. Ko tu ar to domā? Nu veiktspēju, vismaz tādā konteksts Es esmu apspriest, ir labāk tagad. Tas ir definīcija indeksācija. Tas padarīs meklēšanu ātrāk. Tātad laiks samazinās, lai runāt. Mērķauditorija: [dzirdams] DAVID Malan: Space. Tātad vēlreiz, tie ir kopējā tirdzniecības. Es varu paātrināt meklēšanu, bet tas ir gatavojas izmaksas jums vairāk baitus vietas. Kāpēc? Nu, pēc noklusējuma, ja mums ir neviens no šīs sarkanās zvaigznes, neviens no šiem rādītājiem, kā es saku, kā jūs meklēt Vārda šajā datu bāzē? Tātad pieņemsim izdarīt mūsu uzmanība uz šo piemēru. Ja mums ir Dāvidu un Scully un Kareem un Arwa un citi šajās rindās, piemēram. Tātad, pieņemsim darīt tieši to. Scully, ir šeit, un pēc tam mums ir Kareem un Arwa, un visi pārējie, ja jums nav ir indekss noteikts, tā sakot, vislabāk varat darīt, ir lineāra meklēšanu. Ja jūs meklēt Arwa, mēs neesam būs iespēja lēkt tiesības viņai ātri. Mēs ejam, lai sāktu top un iet visu ceļu uz leju, nav atšķirībā mūsu sākotnējā Mike Smith piemērs. Tomēr, ja es saku, hey, datu bāzes, indekss pirmo nosaukuma lauku, tad tas būs kaut ko darīt mīļotājs un atbalstīt kaut ko piemēram, bināro meklēšanu. Tas droši vien nav binārā meklēšana per se. Datu bāzes mēdz izmantot citu datu struktūra sauc b koki, nedrīkst jaukt ar bināro koku, ka tikai padara to ātrāk meklēt kaut logaritmiska dabā. Bet cena, ko maksāt, lai izveidotu, ka iezīme, ka datu struktūra atmiņā, ir vairāk baiti. Tātad tas varētu veikt dažus megabaiti, daži gigabaitiem, kas zina? Tas ir atkarīgs no datiem. Tāpēc kādā brīdī, jums ir jāizlemj, tas droši vien nav parasta lieta. Tātad, kādi ir faktiskā kopējā gadījumos, ja jūs patiešām bija jāizvēlas, Kas varētu iecienītākās lauki būt? E-pasts. Un man patīk e-pastu, jo e-pasta adresi, teorētiski, būtu unikāls. Un tā parasti, kad jūs zināt iepriekš, ka vienā no saviem laukiem ir vai būs unikāls, ka mēdz būt labi lauks meklēt tālāk, jo tādā veidā, kad jūs meklēt kaut ko, jūs gatavojas saņemt atpakaļ vienu vai nulles atbildes un tad jūs esat darīts. Jums nav, lai saglabātu meklē vēl citiem. Un tā šajā gadījumā šeit, e-pasts, tik ilgi, cik jūs nevarat reģistrēt divreiz ar to pašu e-pastu, ir labs. ID pēc definīcijas, jo datorzinātnes pasaule, ja jūs runājat par ID, kas bija labāk būt unikāls. Tas ir sava veida nozīmes no ID vai identifikatoru. Un pārējie no tiem varētu būt, sauksim tos patīkami bagātajiem, bet nav īsti vajadzīgs. Un tā datu bāzē, norādāt indeksi, bet jūs varat būt vēl precīzāks. Jūs varat teikt, hey, datu bāzes, pārliecinieties, ka katrs ID Šajā tabulā ir unikāls. Vai nav pat let programmētājs nejauši likts dublikāta e-pastu vai dublēt ID numuru. Tik daudz, piemēram enums aizsargātu mūs līdzīgi, jums var būt tiem zemāka līmeņa aizsardzību. Un tā datu bāzes dizains, it kāda jēga, ir sava veida jautrību, jo jūs to aizsardzībai. Jūs veida pieņemam, ka jūs strādājat ar briesmīgs, briesmīgs programmētājiem un jūs vēlaties, lai tik daudz aizsargspējas kā jūs varat, lai aizsargātu savus datus, bet vienlaicīgi vēlaties lai palīdzētu tām veikt labāk , izvēloties, kuru lauki optimizēt. Bet jūs nevarat vienmēr darīt to vakuums kā mēs veida ir šeit. Tev jāzina, kādi ir šīs kopīgās lietas ir. Ja izstrādātāji īsteno adrešu grāmatu, jūs varētu ļoti labi gribu, lai varētu meklēt par gandrīz visās jomās, tikko pēc būtības pieteikumu. Tātad, varbūt jūs tērēt ka papildu telpa. Tiesības, kādi jautājumi? Jā. Mērķauditorija: [dzirdams] DAVID Malan: Nē. Mērķauditorija: [dzirdams] DAVID Malan: OK. Mērķauditorija: [dzirdams] DAVID Malan: Ak, tāpēc mēs runā tādā veidā tagad tas ir pilnīgi valoda agnostiķis. Tātad mēs runājam tagad par relāciju datubāzes vispārīgāk, vai SQL datu bāzes kopumā. Mērķauditorija: [dzirdams] DAVID Malan: Labāk vārds izmantot ir, var izmantot ar jebkuru valodu. Lai es varētu rakstīt JavaScript kodu, C kods, C ++ kods, Java kods, Ruby kods, kas visi runāt ar datu bāzes un izpildīt vaicājumus. Patiesībā, tas nav slikts segue uz piemēru vaicājumu. Un atkal, mēs nebrauksim iedziļināties Java vai C ++ vai kādu, kas vairs, bet SQL, valoda, uz kuru es glabāt atsaucoties, Structured Query Language, Tas pats par sevi ir programmēšanas valoda, bet tas ir domāts, lai tiktu izmantoti, ne pārsteigums, strukturēta vaicājumu vaicājumiem. Ar to es arī domāju. Kā jūs izvēlaties dati no MySQL datu bāzi ir jūs burtiski ierakstīt savā programmā kaut kas līdzīgs izvēlieties zvaigzne no lietotājiem. Es esmu pieņemot, ka šajā tabulā, turpmāk sauc lietotājiem. Es varētu to nosaukt kaut ko mēs gribam, bet šāda veida jēga. Un tā Select ir ļoti kopīgs vārds, ja jums būs, SQL, kas burtiski tas, ka. Ko jūs domājat zvaigzne nozīmē šajā kontekstā? Mērķauditorija: [dzirdams] DAVID Malan: Es atvainojos? Mērķauditorija: [dzirdams] DAVID Malan: Nav nepieciešams, tas ir iekļaujošāku nekā, patiesībā. Tas ir savvaļas karti raksturs. Zvaigzne gandrīz vienmēr nozīmē kaut ko, tāpēc tas nozīmē, šajā gadījumā, izvēlēties visu, sākot no datu bāzes. Tātad, kad es saku, es domāju dot mani atpakaļ katru kolonnu no mana galda sauc lietotājiem. Tātad man rezultātu kopu, kā to sauc. Citiem vārdiem sakot, man kopiju no izklājlapu, ir tas, ko es saņemu pie. Bet, ja es teicu izvēlieties zvaigzne no lietotājiem kur ID ir 1, cik liels būtu mans rezultāts, kas būs pēc tam? Vai līdzvērtīgi, cik daudz rindas būtu Man jānodod atpakaļ no datu bāzes? Iespējams, tikai viens, ja man ir patiešām uzskatīta ID kā unikāls identifikators, un ja Deivids ir šo unikālo ID, es vajadzētu saņemt atpakaļ par vienu un tikai vienu rindu satur visus Dāvida informāciju. Ja es teicu tas kur ID vienāds 99, man vajadzētu saņemt atpakaļ, šajā kontekstā nulle rindas, vismaz brīdī. Tomēr, ja man nav īsti aprūpi par visu šo informāciju, Es varētu tikai pateikt, kur Dāvids dzīvo? Izvēlieties zip kodu no Lietotājiem kur ID ir 1. Tas izvēlēsies man tikai Dāvida zip kods un nevis kopums šīs rindas. Kāpēc es varētu darīt, nevis zvaigzne vaicājumu, wild card? Mērķauditorija: [dzirdams] DAVID Malan: Jā, es varētu tikai to vajag. Tāpēc sniegums ir atkal šeit atbilde. Kāpēc prasīt vairāk informācija, nekā jums nepieciešams, jo, pat ja tas viss ir labi kopā, jums vēl ir kopēt, ka dati, šķiet, no datu bāzes savā programmā kaut kā, un tas ir tikai muļķīgi, ja jums nepieciešama tikai pieci no šiem cipariem, nevis kopums rindas. Tātad, kā es varu ievietot lietotājs? Pieņemsim, ka lietotājs ir tikko reģistrēts pirmo reizi. Sintakse parasti izskatās šādi. Ievietot lietotājiem, un tad mēs teiktu vērtības, un tad mēs teiktu vērtības tāpat kā, teiksim, Lauren Scully, Mūsu videographer tieši šeit. Un nākamais lauks ir dzimums. Tāpēc mēs sakām quote, likt pēdiņas beigās "F", tad mums ir ID un es esmu gatavojas say-- pieņemsim izlikties viņa nav faktiski šeit, tāpēc mēs attīt stāsts. Tātad 2 būs viņas ID. Un tad nākamais lauks Šeit ir viņas e-pasts. Tātad tas būs tāpat Lauren Scully un tā tālāk, un mēs vienkārši dot dot dot to prom no šejienes uz. Tagad tas kļūs nedaudz garlaicīgs, bet ievietot vaicājums galu galā izskatās, ka. Ja es gribu atbrīvoties no Scully, uh-oh, pieņemsim dereģistrēt viņas, viņa izdzēš viņas kontā, izdzēst no lietotājiem, ja ID atbilst 2, būs atbrīvoties no Scully. Vai arī es varu teikt atjaunināt lietotājiem noteikt, teiksim, ko mēs varētu mainīt? Pieņemsim, ka viņa kustas. Set zip vienāds 021-- nope, tas ir viņas pašreizējā zip. 90210. Vienīgais pasta indekss Es zinu, pasaulē. Tā, ka varētu mainīties viņas zip code-- faktiski, tas nemainītu savu pasta indeksu. Ko es vienkārši darīt? Kaut arī sintakse ir iespējams jauns. Mērķauditorija: [dzirdams] DAVID Malan: Jā, es pārcēlos ikvienam uz Beverly Hills, Kalifornija. Tāpēc es tiešām pateikt, kur ID atbilst 2. Un tā tālāk. Tātad SQL ir visu par šiem veidu norādījumiem. Izvēlieties, ievietot, dzēst, atjaunināt, ar šiem predikātu beigās šie kur klauzulas, lai runāt. Un tur ir daudz vairāk, jūs varat darīt, bet tas tiešām tikai vārīties uz leju vienkārši, ja arcanely, paužot ko jūs vēlaties datubāzes darīt. Un tad datu bāzes būs izdomāt, kad Ievietojot Lauren Scully Into datu bāzi, kur likt viņas atmiņā lai mēs varētu ļoti ātri nokļūt viņas pamatojoties uz viņas e-pasta adresi vai pamatojoties uz viņas ID numuru vai tamlīdzīgi. Jā, Dan. Mērķauditorija: [dzirdams] DAVID Malan: Tiešām labs jautājums. Vai šie skripti mainīties no Microsoft Access uz Oracle MySQL PostgreSQL? Īsā atbilde ir tas ir atkarīgs. Teorētiski, ir ļoti ievērojams kopīgs apakškopa SQL kas ir kopīga visās Šo implementāciju. Tomēr dažādi ražotāji ir pievienotajām funkcijām savām datubāzēm darīt dažas lietas plašāki par šīm funkcijām, kas varētu, patiesībā, pauze. Tātad to, kā izstrādātāji nodrošināties pret to, ir tā, ka nevis rakstot neapstrādātas SQL kodu, piemēram, es esmu rakstot šeit, viņi tā vietā izmantot bibliotēku, kopīga bibliotēka, kas pats par sevi ir sava veida augstāka līmeņa un tēzes prom kurš produkts jūs izmantojat. Un tas dod jums funkcijas un procedūras zvanīt, lai jūs nekad faktiski rakstīt neapstrādātu SQL. Teorētiski, tad, jūs varat mainīt produktus no Oracle Microsoft vai otrādi, vai kaut kas cits, un jūs burtiski mainīt neko par savu kodu. Realitāte, lai gan, ir, jūs dažreiz atmest funkcijas, kā rezultātā. Jūs, iespējams, esat izvēlējies produktu, jo tas ieguva šīs pievienotās vērtības funkcijas, un tu esi tikai tagad nav izmantojot tos apzināti. Un anecdotally, lielākā daļa uzņēmumu ir tendence nekad virzīties prom no savas datu bāzes. Tāpēc, kamēr tas ir jauki ir funkcija, realitāte ir, ja jūs uzlabošanas datu bāzē, jūs esat iespējams, padarot ķekarus citām izmaiņām anyway, ka jums nav obligāti nepieciešams paredzēt, ka. Tātad, tas ir apstrīdami pār-engineering problēmu, bet tas tiešām ir atkarīgs no konteksta. Bet teorētiski, SQL tiek dalīta pāri šiem dažādajiem produktiem. Tiešām labi jautājumi. Jā. Mērķauditorija: [dzirdams] DAVID Malan: Jā, tā Jūs varat domāt datu bāzi ir tikai serveris, beigās diena, un iekšpusē šajā serverī ir visai ķekars galdi, rindas un kolonnas. Un, kad jūs nosūtīt vaicājumu kā šis no savas programmas, jūsu mājas lapā, rakstīts Java, Ruby, Python, neatkarīgi, serveris saņem šo komandu un interpretēt to burtiski tāpat mēs apspriedām agrāk ar interpretē valodas, un pēc tam veicot kādu darbību uz nulli vai vairāk rindas nulle vai vairāk tabulām. Mērķauditorija: [dzirdams] DAVID Malan: Tieši tā, tieši tā. Tāpēc pseudocode kaut ko piemēram, ka varētu būt šis. Jūsu PHP faila vai jūsu Python failu vai jūsu Java failu, Jums būtu pseudocode kodu, vai Scratch līdzīgi bloki, kā, ja lietotājs apmeklē acme.com/register~~V pirmo reizi, tad ievietot lietotājiem un tā tālāk. Un mēs varētu tulkot to vairāk betons kods beigās. Bet tiešām, mums ir visi celtniecības bloki šeit, kaut arī mēs esam izlaižot dažus no īstenošanas posmiem. Tāpēc ļaujiet man atrast vainu ar ko mēs lieliski darīja tikai pirms brīža. Jūs esat izveidojis diezgan visa tabula lietotājiem. Protams, mēs varētu īstenot tas pāris dažādos veidos, bet jūs tiešām lika mums leju path-- un es saku jums, bet tas ir iespējams, mana fault-- par diezgan neefektīva datubāzes ieviešana. Tas nav normalizējies. Un normalizēts es domāju tur būs, laika gaitā ievērojams atlaišana, un tāpēc neefektivitāte, kas ir atkritumi telpu. Balstoties uz tikai to, ko jūs redzat šeit, var jūs iedomāties, kur šos atkritumus telpu gatavojas nākt no laika gaitā, kā vairāk un vairāk lietotāju reģistrs jūsu mājas lapā? Kādi dati varētu kļūt lieks? Mērķauditorija: [dzirdams] DAVID Malan: Kāpēc tu domā, ka? Mērķauditorija: [dzirdams] DAVID Malan: Jā. Un pieņemsim, lai sasniegtu mērķus šodien, ka tā ir taisnība. Izrādās, un mēs esam iemācījušies šo cietā veidā, ka tā nav taisnība. Kaut kā vairākas pilsētas ir, kaut kā, tas pats pasta indekss, kas saplīst šo brīnišķīgo intuīciju. Bet pieņemsim, ka ir taisnība, jo tas ir gandrīz vienmēr ir taisnība. Tātad pieņemsim, ka zip kods ir vienmēr ir saistīta ar to pašu pilsētu un valsts, kas ir sava veida par saprātīgu pieņēmumu, bet nepareizi, izrādās. Bet saprātīgs pieņēmums šodienas vajadzībām. Tad domāju, ka es dzīvoju Cambridge, MA, saskaņā ar šī lietotāja galda, un pieņemsim, ka Lauren Scully dzīvo Cambridge, MA, un pieņemsim, ka Kareem dzīvo Cambridge, MA, un Arwa dzīvo Cambridge, MA, mums visiem 02138. Kāpēc mēs atcerēties Cambridge, MA, 02138 visiem četriem no mums? Ko vajadzētu pietikt, lai atcerēties? Mērķauditorija: [dzirdams] DAVID Malan: Tikai zip kods. Tikai, ka 02138 pastāv, jo jūs zināt, ko mēs varētu darīt? Mēs varētu saņemt nedaudz iedomātā šeit un vairāk nekā šeit, noteikt citu tabulu kur tas notiek, ir nosaukums, tas būs veids, tas būs būt garums, un turpmāk, es esmu saukšu šo manu pilsētas tabulā. To sauca, no Protams, mana lietotājiem galda. Un tā, ko man vajadzētu likt vairāk nekā šeit manu pilsētās galda, jūs domājat? Mērķauditorija: [dzirdams] DAVID Malan: Jā. Tātad zip un valsts un pilsētu. Un tā veids šeit, mēs sakām tas būs char 5 atkal, pakļauts debatēm par agrāk. Tas būs enum, varbūt tāpat pirms, un pilsēta būs varchar 50. Un tāpēc tagad, ko es varu izdzēst no šīs tabulas lai novērstu šo neefektivitāti? Mērķauditorija: [dzirdams] DAVID Malan: Nice. Valsts un pilsētas iet prom, tāpēc es esmu tagad novērsis iespējamo neefektivitāti par lieki atcerēties, Cambridge, MA, Cambridge, MA, Cambridge, MA, Cambridge, MA, kas, cerams, nekad gatavojas mainīt. Un pat tad, ja tā nav, tas ir minorly kaitinošas, tagad ka man ir jāmaina tā vairākās rindās, bet šeit, es varētu tikai mainīt to vienā vietā. Tagad to, kas ir kompromiss, varbūt? Tas bija super ērti. Bija visus manus datus labi kopā. Bet kas ir skaidri gadījums tagad? Mērķauditorija: [dzirdams] DAVID Malan: Tieši tā, un es esmu priecīgs jūs lietots vārds pievienoties, jo tas ir faktiski atslēgvārds, pasaulē relāciju datu bāzēm SQL, tas ir reāls vārds jums varētu rakstīt vai vismaz nodot. Un patiesībā, kas mums tagad ir jādara izvēlēties Dāvida pilnu informāciju kaut kas līdzīgs izvēlieties zvaigzne no lietotājiem, pievienoties pilsētas, on-- un tagad Es esmu gatavojas tikai pāriet uz otro pozīciju tā ka šī fits-- users.zip vienāds cities.zip, kur users.ID ir vienāds ar 1. Tātad, kas notiek? Tas ir neglīts meklē, bet jūs varat veida lasīt no kreisās uz labo, augšas uz leju. Izvēlieties zvaigzne no lietotājiem ir tāds pats, kā iepriekš, bet tas nav no lietotājiem, per se. Tas ir no lietotājiem pievienoties pilsētas. Ko es savieno šīs divas tabulas? Nu, acīmredzot, lietotāju galdi zip lauku, un šis periods ir tikai īpašs sintakse izteikt, ka ideja, un tas ir pilsētas tabulas zip laukā. Es gribu tiem divi ir vienāda, bet es gribu, lai galu galā izvēlētos tikai tie rindas, kur ID lietotāju tabulā ir 1, kas gadījās būt mans. Un tikai, lai būtu skaidrs, programmētājs, parasti, kad hardcode kaut ko līdzīgu skaitu 1, jo citādi tikai mājas lapā atbalsta Dāvidu vai ļoti pirmais lietotājs, jūs tā vietā darīt kaut kas līdzīgs ID, kur Tas liecina par mainīgs, kaut kas var mainīties laika gaitā, līdzīgi garā uz to, ko es teicu iepriekš ar šiem vietturi veidu. Bet tagad mēs vienkārši hardcode kā 1. Un tā, ko tas nozīmē? Nu, jauks veids, kā vizualizēt tas ir ka tad, ja šī roka ir lietotāju tabula, un šī roka ir rāvējslēdzēji galds, mēs esam sava veida finding-- un padomus par manu pirkstiem ir zip nekā šeit, un padomus par manu pirkstiem šeit ir zip, tu esi veida savstarpēji to lai jūs saņemtu atpakaļ iegūtais oriģinālu galds, ko patiesi pievienojoties divas tabulas par kopējo laukā. Un tas nav jābūt zip. Tas varētu būt visvairāk kaut kas cits, bet zip ir jauki, jo viens, tas ir īss, divi, tas vienmēr ir vienāda garuma, tāpēc tur ir reāla efektivitāte, ko Olivier ierosināja šeit ar faktoringa ārā zip, un [Dzirdams] ierosina, ka mēs atbrīvoties Pilsētas un valstis. Tātad šis ir process pazīstams kā normalizēšanu. Visus jautājumus par šo? Nu ļaujiet man norādīt Tas ir sava veida sīkumi, pat ja tas ir diezgan zema līmeņa, šī diskusija, ka jūs domājat jūs veida iegūt zaudētas nezālēm, tas ir izpausme plašas iespēja izstrādātājiem būtu slikti. Un patiesībā, pat tad, kad mēs, jo kursi es esmu mācījis, kad mēs esam bija, piemēram, nepieredzējuši bakalaura programmētāji veidot mājas lapas, pēc pirmā acu uzmetiena, mājas lapas varētu izskatīties drausmīgs. Un tie ir visi funkcionalitāti mēs pieprasīts, attīstītāji paveica labu darbu. Bet viņi ne vienmēr zina, pietiekami par datu bāzes projektēšana vai viņi nedomāja grūti pietiekami daudz par datu veidiem un veidus lietotāju, mājas lapa tika nāksies, un mēs redzam, tad, sešus mēnešus vēlāk, pēc tam, kad esat beidzis vai pārvietots uz, ka sasodīts, mūsu mājas lapā ir patiesi, patiesi lēns. Un es neesmu pat runāt par to, kam miljoniem vai tūkstošiem lietotāju. Es domāju dažus simtus lietotājiem universitātes pilsētiņā, visi no kuriem, piemēram, lai, piemēram, veikals kursos tajā pašā laikā, viņi izmantojot šo kursu katalogs pieteikums es teicu un lieta kļūst patiešām lēni, jo nebija indeksi. Nebija sarkanās zvaigznes, tā runā, vai mums bija ne vienmēr ņemt kopējus datus dabūt ietaupījumu telpu. Un tad, kad Izvērtējot attīstītājs vai datu bāzē persona vai tamlīdzīgi, veidiems jautājumiem domāt ar ir pat, izskatot kādu kodu, teikt, ne vienmēr izskatīties caur visu to kodu, bet saka, aplūkosim izmantojot datu bāzes tabulām. Ko jūs uzglabāt? Un tad teikt, labi, pagaidiet minūte, kāpēc jūs lietojat vesels skaitlis? Ko darīt, ja mums ir 4 miljardi un 1 no šīm rindām? Un šie veidi jautājumi ir iespēja līdz veida stumšanas un iegūt sajūtu, kur Ja jūs neesat ērti to tas, kam ir kāds tehniskāks uzdot šos jautājumus, par to, vai persona tiešām zina savas stuff. Un tas ir sava veida sīkumi, arī to, ka cilvēki internetā, kas ir autodidaktisks, varbūt mācīties retāk, jo jums ne vienmēr nāk pāri tik daudz, jo jūs varat saņemt datu bāze izveidota un darbojas, bet, ja esat izlasīt līdzi konsultācijas vai bijis stāstīja par datubāzes normalizācija un indeksēšana un veiktspēju, tie ir veida lietas kas gatavojas ievainots jums. Un jūs varētu domāt, vai slikta inženieris varētu teikt, oh, labi, mēs labāk pay Lai palielinātu datu bāzē vai ātrāks datu bāze vai vienkārši mest naudu šajā, vertikāli mēroga, ne vienmēr tā. Ja jūs iet in-- un jūs varat doties pēc fact-- un pievienot indeksu, un tas var ilgt dažas stundas par datu bāzi, lai izveidotu šo jauno datu struktūra, kas man norādīja uz agrāk, Jūs joprojām varat noteikt šo pēc fakta, ka tas ir, ja jūs sāk atšķirt labi dizaineri no slikti dizaineri, ne tikai estētiski, bet darbības ziņā, kā arī. Kādi jautājumi? Nē? Tātad NoSQL, kas bija otrs tips no datubāzes, uz kuru es norādīja iepriekš, jums nav rindas un kolonnas. Tā vietā, jums būtu kaut kas kas izskatās nedaudz vairāk kā šis. Es esmu gatavojas izmantot kopīgu sintaksi. Cirtaini bikšturi gadās izmantot šeit diezgan daudz. Jums varētu būt kaut kas tāpat vārds ir David, jums varētu būt pēdējais vārds ir Malan, citātus, Jums varētu būt ID is-- atvainojiet, whoops-- ID ir 1, e-pasts ir malan@harvard.edu, un es ne apnikt rakstīt out pārējo, un tad dažas citas lietas. Citiem vārdiem sakot, tas ir tekstuāls pārstāvība par to, ko mēs varētu vispār zvanīt objekts ir datorprogramma. Un objekts parasti ir tikai kolekcija galveno vērtību pārus. Tātad vēlreiz, šī tēma,. Mēs redzējām atslēgas vērtību pārus HTML, mēs redzējām atslēgas vērtību pārus tagad kontekstā datu bāzes, un mēs redzēja galveno vērtību pārus kontekstā no, manuprāt, valoda agrāk šodien. Tur nāk uz augšu. Un tiešām, tas ir patiešām kādi dati vārīties uz leju, lai, datus un metadatus, vai vērtības un atslēgas, attiecīgi. Tātad ne-relāciju datu bāzes, kaut balstītas par objektiem, kur jūs vienkārši salīp viss kopā un nodot to atmiņā, tas parasti ir attēlots, vai domāja par, jo tas. Un es ņemšu atvaļinājumu, ka tagad kā veida alternatīva pieeja. Un viens ne vienmēr labāk nekā otru. Patiesībā, ļoti modē šajās dienās ir datu bāzu sistēmas piemēram MongoDB un REDIS un daži citi šādi instrumenti, brīvi pieejami, bet tie ir arvien en modē. Daļēji tāpēc, ka tie piedāvā papildu funkcijas vairāk nekā šīm tabulām pieejām, bet arī tāpēc, ka viņi mazliet vieglāk izmantot, jo jums nav jādomā tik grūti par daudz no šiem dizains lēmumus. Tātad plusiem un mīnusiem. Tātad saprotu, ka ir iespējas tikai to, kas mēs vienkārši pavadīja laiku. Tātad, pieņemsim darīt. Pieņemsim pāriet mazliet atpakaļ tagad web programmēšana, lai mēs veida secināt šodien ar kaut ko Tas ir maz praktisku, aizpildot dažos nepilnības no vakardienas. Ļaujiet man iet uz šo pirmo. Tik atgādināt, ka vakar mums bija dažas kanonisko HTML lapas, kas bija sākotnēji, tikai HTML, un pēc tam, otrkārt bija CSS, kaskādes stila lapas. Šī ir jauna tag ka mēs neesam redzēt vakar, vai kavēties, tā saukto skriptu tag. Izrādās, jūs faktiski var iegult valodā sauc JavaScript savā tīmekļa lapa un padarīt savu web lapas kaut ko darīt. Tātad, ko es ar to domā? Nu, ļaujiet man iet uz priekšu un tikai aizņemties šo kodu uz brīdi. Es iešu uz Cloud9, nav nepieciešams iet tur sevi tikai vēl, un es esmu gatavojas, lai izsauktu šo alert.HTML. Es esmu gatavojas ielīmēt manā failā šeit. Un tikai, lai precizētu to, ko es esmu darījusi, ļaujiet man iet uz šo adresi un iet, lai brīdinātu, un jūs redzēt Hello World. Bet tas ir sava veida underwhelming. Es gribu darīt kaut ko nedaudz atšķiras. Tāpēc es esmu gatavojas, lai faktiski darīt. Es iešu šeit e, un starp manu skriptu tagiem, saka brīdinājumu ( "Hello, World"); tāpēc paziņojums tas ir mazliet apliets, bet man HTML, no kura iekšpusē ir valodā sauc JavaScript, un tas ir tas, ko sauc par funkcija zvans vai procedūras izsaukums. Tas ir vārds, burtiski, šajā gadījumā, un es esmu atsaucoties kods funkcionalitāti ka kāds cits rakstīja. Tā, ka funkcionalitāte ir brīdinājumu, tāpēc iesim uz šo lapu tagad un noklikšķiniet Pārlādēt un tagad jūs redzēt mazliet interaktivitāti. Tas ir sava veida vecās skolas un neglīts. Šāda veida atgādina jums no pop-ups, iespējams, no vakardienas bet tas bija jādara kaut kas nedaudz vairāk programmatisks. Tātad vairāk nekā, pieņemsim do kaut ko interesantu. Ļaujiet man iet šeit un atbrīvoties no tā. Un es iešu uz priekšu un izveidotu formu, piemēram, mēs darījām vakar. Patiesībā, jūs zināt, ko? Es iešu uz google.html, ko mēs sākās vakar, kas izskatījās tas, caur kuru mēs meklēja kaķis Bet paziņojums tur ir sava veida bug pašreizējā redakcijā. Tas darbojas kaķiem, bet pieņemsim, ka Man nav sadarboties un es rakstīt neko, un es vienkārši noklikšķiniet uz Iesniegt. Tas ir sava veida dīvaini uzvedību. Aizveda mani uz reālo Google, nedeva man kļūdas ziņojumu. Es gribētu pateikt lietotāju jums ir nepieciešams, lai dotu mums vērtību. Tātad, kā varētu mēs to darām? Nu ļaujiet man iet atpakaļ Cloud9 un ļaujiet man iet uz augšu manu lapu un pievienot skriptu tag, piemēram, tas, kur Es esmu gatavojas rakstīt kādu JavaScript kodu. Un es esmu gatavojas darīt turpmāk. Ja (document.getelementByID-- un atsaukšana ka mēs runājām par to, ka agrāk, ka funkcija. Ko ID vēlos saņemt? Es vēlos saņemt q, un es esmu gatavojas teiksim vienāds neko, tāpat this-- faktiski ļaujiet man izmantot dubultās pēdiņas tikai consistency-- vienāds neko, tad alert ( "Lūdzu ievadiet vaicājumu") šeit. Tāpēc man ir, kas šķiet kaut kas līdzīgs stāvoklī. Mēs esam redzējuši šo vispārējo ideju nulles. Tas ir, piemēram, viens no tiem puzzle gabali, kas izskatījās šādi. Un ko es esmu sevi saprotams? Nu, uz leju šeit, ievērosiet, es esmu gatavojas veikt šādas darbības. Es esmu gatavojas sniegt šo formu lauks ne tikai nosaukums, q, kas ir tas, kas izpaužas nodota Google, bet es esmu gatavojas sniegt tai Vietējais identifikators, sauc arī q. Bet es varētu saukt šo kaut ko es gribu, es esmu tikai gatavojas to saglabāt vienkāršu un arī to sauc q, tikai vienkāršību. Un tagad es esmu gatavojas darīt kaut nedaudz vairāk. Uz laukos šeit, es esmu gatavojas pievienot to, ko sauc notikums apdarinātājs. Apstiprināšanas, es vēlos, lai izsauktu funkcija sauc Apstiprināt. Tas vēl nepastāv, tas vārds, vai šis vārds Apstiprināt, jo tas, ko es esmu gatavojas darīt šeit tagad ir pievienot kodu. Es esmu gatavojas teikt funkciju Validate. Es esmu gatavojas atkāpi šo un pievienot citu cirtaini lencēm šeit un vēl viens šeit. Jāapsver, kas tas ir tagad dara. Man ir now-- domāt par to kā radīja mans pašu puzzle gabals, kas nebija iepriekš pastāv, un es esmu sauc šo puzzle gabals ar Apstiprināt puzzles gabaliņam. Tās mērķis dzīvē ir izpildīt četri rindas kods iekšpusē no tā. Ja document.getElementById tik konceptuāli, kas gatavojas doties uz elementu, HTML elements, kura unikāls iecere, ir tikai Q, un pēc tam, lai gan sintakse izskatās mazliet dīvaini, kas vienāds vienāds tikai nozīmē vienāds. Tātad tas nozīmē, ja elements ar unikāls identifikators q, kad dabūt, nav nekādas vērtības, tā vienkārši ir vienāds quote likt pēdiņas beigās, nekas tur, tad ko es gribu darīt? Es gribu kliegt pie lietotāja. Un mēs neko lielu detalizēti šeit. Es esmu gatavojas atgriezties viltus. Tā ir kļūda. Else, es esmu gatavojas atgriezties true. Tātad, vai nu tā strādāja, vai tā nav. Nepatiesa vai taisnība. Un tagad, ja man nav nekādas kļūdas, ļaujiet man saglabāt šo un pārlādēt to. Un ļaujiet man tikai vēlreiz pārbaudiet, ka Man nebija, patiesībā nekādas typos, tāpēc man nav apgrūtināt sevi. Let 's redzēt, ja tas darbojas. Tāpēc tagad es esmu gatavojas rakstīt kaķiem. Tas joprojām darbojas, vai pusi darbi, vismaz. Tagad ļaujiet man pārlādēt to, un tagad ļaujiet man mēģināt iesniegt bez ierakstot anything-- damn, tā lauza. Vienu mirklīti. Ļaujiet man atvērt konsoli, [Dzirdams] log, pārlādēt lapu. Ļaujiet man mēģināt to vēlreiz. Ak, sasodīts. ES aizmirsu. Es drukas kļūdu. Es atceros, kas tas ir. .value. Es gribēju teikt, ja vērtība Elementa kuru ID ir Q sakrīt ar to, un pēc tam bļaut pie lietotājam. Tāpēc tagad ļaujiet man turēt manu elpu vēlreiz. Te nu mēs esam. Tur mēs ejam. Lūdzu, ievadiet vaicājumu. Tātad tas nav ļaujot man cauri. Es varu būt veida jautrs ar to, un tā vietā, pārbaudot nekādas vērtības, Es varu teikt kaut ko līdzīgu, ne vairāk meklē kaķiem, un tagad mēs varam tikai vairāk rotaļīgi let lietotājs meklēšanas suņiem, ja viņš vai viņa vēlas, vai, ja man iet šeit un meklēt kaķiem, tagad es nevaru. Tātad, kāda ir takeaway šeit? Tik viens, mēs esam ievesti Mūsu pasaule HTML un CSS, programmēšana funkcionalitāti. Es varu tiešām tagad pieņemt lēmumus kodu. Agrāk, es varētu darīt, ir atzīmēt teksta saturu vai grafisko saturu un pateikt to, ko meklē izskats un kur, lai parādītu. Tagad es patiesībā var lūgt Jautājumi par mājas lapu un pieņemt lēmumus, balstoties par to, un nekavējoties lietotājam ja man ir nepieciešams, lai kliegt uz viņu. Tātad, pieņemsim mēģināt kaut ko par mūsu pašu ar šo. Iet uz priekšu, ļaujiet man atvērt nākamo slaidu šeit, un tikai norādīt vienu lietu. Tāpat kā ar CSS, mēs varam faktors out Mūsu JavaScript kodu atsevišķā failā, Jūs varat darīt to pašu ar JavaScript kā ar CSS. Un jūs izmantojat, ka, izmantojot avotu atribūts skriptu tag. Bet mēs ne sarežģīt lietas tagad. Tā vietā, ja jūs varētu iet uz ne šajā lapā, but-- ļaujiet man pārvietot šo pa order-- iet uz, ja jūs varētu, šo lapu šeit. Šis URL šeit. Tas ir šodienas slaidiem. Jums varētu būt, lai pārlādētu, jo Es esmu pievienojis pāris lieta. Bet iet tur, kur daži puzles sagaidīt. Un tas dos mums iespēju, nedaudz vairāk jautrības kontekstā, plunčāties ar kādu JavaScript. Un, kad jūs tur nokļūt, Es paskaidrošu, ko gaida. Saņemt zaļa. Uzstādīt zils. Sets zaļš, komplekti sarkans. Hmm. Piedodiet. Tas ir apjoms mūsu dokumentācija par šo izaicinājumu. Un tas ir gatavojas strādāt šādi. Tātad, kas jums ir par šo lapa ir visai ķekars attēla puzles ar draugu Stenfordas universitātē. Tātad, ko jūs redzēt šeit ir gandrīz veida vienu no šīm burvju acu puzles, bet, ja jūs vienkārši skatās uz to, nekas gatavojas pop out pie jums. Drīzāk, kaut kas ir paslēptas šo attēlu. Un tas ir paslēptas šādi. Attēlus, kā jūs zināt, var būt veido tikai trīs krāsas. Daži sarkans, daži zils, un daži zaļš. Un mēs varam darīt visu krāsas no varavīksnes sajaucot šos trīs krāsas kaut kā. Tātad šis izskatās pārsvarā zaļa un zila, bet kā Nick saka šeit, šis gludeklis puzzle attēls ir puzzle. Tā satur attēlu kaut kas slavens, tomēr, attēls ir izkropļots. Slavenā objekts ir sarkanajās vērtībām. Tomēr sarkanās vērtības tie visi ir dalīts ar 10. Tātad tie ir pārāk mazi ar koeficientu 10. Tātad citiem vārdiem sakot, Nick ņēma oriģinālo attēlu, un viņš desaturated visu Sarkanā no tā, pazeminot summu sarkans tinte, ja jūs, tajā. Zilās un zaļās vērtības visi ir tikai bezjēdzīga, izlases vērtības, aka troksnis izstrādātas aizēnot reālo attēlu. Tātad, ko Nick darīja viņš bija pieklusināta sarkanā un pēc tam viņš vienkārši iemeta izlases summas zilā un zaļā krāsā pie attēla veida neskaidrs to, kas patiesībā joprojām. Jums ir atsaukt šos traucējumus lai atklātu attēlu. Pirmkārt, noteikt visus zilā un zaļā vērtības līdz nullei, lai saņemtu viņiem no tā, un apskatīt rezultātu. tad reizināt katru sarkano vērtību par 10, mērogošana atpakaļ līdz apmēram tā galīgā vērtība. Kas ir slavens objekts? Tātad jums visiem ir šī taisnstūri pārlūkā tiesības tagad. Un paziņojums, ka pastāv zināma starteris kods, lai runāt. Tas ir JavaScript kods, kas Niks ir rakstīts jums. Un ievērosiet, ka tur ir līnija vidū, kas sākas ar slīpsvītra slīpsvītra, kas ir to, kas parasti sauc komentāru. Tas nozīmē, ka tā ir frāze, lai programmētājs ka nav nekādas funkcionālas nozīmes. Tas ir tikai vizuāls norādījums uz cilvēku. Tātad jūs varat iet uz priekšu un izdzēst tikai šo līniju, un jābūt super uzmanīgiem, lai izdzēst vai mainīt kaut kas cits. Un ļaujiet man tikai staigāt jums caur ko šis kods dara un es ņemšu atstāt to jums, lai noskaidrotu slepeno attēlu. Šī pirmā līnija šeit, ka es esmu tikko iezīmēto dod jums sekojošo. Kreisajā pusē, Jums ir, ko sauc mainīga, ka Niks ir patvaļīgi, bet pamatoti sauc im par attēlu. Labajā pusē šīs vienādības zīmi, viņš saka man jauna quote, likt pēdiņas beigās "vienkāršu attēlu". Vienkārša attēlu, šajā kontekstā ir tas, ko sauc par klases, labi, tas ir sava veida kā class-- tehniski prototype-- bet tiešām, Tas dod man jaunu objektu, kura saturs ir fails, dzelzs puzzle.png. Citiem vārdiem sakot, Nick ir izveidojusi šis jēdziens vienkāršu attēlu tā ka mēs varam, par pedagoģisko mērķiem, spēlēt ar attēlu un mainīt tās sarkans, zaļa, zila un vērtības. Un kā mēs darām? Tas nedaudz mistisks sintakse šeit ir veids kā to atkārtot bloks ka daži no jums redzēja Scratch agrāk šodien, kur jūs varat atkārtot 10 reizes. Šajā gadījumā, Nick ir ne hardcoded numuru, piemēram, 10. Tā vietā viņš saka, inicializēt mainīgais ko sauc par x 0, pārbaudītu, ja x ir mazāks nekā platums no attēla. Un tā ir vairāk pareizi, tēls ir mainīgs, dot nozīmē iet iekšā no tā un saņemt tās platumu, un tad atveriet paren, slēgta paren ir tikai programmētāja veids no sakot, tas ir funkcija. Tā ir procedūra. Tas ir funkcionalitāte kāds cits rakstīja. Izmantojiet to un dod man atpakaļ atbildi. Un tad x ++ ir iedomātā veids sakot, kad jūs esat darījuši to vienu reizi, pieauguma x ar 1. Citiem vārdiem sakot, šis ir programmētāja veids inducēt cilpu, kas ir gatavojas atkārtot vairāk visi no slejās attēlu. Attēls ir tikai režģis punkti, rindas un kolonnas punktiem. Tas ir veids, atkārtojot visas no šīm kolonnām. Un no iekšpuses, tikmēr mēs atkārtojot pa augstumiem, šeit un šeit un šeit. Tātad tas ir tikai veids, kā traipsing, gandrīz kā vecs skolas rakstāmmašīnas, tikai iet pār viss attēls iteratīvi. Pat tas nav gluži pilnīgi skaidrs, lietojiet tikai uz ticību tagad, ka šiem trim līnijām kodu kopā ir gatavojas ļauj jums iteratīvi meklēt katrā pikseli, katrs dot attēlā. Kas ir pikselis? Nu, lai būtu skaidrs, ja mēs skatāmies at oriģinālu un tuvinātu, ja jūs patiešām likts acis uz datora ekrāna, kas ir tikai visu ķekars punkti, vairāki tūkstoš punkti iepakot kopā tur. Un tā, ko jūs esat par to darīt? Katrs no šiem punktiem, galīgo definīciju, ir rezultāts, kas ir vispārēji sauc RGB, sarkana, zaļa, zila, kas atkal, var tikt apvienoti, lai jums dot nekādu krāsu skaits. Patiesībā, ja jūs atceraties no daudziem atpakaļ, daudziem gadiem, projektora ekrāni, piemēram, šīm lietām izmanto, lai ir nevis vienu objektīvu, bet trīs. Viens no tiem izspļaut sarkanās gaismas, viens no tos izspļaut zaļo gaismu, viens no tiem izspļaut zila gaisma. Un, ja jūs bijāt kādā vidusskolā kā man bija, kur viņi nekad pareizi saskaņota, tu biji vienmēr skatoties vēstures filmas kas bija nedaudz izkropļota, jo trīs krāsas nebija apvienojot pareizi. Bet tas izrādās, ka katrs no šīs vērtības sarkana, zaļa un zila, var būt skaitlis, kas saistīts ar tiem. Piemēram, 0 Red nozīmē nē sarkana, 0. zaļas nozīmē ne zaļš, un 0 zilu nozīmē ne zila. Tātad, ja jums nav sarkans, ne zaļš, un nav zils, kādas krāsas jums ir? Mērķauditorija: [dzirdams] DAVID Malan: Jums būtu ceru, ka jā, tas ir balts. Diemžēl, šī operates-- žēl? Mērķauditorija: [dzirdams] DAVID Malan: Tātad jūs faktiski ir melns, šajā gadījumā. Tātad, ja jums ir neviens no šiem krāsas ieslēgts, jums ir melna. Tomēr, ja jums ir, teiksim daudz no tiem, piemēram, daudz sarkanā, 255 no tā, daudz zaļa, un daudz zila, kas ir balts. Tātad šie ir divas galējības. Tātad, šī loģika, ja man ir daudz no sarkanā un zaļā nē un nē zila, kādas krāsas ir tas, ka? Mērķauditorija: [dzirdams] DAVID Malan: Pareizi, protams. Un tad nav sarkans, daudz zaļš, ne zils, un pēc tam ja jūs have-- labi, mēs tikko pabeigtu tā, tikai tāpēc, ka, bet tas, protams, tagad ir zils. Un tagad jūs varat apvienot šīs krāsas. Tagad kā malā, ja kāds no jums ir kādreiz izdarīt kādu faktisko mājas lapas dizains, jūs varētu faktiski redzēt simbolus kā šis. FFF-- un patiesībā, tas ir iespējams, nav pat to. Tas ir FFFFFF. Kāds ir redzējis F s un E ir un A through-- tā izrādās, mēs runājām vakar par aiz komata, un šodien, veida aptuveni komata. Šodien mēs runājām par bināro. Izrādās, heksadecimālo ir ļoti kopēja bāze sistēma izmantot skaitļošanas. Binary ir divi, decimal ir 10, hex ir 16. Un izrādās, kā izdarīt jūs skaits heksadecimālā? Nulle, viens, divi, trīs, četri, pieci, seši, septiņi, astoņi, deviņi, ko jūs izmantojat pēc deviņiem? Kas nākamais numurs? Mēs jau izmanto nulli. Man vajag 16 no tām. Nulle, viens, divi, trīs, četri, pieci, seši, septiņi, astoņi, deviņi, jums ir nepieciešams zināms patvaļīgu konvenciju. Un ko cilvēce nolēmis kādu laiku Pirms, ka pēc deviņiem nāk burts A un pēc tam B un pēc tam C. Tātad kā jūs skaits heksadecimālā ir nulle, viens, divi, trīs, četri, pieci, seši, septiņi, astoņi, deviņi, A, B, C, D, E, F, un kas tiks skaitīta jūs visu ceļu, izrādās, 15. Tātad nulles līdz 15 ir nulle cauri F. Tagad kāpēc ir tā, ka liela? Nu, ja jums ir divi F s, tas, kā jūs izteikt 255. Tik garš stāsts īss, jo pasaule Photoshop, ka grafiskais dizains programmatūru, pasaulē web izstrāde, kur jums ir daudz krāsu, Protams, spēlēt ar, bieži programmētāji būs izteikt tiem heksadecimālā, tikai tāpēc, ka tā ir tendence būt nedaudz vienkāršāk. Kaut gan pēc pirmā acu uzmetiena tas ir daudz sarežģītāka. Tātad, jebkurā gadījumā, tas ir svarīgi jo Nick Stenfordas mums ir devis sešas gabalus funkcionalitāti ka jūs, budding programmētāji, tagad būs iespēja izmantot. Iebūvēts šo tīmeklī lapa ir sešas funkcijas, sešas procedūras, Niks rakstīja. Trīs no viņiem kļūs jums numuru, sarkans, zaļš, vai zils vērtība. Trīs no tiem noteiks šo vērtību. Un šie pasvītras ir tikai vietturi, tāpēc jums ir jāzina, kādi tie ir. Tātad ar šiem trim funkcijām, pirmā no šīm lietām gatavojas būt x-koordinātu, un otrā no minētajām lietām būs Y-koordinātu. Citiem vārdiem sakot, ko dot, kas pixel jūs vēlaties saņemt zaļā, iegūt zilā par, iegūt sarkano. Un tad šeit, tas būs x, tas būs y vērtība, un šī būs skaitlis. Tātad, pieņemsim do pirmais līnija šis kopā un tad es ņemšu atvaļinājumu jums to mēģināt secināt pārējo. Tātad par norādījumiem šajā lapā, mums ir nepieciešams palielināt sarkans ar koeficientu 10, un mums ir nepieciešams, lai novērstu zaļā un izņemiet zila. Sāksim ar pēdējo scenārijiem. Tātad, ja es gribu, un es esmu gatavojas lai izveidotu atkāpi, izmantojot dažas telpas, ja es gribu, lai uzstādītu sarkans, zaļā vai zilā vērtība, Es esmu gatavojas darīt turpmāk. Attēls, im.setBlue, un pēc tam pamatojoties uz maniem norādījumiem šeit, Kādas trīs lietas man būtu tips iekšpusē iekavās tagad? Man vajag x vērtības, y vērtība, un to, ko numurs Man būtu jāliek šeit, ja es gribu atbrīvoties zila, pamatojoties uz šo stāstu šeit? Just nulles. Ja es gribu ne zils, es esmu tikai gatavojas mainīt to uz nulli. Tagad pieņemsim tikai Atgādinājums, ko tas dara. Man šeit uz šiem augšu otrais un trešais līnijas, Man apgalvoja divas cilpas, ligzdotu cilpas, ja jums būs, ka nāksies efektu progresē no kreisās uz labo pusi, augšas uz leju pa visu no x vērtības un visi no y vērtībām. Jo atkal, aina ir tikai režģis rindu un kolonnu. Tātad tas ir gatavojas iegūt atbrīvoties no visiem zila. Ļaujiet man atstāt nākamajā rindā jums. Kā es varu atbrīvoties no visiem zaļa? Mērķauditorija: [dzirdams] DAVID Malan: Nice. Mērķauditorija: [dzirdams] DAVID Malan: Nice. Un es esmu gatavojas, lai tālinātu, un lietojiet tikai rūpēties par ka jūs esat nav izdarīts pareizrakstību. Un, ja jūs esat apmierināts ar to, ko jūs esat darījuši, iet uz priekšu un noklikšķiniet uz pogas Palaist / Saglabāt un redzēt, ko jūs saņemsiet. Un atkal, mēs esam padarījuši tikai trīs izmaiņas. Mēs svītrots ka pirmais komentēt un aizstāja to ar šīm divām līnijām kodu. Un tas ir OK, ja jums ir nepieciešams, lai sasniegtu Run / Save pogu pāris reizes noteikt kaut ko. Un ļaujiet man arī tuvinātu par manu kodu, lai jūs varētu pierakstīt. Labi. Tāpēc es redzu Andrew ir ko šķiet, ir kļūda. Viņš tikko saņēmu liels melns taisnstūris viņa ekrāna. Vai kāds cits ir liels melns taisnstūris? Mērķauditorija: Jā. DAVID Malan: Big black taisnstūris? Labi, tāpēc pieņemsim domāt par to, ko tas nozīmē. Mēs teicām, ka nulle, nulle, nulle, tāpēc nav zaļa, ne sarkana, ne zils, gatavojas sniegt jums melna. Un izrādās, ka lielākā daļa no mūsu klēpjdatorus vienkārši nav pietiekami daudz uzticību. Jūs nevar gluži pateikt tur ir tiešām kaut kas tur. Un, ja jūs veida varbūt liesās jūsu ekrāna uz priekšu un atpakaļ, varbūt jūs redzat maz kaut ko tur? Varbūt, veida, kārtot? Tas nav pilnīgi melna. Mērķauditorija: [dzirdams] DAVID Malan: Spoileris! Ir daži sarkana tur, bet atceros no specifikācijām Problēmas, Nick tonēti to uz leju. Viņš desaturated to nedaudz, bet ne visu ceļu līdz nullei. Tātad, ja mēs gribam, lai palielinātu summu sarkana, ļaujiet man ieteikt šo triku. Ļaujiet man tuvinātu mana ekrāna. Un ļaujiet man iet uz priekšu un saka summa ir vienāda ar im.getRed (x, y). Šī līnija koda dod man kaut ko sauc mainīgo. Man ir patvaļīgi, bet, varbūt, pamatoti sauc mans mainīgs, ko, acīmredzot? Summa. Tikai summa. Es varētu esam to sauca kaut ko es gribu, bet es esmu Izmantojot šo citas funkcijas ka es aprakstīts iepriekš lai iegūtu summu, sarkana x komatu y. Kāpēc man darīt? Ko jūs vēlaties darīt šeit? Jums ir nepieciešams, lai add-- Mērķauditorija: [dzirdams] DAVID Malan: Jā, varbūt reizinot to ar 10. Un, ja jūs nezināt, es esmu gatavojas iet uz priekšu un darīt to. Es iešu uz priekšu un teiksim, es gribu daudzumu sarkano Es gribu būt jebkas ir sarkans, reizes 10, un zvaigzne, zvaigznīte uz jūsu Tastatūra ir the-- neizmanto x. Izmantojiet zvaigzni. Tas ir, kā jūs reizināt lietas vairumā programmēšanas valodas. Tātad, saskaņā ar Kareem intuīcija, glabājas šajā mainīgo sauc summa, ir, cik daudz sarkano es gribu pie atrašanās XY. Kā tagad, es varu darīt, ka Pixel ir šo numuru? Jūs jau esat darījuši to pirms tam. Jūs noteikti zaļā un zilas līdz nekādas vērtības, līdz nullei. Mērķauditorija: [dzirdams] DAVID Malan: Jā, labi Jūs nevēlaties, lai 10. Jūs jau darīja math šeit. Tātad mēs kļūst vērtību sarkana, kas ir mazs skaitlis, domājams. Mēs esam reizinot izveidota ar 10. Ko jūs vēlaties darīt ar mainīgā summa tagad? Mērķauditorija: [dzirdams] DAVID Malan: Nice. Tātad im.set-- ko? Mērķauditorija: setRed. DAVID Malan: setRed pēc atrašanās XY. Jā. Un tikai summa. Citiem vārdiem sakot, mainīgs ir pagaidu vietturis ka jums var likt kaut ko vēlaties. Mēs gadās būt liekot skaits tajā brīdī. Mēs esam reizina to ar 10, lai padarītu to lielāku. Un tagad es esmu aizstājot šo mainīgo kā šo trešo argumentu, vai ievades noteikt red. Un tā, ka pēc tam, kad jums pabeigt ka, un ņemt vērā no semikoliem un iekavās. Iet uz priekšu un noklikšķiniet palaist / glābt atkal, un jums vajadzētu redzēt, maģiski, kas bija patiesībā tur. [? Arwa,?], Kas ir tur? Eifeļa tornis pilntiesīgu sarkans, ne gluži tumšs. to būtu vairāk skaidrs tagad, jā? LABI. Un Andreju, ne vairāk melnā kaste? Mērķauditorija: [dzirdams] DAVID Malan: Labi. Tāpēc es paturēšu to uz ekrāna. Ja jūs vēlaties spēlēt ar šo vēlāk, es ņemšu atjaunot šo jums. Bet šis kods šeit darīja tieši tā. Kāpēc mēs to darām vienu citu. Ļaujiet man ritiniet uz leju nedaudz. Tātad šajā gadījumā, projektoru nav īsti darīt to taisnīgumu. Bet uz saviem ekrāniem, jūs, iespējams, ir ļoti sarkans un ļoti melnā kaste. Arī tas ir puzzle, kas rāda kaut ko slavens. Tomēr, attēls ir izkropļots. Patiess tēls, šoreiz, ir in zilo un zaļo vērtībām. Taču viņi visi ir sadalīta par 20 tā vērtības ir ļoti mazi. Sarkanās vērtības ir tikai izlases numuri, troksnis. Atsaukt šos traucējumus lai atklātu patieso attēlu. Tātad Nick tad stāsta jums to, ko darīt. Uzstādīt sarkanās vērtības līdz nullei, un tad nebojā to, kas tas ir. Reizinot zilā un zaļās vērtības ar 20. Tātad, tas ir gandrīz pati programma kā iepriekš, bet jūs atpakaļgaitā procesu. Un es likšu manu kodu pirms ekrānā gadījumā vēlaties atsaukties uz to vai spēlēt tālāk ar šo vienu. Ļaujiet man tuvinātu to. Bet atrisināt vara attēlu puzzle, numurs divi. Mērķauditorija: [dzirdams] DAVID Malan: Labi, tāpēc tas viens es esmu nav gatavojas sniegt tik daudz padomus. Tāpēc es would-- oh, pieņemsim redzēt, jums ir typo šeit. Tāpēc atcerieties, tas šeit tiešām vajag iet uz turieni. Tātad, ko es varētu ierosināt, ja jūs vēlaties, lai koncentrēties uz šo vienu, tur ir atbilde. Ja vēlaties pārveidot, ka, ka vajadzētu iegūt pirmo vienu darbu. Un tad jūs varat izmantot šo kā iedvesma otrā. Nice. Labi. Un ziņkārīgs, Tas ir vienkāršs piemērs par zinātni vai mākslu sauc steganography, māksla slēpjas informāciju attēlos. Raksturīgi, attēli var būt ūdenszīmes ļoti klaji ar logotipu apakšā stūra, bet skaidri, jūs var būt daudz sarežģītākas par to, un faktiski slēpt citus attēlus Attēli kaut kā ar šo tehniku. Veikt vēl 30 sekundes, un tad mēs vismaz paziņot, ko jums vajadzētu redzēt. Un es ņemšu atvaļinājumu trešais viens kā at-home izmantošanu, Ja vēlaties vairāk izaicinājums šīs nedēļas nogalē. Un es domāju, ka Andrew varētu gotten tā pirmo reizi. Kāds ir otrais attēls, Andrew? Mērķauditorija: Brīvības statuja. DAVID Malan: Brīvības statuja būs atbilde šoreiz. Tātad vēlreiz, tikai daži vienkārši piemēri, kuras mērķis ir sniegt jums sajūtu par to, kā mēs esam tulkots ilustratīvs Scratch bloki uz vairāk kaitinošas un vairāk sarežģīts kods, bet visas idejas joprojām ir tieši tas pats, lai gan, ieviešot tagad jēdziena mainīgo, kas ir spēj uz laiku kaut ko uzglabāt. Darīsim vēl viens hands-on, tikai tagad savienot punktus lai kaut nedaudz vairāk reālās pasaules. Kad esat gatavs, ja jūs varētu doties uz šo URL uz ekrāna. Tas ir arī jūsu kopiju no slaidi, developers.google.com/maps~~V. Pieņemsim faktiski darīt kaut ko reāla, tā sakot, tīmeklī izmantojot Google Maps API, vai lietojumprogrammu programmēšanas interfeisu, šādā veidā. Google, tāpat kā daudzi uzņēmumi, nodrošina daudz brīva funkcionalitāti ka jūs varat izmantot, lai izveidotu savu pašu interesanti pieteikumi. Patiesībā, ja jūs esat kādreiz izmanto Uber iegūt kabīni vai automašīnu, jūs droši vien zināt, ka Uber ir Kartē un tas liecina automašīnas uz tā. Tas ir, cik labi vien varu pateikt, Google Maps API. Tie ir faktiski izmantojot Google kartes, bet Uber nav kartēšana kompānija, nedz arī tas var būt Īpaši interesanta problēma atrisināt virsū viņu autoserviss problēma. Un tā viņi stāv, atkal, uz pleciem citu, Google šajā gadījumā. Tāpēc viņi izmanto Google kartes, bet viņu pašu autoservisiem un citas šādas funkcijas. Tātad mēs ejam, lai izmantotu Tas darīt turpmāk. Un, ja es esmu gājusi pārāk ātri, piezvani man pār brīdi. Labprāt Atgādinājums dažiem attēla sīkumi. Jums vajadzētu redzēt sevi pie lapas, kā šis. Tātad Google jauki, un viņi starp labākajiem nodrošināt ne tikai API, bet bezmaksas API, kas jums var spēlēt ar vai izmantot komerciāli. Tie sākt maksas jums, ja jūsu lietojums ir augsts, bet es devos uz priekšu iepriekš un parakstīja mūs uz bezmaksas kontu kas, cerams, 10 datori nebūs diskvalificēt mums pēkšņi. Tik cerams, tas demonstrēšana strādās. Un paziņojums, ka viņi ir API par Android, iOS, web, un interneta pakalpojumi, kāds tas ir. Pieņemsim koncentrēties uz web. Tādēļ noklikšķiniet rozā kaste, web, un ka ļaus jums, cerams, uz lapu šeit. Un tie esam ieguvuši visu ķekars API. Un tas var būt nedaudz milzīgs sākumā, bet es ņemšu vadīt mūs caur to, ko mēs gribam. Augšējā kreisajā stūrī ir Google Maps JavaScript API, JavaScript API. Tik iet uz priekšu un noklikšķiniet, ka viens. Un, kas ļaus jums tagad uz vienu lapu, demonstrācijas un parauga kodu. Ļaujiet man zoom out šeit. Un ļaujiet man iegūt mums kuri paredzēti, ritiniet uz leju kur ir teikts, ātri starta soļi. Jūsu ekrāns būtu jāizskatās raktuves. Un tur ir divi soļi, get galvenais un sākt izstrādāt. Man jau bija vienu soli uz mums, iegūt tā saukto atslēgu. Un tas ir kopīgs ideja. API atslēga parasti tikai liels izlases numuru vai string kas jums ir paredzēts, ielīmēt savu kodu, tā ka Google zina, kas jūs esat, kad jūs izmantojat viņu pakalpojumus, savu API. Nenozīmē, ka mēs esam tiek uzlādēts neko. Un tagad, noklikšķiniet uz, nevis viens, noklikšķiniet sākt izstrādāt. Ja jūs varētu tikai vilnis mani vairāk, ja nav pārliecināts, kur mēs esam. Tātad mēs vienkārši saskrāpēt virsma, šeit, bet tas, ko Es domāju, būtu pārliecinoši ir tiešām ir mums visiem, izmantojot Cloud9 vienā logā un šī apmācība citā logā, lets faktiski saņemt mūsu pašu pieteikums izveidota un darbojas kas ieguļ pasūtījuma Google karti mūsu pašu mājas lapā, un pēc tam pievieno vienu vai divas iezīmes. Bet mēs vienkārši saskrāpēt virsma, ko mēs varam darīt. Tātad tikai ātri veselība pārbaudītu. Vai visi šajā lapā, Google Maps JavaScript API? Vajadzētu teikt iesākumam. Mēs nebrauksim, lai iet cauri viss ar jebkādiem līdzekļiem. OK, citā tab, ja jums nav ir to atvērtu, vai iedziļināties Cloud9 un iegūt sev, lai tikai jaunu tab, galu galā. Tātad vēlreiz, c9.io no vakardienas, c9.io, un vienkārši izveidot jaunu failu. Un iet uz priekšu un zvanu tas ko jūs vēlētos. I sauc raktuves map.html. Call to kaut kas beidzas ar .html. Un jums vajadzētu būt aptuveni kur es esmu šajā procesā tikai ar mirgojošu uzvednē tukšā tab sauc kaut kā map.html. Vai failu, jaunu failu šoreiz. Un tagad, vairāk nekā par Google Maps JavaScript API, mēs izlaist lasījumā caur visu šo tekstu. Bet paziņo, ka sveiki pasaule ir tiešām visur, jūs redzētu to tagad. Sveiki pasaule ir šī lielā krāsains piemērs visai ķekars HTML. Iet uz priekšu un kopēt un ielīmēt tikai to, ka HTML, tāpēc no doc veida augšpusē visu ceļu uz ciešo HTML tagu, iet priekšu un kopēt visu that-- atkal, kas ir saskaņā ar Hello pasaule example-- un ielīmēt ka jūsu cilni Cloud9, tā ka tagad jūsu ekrāns vajadzētu izskatīties aptuveni kā manējā. Un jūs varat to saglabāt, bet neievietojiet to tikai vēl. Pieņemsim vispirms apskatīt kodu un redzēt, ja mēs nevar secināt, vai mācīties no tā, kas ir Google ir bijusi mums akli kopēt un ielīmēt. Viņi vienkārši vēlas palīdzēt, burtiski, mūs sāka, bet tur nav tik daudz sarežģītība faktiski tur. Kādi jautājumi tikai vēl? Mēs esam droši virzīties uz priekšu? LABI. Tik ātri, pieņemsim tikai do daži ātri vesels saprāts pārbaudes. viena līnija, ko es redzēt, un, cerams, jūs skat, ko tas nozīmē, DOCTYPE HTML? Kareem, atgādināt? Mērķauditorija: [dzirdams] DAVID Malan: Jā. Šeit nāk HTML 5. Tikmēr līnija divi uz ekrāns šeit nozīmē Hei pārlūku, šeit nāk faktisko HTML. Trīs Line ir hey pārlūku, šeit nāk galva. četri līnija ir, protams, hey pārlūku, šeit nāk titulu. Kāda līnija pieci darīt? Faktiski, tas nav patiešām kaut ko par mums. Šajā gadījumā, tas tikai maina lapa ar noklusējuma. seši Line, mēs neesam runājuši par, bet tas norāda rakstzīmju kodējumu. Ir dažādi veidi, lai šifrēt failus, jo īpaši attiecībā uz svešvalodu. UTF-8 vienkārši mēdz būt noklusējuma. Tāpēc tagad mēs redzēsim rindā septiņi pa 16, daži CSS. Un, pat ja mēs esam nav redzējuši visas šīs lietas, pirms, mēs varam veida secināt. Tātad līnija astoņas līdzekļus, hey pārlūku, jāpiemēro visas šīs īpašības, uz kuriem diviem tagiem, acīmredzot? HTML un pamattekstu. Tātad komats ir jauna lieta tur. Un tas ir tikai veids, kā precizējot vairākus tagus uzreiz. Tad mēs esam ieguvuši cirtaini lencēm. Tātad acīmredzot, šī stāsta pārlūku, padarīt augstumu lapas 100%. Tātad, pat tad, ja tur ir ļoti maz saturs, veikt visu lapu, padarīt lieta aizpildītu lapu. Padarīt karti visbeidzot aizpildītu lapu. Starpība, ko tas nozīmē? Tas ir parasti, piemēram, patvaļīgi balta telpa ap malām ka daži pārlūkprogramma dizainers tikko nolēma būtu tur, jo tas veida padara lietas izskatās tīrāka. Bet mēs negribam, ka. Mēs vēlamies, lai karti notiek visu ceļu malām. Polsterējums, līdzīgs garā uz robežas. Starpība nozīmē ārpus, polsterējums līdzekļus iekšā, bet tā ir tāda paša veida darījumu. Tas ir mazliet buferis starp jums un malām. Un tad līnija 13 ir labs iespēja ātri pārskatīt. Kāda asu zīmi karti domāju, vai hashtag karti nozīmē? Ko tas attiecas uz principā? Mērķauditorija: [dzirdams] DAVID Malan: Tieši tā. Šis īpašums, šis īpašums CSS piemērojams tikai viena lieta, HTML tagu ka ir ID citātu, likt pēdiņas beigās "karte". Un tagad pieņemsim ātri uz priekšu, ritiniet uz leju, lai apakšā failu, kas nav pārāk tālu, un paziņojums tiešsaistē 19, ja jūs ielīmējiet to tieši tāpat kā es darīju, līnija 19 ir tikai viena div, kas ir dalīšana lapas, kas vakar I sauc taisnstūra reģions. Tas ir ieguvuši neko tajā. Tas ir atvērts tag, tuvu tag. Bet tas ir unikāls ID. Tātad, kas, šķiet, ir notiek šeit ir Google ir gatavojot mūsu mājas lapu ir pilnīga 100% augstumu, un nav polsterējums, nav starpības, jo ko mēs ejam, lai likt iekšā Šī div, kuras unikālais ID ir karte, ir faktiskā iegulto karti. Un mēs gribam, lai aizpildītu lapa un ne tikai būt dažas nelielas taisnstūris vidū. Tātad line 14 līdzīgi uzsver, tad karti pati jābūt augstumu 100%. Tāpēc tagad paziņojums starp 20 līnijām un 28, tas ir JavaScript kods. Un tas ir, pat ja tas ir sintaktiski mazliet dīvaini, tur nav tik daudz kas notiek šeit. Atbilstoši 21, tas tiek deklarējot kaut ko sauc mainīgo. Tā vietā, aicinot to summas, tāpat kā mēs to darījām agrāk, mēs precīzāk sakot Var, kas nozīmē tikai mainīgo. Mēs būtu varējuši izmantot, ka Nika kods, bet viņš nav, tāpēc es nav apnikt to dara vai nu. Tas ir mainīgs sauc karti, un tad tur ir funkcija, kas ir acīmredzot sauc initMap. Tātad tas ir kā mūsu pašu pasūtījuma puzzle gabals nulles. Esam izveidojuši gabals funkcionalitāti sauc initMap, un jūs varat veida secināt kas te notiek. Kreisajā pusē, mēs esam ieguvuši mainīgo, tāpēc mēs esam gatavojas likt sekojošo lieta iekšā, ka mainīgo, no labās uz kreiso pusi. Labajā pusē saka, hey pārlūku, dod man jaunu Google karti. Un google.maps.map ir tikai bailīgs veids par norādot, ka šo funkciju pieder Google Maps. Pēc iekavās, mēs esam redzējuši šo pirms, hey pārlūku, get me elementi lapā, tad tag lapā kuras unikālais ID is-- Mērķauditorija: [dzirdams] DAVID Malan: --map. Un kas notiek, labi, šī līnija kopā, līnija 23, būtībā sakot, hey pārlūks, iet saņemt mani ka tukša div lapā kuras unikālais ID karte, jo es gribu ievietot uz it-- injicēt tajā, ja jūs will-- visu ķekars saturu kas notiek, nāk no interneta, pēc tam. Un Google dara visu, kas mums. Tātad vēlreiz, pašās beigās, dienā, mums ir šī piemērs abstrakcijas. Man nav ne jausmas, kas karte ir vai to, kā īstenot karti API. Mums nav nepieciešams. Mums vienkārši nepieciešams, lai pastāstītu karti kur likt sevi, un atstājiet tās pamatā īstenošana detaļas Google. Tagad ir acīmredzami divi gabali datu ka šis piemērs ir nodrošinot, lai Google API. Acīmredzot kartes centrā, un tālummaiņas līmeni, lai runāt. Un vai kāds atzīst šos koordinātas, platuma un garuma? Droši vien nav, bet mēs varam doties atpakaļ uz apmācība, burtiski redzēt. Bet mēs redzēsim to tikai brīdi. Zoom līmenis ir vērtība starp, man nav zināt, vienu 13 vai kaut kas tamlīdzīgs. Tā vienkārši ir jādara ar cik tālu jūs esat pietuvināto vai ārā, un tas arī viss. Un tagad pašās beigās lapa, paziņojums līnija 29-- tas ir nedaudz neglīts, jo tas wraps-- šo rindiņu kodu ir tas, kas lejupielādes uz pārlūks Google faktisko API. Visu kodu, kas Google inženieri ir rakstīts, ka jāīsteno Visa šī īpašība embeddable kartēm. Tagad neko nemaina. Ja jūs pēc kopā, iet uz priekšu un vienkārši saglabājiet šo failu, ja jums patiešām ir kas man ir. Dodieties uz savu URL. Jūs varat noklikšķināt uz pogas Palaist up augšu un kas pateiks Jums URL jūsu tīmekļa servera vēlreiz. Un tas novedīs jūs uz jaunu cilni. Ja jūs noklikšķiniet uz Atvērt, lai map.html, un izredzes ir jūs esat gatavojas saņemt brīdinājumu, kļūdas ziņojums, jā? Kļūdas ziņojums, kļūdas paziņojums? Tātad diemžēl kļūda ziņa nav tik informēts ja vien jūs tiešām atvērt konsole, ka īpaša tab mums tur atverot vakar un nedaudz agrāk šodien. Bet es stumbled pāri tas agrāk, tāpēc es jau sapratu, ko risinājums ir. Šodienas slaidiem, vai Drīzāk, Cloud9, paziņojums ka mēs nedarīja kaut kas apzināti. Ievērojiet, ka šis skripts tag līnija 29, ja jūs lasīt caur to, tas ir tāpat kā maps.googleapis.com/~~pobj kaut kas, kaut ko, kaut ko, tad pamanīt kādu, viens no izstrādātājiem, rakstīja visās kapitālā burti, jūsu API atslēga. Mums ir nepieciešams, lai ielīmētu kaut ko tur. Un tas bija solis Es darīju mums pirms, un atkal viņi varētu melnajam sarakstam mums, ja pēkšņi, 12 vai vairāk no mums sākt izmantot to pašu atslēgu, bet pieņemsim redzēt, kas notiek. Tātad, ja jūs iedziļināties mūsdienu slaidi, viens slaidu vēlāk, tur ir Šis ļoti bailīgs izskata virkne tekstu. Iet uz priekšu un tikai kopija, kas un ielīmējiet to, kur ir teikts jūsu API atslēgu. Tas ir viens es pierakstījies. Un noteikti nemēģiniet ierakstot to ar rokām, jo tā uzskata pilns ar typos, potenciāli. Tik vienkārši kopēt un ielīmēt to. Un tas notiek, lai līniju ilgāk, bet tagad, tikai, lai būtu skaidrs, tas izskatās mazliet vairāk kā šis, kur galvenais ir vienāds nav kapitalizēti kliedza pie jums. Saglabājiet savu lapu, iet atpakaļ ar citu cilni, papildināšanas, un ceram redzēt karti, kur? Mērķauditorija: Australia. DAVID Malan: Austrālija. Tātad acīmredzot tie ir GPS koordinātas Austrālijā. Un ļaujiet man iet apkārt tikai brīdi un palīdzēt ikvienam, kurš nav gluži tur, bet ļaujiet man ieteikt, izmantojot Google, atrast GPS koordinātas savā dzimtajā vai savu mītnes zemi. Un, iespējams, Google var pārvērst šo uz augšu, vai Wikipedia var pateikt. Bet izvēlēties divas dažādas vērtības uz platuma un garuma, iet atpakaļ un ielīmēt tos, un tad pārlādēt lapu pēc glābšanas un redzēt, ja jūs varat būt karti par savu dzimto pilsētu. Un, kad esat pabeidzis ar ka, pēcpārbaudes challenge-- un es došu nedaudz mazāk virzienu, apzināti, tā ka jūs apzināti ir cīnīties par pāris minūtes ar dokumentāciju, mainīt karti, lai būtu ne šis cartoonish noklusējuma, bet satelītu karte. Tātad jūs faktiski redzēt satelītu tēlainība vietā diezgan krāsas. Un mājienu es došu jums ir mainīt kartes s veidu. Iet atpakaļ uz, ka kļūst sāka lapu iedvesmu. Kā Jums var būt gūta, Ja jūs meklējat, tur ir tik daudz vairāk lietas jūs varat darīt. Daži no jums ir jau mainīja kartes veidu. Bet jūs varat do-- piemēram, ļaujiet man iet uz kaut ko mums bija par kursu Es teach-- maps.cs50.net. Viens no mūsu undergrads izdarīja. Mēs centrēt savu karti pār Harvard pagalmā un pārklāt visu šo ēku nosaukumi, un mums bija viņam pievienot šo. Tātad, ja es gribu, lai meklētu, piemēram, Matthews Hall, mums ir maz nolaižamo izvēlni. Un es domāju, ka viņš ir, izmantojot bootstrap, ka bibliotēka mēs apspriests agrāk par to. Un, ja jūs noklikšķiniet uz Matthews Hall, tā uzreiz lec karti uz noteiktu atrašanās vietu, un tas liecina, jūs attēlu šajā maz pop-up. Bet pat tas maz pop-up, mēs neīstenoja. Ja es ritiniet uz leju mūsu iegūt sākās lapu un meklēt info logiem, Jūs redzēsiet, ka daži no funkcionalitāte jums sev var pievienot, lai gan nedaudz vairāk sarežģītība, ir kaut kas ko sauc par informācijas logs. Un, ja es noklikšķiniet uz piemēru šeit, un tas ir tas, kas ir jautri, jūs varat darīt lietas, piemēram, tas, uzklikšķinot uz marķieri, un pēc tam voila, informācija NOP augšu. Tātad mēs neesam gluži ieviesušas pietiekami iezīmes JavaScript uzzīmēt zīmējumu, kā tieši Jums varētu stieples visu šo stuff kopā, bet mēs esam sava veida scratched virsmas. Patiesībā, tas, ko es tikko darīju, kad Es noklikšķinājis uz šo marķieri, tika izraisot notikums, tā aicināja klikšķi notikumu. Un mēs tiešām redzēju notikums agrāk šodien, tā sauktais iesniegt notikumu, kad mēs bijām novēršot lietotājs no meklē kaķiem. Tātad, mēs esam sava veida noplūktiem un choosed No starp visiem šiem dažādas funkcijas, lai dotu jums sajūtu, cerams, par to, ko jūs faktiski var darīt ar nedaudz vairāk komforts plānošanā, un pilnīgi bezmaksas resursi. Kādi jautājumi? Nē? Šis ir jūsu gala iespēja, Vismaz šodien, piektdienā, lai saņemtu kaut pie jūsu krūtīm lai jūs iet no šejienes sajūta pārliecināti un ērti. Jā. Mērķauditorija: Kāpēc ne Pievienojot vēl viena lieta? DAVID Malan: Ak mans Dievs. Man vajag, lai atpūstos šīs nedēļas nogalē, es domāju. Citi jautājumi? Mērķauditorija: [dzirdams] DAVID Malan: Tu can-- in Internet Explorer, atpūta mierā, jūs izmantojāt, lai varētu likt VB Skripts, virtuālā pamata skriptu, bet tas tiešām nekad nozvejotas. Tik īsā atbilde ir tikai JavaScript. Citi jautājumi? Labi, labi, ļaujiet man darīt. Ļaujiet man paķert kolēģiem ārpus. Viņiem ir daži novērtējumu formas, ka viņi vēlas ikvienam pavadīt dažas minūtes aizpildot. Viņi vēlas, lai savāktu šo veidlapu, un jebkurš atbrīvojumi, ka Jums varētu būt ārpus. Tie būs arī sertifikātus. Es esmu guessing tur vēl dažas uzkodas ārpus. Ļaujiet man iet tiem ārā, un, ja jūs ir kādi jautājumi par to laiku, Es staigāt apkārt vairāk individuāli un mēs varam iegūt jums sākusies. Jā, protams. Mērķauditorija: [dzirdams] DAVID Malan: Tas ir parasti taisnība šajās dienās. Protams ar web programmatūra, jums ir tieksme uz citiem, tu esi vai nu estētiski izmantojot lietas tāpat sāknēšanas, tāpēc jums nav ir īstenot zems ziņas par izvēlnēm un pogas un viss kas. Jūs atspiedies uz kādu piemēram, Google, lai jums nav veidot Uber biznesa un kartēšana bizness, un neierobežotu skaitu līdzīgs pieteikumi, kā arī. Patiesībā, logins ir populārs, too. Ja jūs esat izmantojis Spotify vai jebkurš vairākas mājas lapas, jūs pieteikties uz dažām mājas lapas, izmantojot Facebook. Tātad, kas ir jauki, tur ir API autorizācijas mūsdienās, tā ka jums nav lai jūsu pašu lietotāju tabula un visu savu datu bāzi katrā ziņā tādā pašā mērā. Jūs varat ļaut Facebook darīt visu Minētās sarežģītības jums. Tātad, tas ir aizraujošs laiks, godīgi, plānošanā, jo tur ir tik daudz trešā persona pakalpojumus, ka jūs varat veidot virsū. Un atkal, cena, ko maksāt, ir nu finanšu vai dīkstāves. Ja Google iet uz leju, tā nav Uber, varbūt, bet varbūt tas ir saprātīgs kompromiss. Un atkal, tas bija viens no tematiem, cerams, par pēdējo pāris dienu laikā, ir šie kompromisi. Un reti ir tur notiek būt pareizā atbilde. Tā patiešām ir labāk no divām vai vairākām atbildēm. Iet tiem apkārt. Un šie Cloud9 konti turpināsies strādāt, teorētiski, uz mūžīgiem laikiem. Jūs varētu atrast, ja jūs gaidāt dažas dienas vai nedēļu vai vairāk, lai pieteiktos atpakaļ tiem, tas varētu veikt, piemēram, vienu vai piecas minūtes, lai atvērtu atpakaļ uz augšu, bet tas ir tikai tāpēc, ka viņi iegulda tā gulēt ietaupīt uz resursiem.