>> 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.