DAVID Malan: Dobro, mi smo nazaj. Torej za razburljivo Ugotovitev, naš zadnji odsek na spletni programiranja, ki I misel bi uporabljamo kot splošni izraz ujeti nekaj preostale teme. Tako da ob koncu dan, bomo dejansko storili malo hands-on spletno programiranje z jezikom, ki se imenuje JavaScript. In mislim, da bomo ogledali na nekaj povezane s slikami in odkrivanje nekaj skrivaj skrit v sliki, in prav tako si oglejte Google Maps API, programiranje aplikacija vmesnik, kot nekaj Predstavnik tipa opreme to je vse bolj in prosto na voljo danes. Toda zakaj ne pogledamo na sestavine v svetu da smo nekako že pri čemer za samoumevno obstaja za nekaj časa, baze podatkov. V zadnjem dnevu in pol smo domnevati, da imamo dostop do baze podatkov, vendar kakšno težavo ima podatkovna baza rešiti? Kaj počne za nas? Kaj je to? OBČINSTVO: [neslišno] DAVID Malan: Drži vse informacije, OK, in katere vrste informacij bi si dal v njem? OBČINSTVO: [neslišno] DAVID Malan: Vse informacije si dal v njem, boste dobili nazaj. To je res. In tipično spletno stran ali spletni Vloga, katere vrste informacij, Natančneje, bi si dal noter? OBČINSTVO: [neslišno] DAVID Malan: Uporabniki. Torej, kaj je uporabnik? OBČINSTVO: [neslišno] DAVID Malan: OK, registrirana Uporabnik spletne strani. In kaj to pomeni, da Podatki uporabniki shranijo? Kaj sestavlja uporabnika? Uporabnik ima kaj? OBČINSTVO: [neslišno] DAVID Malan: Ja, osebna podatkov, in to mi je všeč. Bodimo bolj natančni. Torej, uporabnik ima običajno ime, Kaj drugega bi lahko uporabnik? OBČINSTVO: [neslišno] DAVID Malan: An addr-- OK, tako ime, priimek. To je dobro. Pravzaprav, kaj je popraviti da, ker bo odpreti možnost za razprava, še dodatno. Ime, priimek, spol. ID je neke vrste. Kaj drugega? Nekaj ​​sem še slišal, preveč. E-poštni, poštni naslov. Torej, kaj je premor tam in zdaj menijo, ni tisto, kar smo shranjevanje v bazo podatkov, ampak-- in ne zato, ker je morda očitno, da ko enkrat registrirati uporabnika, jih želite zapomniti nekaj časa. Ga ne želijo samo shranjeni v RAM in se tako forgotten-- pa se osredotočajo na izkušnjah. Izkazalo se je, da je v svet podatkovnih baz, tam je vsaj dve vrsti teh dneh. Nekaj ​​imenuje SQL baze podatkov, Structured Query Language, ali Cutely imenom, NoSQL, ki ni SQL. In slednje je primer tega, kar bi lahko se imenuje objektno usmerjen, ali predmet, trgovina, baza podatkov ki hrani predmete, in ne izgovor mi, saj bomo kmalu videli, vrstice. Torej, mi pa bomo za trenutek na Prvi izmed njih, in sicer SQL baze podatkov, če samo zato, ker je tako znano že vsakomur ki je uporabil Excel ali Google listi ali Apple Številke ali katerikoli standardni preglednice program ali enakovredno, ali več Sofistikovano, nekaj podobnega Microsoft Dostop ali Oracle ali MySQL ali PostgreSQL, ki so vsi so imena izdelkov za izvedb na naslednji ideji. Relacijska podatkovna baza je preprosto nekaj, kar ima stolpce in vrstice. In vrsticah in stolpcih, Sem dobesedno pomeni nekaj kot je ta, tako da če bomo morda imajo ime polja in svoje vrste več tukaj. In dejansko, naj me zdaj začel na zemljevid ti. Torej v resnici, ne vem Zato sem narisal ločeno tabelo. Recimo, da ta preprosta. Imamo prav tu Začetki naši mizi, kjer To je ime polja in to je vrsta podatkov in po vrsti mislim na naslednje. Je število, je niz, kratek niz kot besedo, je to točka, je binarnih podatkov, kot je na sliki? In kaj je samo draži to razen za trenutek. Torej ime, številka, niz, velik kos text-- OBČINSTVO: [neslišno] DAVID Malan: Ja, tako niz. In v okviru zbirke podatkov, bomo običajno imenujemo char polje. Bom rekel, char za zdaj, ampak smo bo to natančneje v trenutku. Polje značaj. Priimek je verjetno enako. Spol? Moški ali ženska, da ji je lahko polje char. To je lahko bodisi ponudbo, konec citata "Moški" ali citiram, konec citata "ženska" ali bi bilo m ali f. Če želite biti bolj vključujoč, boste morda morali tretjo vrednost ali neka druga področja v celoti. In tako lahko uporabite: diplomska naloga. Polje se lahko imenuje moški, in potem bi lahko rekli, resnična ali neresnična. Vendar ne nujno zajame vse informacije, ki jih morda želeli. Tako se izkaže, da je še ena vrsta polja, ki so lahko koristni V tipični podatkovni bazi, ki se imenuje enum, kjer je polje znakov, vendar pa, oblikovalec, priti do našteti možne vrednosti, kot citat, konec citata "moški", citiram, konec citata "ženska" in tako naprej. Tako, da ne glede na vrednost je v svoji zbirki podatkov, je v resnici temelji na značaj, vendar da mora biti eden od teh vrednosti. Verjetno, ne bi želeli enum za prvo ime ali priimek. V nasprotnem primeru bi morali našteti, kot ime izhaja iz dobesedno vsak mogoče ime in priimek. OK, tako da ID kaj mora ID biti? Ja, tako da morda več. Torej, kaj je s palico da za zdaj, številka. In glede na število, število je malo preširoka zdaj. Za konec drugega dan, počutim se kot mi bi moral biti malo bolj natančen. Število bi lahko pomenilo kot, da bi lahko nekaj podobnega 1,236. In to je verjetno ne kaj mislimo z ID. Kaj verjetno pomeni z ID? OBČINSTVO: [neslišno] DAVID Malan: Oh, v redu, tako da Mogoče pa sploh ni številka. Mogoče je dejansko edinstven identifikator To je niz, kot uporabniško ime. Tako popolnoma, bi lahko bilo. Mislim, da je nekdo verjetno pomenilo številčna, čeprav. Torej ostanimo pri tem. Kakšno številko? Kaj je bolj precise-- celo število. Tako število kot je 0, 1, 2, 3, tako da pokličem to število. In tudi takrat, sem lahko se nitpicking, da je ni res samo splošno število hočeš. Verjetno ne želite negativne vrednosti, samo zato, ker je samo meni čudno. Verjetno želite pozitivna cela števila. Tako lahko tudi izrazi da v bazi podatkov, vendar za zdaj, bomo rekli celo število. E-naslov? To je verjetno samo-- kaj? OBČINSTVO: [neslišno] DAVID Malan: To je e-pošta, ampak to je znakov, kajne? Treba ga je le funky značaj kot pod "na" simbol ali kaj drugega, vendar je še vedno polje znakov. In poštni naslov? Polje značaj. Torej, to je lep začetek, vendar bodimo malo bolj natančno zdaj. Tako se izkaže, da je v podatkovna baza, ki jih pogosto imajo izbiro nad bolj rafinirano različice teh stvari. V resnici, v tipični SQL baze podatkov, SQL, ali bolj na splošno, relacijske baze podatkov, podatkovne baze z vrstami in stebri, ki jih pogosto dobili določiti ne le tip field-- dovolite mi, da nekaj prostora here-- ampak tudi dolžina. Torej, kako dolgo je ime? Mislim, D-A-V-I-D. OK, dobil sem Verjetno je užaljen kot polovico ljudi v sobi, desno, ker so vaša imena več kot pet pisma, tako da pet zdi malo sebičen in naivna, kaj je boljša vrednost? 10, vse v redu, in mislim, da smo OK v sobi. 13? 30? Zakaj ne vzemite pristop prej, ko smo so govorili o nizi in spomina? Zakaj ne rečem kot 1000? Nihče ime se dogaja daljše od 1.000. Porini nazaj. OBČINSTVO: [neslišno] DAVID Malan: Ja, to je potratno, desno, še posebej če je večina imen le pet ali 10 ali 15 znakov, da je zelo potratna. Torej, veste kaj? To je vrsta trdega vprašanje. Sedaj lahko zagotovo analizirali English in imena kateri koli drug jezik je in ugotoviti, no, kaj je average-- povprečju v resnici ne pomaga us-- kaj je max verjetno tisto, kar si resnično želimo. Vendar se izkaže, smo celo nekateri Izbira po tipu tukaj. V tipični SQL baze podatkov, ki jih so nekaj, kar ti char polje in tudi varchar, V-A-R, za spremenljivko char. In razlika je ta. Char polje, ki jih oblikovalec, navesti vnaprej natančna dolžina polja. Tako da morda prvo ime kot 20 počuti nekako varno. Morda morali narediti nekaj Googlanjem za vidim, če je to dovolj dejansko varen. Verjetno ime z 21 znakov, vendar za zdaj, domnevam 20 je varna. Polje char bi pomenilo v bazi podatkov, ki vas so s pomočjo 20 in vedno 20 znakov. Zdaj če je samo D-A-V-I-D, 15 tistih šele bo praznih znakov, vendar ste še vedno uporabljajo vseh 20 bajtov. Polje varchar, nasprotno, pomeni Niz mora biti največ 20 znakov če pa je samo pet, boš samo za uporabo pet, morda šest za Posebno vrednost na koncu kot tisti 0 smo se pogovarjali, da označuje konec značaja zaporedje v pomnilniku. Torej, če misliš lahko izberete char versus varchar, glede na to, da je kompromis? Char uporablja, da je veliko znakov, varchar uporablja največ tem veliko znakov. OBČINSTVO: [neslišno] DAVID Malan: OK, ko veš dolžina niza zelo prepričljivi samo uporabo char, ker če ti to veš, samo odložil. In morda je to res za zadrgo koda, v ZDA, vsaj 02.138, to je vedno bo pet znakov, dokler ne dodate pomišljaj štiri. A morda nekaj vrednosti za katerih boste vedno vedeli, koliko. Ali pa morda državni simboli, kot NY za New York, in MA za Massachusetts v ZDA. Mogoče si pa obstaja nekaj situacij kjer je to povsem smiselno, vendar s to logiko, zakaj so smo celo overthinking to? Zakaj ne bi samo uporabo varchar in potem bom samo Vedno uporabljajte dve osebi vseeno, ali Vedno uporabljajte nekako pet znakov? Zakaj ne samo shranite varchar za vse, ki jih to logiko? Obstajati mora ulov. OBČINSTVO: [neslišno] DAVID Malan: Bi napisati nekaj narobe. Tako, da je res. Toda tudi takrat, ne morejo uporabiti več pomnilnika, kot sem dodeliti. Še vedno imam končno pravijo po dolžini, tako da se ne more po nesreči, da da je napaka, ampak je dobra misel. To je bolj subtilno, ampak to je zelo povezano za našo razpravo, pravzaprav, nizi in povezane sezname prej. Izkazalo se je, da je v zbirki podatkov, če ve, da so vse vrednosti fiksne dolžine, četudi nekatere od teh vrednot so prazni, nekako estetsko prazno, D-A-V-I-D in nato 15 prazne, se izkaže, da če vsak polje je enake dolžine, podobno matriko imel vse svoje stvari nazaj nazaj nazaj nazaj, tako da si lahko samo plus 1, da bi dobili na naslednjo vrednost, enako zamisel v tabeli zbirke podatkov. Če vse svoje značaja strune so enake dolžine, imate, kar se imenuje bralno-pisalnega. Če so vsi nizi izmed dolžina 20, vam ne le storiti plus 1 si naredil plus 20, plus 20 plus 20 plus 20, in se lahko zelo hitro pomikate ali iskanje po vseh vaših podatkov. Spremenljivka char polje, nasprotno, nima vedno 20 znakov. Morda imajo 20 in nato 15 in 19, nato 10, in tako da, če želite iskati skozi njo, ne moreš samo slepo dodamo 20 bajtov, da pridete do naslednjega. Vi dobesedno iskanje po ker rob strukture podatkov, če hočete, je raztrgan. Nekako gre noter in ven, ki temelji na dejanski dolžini niza. Torej, ko veš, koliko, kot Kareem pravi, uporabite polje char, ker boste pridobili, da izkoristek pri čemer lahko iščete po njem hitreje ko iščete podatke, drugače uporabiti spremenljivko. Na žalost nimam dober odgovor kako dolgo bi morala biti ime, ampak za kaj takega ime, bi rekel varchar je skupna ker to ne bo da je določene dolžine za vsakogar. 20, ne vem, 20 meni malo tesen. Recimo, da 50, 50. To ni res stalo, da veliko več za povedati 50 namesto 40, ampak na neki točki, morate da bi sodbo klic. Zelo pogosto, odkrito povedano, za [? zgodovinski?] razlogov, čeprav je pretirana, se pravi 255, ker nekaj časa nazaj, v priljubljenih podatkovnih baz, kot so MySQL, brezplačno odprto orodje source da veliko podjetij kot tudi Facebook uporablja, To je bila največja privzeta tako da ljudje šel z njo. Torej ni nerazumna, vendar bomo uporabite malo več intuicijo in pravijo, seveda 50, ki je verjetno malo pretirana. Spol, delam kot ENUM, in tako smo lahko zato našteti moški ali ženska, ali morda bolj učinkovito, m ali f ali kakšno drugo simbolika, vendar enum počuti kot dobra izbira tam. Da ne bo pomote, spol bi biti samo varchar, in smo lahko le vsi Strinjate se, kot lepe ljudi, da vedno dajo enake vrednote tam. Moški ali ženska ali malenkosti. Ampak problem pa je, da smo lahko zmotite, kot [neslišno] predlagala prej v drugačnem kontekstu. Če naredimo napako, bi lahko dobili nepravilne vrednosti v naši bazi podatkov. Torej, kaj je lepo o bazah podatkov kot so Oracle in MySQL in drugi, je, da imate ta zadnja plast za obrambo, kjer je skrbnik DBA, podatkovne baze, kdor je oblikovanje te tabele kot mi so verbalno, bi dal v mestu oštevilčevanja, ki ščiti proti temu z določitvijo moški, ženski, in zato nihče še ni programer lahko po nesreči vstavite katerokoli drugo vrednost. Torej bi bila to dobra stvar. To je funkcija. Torej ID-ja, ob predpostavki, številski ID tako, Verjetno bi moral biti pozitivno celo število. In včasih imajo priložnost za razpravo dolžino. Saj ne bi ponavadi navedite številko tukaj, bi namesto tega opredeliti To je int ali velike int kot oni običajno imenujemo. Vendar je običajno, celo bi, recimo, 4 bajte. In če je 4 bajte, to je, koliko bitov? OBČINSTVO: [neslišno] DAVID Malan: 32 bitov. Torej koliko uporabnikov lahko imamo v Naša baza podatkov, če imajo vsi ID in ta ID mora biti edinstven? 32 bitov pomeni imamo vzorce enega, dva, tri, štiri, five-- Torej, kako veliko različnih vzorcev ničel in tisti, lahko imate, če obstajajo 32? To je isto, kot sprašuje, kaj je dva do 32? To je velika številka, ki Ne morem kar priti prav, vendar vem, da je približno 4 milijarde. Torej to pomeni, da vaša podatkovna baza miza lahko imajo štiri milijarde uporabnikov, in to je to. Torej, to je zanimivo Zasnova posledice. Dostojno število podjetij so se odločili, morda ne toliko za svoje uporabnike mizo, saj ima 4 milijarde uporabnikov je redek problem. To je neke vrste Facebook slog Problem, ni tipična težava družbe. Ampak mogoče, če imate transakcijskih dnevnikov ali nekatere vrste podatkov, ki se nenehno dobi zapisana v zbirko podatkov da bi nujno morali milijarde in milijarde vrstic in uporabite celo za to, kaj se bo takoj, ko se zgodi dobiš na vrstico številka 4 milijarde in nato poskusite vstavite 4000000000. in 1, tako rekoč? Sem poenostavitev številke malo. Lahko zmanjšati, ti pomeni morali ravnati nekako. In kaj bi računalnik običajno stori, pomislim tudi iz tega jutra, če imate 4-bitno vrednost kot 1, 1, 1, 1, ki je Samo tie jutro skupaj popoldne, kaj pa ta številka predstavlja v binarno? OK, bomo lažje. Kaj to številko predstavlja v binarno? OK, bomo lažje, kaj ali to predstavlja v binarno? OBČINSTVO: Tri. DAVID Malan: Tri, ker imamo tiste column-- [SMEH] Uh! Imeli smo stolpec Ones in stolpec dvojke. Torej domnevam, da je res, naši [? Parcela?] ni bilo 32 bitov, vendar pa sta bili dve bitov, smo lahko štetje od uporabnika številke 0, 1, 2, 3, in potem smo nekako nazaj na uporabnika 00 znova. Torej, to je tisto, kar se običajno zgodi. Če ste kdaj slišali expression-- verjetno ne, če pa have-- celo overflow, kjer vas da lahkota vse svoje bitov da so največje možne vrednosti, in potem ste iz bitov, kaj bi se običajno zgodi? Zakaj pravim 00? No, to je tri. Kako predstavljajo 4? Kako se predstavljajo za številko 4 v binarno? OBČINSTVO: [neslišno] DAVID Malan: One-- ja, Ne pravim, 100 per se, ker ima narobe konotacija, vendar 1-0-0. Tako da število 1-0-0 je dejansko pravilno, če pa imate samo dva bita, kaj si zares narediti? Ki ste jih prenesli na 00. In res, da je tisto, kar se bo zgodilo. Pravzaprav, si lahko zamislite O tem bolj znana. Če se spomnite, kaj, Pred 16 leti je svet naj bi na koncu, ko problem Y2K zgodilo. Zakaj je bilo to? No večina računalnikov, za razumne odločitve, so shranjevanje številke, kot je leto 1975 ali leto 1999 ki jih samo z dvema številkama v pomnilniku računalnika. Zato seveda, kaj se zgodi ko prideš do leta 2000, greš na to, ali bolje, ja. Torej greš na leto 2000, vendar če si le z dvema številkama, da izgleda kot leto 00 in tako ste prenesli. In zato veliko sistemov je bilo treba posodobiti v tistem času. Torej s tem je dejal, podjetja kot Facebook teči navzgor proti temu. Torej je edini način za ravnanje z Razmere, odkrito povedano, je, da ga pričakuje. Ali najčistejši način tej situaciji je, da pričakujemo, da jih ne morali spremeniti kasneje. Torej, namesto 8 bajtov, veš kaj? Bom, da bo napredna Tukaj, čeprav je malo optimistični, da bomo imeli 4 milijarde in 1 uporabniki na naši spletni strani. Ampak kaj je samo uporabiti 8 bajtov ali 64 bitov, ki bi na splošno imenovano veliko celo število, zelo tehnično. In to samo pomeni, da imajo lahko še več številk v vašo številko. Toda to je pomembno Odločitev design, ker če izberete številko, ki ima premalo bitov izraznosti bi ga lahko dejansko ustvarijo napaka v programski opremi. Vse je v redu, tako da je zavil z e-pošto in poštni naslov. Torej, e-pošta, dolgo naj bi kako e-poštni naslov je? 50. Res nimam pojma, vendar je Verjetno nekaj takega, ker drugače nihče ne bo pišete, če postane predolg, tako da 50, gremo z njim za zdaj. Poštni naslov, kako dolgo naj bi to bilo? OBČINSTVO: [neslišno] DAVID Malan: To ni Samo poštna številka, čeprav. Poštni naslov, sem slišal. Torej, to je kot 1 Brattle Square, vejica, Cambridge Mass., z vejico, 02.138. In v resnici, mi samo potegnite se malo listu tukaj. To se počuti, kot da je zamujena priložnost. Če imamo 1 Brattle trg, vejica, Cambridge MA 02138, Počutim se, kot smo lahko še boljši kot le poštni naslov. Zakaj ne raznese to malo? Kaj sem že pri? Kaj bi morali namesto tega za naše vrstic tukaj, morda? OBČINSTVO: [neslišno] DAVID Malan: Ja, tako da je pravijo street_number, in spodnja je samo skupni način ob Izgleda prostor, vendar to ni, pravzaprav. Ulica, nato pa city-- žal? OBČINSTVO: [neslišno] DAVID Malan: Lahko bi to naredil. Prva vrstica, vrstica. Zakaj ne bo vodila preprosto za zdaj, ampak to je absolutno sprejemljiva odločitev. In potem država, in potem pa se malo US-centric za zdaj in pač poštno številko, samo zato, ker to bo privedlo do zanimive napako ali problem tukaj. Torej domnevam, da je zdaj naš naslov. To je malo bolj siten, da imamo vse te več področij, zdaj pa lahko označite stvari malo bolje. Zdaj hišna številka verjetno ne bi smela biti znak, če bi bilo? Kaj naj bi bilo? OBČINSTVO: [neslišno] DAVID Malan: Mogoče, število kot spet celo število? Veliko število? Verjetno ne živi na 4 milijarde Main Street ali kaj noro všeč. Tako celo verjetno v redu, vendar je vsakomur kdaj živela na naslovu, kot je 1A Brattle Square, ali 1 in 1/2? Te stvari obstajajo, žal, tudi če niste tam živeli, obstajajo te nepravilnosti kot stanovanje 1A, 1B, 1C. Torej veste, kaj bomo verjetno ne bi smeli iti s celo število, sicer bomo izgubiti nekaj prodajo. Char polje, morda? Ne vem, kako dolgo. To verjetno ne bo tako dolgo, da 10 ali kaj podobnega. Nihče se dogaja, da napišete daljše številko, morda. Ampak še enkrat, bi morali verjetno dati več mislil na to. Mogoče google, narediti nekaj raziskav, ampak bomo šli z našimi poguma za zdaj. Ulice, znak, 50, ne vem. Na neki točki, nihče ne bo da napisati na ovojnici, Tudi zato je verjetno nekatere zgornje meje tam. Mesto, isti, prepričan, da char 50. Država, lahko US-centric za zdaj. Tako bi lahko seznam, tako prijazni iz sodbe klica, država. Lahko bi bilo kot dveh znakov. Torej dejansko, mogoče, sem si rekel char. Verjetno pomeni varchar, samo za nekaj učinkovitost, vendar bomo vrnili k da je odločitev v trenutku. Je lahko znak dolžine 2 za državo. Če v ZDA, ki ga imajo, kot mag, Massachusetts, NY, New York, NJ, New Jersey, in tako naprej. Tako bi bilo mogoče določiti na to. DC za Washington DC. Ampak mislim, Olivier, ki jih predlagal nov način. OBČINSTVO: [neslišno] DAVID Malan: Ja, tako da je malo siten, da tip v, vendar pa lahko enum bolj smiselno, ker na ta način, vsaj v ZDA, bi lahko našteli, če tediously, vendar si to naredil samo enkrat v bazi podatkov in nikoli več treba razmišljati o da so vsi 50 kode dveh znakov. Torej rad ENUM. Kaj je s palico, da je tam, ker je nekako uveljavlja več strogosti. In potem zip kodo? Mislim, Andrew imel misel o tem OBČINSTVO: [neslišno] DAVID Malan: Ja, pet ali devet. Kaj je to šele bo enostavno. Samo naredi pet za zdaj. Ampak mogoče sem lahko samo narediti celo število, kajne? Lahko bi, ampak veš kaj sem naredil ta napaka enkrat, v nekem smislu. Pred leti sem se selijo iz Microsoft Outlook Gmail, in Outlook je način izvoznikov vse kontakte kot Excelove datoteke, datoteka CSV, z vejico ločene vrednosti datoteko. In sem naredil napako, sem mislim, z dvojnim klikom nanjo, Nekoč sem prenesli izvoz, za poskrbite, da je bilo videti, kot sem pričakoval. Verjetno sem udaril Shrani ali pusti auto-save strel ali kaj podobnega. Ker, ko sem nato uvožen je v Gmail, je vse delal. Toda že leta, do danes, in Jaz sem to pet, pred 10 leti, Jaz sem še vedno najti prijatelje, ki imajo naslovi, ki so videti, kot je ta. Zakaj? OBČINSTVO: [neslišno] DAVID Malan: Trajalo : 0, no, ne tako, je celotno poštno številko kot število in zato je vodilni 0, kar pomeni, nima pomena. In tako 2138 zdi, da je moja poštna številka. In to je, odkrito povedano, nadležno Excel Funkcija pri čemer mislim, da je privzeto, tudi če je to pomenilo, da samo je besedilo, Microsoft Excel odloči, da mi bo v pomoč, in oh, vidim samo številke. Oglejmo zdravljenje teh kot številke. In to skrajša vodilnih ničel. Prisežem, vsak par mesecev se mi zdi naslov, in iz neke vrste OCD, grem nazaj in dodatek: 0, čeprav nisem pošiljanje ljudi črke ali karkoli. Ampak jaz sem še vedno najti ostanke tega. Tako da to se pravi, ali je to dobro? OK, no, saj vsak v Massachusetts, na tem področju, se dogaja, da imajo o, ki jih vodi. Torej, gremo s podobnim char, verjetno, pet. In tukaj, spoznali smo lahko uporabite ENUM in mi lahko našteli 10.000 možno zip kode, ampak, da se počuti, kot da je verjetno prečka linijo, kot so, koristi. Če imate na vhod, ki veliko podatkov v zbirki podatkov za zaščito pred nečim. Torej znak spoznal, da bi lahko tip v H-E-L-L-O so poštna številka, ki je ni, seveda, številčna. Torej ni nobenega načina, na tipična baza, določiti le numerični in le pet znakov, tako da bomo imeli za to, da v kodi. Bomo storili, da v PHP ali Java ali katerem koli jeziku smo uporabo na strežniku za uveljavitev da vrsta omejitev. Vau! Vse je v redu, tako da vsa vprašanja, samo še? Naj bo še odločitev oblikovanja. Izkaže se, da vas tudi dobili, da izberejo, pri oblikovanju zbirke podatkov SQL ali tipične relacijske database-- kjer še enkrat, relacijska samo pomeni vrstic in stolpcev, to je, kako organizirati svoje data-- in ugotovili, da je tisto, kar to pomeni, Sem bil zavajajoča da sem drawing-- to je tisto, kar se imenuje shema za tabelo baze podatkov. To je podobno kot specifikacije za table-- ampak ko pride čas, da dejansko shranjevanje podatkov, in bomo to storili samo z zgledom tukaj. Grem odpreti Excel, ker Excel mi bo dal stolpce in vrstice. In to je točno tisto, Oracle in MySQL in drugih orodij mi bo dal. Tako da sem le, da bo za uporabo je zavoljo razpravo je. Naj gredo naprej in odprla Predstavnik dokument tukaj, povečaj malo. Tako na primer, naše glave so zdaj ime, priimek, spol, ID, e-poštni naslov, hišna številka, ulica, Ops. Street, mesto, državo, samo o prilega na zaslonu. Torej, kaj to pomeni, da ko Uporabnik najprej registrira na moji spletni strani, to se dogaja, da je nekaj podobnega David, Malan, m, recimo 1, malan@harvard.edu, bo hišna številka biti kot 1 Brattle Square, Cambridge, MA, 02.138, nato pa tako naprej. Torej, ko sem rekel, da relacijske baze podatkov ali podatkovna baza SQL vrstice in stolpce, Mislim to. Da dejanski podatki so shranjeni v vrsticah in stolpcih. To je samo naključje, da sva se pogovarjala, in sem bil samo risanje v vrsticah in stolpcih. To je samo shema, poglavitni opredelitev. Torej od teh polj tukaj, ali ekvivalentno, tam, ki so polja, ki mislite, Sem verjetno iskati na, če sem uporabnik ali če sem na skrbnika baze podatkov? Kot, kaj polja sem jaz dejansko dogaja iskati na? OBČINSTVO: [neslišno] DAVID Malan: ime, ja tako Všeč mi je dejstvo that-- ja, e-poštni naslov je lahko precej pogosti. Oprostite, ste rekli ime. Torej maybe-- in spet smo nekako govorimo abstraktno. Ne vem, zakaj bi se išče ime, ampak da se počuti smiselno, če iščete za uporabnika. Mogoče navaja, seveda, ID. In to je spolzko naklon, ker sem lahko Naučiti scenarij kjer Mogoče je moj šef me je prosil, koliko moških imamo na naši spletni strani? Koliko žensk imamo na naši spletni strani? In zato na tej točki, boste morda želeli iskati na področju enakosti spolov je tudi, in nič drugega. Tako da je kompromis tukaj. Še enkrat, ni pravilen odgovor, vendar pa je funkcija v večini podatkovnih baz SQL znan kot indeksiranje, s katerim vi, oblikovalec je administrator baze podatkov, dobili odločiti vnaprej, kar poljih baze podatkov je treba optimizirati iskanjih. Lahko bi zelo naivno reči, optimizacijo to optimizirati, da optimizirajo to optimizirati tem in to in baza podatkov bo narediti nekaj magičnega stvar pod napa, in narediti nekaj na tak način da naslednjič, ko boste iskali na katero od teh področij, bo dejansko hitrejši. To je možno. To pa se ne izničijo. Vendar pa mora biti cena, plačana. Če vam je naivno, ali preveč navdušeno recimo, indeks vseh teh področjih, tako rekoč, da bodo vse učinkovito iskanje, kakšni ceni ste verjetno plačal? OBČINSTVO: [neslišno] DAVID Malan: Uspešnost. Kaj misliš s tem? Dobro zmogljivost, vsaj v Ozadje sem razpravljamo, je bolje zdaj. To je definicija indeksiranje. To bo iskanje hitrejše. Torej čas zmanjšuje, tako rekoč. OBČINSTVO: [neslišno] DAVID Malan: Space. Torej še enkrat, to so skupni trgovino. Lahko pospeši iskanja, vendar je bo stalo več bajtov prostora. Zakaj? No, privzeto, če bomo imeli nič od te rdeče zvezde, nobeden od teh indeksov, kot pravim, kako poiskati za imena v tej podatkovni bazi? Torej, kaj je pripraviti naše pozornost s tem primerom. Če imamo Davida in Scully in Kareem in ARWA in drugi v teh vrsticah, na primer. Torej, kaj je naredil točno to. Scully je tukaj, in potem imamo Kareem in ARWA, in vsi ostali, če ne imajo opredeljeno indeks, tako rekoč, najboljše kar lahko naredite, je linearna iskanje. Če iščete ARWA, nismo bo uspelo skočiti pravico, da ji hitro. Bomo za začetek vrha in iti vse do dna, ni v nasprotju z našo izvirniku Mike Smith primer. Če pa rečem, hej, podatkovne baze, Indeks prvo ime polja, potem se bo nekaj Ljubitelj in podpre nekaj kot binarno iskanje. Verjetno ni binarno iskanje po sebi. Podatkovne zbirke se nagibajo k uporabi drugo podatkovna struktura imenovana b-drevesa, ne sme zamenjati z binarnih dreves, da samo, da je hitrejše iskanje nekaj logaritemsko v naravi. Vendar pa je cena, ki jo plača zgraditi, da značilnost, da so podatki struktura v pomnilniku, je več bajtov. Torej, lahko traja nekaj megabajtov, nekaj gigabajtov, kdo ve? Je odvisno od podatkov. Torej, na neki točki, se morate odločiti, je to verjetno ni običajna zadeva. Torej, kaj so dejanski skupni primerih, če si res moral izbrati, kaj lahko vaš najljubši polja biti? E-naslov. In mi je všeč sporočilo, ker e-pošte, v teoriji bi morala biti edinstvena. In to ponavadi, ko veš vnaprej, da je eden od vaših področij je ali bo edinstven, da kaže, da je dobro polje iskati naprej, saj na ta način, ko iščete nekaj, boste dobili nazaj enega ali nič odzivov in potem ste končali. Nimate obdržati iščejo še druge. In tako v tem primeru tu, e-pošta, v kolikor ne morete registrirati dvakrat z istim e-pošte, je dobra. ID po definiciji, v računalništva svet, če govorimo o ID, da je bolje biti edinstvena. To je nekako v konotacijo od ID ali identifikatorja. In ostali od teh so lahko, recimo jim lepo bogatimi, vendar ni res potrebno. In tako v podatkovni bazi, ki ste jo določili indekse, vendar lahko še bolj natančno. Lahko rečem, hej, podatkovne baze, se prepričajte, da je vsak ID v tej tabeli edinstven. niti ne pustite, programer pomotoma dal v dvojnika e-pošte ali dvojnik ID številko. Toliko kot enums zaščititi nas podobno, vas lahko te obrambo na nižji ravni. In tako načrtovanje podatkovne baze, v nekateri občutek, je kar zabavno, zato, ker si to naredil pri obrambnih nalogah. Si nekako predvidevamo, da z grozno, grozno programerjev in želite, da v toliko obrambo kot si lahko za zaščito podatkov, vendar pa hkrati hočeš da bi jim pomagali uspešnejši z izbiro, ki polja za optimizacijo. Ampak ne moreš nujno storiti v vakuum, da smo nekako tukaj. Moraš vedeti, kaj so te skupne primeri počutje. Če so razvijalci izvajanje adresar, morda zelo dobro želeli, da bi lahko iskati na skoraj vseh področjih, samo z naravo vloge. Mogoče boste porabili dodaten prostor. Desno, na vsa vprašanja? Ja. OBČINSTVO: [neslišno] DAVID Malan: No. OBČINSTVO: [neslišno] DAVID Malan: OK. OBČINSTVO: [neslišno] DAVID Malan: Oh, tako mi govorimo na način, zdaj, da je popolnoma jezik agnostik. Torej, zdaj govorimo o relacijske baze podatkov bolj na splošno, ali SQL baze podatkov na splošno. OBČINSTVO: [neslišno] DAVID Malan: boljša beseda za uporabo se je mogoče vsak jezik uporabiti. Tako znam kodo JavaScript, C Koda kodo, C ++, Java kodo, Ruby kodo, vsi, ki govori k baze podatkov in izvaja poizvedbe. Dejstvo je, da ni slaba segue na primer poizvedbo. In še enkrat, ne bomo šli v Java ali C ++ ali katerokoli da več, ampak v SQL je jezik, ki sem jih vodijo sklicevanje Structured Query Language, To samo po sebi je programski jezik, vendar je bilo mišljeno, da se uporablja za nobena presenečenje, strukturirana poizvedbe poizvedbe. S tem mislim to. Način izbire podatkov iz podatkovne baze MySQL je dobesedno tip v svojem programu nekaj podobnega izberite zvezda uporabnikov. Jaz sem ob predpostavki, da te tabele, odslej se imenuje uporabnike. Lahko ga pokličete kaj hočemo, ampak to nekako smiselno. In zato izberite zelo Skupno glagol, če vas bo v SQL, ki dobesedno ne da. Kaj misliš, zvezda pomeni v tem kontekstu? OBČINSTVO: [neslišno] DAVID Malan: Žal mi je? OBČINSTVO: [neslišno] DAVID Malan: Ni potrebno, da je bolj vključujoča kot to, pravzaprav. To je kartica znak wild. Zvezda skoraj vedno pomeni ničesar, tako da to pomeni, v tem primeru, izbrati vse iz baze podatkov. Torej, ko sem rekel to, mislim vrni mi vsak stolpec z mojo mizo imenuje uporabnike. Torej, da mi niz rezultatov, kot se imenuje. Z drugimi besedami, daj mi kopijo preglednice, je tisto, kar sem že na. Ampak, če sem rekel, da izberete zvezda uporabnikov kjer ID enaka 1, če bi kako velik moj rezultat set bilo potem? Ali enakovredno, naj koliko vrstic Sem se vrnil iz baze podatkov? Verjetno samo ena, če imam res obravnavati ID kot edinstven identifikator, in če je David to edinstven ID, I naj bi dobili nazaj eno in samo eno vrsto ki vsebuje vse informacije Davidove. Če bi rekel to, če ID znaša 99, naj se vrnem, v zvezi s tem nič vrstice, vsaj v tem trenutku. Vendar, če res ne skrbi o vseh teh informacij, Jaz lahko samo rečem, kje David živi? Izberite poštna številka iz Uporabniki, kjer je ID 1. Tako boste izbrali, da me samo zip Davidov kodo in ne celota tej vrstici. Zakaj bi mi to namesto storiti zvezda izraz, divji kartico? OBČINSTVO: [neslišno] DAVID Malan: Ja, če bi jo potreboval samo. Tako delovanje je spet odgovor tukaj. Zakaj želeti več Informacije, kot ga potrebujete, ker tudi če je vse v redu skupaj, imate še vedno kopirati, da so podatki, zdi se, iz baze v vašem programu nekako, in to je samo neumno, če vas potrebujete le pet od teh številk, ne celota vrstice. Torej, kako vstaviti uporabnik? Recimo, da ima uporabnik samo registrirana prvič. Sintaksa bi običajno videti takole. Vstavite v uporabnike, in potem bi lahko rekli, vrednote, in potem bi lahko rekli, vrednote kot, recimo, Lauren Scully, naš snemalec tukaj. In naslednji polje spol. Tako bomo rekli, citiram, konec citata "F", potem imamo ID in bom say-- dovolimo pretvarjati, da ni dejansko tukaj, tako da bomo previjanje v zgodbi. Torej 2 bo njen ID. In potem naslednji polje Tukaj je njena email. Tako se dogaja, da se kot Lauren Scully in tako naprej, in bomo samo dot dot ga dot proč od tu naprej. Zdaj bo dobil malo utrudljivo, ampak vložek izraz bo na koncu videti tako. Če želim, da se znebite Scully, uh-oh, kaj je odjavo , ona izbriše svoj račun, izbrisati iz uporabnikov, kjer ID je enaka 2, bodo znebili Scully. Ali lahko rečem uporabniki posodobitve set, recimo, kaj bi morali spremeniti? Recimo, da se giblje. Set zip enaka 021-- nope, da je njena trenutna zip. 90210. Edina druga poštna številka Vem v svetu. Tako, da bi spremenili njena zip code-- dejansko, da ne bi spremenilo svojo poštno številko. Kaj sem naredil? Čeprav sintaksa je verjetno nova. OBČINSTVO: [neslišno] DAVID Malan: Ja, sem se preselil vse na Beverly Hillsu v Kaliforniji. Tako sem morala dejansko takrat, kadar ID enaka 2. In tako naprej. Torej SQL je vse okoli njih vrste navodil. Izberite, vstavljanje, brisanje, posodabljanje teh predikatov na koncu Te kjer klavzule, tako rekoč. In tam je veliko več lahko storiti, vendar je res samo izvira preprosto, če arcanely, ki izraža kaj želite baze podatkov narediti. In potem je baza podatkov bo ugotoviti, če vstavite Lauren Scully v podatkovne baze, kjer bi jo dal v spomin tako da bomo lahko zelo hitro dobili jo glede na njen e-poštni naslov ali temeljijo na njeno identifikacijsko številko ali podobno. Ja, Dan. OBČINSTVO: [neslišno] DAVID Malan: Zelo dobro vprašanje. Bodo te skripte spremenila iz Microsoft Access Oracle MySQL za PostgreSQL? Kratek odgovor je odvisen. V teoriji, je zelo pomembna skupna podmnožica SQL ki je v skupni rabi v vseh teh izvedb. Vendar pa različni proizvajalci imajo dodatne funkcije do svojih zbirk podatkov narediti določene stvari presega obseg teh funkcij, ki bi v resnici, zlomi. Torej načina razvijalce zavarovanje proti temu, je, da namesto pisanje surovega Koda SQL, kot pišem tukaj, namesto tega uporabljajo knjižnico, skupna knjižnica, ki sama je neke vrste višji ravni in povzetki stran, kateri izdelek, ki ga uporabljate. In to vam daje Funkcije in postopki za to, da vas pokliče nikoli dejansko napisati surovo SQL. V teoriji, potem lahko spremenite Izdelki iz Oracle Microsoftu ali obratno ali karkoli drugega, in si dobesedno spremeniti ničesar o kodi. Realnost, čeprav je, da včasih odreči funkcij kot rezultat. Morda ste izbrali izdelek, ker je da je dobil te funkcije z dodano vrednostjo, in ti si ravnokar ne jih uporabljajo zavestno. In anekdoto, večina podjetij se nagibajo Nikoli odmakniti od njihove baze podatkov. Torej, medtem ko je to lepo, da imeti funkcijo, je realnost je, če ste prenovo zbirke podatkov, si Verjetno bi šopke drugih sprememb itak, da vam ni nujno je treba predvideti, da. Torej, to je nedvomno preveč inženiring problem, vendar je res odvisno od konteksta. Toda v teoriji, je SQL skupni rabi na vseh teh različnih izdelkov. Res dobra vprašanja. Ja. OBČINSTVO: [neslišno] DAVID Malan: Ja, tako si lahko zamislite baze podatkov je samo strežnik, na koncu dan, in znotraj tega strežnika je cel kup mize, vrstice in stolpce. In ko pošljete poizvedbo takole iz svojega programa, vaše spletne strani, napisana v Java, Ruby, Python, ne glede, strežnik prejema tega ukaza in tolmačenja v dobesedno na enak način smo razpravljali prej s razlagati jeziki, nato pa opravljajo neko dejanje na nič ali več vrstic v nič ali več tabel. OBČINSTVO: [neslišno] DAVID Malan: Točno, točno. Torej je psevdokoda za nekaj kot da bi bil ta. V vašem PHP datoteke ali vaš Python datoteke ali vaš Java datoteka bi imeli psevdokoda kodo, ali Praskam, kot so bloki, kot je, če uporabnik obišče acme.com/register~~V za prvič, Nato vstavite v uporabnike in tako naprej. In mi bi to prevede v bolj konkretno koda na koncu. Ampak res, smo vsi gradniki tukaj, čeprav smo preskoči nekaj od faze izvajanja. Torej, kaj mi najti napake s čim smo čudovito naredil pred nekaj trenutki. Ustvarili ste precej popolna miza za uporabnike. Res je, da bi lahko izvajala je v nekaj različnih načinov, toda ali ste dejansko nas je pripeljala navzdol path-- in sem ti povedati, ampak to je verjetno moj fault-- za dokaj Izvajanje neučinkovito baze podatkov. To ni normaliziralo. In normalizirana mislim tam se bo, sčasoma velik redundanco, in zato neučinkovitost, da je zapravljanje prostora. Na podlagi samo tisto, kar vidite tukaj, lahko si predstavljate, kadar je to zapravljanje prostora se dogaja, da prihajajo, v daljšem časovnem obdobju, kot registrirati več uporabnikov za vašo spletno stran? Katere podatke lahko postane odveč? OBČINSTVO: [neslišno] DAVID Malan: Zakaj misliš, da je? OBČINSTVO: [neslišno] DAVID Malan: Ja. In recimo, za namene Z današnjim dnem, da je to res. Izkazalo se je, in to smo že naučili težji način, da to ni res. Nekako več mesta imajo, nekako enako poštna številka, ki se razbije to čudovito intuicijo. A denimo, da je res, zato, ker je skoraj vedno res. Torej domnevam, da je poštna številka vedno povezana z isto mesto in država, ki je nekako razumne predpostavke, ampak napačna, se je izkazalo. Vendar razumna predpostavka za današnje namene. Potem predvidevam, da živim v Cambridgeu, MA, po tega uporabnika tabeli in domnevam, da je Lauren Scully živi v Cambridge, MA, in domnevam, da je Kareem živi v Cambridge, MA, in ARWA živi v Cambridgeu, MA, vsi v 02138. Zakaj smo se spomnimo, Cambridge, MA, 02.138 za vse štiri od nas? Kaj bi moral zadostovati, da se spomnite? OBČINSTVO: [neslišno] DAVID Malan: Samo poštna številka. Samo, da je 02.138 obstaja, ker veš, kaj lahko storimo? Lahko bi dobili malo fancy tukaj in tukaj, določiti drugo tabelo kam to pelje, da je ime, to bo tipa, To se dogaja, da je Dolžina in odslej sem bo poklical to moja mesta mizo. To je bil imenovan, o Seveda, moja uporabniki miza. In kaj naj bi sem dal tukaj za moje mestih mizi, misliš? OBČINSTVO: [neslišno] DAVID Malan: Ja. Torej, zip in državo in mesto. In tako je tip tukaj, bomo rekli to se dogaja, da se char 5 še enkrat, predmet razprave prej. To bo enum, morda kot prej bo in mesto je varchar 50. In zdaj kaj dobim izbrisati iz te tabele da odpravi to neučinkovitost? OBČINSTVO: [neslišno] DAVID Malan: Lepo. Država in mesto oditi, tako da sem zdaj odpraviti morebitno neučinkovitost za redundantly spomniti, Cambridge, MA, Cambridge, MA, Cambridge, MA, Cambridge, MA, ki, upajmo, se nikoli ne bo spremenilo. In tudi če se to zgodi, je minorly nadležno, zdaj da moram spremeniti je v več vrstah, ker je tukaj, sem lahko samo spremeniti na enem mestu. Zdaj, kaj je kompromis, morda? To je bilo super priročno. Imel vse moje podatke lepo skupaj. Toda kaj je jasno velja sedaj? OBČINSTVO: [neslišno] DAVID Malan: Točno, in sem vesel, da si uporabljena beseda pridružijo, ker to je pravzaprav ključna beseda, v svetu relacijskih podatkovnih baz v SQL, je dejanska beseda lahko vnesete ali vsaj posredovati. In v resnici, kaj zdaj storiti Izberite popolne informacije David je nekaj podobnega izberite zvezda iz Uporabniki, pridružite mesta, on-- in zdaj Bom samo preseliti v drugo linijo tako da je ta fits-- users.zip enaka cities.zip, kjer users.ID enaka 1. Torej, kaj se dogaja? To je grdo videti, vendar lahko nekako prebral leve proti desni, zgoraj navzdol. Izberite zvezda uporabnikov je enaka kot prej, vendar to ni od uporabnikov, samo po sebi. To je od uporabnikov pridruži mesta. Kaj sem vstopu teh dveh tabel na? No, očitno je uporabniki mize zip polje, in to obdobje je prav posebna sintaksa izraziti to idejo, in to je mesta mize zip polje. Želim ti dve enaka, ampak želim, da na koncu izberite samo tiste vrstice kjer ID v tabeli uporabnikov enaka 1, kar se je zgodilo, da je moj. In samo zato, da bo jasno, A programer, ponavadi, ko hardcode nekaj podobnega števila 1, ker drugače le na spletni strani podpira Davida ali Prva uporabnik, Namesto tega bi naredil nekaj podobnega ID, kjer To predstavlja spremenljivka, nekaj, kar lahko spreminja skozi čas, podobno V duhu tega, kar sem rekel prej s temi vrstami ograde. Ampak za zdaj bomo samo hardcode kot 1. In tako kaj to pomeni? No, lep način, da vizualizirati to da če je ta roka je uporabnikom miza, in ta roka je za zadrge miza, smo nekako finding-- in konice mojih prstov so zip tukaj, in konice mojih prstov tukaj so zip, si vrste, da med seboj povezanih tako da boste dobili nazaj nastalo Prvotni miza, ki jo resnično pridružil dve mizi na skupnem področju. In to ne da bi zip. To bi bilo najbolj karkoli drugega, ampak zip je lepo, ker so ena, to je kratka, dva, je vedno enake dolžine, tako da je resnično učinkovitost s tem, kar Olivier tukaj predlagana z faktoring iz zip, in [Neslišno] predlaga, da se znebimo od mesta in države. Zato je ta proces znan kot normalizacijo. Vsa vprašanja o tem? No, naj omenim, To je vrsta stvari, čeprav je dokaj nizki ravni, ta razprava, da bi si mislil ste nekako dobili izgubil v plevela, To je manifestacija dovolj priložnost za razvijalce, da je slabo. In v resnici, tudi ko smo pri tečaji sem učil, ko smo imeli, na primer, neizkušen dodiplomski programerji izgradnjo spletnih strani, na prvi pogled, spletne strani, lahko izgledaš. In imajo vse funkcionalnost smo prosili, razvijalci naredili dobro delo. Vendar pa ni nujno, da vedo, dovolj o oblikovanju podatkovne baze ali pa niso mislili težko Dovolj o vrstah podatkov in vrste uporabnikov Spletna stran je bila dogaja, da imajo, in bomo našli, potem, šest mesecev kasneje, potem ko so diplomirali ali se preselili na, da prekleto, naša spletna stran je res, resnično počasi. In jaz sploh ne govorim o ob milijone ali tisoč uporabnikov. Mislim nekaj sto uporabnikov na univerzi, od katerih vsi radi, na primer, shop za programe na v istem času, oni uporabo tega kataloga tečaj Uporaba sem omenil in stvar je vse res počasi, ker ni bilo indeksi. Ni bilo rdeče zvezde, tako govorijo, ali nismo imeli nujno vključeno skupne podatke dobili nekaj prihranek prostora. In tako pri preverjanju razvijalec ali baza oseba ali podobno, kakšne vrste vprašanj razmišljajo skozi je tudi pri pregledu nekdo kodo torej ni nujno pogledati skozi vse svoje kode, vendar pravijo, Oglejmo si po tabelah zbirke podatkov. Kaj shranjevanje? In potem pravijo, no, počakajte minute, zakaj uporabljate celo število? Kaj pa, če imamo 4 milijarde in 1 teh vrstic? In te vrste vprašanja, je priložnost da vrsta potisnite nazaj in dobili občutek, kadar je to Če niste zadovoljni delaš to, da nekdo bolj tehnične vprašajte ta vprašanja, o tem, ali ne oseba res pozna svoje stvari. In to je vrsta stvari tudi, da ljudje na internetu, ki je samouk, morda učijo manj pogosto, saj vas Ni nujno, da pride čez to toliko, ker lahko dobite baze podatkov in teče, vendar če ste prebrali gor na vajah, ali je povedal o normalizaciji podatkovne baze indeksiranje in uspešnosti, To so vrste stvari da se dogaja, da vas boli. In si lahko mislite, ali slab inženir Lahko bi rekli, oh, no, bolje plača za večji podatkovni bazi ali hitrejša baza ali pa samo vrgel denar na to, navpično lestvice, ni nujno tako. Če greš in-- in lahko greš v po fact-- in dodate indeksov, in lahko traja nekaj ur, da se Podatkovna baza za izgradnjo te nove podatke struktura, ki sem omenili prej, še vedno lahko popravimo po dejstvu, da je to, če ti začeti razlikovati dobri oblikovalci iz slabo oblikovalci, ne le estetsko, vendar je učinkovitost pametno kot dobro. Kakšno vprašanje? Ne? Torej za NoSQL, ki je bila druga vrsta podatkovne baze, ki ji omenili prej, nimate stolpce in vrstice. Namesto tega bi morali nekaj da izgleda malo bolj, kot je ta. Bom uporabljajte sintakse. Zaviti oklepaji se zgodi, da Tu se uporablja zelo veliko. Morda imate kaj kot prvo ime je David, ste morda nazadnje ime je Malan, citati, boste morda morali ID is-- oprostite, whoops-- ID 1, e-poštni naslov je malan@harvard.edu, in ne bom moti tipkanje ven počitek, nato pa nekatere druge stvari. Z drugimi besedami, to je tekstualna predstavitev tega, kar bi na splošno imenujemo predmet v računalniškem programu. In je predmet praviloma samo zbirka ključnih vrednosti parov. Torej še enkrat, to ponavljajoča se tema. Videli smo ključ pare vrednosti v HTML, smo videli ključne pare vrednosti zdaj v okviru podatkovnih baz, in mi Videl ključnih vrednosti parov v okviru o, mislim, jezik že danes. Drži prihajajo. In res, da je res katere podatke izvira na, Podatki in metapodatki, ali vrednosti in ključi, oz. Torej ne-relacijski podatkovne baze, kar temelji na objektih, kjer si Zrno vse skupaj in ga v spomin, bi na splošno na sliki, kot je, ali misel, kot je ta. In bom zapustil, da je zdaj kot vrsta alternativnega pristopa. In ena ni nujno boljši od drugega. Dejstvo je, zelo v modi v teh dneh so sistemi, baze podatkov kot MongoDB in REDIS in nekaj drugih takih orodij, prosto na razpolago, vendar so bolj en vogue. Delno zato, ker ponujajo dodatne funkcije več kot teh tabelaričnih pristopov, ampak tudi zato, ker oni malo lažji za uporabo, saj vam ni treba razmišljati tako težko o veliko teh konstrukcijskih odločitev. Tako pluse in minuse. Torej zavedaš obstajajo možnosti tistega, kar smo pravkar porabljen čas na. Torej, kaj je to. Recimo prehod malo nazaj sedaj spletno programiranje, tako da smo nekako sklepamo danes z nečim da je malo hands-on, polnjenje V nekaterih vrzeli od včeraj. Naj gre za to najprej. Tako opozarjajo, da je včeraj smo imeli nekaj kanonično HTML strani, ki so imeli na začetku, le HTML, nato pa sekundarno imela CSS, kaskadnih slogov. To je nova oznaka, ki jih ni glej včeraj, ali živijo na, tako imenovani scenarij tag. Izkazalo se je, da lahko dejansko zajemajo izvedeni jezik imenuje JavaScript v vašem spletu strani in da bo vaše spletno Strani nekaj storiti. Torej, kaj mislim s tem? No, naj gredo naprej in samo sposodim to kodo za trenutek. Bom šel v Cloud9, ni treba iti tam sami samo še, in bom poklical ta alert.HTML. Bom prilepil v moji datoteki tukaj. In samo zato, da pojasni, kaj sem naredil, kaj me na ta naslov in šel za alarmiranje, in vidiš Hello World. Ampak to je nekako underwhelming. Hočem narediti nekaj malo drugačna. Torej bom to dejansko storijo. Bom šel v tu e, in med mojimi scenarij oznake, pravijo opozorilo ( "Hello, world"); tako obvestilo je malo površen, ampak imam HTML, znotraj katere je jezik se imenuje JavaScript, in to je tisto, kar se imenuje Funkcija klic ali klic procedure. To je glagol, dobesedno, v tem primeru, in sem se sklicuje kodo funkcionalnost da je nekdo drug napisal. Tako da funkcionalnost je opozorilo, da gremo na to stran zdaj in kliknite nalaganja, in zdaj glej malo interaktivnosti. To je nekako stare šole in grda. To vas nekako spominja na pop-ups, morda, od minulih dni je pa naredil nekaj, kar malo več programske. Torej, več kot to, kaj je naredil kaj bolj zanimivo. Spusti me noter in se znebite tega. In bom, da gredo naprej in ustvariti obliko, kot smo včeraj. Pravzaprav, veš kaj? Bom šel v google.html, ki smo je začel včeraj, ki je izgledala to, preko katerega smo iskali mačko Ampak obvestilo, da je nekakšen bug v trenutni različici. Deluje za mačke, ampak domnevam, da je Ne sodelujejo in sem tipa ničesar, in sem preprosto kliknite Pošlji. To je nekako čudno obnašanje. me je realni Google, Niso mi dali sporočilo o napaki. Rad bi povedal uporabnik morate, da nam vrednost. Torej, kako lahko to storimo? No, mi gredo nazaj v Cloud9 in Naj gredo v vrhu moje strani in dodajte skript oznako, kot je ta, v kateri Bom vnesti nekaj kode JavaScript. In bom naredil naslednje. Če (document.getelementByID-- in odpoklic da smo govorili o tem prej, to funkcijo. Kaj ID želim, da bi dobili? Želim, da bi dobili q, in bom recimo enaka nič, kot this-- pravzaprav mi uporabite dvojne narekovaje samo za consistency-- enaka nič, potem alert ( "Vnesite poizvedbo") tukaj. Torej imam, kar se zdi, da je nekaj podobnega stanja. Videli smo to splošno idejo v Scratch. To je kot eno od teh sestavljanke kosi, ki so si, kot je ta. In kaj sem rekel? No, tukaj, opazil sem naredili naslednje. Bom dal ta obrazec Polje ni le ime q, kar je tisto, kar pride mimo Googlu, vendar sem dogaja, da ga lokalni identifikator, imenuje tudi q. Ampak lahko to imenujemo kaj sem hočeš, sem šele tekoč, da ga bo enostavno in ji tudi q, le zaradi enostavnosti. In zdaj bom naredil nekaj malo več. Na polj obrazca tukaj, bom dodati, kar se imenuje dogodek trener. Na predloži želim poklicati funkcija se imenuje potrdijo. To še ne obstaja, to beseda, ali je ta glagol validate, ker kaj bom naredil tu zdaj je dodati nekaj kode. Bom povedal funkcijo potrdijo. Bom zamakniti to in dodati drugo curly brace tukaj in še eden tukaj. Razmislite, kaj je to zdaj počne. Imam now-- misliti, da je to ustvaril moje lastne puzzle kos, ki ni prej obstajajo, in sem poklical to puzzle kos validate kos sestavljanke je. Njegov namen v življenju je, da izvede štiri vrstic kode znotraj nje. Če document.getElementById tako konceptualno, da bo šel v element, HTML element, katerega edinstvena Ideja je samo q, nato pa čeprav sintaksa izgleda malo čudno, ki je enaka enaka samo pomeni Rezultat. Torej to pomeni, da če je element z edinstveni identifikator q, ko je prišel, nima nobene vrednosti, samo enaka quote citata, nič tam, potem kaj hočem narediti? Hočem kričati na uporabnika. In da ne bo šel veliko podrobnosti tukaj. Bom vrnil false. Da je prišlo do napake. Drugega, bom vrnil res. Torej, ali je delal ali pa ni. Napačne ali res. In zdaj, če nisem naredil nobene napake, Naj rešiti to in osvežite to. In naj me samo še enkrat preverite, da je Nisem namreč, da vse tipkarske napake, tako da mi ni osramotil sebe. Poglejmo, če to deluje. Torej, zdaj bom na vrsto mačke. Še vedno deluje, ali pol dela, vsaj. Zdaj pa mi ga znova in zdaj pa jaz poskusim oddajo brez tipkanja anything-- prekleto, je zlomil. Trenutek. Naj odpre konzolo, [Neslišno] log, osvežite stran. Naj poskusim to še enkrat. Oh, prekleto. Pozabil sem. Naredila sem tipkarsko napako. Spomnim se, kaj je to. .value. Hotel sem reči, če je vrednost elementa je čigar ID q enaka, potem vpij uporabnika. Torej, zdaj pa še enkrat zadržite dih. Gremo. No pa gremo. Vnesite poizvedbo. Torej je ne da bi me spustil skozi. Lahko sem nekako igriv s tem, in namesto da bi iskal brez vrednosti, Lahko rečem, nekaj podobnega, ni več iskanja za mačke, in zdaj lahko samo bolj igrivo naj iskanje uporabnik za pse, če on ali ona želi, ali pa če grem tukaj in iskanje za mačke, zdaj ne morem. Torej, kaj je takeaway tukaj? Torej ena, smo uvedli v naš svet HTML in CSS, programiranje funkcionalnost. Sem lahko dejansko zdaj sprejemanje odločitev v kodi. Prej, vse, kar sem lahko naredil je pribitek tekstovne vsebine ali grafične vsebine in je povedal, kaj iskati in kje prikazati. Zdaj lahko dejansko vprašati vprašanja spletne strani in sprejemajo odločitve, ki temeljijo na njej, in poziv uporabniku če moram kričati na njega ali njo. Torej poskusimo nekaj sami s tem. Daj, povej mi odpirajo na naslednjo stran tukaj, in samo poudariti eno stvar. Tako kot pri CSS, lahko faktor ven naša koda JavaScript ločeno datoteko, lahko storijo enako stvar z JavaScript kot s CSS. In ste uporabili, da z uporabo vira atribut iz scenarija oznako. Ampak ne bomo zaplete stvari za zdaj. Namesto tega, če bi lahko pojdite ne tej strani ampak-- mi premakniti okrog v order-- iti, če bi lahko, to stran tukaj. Ta URL tukaj. To je v današnjih diapozitive. Morda boste morali naložiti, ker Sem dodal nekaj stvari. Toda tja, kjer je nekaj ugank čakajo. In nam bo to priložnost, v nekoliko bolj zabavno kontekstu Praćakati z nekaj JavaScript. In ko prideš tja, Bom razložiti, kaj čaka. Dobili zeleno. Set modro. Nastavi zelena, določa red. Ups. Žal mi je. To je obseg našega dokumentacije za ta izziv. In to se dogaja, da deluje, kot sledi. Torej, kaj imate na tem Stran je cel kup slikovnih ugank, ki jih kolega na Univerzi Stanford. Torej, kaj ste videli tukaj, je skoraj vrsta enega od teh magičnih uganke oči, ampak če samo stare na to, nič ne dogaja, da pop ven na vas. Namesto, da je nekaj skrite v to sliko. In to je skrita na naslednji način. Slike, kot veste, je lahko sestavljen iz samo treh barvah. Nekateri rdeča, nekatere modre, nekateri pa zelene. In lahko naredimo vse barve v mavrici z mešanjem teh treh barv nekako. Torej, to izgleda predvsem zelena in modra, ampak kot pravi Nick tukaj, To železo puzzle slika je uganka. Vsebuje sliko nekaj znan, vendar pa slika je popačena. Slavni predmet v rdečih vrednosti. Vendar pa je rdeča vrednosti so bili vsi delijo z 10. Tako da so premajhni za faktor 10. Torej, z drugimi besedami, Nick je originalno sliko, in je razredčeno vse za rdeče iz njega, zmanjša količino rdeče črnilo, če bo v njem. Modre in zelene vrednosti so le nesmiselna, naključne vrednosti, aka hrupa načrtovan zabriše realno sliko. Torej, kaj Nick si je bil omiljeni rdeče in nato je samo vrgel naključno Zneski modra in zelena na sliko za vrsto nejasna kaj je v resnici še vedno tam. Morate razveljaviti te motnje da razkrije podobo. Najprej nastavite vse modre in zelene vrednosti na nič, da jih ven iz poti, in poglej rezultat. potem množi vsako rdečo vrednost za 10, luščenje nazaj do približno njegova končna vrednost. Kaj je znan objekt? Torej, vse vas imam pravokotnik V brskalniku zdaj. In opazil, da je nekaj starter kodo, tako rekoč. To je JavaScript kode, ki Nick je napisal za vas. In opazil, da je črto na sredini, ki začne s poševnico poševnico, da je kar se na splošno imenuje komentar. To pomeni, da je stavek, da programer ki nima funkcionalne pomena. To je samo vizualno iztočnico za človeka. Tako da lahko greš naprej in izbrisati samo to vrstico, in je super ne paziti, da se izbrisati ali spremeniti kaj drugega. In naj vas le sprehod skozi kaj ta koda počne in ga bom zapustil do vas, da ugotovimo, skrivnost sliko. Ta prvi vrstici sem, da sem pravkar Označeni vam naslednje. Na levi strani, imate, kar se imenuje spremenljivka, ki ima Nick poljubno vendar upravičeno imenujemo im za slike. Na desni strani te enačaj, govori, da mi nov citiram, konec citata "preprost slike". Preproste slike, v tem kontekstu je tisto, kar se imenuje razred, dobro, to je nekako kot class-- tehnično prototype-- ampak res, to mi daje nov predmet, katerih vsebina so datoteke, železo-puzzle.png. Z drugimi besedami, Nick ustvaril Ta pojem preprostega slike tako da bomo lahko za pedagoške namene, igrajo s podobo in spremeni svojo rdečo, zelene in modre vrednosti. In kako nam gre to? To je nekoliko Grobni sintakso tukaj je nekako kot pri ponavljajočih blok da nekateri od vas videl v Scratch prej Danes, kjer lahko ponovite 10-krat. V tem primeru, Nick nima vprogramirano več kot 10. Namesto tega je, je rekel, inicializacijo spremenljivka imenovano x 0, preveriti, če je x manjši kot širina slike. In tako, da je bolj pravilno, slika je spremenljivka, pika pomeni noter njega in dobili svojo širino in potem odprta paren, zaprta paren je le programer je pot rekel, da je to funkcija. To je postopek. To je funkcionalnost nekdo drug napisal. Uporabite ga in mi vrne odgovor. In potem x ++ je fancy način rekel, ko ste to storili enkrat, prirastek x za 1. Z drugimi besedami, ta je programer je pot za induciranje zanko, ki je bo ponovitev čez vse stolpce na sliki. Podoba je le mreža pike, vrstice in stolpci pik. To je način ponavljanjem preko vseh teh stolpcev. In na notranji strani, Medtem, smo ponavljanjem nad višino, tukaj in tukaj in tukaj. Torej je to samo način traipsing, skoraj kot old school pisalni stroj, da pojdi čez celotna slika iterativno. Tudi to ni povsem v celoti Jasno, vzemite v veri za zdaj, da teh treh vrsticah kode skupaj dogaja, da vam omogočajo, da iterativno pogledati na vsakem slikovnih pik, vsaka pika na sliki. Kaj je pixel? No, da bo jasno, če pogledamo v izvirniku in povečavo, če si res dal svoje oči na zaslonu računalnika, da je samo cel kup pik, več tisoč pike pakirajo skupaj tam. In kaj ste pa naredili? Vsak od teh pik, končno opredelitev, je rezultat tega, kar je na splošno imenuje RGB, rdeča, zelena, modra, ki Ponovno se lahko združijo vam poljubno število barv. V bistvu, če se spomnite od mnogih nazaj, mnogo let, projektor zasloni, kot so te stvari ki je imelo ne en objektiv, ampak tri. Eden izmed njih izpljunili rdečo svetlobo, eden izmed jih izpljunili zeleno luč, eden od njih izpljunite modro svetlobo. In če ste bili v srednji šoli kot sem bil, kjer so bili nikoli ustrezno usklajena, da si Vedno gledanje zgodovine filmov da so bile nekoliko popačen, ker so tri barve niso kombiniranje pravilno. Vendar se izkaže, da je vsak izmed te vrednosti rdeče, zelene in modre, ima lahko številne povezane z njimi. Na primer, 0 za rdeče pomeni, da ni rdeča, 0 za zeleno pomeni, da ni zelena, in 0 za modro pomeni, da ni modro. Torej, če nimate rdeča, zelena barva, in ne modra, kakšne barve imaš? OBČINSTVO: [neslišno] DAVID Malan: Vi bi upam, da je belo. Na žalost, to operates-- žal? OBČINSTVO: [neslišno] DAVID Malan: Torej ti dejansko imajo črne, v tem primeru. Torej, če imate nobena od teh barve vklopljen, imate črno. Vendar, če imate, recimo veliko od njih, kot veliko rdeče, 255 nje, veliko zelene, in veliko modre, ki je bele barve. Torej, to sta dve skrajnosti. Torej po tej logiki, če imam veliko rdeča in zelena barva in ne modra, kakšna barva je to? OBČINSTVO: [neslišno] DAVID Malan: Ja, seveda. In potem ni rdeče, veliko zelena, brez modrega in nato če have-- dobro, bomo pravkar končal to samo zato, ker, vendar je to seveda Zdaj, je modre barve. In zdaj lahko kombinirajo barve. Zdaj kot prahi, če ima kdo od vas kdaj naredil nekaj dejansko zasnove spletne strani, boste morda dejansko glej simbole, kot je ta. FFF-- in dejansko, to je Verjetno tudi to ne. To je FFFFFF. Vsakdo kdaj videl F in E-jev in A through-- tako se je izkazalo, smo govorili včeraj o decimalko, in danes, nekako približno decimalko. Danes smo se pogovarjali o binarno. Izkazalo se je, šestnajstiški je zelo skupna osnova sistem za uporabo v računalništvu. Binary dve, decimalno je 10, čarovnica je 16. In se je izkazalo, kako šteješ v šestnajstiškem? Nič, ena, dva, tri, štiri, pet, šest, sedem, osem, devet, kaj uporabljati po devetih? Kaj je naslednja številka? Mi je že bila uporabljena nič. Rabim 16 od teh. Nič, ena, dva, tri, štiri, pet, šest, sedem, osem, devet, boste potrebovali nekaj samovoljno konvencijo. In kaj človeštvo odločila nekaj časa Pred da po devetih pride pismo A in nato B in nato C. Tako Tako si šteje v šestnajstiškem nič, ena, dva, tri, štiri, pet, šest, sedem, osem, devet, A, B, C, D, E, F in da se računajo ste vso pot, se je izkazalo, da 15. Tako nič do 15. nič prek F. Zdaj zakaj je to pomembno? No, če imate dva F-ih, to je, kako izraziti 255. Tako dolgo zgodbo, v svet Photoshop, da je grafično oblikovanje programske opreme, v svetu spletnega razvoja, kjer imate veliko barv, Seveda, da igrajo z, pogosto programerji bo izraziti s tistimi v šestnajstiški, samo zato, ker se skuša da se malo enostavnejše. Čeprav je na prvi pogled to je veliko bolj zapleten. Torej, v vsakem primeru pa je to pomembno ker Nick na Stanfordu nam je dal šest kosov funkcionalnosti da vi, brstenja programerji, bo zdaj imel možnost uporabe. Vgrajen v tem spletu Stran je šest funkcij, šest postopkov, ki Nick napisal. Trije od njih bodo dobili več, rdečo, zeleno ali modro vrednost. Trije od njih bo določil te vrednosti. In ti podčrtaj so le ograde, tako da boste morali vedeti, kaj so to. Torej s temi tremi funkcijami, Prvi od teh stvari se dogaja, da je x-koordinata, in druga od teh stvari se dogaja, da je y-koordinata. Z drugimi besedami, ki dot, ki pixel želiš, da bi dobili zelenino, dobili modro, dobili rdečo barvo. In potem tukaj, to se bo x, to se dogaja, da se vrednost y, in to se bo število. Torej, naredimo prvi Linija tem skupaj in potem bom ga pustite, da vas da bi poskušali izpeljati ostalo. Torej, po navodilih na tej strani, se moramo za povečanje rdeče s faktorjem 10, in moramo odstraniti zeleno in odstranite modro. Začnimo s slednjimi scenarijih. Torej, če hočem, in bom zamakniti z uporabo nekaterih prostorov, če želim nastaviti rdeče, zeleno ali modro vrednost, Bom naredil naslednje. Slika, im.setBlue, in nato temelji na mojih navodilih tukaj, kar tri stvari naj I tip znotraj oklepajev zdaj? Rabim x vrednost je y vrednost, in kaj več moral sem dal tukaj, če želim, da se znebite modre, ki temelji na zgodbi tukaj? Samo nič. Če želim ni modro, da sem samo bo to spremenilo nič. Zdaj pa samo povzamem, kaj se to počne. Imam tukaj na teh vrhu drugi in tretji linije, Zahteval sem dve zanki, ugnezdene zanke, če vas bo, da se dogaja, da imajo učinek od napreduje od leve proti desni, od zgoraj navzdol skozi vse x vrednote in vse vrednosti y. Ker še enkrat, je slika samo mrežo vrstic in stolpcev. Torej, to se dogaja, da bi dobili znebite vseh modro. Naj pusti v naslednjo vrstico za vas. Kako se znebiti vseh zelenih? OBČINSTVO: [neslišno] DAVID Malan: Lepo. OBČINSTVO: [neslišno] DAVID Malan: Lepo. In bom pomanjšanje, in vzemite skrbi za ki ste jih niso storili nobene tipkarske napake. In če ste zadovoljni s tem, kar si storil, gredo naprej in kliknite na gumb Run / Save in videli, kaj dobiš. In spet, smo naredili le tri spremembe. Mi črta, ki je prvi pripombe in ga nadomesti pri teh dveh vrstic kode. In to je v redu, če boste morali zadeti gumb Run / Shrani nekajkrat popraviti nekaj. In mi tudi povečati na mojem kodo, tako da lahko preoblikuje. Dobro. Vidim Andrew ima kaj Zdi se, da je napaka. On je pravkar dobil veliko črno pravokotnik na svojem zaslonu. Ali ima še kdo velik črn pravokotnik? OBČINSTVO: Da. DAVID Malan: Big črn pravokotnik? OK, tako da je mislim o tem, kaj to pomeni. Rekli smo, da nič, nič, nič, tako da ni zelena, ne rdeča, ne modra, se dogaja, da vam črno. In se izkaže, da večina naših prenosnih računalnikov samo nimajo dovolj zvestobo. Ne moreš kar povem, da je pravzaprav nekaj tam. In če nekako morda pusto zaslon naprej in nazaj, Mogoče ne vidiš nekaj malega tam? Mogoče, vrsta, vrsta? To ni popolnoma črna. OBČINSTVO: [neslišno] DAVID Malan: Spojler! Obstaja nekaj rdeče tam, vendar spomnite iz specifikacij problema, Nick je napeta navzdol. On je razredčeno nekoliko, ne pa vse do nič. Torej, če želimo, da povečate količino rdeče, naj predlaga ta trik. Naj povečati na mojem zaslonu. In mi gredo naprej in reči Znesek je enak im.getRed (x, y). Ta vrstica kode me daje nekaj, kar se imenuje spremenljivko. Moram poljubno, toda verjetno, upravičeno imenuje moj spremenljivka kaj, očitno? Znesek. Samo znesek. Lahko bi ga imenovali kaj hočem, ampak sem uporabo te druge funkcije da sem opisal prej da bi dobili količino rdečega na x vejica y. Zakaj je to storil? Kaj želite narediti tukaj? Morate add-- OBČINSTVO: [neslišno] DAVID Malan: Ja, mogoče jo pomnožimo s 10. In če ne veste, da sem dogaja, da gredo naprej in to. Bom, da gredo naprej in recimo, želim količino rdeče barve Rad bi karkoli je v rdeči barvi, krat 10, in zvezda, zvezdica na vašem Tipkovnica je the-- ne uporabljajte x. Uporabite zvezdo. To je, kako se množijo stvari V večini programskih jezikov. Torej, glede na intuicijo Kareem je, shranjeni v tej spremenljivki imenovano znesek, je, koliko rdeča želim na lokaciji xy. Kako zdaj, moram narediti, da Pixel imajo to številko? Ste to že storili že prej. Nastavite zelena in modro brez vrednosti, nič. OBČINSTVO: [neslišno] DAVID Malan: Ja, dobro ga ne želijo 10. Si že naredil matematike tukaj. Tako smo dobili vrednost rdeče, ki je majhno število, verjetno. Mi smo se pomnoži se z 10. Kaj želite storiti z variabilni znesek zdaj? OBČINSTVO: [neslišno] DAVID Malan: Lepo. Torej im.set-- kaj? OBČINSTVO: setRed. DAVID Malan: setRed, na lokaciji xy. Ja. In samo znesek. Z drugimi besedami, spremenljiva je začasna ograda da lahko dajo vse, kar hočeš v. Se zgodi, da je treba tako, da pred število v njej, v tem trenutku. Smo jo pomnoži s 10, da bi bilo večje. In zdaj sem ob zamenjavi te spremenljivke kot tisti tretji argument, ali vhod nastaviti rdeče. In tako, da ko ti zaključi, da je in upošteva od podpičji in oklepaju. Pojdi naprej in kliknite teči / znova shranite in si Moral bi videti, čudežno, kaj je bilo dejansko tam. [? ARWA,?] Kaj je tam? Eifflov stolp v polnopravni rdeče, ne čisto temno. da bi morala biti bolj jasno zdaj, ja? V REDU. In Andrew, ni več črna skrinjica? OBČINSTVO: [neslišno] DAVID Malan: V redu. Torej, to bom obdržati na zaslonu. Če želite igrati s tem kasneje, to bom ponovno za vas. Ampak to kodo tukaj storil prav to. Zakaj ne naredite nekaj drugega. Naj se pomaknite navzdol rahlo. Torej, v tem primeru, projektorja ne res to pravico. Toda na vaših zaslonih, verjetno imajo zelo rdeči in zelo črno skrinjico. Tudi to je uganka, ki kaže, kaj slavni. Vendar pa je slika popačena. Resnična slika, tokrat je v modrih in zelenih vrednot. Vendar pa smo vsi bili razdeljeni do 20. zato so vrednosti zelo majhna. Rdeče vrednosti so samo naključne številke, hrup. Razveljavi te izkrivljanja da razkrije pravo podobo. Torej, Nick pa vam pove, kaj storiti. Nastavitev rdeče vrednosti na nič, in potem ne pokvari, kaj je to. Nato množijo modra in zelena vrednosti po 20. Torej, to je skoraj isti program kot prej, vendar ste obrniti proces. In bom dal svojo kodo Preden se na zaslonu v primeru želite, da vrne k njej ali sta še naprej s tem. Naj povečati na to. Toda rešiti bakra sliko puzzle, številka dve. OBČINSTVO: [neslišno] DAVID Malan: Ok, tako da to, da sem ne bo dal čim več nasvetov. Zato sem would-- oh, kaj je glej, imate slovnične napake tukaj. Torej, ne pozabite, to tukaj dejansko mora iti tja. Torej, kaj bi predlagala, če želite osredotočiti na ta, da je odgovor. Če želite prepisati, da se da bi morala dobiti prvo eno delo. In potem lahko uporabite, da kot navdih za drugo. Lepo. Dobro. In za radovedne, To je preprost primer iz znanosti ali umetnosti imenuje steganografija, umetnost skriva informacije v slikah. Značilno je, da bi slike lahko vodni zelo očitno logo na dnu kotiček, vendar je jasno, si lahko veliko bolj zapletene o tem in dejansko zakriti drugih slik v Slike nekako s to tehniko. Bodite še 30 sekund, nato pa se bomo vsaj napove, kaj bi morali videti. In bom zapustil tretji ena kot vajo na domu, Če želite bolj za mu ta konec tedna. In mislim, da Andrew morda so jo dobila prva. Katera je prva slika, Andrew? OBČINSTVO: Kip svobode. DAVID Malan: Kip svobode bo odgovor tokrat. Torej še enkrat, samo nekaj preprostih Primeri, katere cilj je, da vam občutek, kako smo prevedeno slikovno praske blokov bolj siten in bolj zapleteno kodo, ampak vse od ideje Še vedno popolnoma enaka, čeprav z uvedbo Zdaj pojem spremenljivke, pri čemer lahko začasno skladiščijo nekaj. Naredimo eno bolj hands-on, samo da zdaj povezati pike za nekaj malo več v realnem svetu. Ko ste pripravljeni, če bi lahko pojdite na ta URL na zaslonu. To je tudi v vašem kopija tobogani, developers.google.com/maps~~V. Kaj je dejansko nekaj storiti resnična, tako rekoč na spletu s pomočjo Google Maps API, ali programski vmesnik, na naslednji način. Google, tako kot mnoga podjetja, ponuja veliko prostega funkcionalnosti ki jo lahko uporabite za izgradnjo vaš lastne zanimive aplikacije. V bistvu, če ste že uporabljali Uber dobiti taksi ali avto, verjetno veste, da je uber zemljevidu in kaže avtomobilov na njej. To je, kot najboljši, kot sem lahko povedati, Google Maps API. So dejansko uporabo Googlovih zemljevidov, vendar uber ni podjetje kartiranje, niti ne bi, da je bila še posebej zanimiv problem rešiti na vrhu njihovih problem avto servis. In tako da stojiš, spet na ramenih drugih, Google v tem primeru. Torej jih uporabljajo Googlove zemljevide, ampak sami car in druge podobne značilnosti. Torej bomo izkoristiti to storiti naslednje. In če sem šel prehitro, samo pokliči me več v trenutku. Z veseljem povzamem nekatere stvari slike. Videti bi morali sami na strani, kot je ta. Torej Googlov lepo, in oni so med najboljšimi zagotavljajo ne samo API-jev, ampak proste API, ki jih lahko igrajo z ali uporabljati v komercialne namene. Oni začnejo vas polnjenje, če je vaša navada je visoka, vendar sem šel naprej v vnaprej in podpisan nas za brezplačni račun da, upajmo, 10 računalniki nam ne bo diskvalificira za naenkrat. Zato upajmo, da to predstavitev bo delovala. In opazili, da so API-jev za Android, iOS, splet, in spletnih storitev, karkoli že to je. Osredotočimo se na spletu. Torej, kliknite roza polje, splet, in da vas bo vodil, upajmo, na stran tukaj. In ko so dobili cel kup API-jev. In je lahko malo prepričljivo na prvem, ampak bom nas usmerja skozi tisto, kar želimo. V zgornjem levem kotu je Google Maps JavaScript API API JavaScript. Torej, pojdi naprej in kliknite, da je eden. In da vas bo vodila zdaj na po strani, predstavitve in vzorčno kodo. Naj pomanjšanje tukaj. In kaj mi nam to-- pomaknite navzdol , kjer piše Quick Start korakov. Vaš zaslon je treba videti kot moja. In tam je dva koraka, dobili ključni in začeli razvijati. Sem že naredil prvi korak za nas, dobili tako imenovano ključ. In to je skupna zamisel. Klju API je na splošno le velika naključno številko ali niz da se moraš prilepiti kodo, tako da Google ve, kdo ste, ko ste z uporabo njihovih storitev, njihovo API. To še ne pomeni, da smo obtožen ničesar. In zdaj, kliknite, namesto ena, kliknite začeli razvijati. Če bi si val me več, če ne vem, kje smo. Torej bomo samo opraska površina, tukaj, ampak kaj Mislil sem, da bi bil prepričljiv je, da dejansko imajo vse nas, uporabo Cloud9 v enem oknu in Ta tutorial v drugem oknu, upamo, dejansko dobili naše Uporaba gor in teče ki omejuje meri Google map na naši spletni strani, nato dodaja eno ali dve funkciji. Vendar bomo samo opraska Površina, kaj lahko storimo. Torej samo hiter pregled sanity. So vsi na tej strani API za Google Maps JavaScript? Bi rekel, kako začeti. Ne bomo šli skozi vse skupaj z vsemi sredstvi. OK, na drugi kartici, če ne da imajo odprto, ne gredo v Cloud9 in sami priti do le nov zavihek, na koncu. Torej še enkrat, c9.io od včeraj, c9.io, in samo ustvariti novo datoteko. In gredo naprej in klic to, kar si želite. Poklical sem rudnik map.html. Pokliči jo kaj konča v .html. In bi morali biti v grobem kje sem v tem procesu le z utripajočo poziv v prazno Kartica imenuje nekaj podobnega map.html. Ali datoteka nova datoteka tokrat. In zdaj, kot na API za Google Maps JavaScript, bomo preskočili branje skozi vse to besedilo. Ampak obvestilo, da je zdravo svet res povsod, jo vidite zdaj. Zdravo svet ima ta velika pisana Primer cel kup HTML. Pojdi naprej in kopiraj in prilepi le, da HTML, torej od tipa doc na vrhu vse do tesnega HTML tag, pojdite naprej in ponovno kopiranje vseh that--, da je v skladu s Hello World example-- in prilepite, da na kartici Cloud9, tako da zdaj zaslon treba videti približno tako kot moja. In ga lahko shranite, vendar ga ne naložiti samo še. Poglejmo prvi pogled na kodo in videli, če bomo ni mogoče sklepati, ali pa se naučite od tistega, kar je Google je imel nam slepo kopiranje in lepljenje. Oni samo želijo pomagati, dobesedno, naju je začelo, vendar pa ni, da je veliko kompleksnost dejansko tam. Vsa vprašanja samo še? Varni smo za korak naprej? V REDU. Tako hitro, kaj je pač nekaj hitrih preverjanja prištevnosti. Line eden od kar sem glej, in upam, da vas glej, kaj to pomeni, DOCTYPE HTML? Kareem, spomni? OBČINSTVO: [neslišno] DAVID Malan: Da. Prihaja HTML 5. Medtem, vrstico dva na Zaslon tukaj pomeni hej brskalnik Tu gre dejansko HTML. Tretja vrstica je hej brskalnik, tukaj prihaja glava. Line štiri je, seveda, hej brskalnik, tukaj prihaja naslov. Kaj storiti linija pet? Pravzaprav, to ne res naredil za nas. V tem primeru je to samo spremeni velikost stran za privzeto. Line šest, nismo govorili o tem, vendar pa določa kodiranje znakov. Obstaja več načinov kodiranja datotek, predvsem za tuje jezike. UTF-8 samo kaže, da je privzeta. Zdaj bomo videli, v skladu sedem do 16, nekateri CSS. In čeprav smo nismo videli vse te stvari pred, lahko nekako sklepati. Torej linijo osem sredstva, hej brskalnik uporablja vse naslednje značilnosti, za katere dveh oznak, očitno? besedilo HTML in telo. Torej, vejica je nova stvar tam. In to je samo način navede več oznak na enkrat. Potem smo dobili zavitimi oklepaji. Torej je očitno, to pove brskalnik da višino stran 100%. Torej, tudi če je zelo malo vsebine, da celo stran, da stvar zapolni stran. Naredite zemljevid končno zapolni stran. Marža, kaj to pomeni? To je običajno, kot samovoljno prazen prostor okoli robov da so nekateri brskalnik oblikovalec pravkar odločila bi smelo biti, ker ji nekako naredi stvari videti čistejši. Toda mi ne želimo. Želimo zemljevid dogaja vse do robov. Oblazinjenje, pisane v duhu robu. Robovi pomeni zunaj, oblazinjenje sredstva notri, ampak to je isto vrsto posla. To je malo pufra med vami in robovih. In potem je linija 13 dobra priložnost za hiter pregled. Kaj oster znak zemljevid pomeni, ali hashtag map pomeni? Kaj to nanaša na načelno? OBČINSTVO: [neslišno] DAVID Malan: Točno tako. Ta lastnost je ta CSS lastnost velja tudi za samo eno stvar, oznaka HTML ki ima ID ponudbo, konec citata "zemljevida". In zdaj pa hitro naprej, pomaknite na dno datoteke, ki je ni preveč daleč, in obvestilo na spletu 19, če ga prilepite točno tako kot sem storil, je linija 19 samo div, ki je delitev na strani, ki je včeraj I imenuje pravokotno območje. To je nič v njem. To je odprt tag, blizu tag. Vendar pa imajo edinstveno ID. Torej, kar se zdi, da je dogaja tukaj je Google je pripravljal našo spletno stran imeti popolno 100% višine, in nobena oblazinjenje, brez marže, saj kaj bomo dal notri te div, katere edinstven ID je Načrt je dejansko vdelan zemljevid. In hočemo, da izpolnite stran in ne samo se nekateri majhen pravokotnik na sredini. Torej prav tako poudarja linija 14 je se map mora imeti višino 100%. Torej, zdaj opazili med vrsticami 20 in 28, to je JavaScript kodo. In to je, čeprav je skladenjsko malo čudno, tam je ni vse, da je veliko dogaja. V vrstici 21, to je razglasitev nekaj, kar se imenuje spremenljivko. Namesto da bi jo kliče zneske, kot smo prej, smo natančneje rekoč var, ki pomeni le spremenljivko. Smo lahko uporabili, da v koda Nick, a je ni, tako da sem ni motilo, da gre bodisi. To je spremenljivka imenuje map in potem je tukaj še funkcija, ki je očitno se imenuje initMap. Torej, to je kot našo lastno meri puzzle kos v nič. Ustvarili smo kos funkcionalnost imenuje initMap, in lahko nekako sklepati kaj se tukaj dogaja. Na levi strani, imamo spremenljivko, tako da bomo dal naslednje stvar znotraj te spremenljivke, od desne proti levi. Desna stran pa pravi, hej brskalnik, daj mi nov Googlov zemljevid. In google.maps.map je samo funky način z navedbo, da je to funkcijo spada v Google Maps. Po oklepaju, smo videli že prej, hej brskalnik, dobili mi elementi na stran je tag na strani, katere edinstven ID is-- OBČINSTVO: [neslišno] DAVID Malan: --map. In kaj se dogaja, dobro, Ta linija skupaj, linija 23, je v bistvu rekel, hej brskalnik, pojdi me da prazni div na strani katere edinstven ID je zemljevid, ker želim, da vstavite v it-- injicirati v to, če will-- cel kup vsebin da se zgodi, da prihajajo iz spleta naknadno. In Google počne vse to za nas. Še enkrat, na samem koncu dneva, imamo ta primer abstrakcije. Nimam pojma, kaj je zemljevid ali kako izvajati API karto. Mi ni treba. Vedeti pa je treba povedati zemljevid kam se postaviti, in pusti ki so podlaga izvajanja Podrobnosti o Googlu. Zdaj je očitno dva kosa podatkov da je ta primer je zagotavlja, da Google API. Očitno središče zemljevida in raven zoom, tako rekoč. In ali kdo prepozna te koordinate, širina in dolžina? Verjetno ne, ampak lahko gremo nazaj na vajah, dobesedno videti. Ampak bomo videli čez nekaj trenutkov. Stopnja Zoom je vrednost med, ne vem veš, eno v 13 ali nekaj takega. Samo je povezano s tem, kako daleč ste Povečano ali ven, in to je to. In sedaj na samem koncu stran, obvestilo linija 29-- da je malo grd, ker je wraps-- to vrstico kode je tisto, kar prenese na Googlov brskalnik dejanska API. Vse kode, ki Googlov inženirji so napisali, da je izvajanje ves ta značilnost vdelati kart. Zdaj pa ne spremeni ničesar. Če ste po skupaj, iti naprej in samo shranite to datoteko, če si res imel kar imam. Pojdite na spletni naslov. Lahko kliknite gumb Zaženi do vrha in da bo povedal ti URL spletnega strežnika znova. In vas bo vodila do novem zavihku. Če kliknete Odpri za map.html, in verjetnost, da ste bo dobil opozorilo, sporočilo o napaki, ja? Sporočilo o napaki, sporočilo o napaki? Torej, žal, je napaka Sporočilo ni tako prosveti razen če dejansko odpre konzola, da poseben zavihek smo hranijo odpiranje včeraj in malo že danes. Ampak sem naletel to že prej, tako da sem že pogruntal, kaj je rešitev. V današnjem diapozitivov, ali ne, v Cloud9, obvestilo da nismo storili nekaj namerno. Opazimo, da je ta scenarij oznaka v linija 29, če ste prebrali to, je kot maps.googleapis.com/~~pobj nekaj, nekaj, nekaj, nato opazili nekoga, eden od razvijalcev, je zapisal v vseh kapitala pisma, vaš ključ API. Moramo prilepiti nekaj tam. In to je bil korak Sem storil za nas pred, in spet se lahko črno listo nam, če nenadoma, 12 ali več med nami začeti uporabljati isti ključ, vendar pa da vidimo, kaj se dogaja. Torej, če greš v današnjem tobogani, en slide kasneje pa je Ta zelo funky izgleda niz besedila. Pojdi naprej in kopirati samo to in prilepite kjer piše ključ API. To je tisti, ki sem se prijavili za. In zagotovo ne poskušajte ročno tipkanje ven, ker se počuti polna z tipkarske napake, potencialno. Torej, samo kopiraj in prilepi to. In to se dogaja, da bi linijo več, ampak zdaj, samo da bo jasno, da bi si malo bolj kot je ta, kadar ključ enaka ne kapitalizirane kričati na vas. Shranite stran, pojdite nazaj na drugo kartico, osvežite, in upam, da si ogledate zemljevid, kje? OBČINSTVO: Avstralija. DAVID Malan: Avstralija. Torej očitno tisti, so GPS koordinate Avstralije. In mi hodi okrog za trenutek in pomaga vsakomur, ki ni čisto tam, vendar naj predlaga, prek Googla, našli GPS koordinate svojem domačem kraju ali svoje matične države. In verjetno Google to lahko obrnejo navzgor ali Wikipedia ti lahko povem. Toda izbrali dve različni vrednosti za zemljepisno širino in dolžino, pojdi nazaj in jih prilepite, in Nato osvežite stran po shranjevanju in videli, če lahko imajo karto za svoj domači kraj. In ko ste končali s da, spremljanje challenge-- in bom dal malo manj smer, namenoma, tako da vas namenoma boriti za par minut z dokumentacijo, spremenite zemljevid, da se tega ne risanki privzeto, vendar satelitski zemljevid. Torej si dejansko videli satelit podobe namesto lepe barve. In namig bom dal je spremeniti vrsto zemljevida. Vrnite se, da postaja začel stran za navdih. Kot ste lahko naberejo, če iščete, obstaja toliko bolj stvari, ki jih lahko storite. Nekateri od vas že spremenila Vrsto zemljevida. Vendar pa lahko do-- na primer, naj me gre za nekaj, kar smo naredili za golf I teach-- maps.cs50.net. Eden od naših undergrads to storil. Mi center našo karto preko Harvard Yard in prekritje vseh teh imen stavbe, in smo mu dodali to. Torej, če želim iskati, na primer Matthews Hall imamo malo spustnem meniju. In mislim, da je z uporabo Bootstrapa, na Knjižnica smo razpravljali prej za to. In če kliknete na Matthews Hall, takoj skoči zemljevid za določeno lokaciji, in kaže si sliko v tej mali pop-up. Toda tudi to malo pop-up, nismo izvajati. Če bi se pomaknite navzdol na naši pridobivanje začel stran in iskati okna z informacijami, boste videli, da so nekateri izmed funkcionalnost ti si Lahko dodamo, čeprav z malo več kompleksnosti, je nekaj, kar se imenuje okno z informacijami. In če sem kliknite zgled tukaj, in to je tisto, kar je zabavno, lahko narediš stvari, kot je ta, klikom na čuvaja in nato voila, Podatki izskoči. Torej nismo povsem uvedli dovolj značilnosti JavaScript slikati sliko točno, kako vam lahko priključite vse te stvari skupaj, vendar smo nekako na začetku. V bistvu, kaj sem storil, ko Sem kliknil na ta marker, je proženje je dogodek, na katerem ti na klik dogodek. In smo dejansko videla Dogodek že danes, ti predloži dogodek ko smo preprečili uporabnik z iskanjem za mačke. Torej smo nekako pobral in choosed med vsemi temi različnimi značilnostmi, da vam občutek, upajmo, o tem, kaj lahko dejansko storiti z malo več udobje v programiranju, in popolnoma brezplačno viri. Kakšno vprašanje? Ne? To je vaša končna priložnost, na vsaj danes, v petek, da bi dobili vse, kar s svojega oprsja tako, da hodiš ven občutek samozavestni in udobno. Da. OBČINSTVO: Zakaj ne dodate še eno stvar? DAVID Malan: O moj bog. Moram počivati ​​ta vikend, se mi zdi. Druga vprašanja? OBČINSTVO: [neslišno] DAVID Malan: Ste can-- v Internet Explorer, počivaj v miru, ki ste ga uporabili, da bi lahko dal VB scenarij, virtualni osnovni scenarij, ampak to res ni prijela. Torej kratek odgovor je le JavaScript. Druga vprašanja? Dobro, dobro, naj to storijo. Naj zgrabi kolegom zunaj. Imajo nekaj ocenjevanje oblike, ki jih želijo vsi da preživijo nekaj minut, da izpolnite. Želijo zbrati ta obrazec in vse opustitve, ki bi lahko imeli zunaj. Oni imajo tudi certifikate. Im 'ugibati obstaja še nekaj prigrizkov zunaj. Naj mimo njih ven, in če vas kakršna koli vprašanja v tem času, Hodil bom po bolj individualno in bomo lahko dobili ste začeli. Seveda. OBČINSTVO: [neslišno] DAVID Malan: To je Običajno velja v teh dneh. Zagotovo s spleta Programska oprema, ki jo nagibala na druge, ste bodisi estetsko uporabo stvari kot Bootstrap, tako da ne morajo izvajati nizko raven podatki o menijih in gumbi in vse to. Ste se naslanja na nekoga kot so Google, tako da vas ne bi bilo treba zgraditi Uber poslovanje in poslovni kartiranje, in poljubno število podobnih aplikacije, kot tudi. Dejstvo je, prijave so zelo priljubljene, preveč. Če ste se uporabljajo Spotify ali poljubno število spletnih strani, boste prijavite v nekaterih spletne strani, ki uporabljajo Facebook. Torej, kaj je lepo, tam so API za prijave danes, tako da vam ni treba imeti svoj uporabnikom mizo in vse svoje lastne baze podatkov nujno v enakem obsegu. Lahko pustite Facebook storiti vse te kompleksnosti za vas. Torej je razburljiv čas, pošteno, načrtovanja, zato, ker obstaja toliko tretja oseba storitve, ki jih lahko gradijo na vrhu. In spet, cena, ki jo plača je finančni ali izpadov. Če Google gre dol, tako da ne Uber, verjetno, vendar je morda, da je razumen kompromis. In spet, da je bila ena od tem, upajmo, za zadnjih nekaj dni, se ti kompromisi. In redko se tam dogaja da je pravi odgovor. Res je bolje iz dveh ali več odgovorov. Mimo teh okoli. In ti Cloud9 računi bodo še naprej za delo, v teoriji, v ustaljen. Morda boste našli, če počakate nekaj dni ali teden ali več, da se prijavite nazaj v njih, to lahko traja kot eden ali pet minut, da se odpre nazaj, ampak to je samo zato, ker so mu da spati, da shranite na vire.