DAVID Malan: Tout dwa, nou yo tounen. Se konsa, pou enteresan nan konklizyon, seksyon dènye nou an sou pwogram entènèt, ki mwen te panse nou ta itilize kòm yon tèm jeneral pran yon kèk sijè rete yo. Se konsa, nan fen a jou, nou pral aktyèlman fè yon ti kras nan men-sou pwogram entènèt ak yon lang yo rele JavaScript. Apre sa, mwen panse ke nou pral pran yon gade nan yon bagay ki gen rapò ak imaj ak dekouvri yon bagay an kachèt kache nan yon imaj, epi tou li pran yon gade nan Google la Maps API, pwogram aplikasyon koòdone, kòm yon bagay reprezantan nan kalite la nan lojisyèl sa a, se de pli zan pli ak lib disponib jodi a. Men, poukisa pa nou pran yon gade nan yon engredyan nan mond sa a ke nou te kalite te pran pou yo akòde egziste pou kèk tan, yon baz done. Jou a sot pase yo ak yon mwatye nou te sipoze ke nou gen aksè a yon baz done, men sa ki pwoblèm yon baz done rezoud? Kisa l ap fè pou nou? Kisa li ye? ODYANS: [fèbl] DAVID Malan: Li kenbe tout enfòmasyon an, OK, ansanm ak ki kalite enfòmasyon ta ka ou mete nan li? ODYANS: [fèbl] DAVID Malan: Nenpòt enfòmasyon ou mete nan li, ou pral jwenn tounen. Sa se vre. Yo, epi sou yon sit ki baze sou wèb tipik oswa sou sit wèb aplikasyon an, ki kalite enfòmasyon, espesyalman, ou ta ka mete nan? ODYANS: [fèbl] DAVID Malan: Itilizatè yo. Se konsa, sa ki nan yon itilizatè? ODYANS: [fèbl] DAVID Malan: OK, anrejistre itilizatè nan sit la. Ak sa ki sa vle di enfòmasyon itilizatè magazen '? Ki sa ki konpoze yon itilizatè? Yon itilizatè gen ki sa? ODYANS: [fèbl] DAVID Malan: Yeah, pèsonèl done, ak mwen renmen sa. Se pou nou dwe plis presi. Se konsa, yon itilizatè tipikman gen yon non, ki lòt bagay ta ka yon itilizatè genyen? ODYANS: [fèbl] DAVID Malan: Yon OK addr--, se konsa premye non, siyati. Sa a bon. Aktyèlman, se pou yo ranje ki, paske li k ap pase yo louvri moute yon opòtinite pou diskisyon, toujou, pi lwen. Premye non, siyati, sèks. Yon ID nan kèk sòt. Kisa ankò? Mwen tande yon lòt bagay anvan, tou. Yon imel, lapòs adrès. Se konsa nou pran yon poz gen e kounye a, konsidere pa sa nou ap estoke nan baz done a, but-- epi yo pa poukisa, depi li nan petèt evidan ke yon fwa ou enskri yon itilizatè, ou vle sonje yo pou kèk tan. Ou pa vle li nan jis dwe estoke nan RAM yo epi yo dwe forgotten-- se konsa kite a konsantre sou kòman la. Li sanble ke nan mond lan nan bazdone, gen nan omwen de kalite jou sa yo. Yon bagay yo rele yon baz done SQL, Estriktire rekèt Lang, oswa, cutely nonmen non li, NoSQL, ki se pa SQL. Apre sa, lèt la se yon egzanp nan sa ki ta ka dwe rele yon objè-oryante, oswa yon magazen objè, yon baz done ki magazen objè, epi yo pa, eskiz m 'menm jan nou pral byento wè, ranje. Se konsa, nou pral konsantre sèlman pou moman yon sou premye a nan sa yo, savwa, yon SQL baz done, si sèlman paske li nan se konsa abitye deja, yo ba nenpòt moun ki moun ki te itilize Excel oswa Google Dra oswa Apple Resansman oswa nenpòt estanda pwogram calcul, oswa, équivalant, oswa plis sophisticatedly, yon bagay tankou Microsoft Aksè oswa Oracle oswa MySQL oswa postgrèskl, nan tout ki Men non pwodwi pou en nan lide ki anba la a. Yon baz done relasyon se tou senpleman yon bagay ki gen ranje ak kolòn. Ak nan ranje ak kolòn, Mwen literalman vle di yon bagay tankou sa a, Se konsa, kote nou ta ka gen nan non nan yon jaden ak kalite li yo sou isit la. Ak aktyèlman, kite m ' kounye a kòmanse nan kat jeyografik sa yo. Se konsa, aktyèlman, mwen pa konnen poutèt sa mwen trase yon tablo ki apa a. Se pou nou kenbe sa a ki senp. Nou gen dwa isit la nan kòmanse nan tablo nou an, kote sa a se non an nan jaden an ak sa a se kalite a done, ak pa di ki kalite mwen vle di sa ki annapre yo. Èske se yon nimewo, se li yon fisèl, yon afè kout tankou yon mo, èske se yon paragraf, se li done binè, tankou yon imaj? Li kite yo jis toumante sa a apa sèlman pou moman yon. Se konsa, premye non, nimewo, fisèl, moso gwo nan text-- ODYANS: [fèbl] DAVID Malan: Wi, se konsa fisèl. Ak nan yon kontèks baz done, nou pral tipikman rele sa jaden Char. Mwen pral jis di Char pou kounye a men nou ap ale nan rafine sa a nan yon moman. jaden karaktè. Denye non la pwobableman menm bagay la. Sèks? Fi oubyen pou gason, se konsa li te kapab fè yon jaden Char. Li ta ka swa quote, unquote "Gason" oswa quote, unquote "fi" oswa li ka m oswa f. Si ou vle gen plis enklizif, ou ta ka bezwen se yon valè twazyèm oswa kèk kalite lòt jaden tout ansanm. Se konsa, ou ka sèvi ak vre fo. te kapab Jaden an dwe rele gason, ak Lè sa a, ou ta ka di vre oubyen fo. Men, sa pa nesesèman pran tout enfòmasyon ki ou ta ka vle. Se konsa, li vire soti gen nan yon lòt kalite nan jaden ke sa ta kapab itil isit la nan yon baz done tipik, rele yon anom, kote li se yon jaden karaktè, men ou, designer a, li ale nan resanse valè yo posib, tankou quote, unquote "gason", quote, unquote "fi" ak pou fè. Se konsa, ki tou sa valè se nan baz done ou, se vre pèsonaj ki baze sou, men li te gen youn nan valè sa yo. Nou pwobableman pa ta vle yon anom pou premye non oswa siyati. Sinon nou ta gen resanse, kòm non an proceed soti nan, literalman chak posib non premye ak siyati. OK, se konsa sa ki ta ID yon ID ta dwe ye? Wi, se konsa petèt yon nimewo. Se konsa nou bwa avèk ki pou kounye a, kantite. Apre sa, pa kantite, nimewo a yon ti kras twò gwo kounye a. Pou nan fen dezyèm lan jou, Mwen santi mwen tankou nou ta dwe gen yon ti kras pi plis presi. Nimewo te kapab vle di tankou, li ta ka yon bagay tankou 1,236. Epi sa a, pwobableman pa sa nou vle di pa yon ID. Ki sa nou pwobableman vle di pa yon ID? ODYANS: [fèbl] DAVID Malan: Oh, OK, se konsa petèt li nan pa menm yon kantite. Petèt li la aktyèlman yon idantifyan inik sa a, se yon fisèl, tankou yon non itilizatè. Se konsa, absoliman, te kapab. Mwen panse ke yon moun pwobableman vle di nimerik, menm si. Se konsa an n rete ak sa. Ki kalite nimewo? Ki sa ki nan yon pi plis precise-- yon nonb antye relatif. Se konsa, yon nimewo tankou 0, 1, 2, 3, se konsa nou pral rele sa a yon nonb antye relatif. E menm lè sa a, mwen te kapab dwe nitpicking, li nan pa reyèlman jis yon nonb antye relatif jeneral ou vle. Ou pwobableman pa vle valè negatif, jis paske, li jis santi l etranj. Ou pwobableman vle nonm antye relatif pozitif. Se konsa, ou kapab tou eksprime ke nan yon baz done, men pou kounye a, nou pral di nonb antye relatif. Imèl? Sa a se pwobableman just-- yon ki sa? ODYANS: [fèbl] DAVID Malan: Se yon imel, men sa a karaktè, dwa? Li jis gen yon karaktè Funky tankou yon "nan" senbòl oswa yon lòt bagay, men li la toujou yon jaden karaktè. Apre sa, lapòs adrès? jaden karaktè. Se poutèt sa se yon kòmansman bèl, men kite a gen yon ti kras pi plis egzak kounye a. Se konsa, li sanble ke nan yon baz done, ou souvan gen yon chwa sou plis rafine vèsyon nan bagay sa yo. Anfèt, nan yon baz done SQL tipik, SQL, oswa plis jeneralman, relasyon baz done, baz done ak ranje ak kolòn, ou souvan li ale nan presize pa sèlman ki kalite a field-- kite m 'fè kèk isit lan-- chanm men tou, longè a. Se konsa, konbyen tan se yon non premye? Mwen panse ke, D-A-V-I-D. OK, te resevwa li mwen pwobableman jis kouri kite tankou mwatye nan moun yo nan chanm nan, dwa, depi non ou yo pi long pase senk lèt, se konsa senk sanble yon ti kras egoyis ak nayif, se konsa sa ki nan se yon valè pi byen? 10, tout dwa, e mwen panse nou ap OK nan sal la. 13? 30? Poukisa nou pa mwen pran nan apwòch nan pi bonè lè nou te pale sou ranje ak memwa? Poukisa nou pa mwen jis di tankou 1,000? Non Pa gen moun ki nan ki pral yo dwe pi long pase 1,000. Pouse tounen. ODYANS: [fèbl] DAVID Malan: Yeah, li nan inutil, dwa, espesyalman si pi fò non yo, se sèlman senk oswa 10 oswa 15 karaktè, sa a, se trè inutil. Se konsa, ou konnen ki sa? Sa a se kalite yon kesyon difisil. Koulye a, nou kapab sètènman analize angle ak non nenpòt lòt lang nan ak figi konnen, byen, ki sa ki la average-- mwayèn pa reyèlman ede nou ki sa ki nan max la se pwobableman sa nou te reyèlman vle. Men, li sanble nou menm gen kèk chwa sou kalite a isit la. Nan yon baz done SQL tipik, ou te yon bagay yo rele yon jaden Char epi tou li yon Varchar, V-A-R, achte jaden Char varyab. Apre sa, diferans lan se sa a. Yon jaden Char, ou designer a, gen presize nan avanse longè egzak la nan jaden an. Se konsa, petèt non an premye tankou 20 santi l kalite ki an sekirite. Ta ka gen fè kèk Googling wè si sa a, se aktyèlman san danje ase. Genyen pwobableman yon non ak 21 karaktè, men pou kounye a, ann sipoze 20 se an sekirite. Yon jaden Char ta vle di nan yon baz done ke ou yo lè l sèvi avèk 20 ak toujou 20 karaktè. Koulye a, si li nan jis D-A-V-I-D, 15 nan tout sa yo yo se jis pral fè karaktè vid, men w ap toujou lè l sèvi avèk tout 20 bytes. Yon jaden Varchar, pa kontra, vle di la fisèl ta dwe jiska 20 karaktè men si li nan sèlman senk, w ap sèlman ale nan sèvi ak senk, oswa petèt sis pou yon espesyal valè nan fen a, tankou sa 0 nou diskite ki vle nan fen yon karaktè sekans nan memwa. Se konsa, lè ou panse ou ta ka chwazi Char kont Varchar, bay sa komès-off? Char sèvi ak ke karaktè anpil moun, varchar sèvi ak pa plis pase ke karaktè anpil. ODYANS: [fèbl] DAVID Malan: OK, lè ou konnen nan longè nan fisèl nan bèl irezistib jis itilize Char, 'kòz si ou konnen li, jis mete l 'desann. E petèt sa a, se vre pou yon postal kòd, nan peyi Etazini an, omwen, 02138, li nan toujou pral fè senk karaktè jiskaske ou ajoute priz la kat. Men, ou ta ka gen kèk valè pou kote ou toujou konnen longè a. Oswa petèt senbòl eta a, tankou NY pou New York, ak MA pou Massachusetts nan peyi Etazini. Petèt ou gen kèk sitiyasyon kote sa a, se totalman rezonab, men pa ki lojik, poukisa yo nou menm overthinking sa a? Poukisa nou pa nou jis itilize varchar ak Lè sa a nou pral jis toujou sèvi ak de karaktè de tout fason, oswa toujou sèvi ak senk karaktè de tout fason? Poukisa nou pa jis sove varchar pou tout bagay, pa ke lojik? Dwe gen yon peche. ODYANS: [fèbl] DAVID Malan: Te kapab ekri yon move bagay. Se konsa, ki se verite. Men, menm lè sa a, yo pa ka sèvi ak plis memwa pase mwen asiyen. Mwen toujou gen final la di sou longè a, pou yo pa ka aksidantèlman fè ki erè, men yon panse bon. Li nan plis sibtil, men li la trè ki gen rapò nan diskisyon nou an, aktyèlman, nan ranje ak lye lis pi bonè. Li sanble ke yon baz done, si li konnen ke tout valè yo se nan yon longè fiks, menm si kèk nan valè sa yo se vid, sòt de estetik vid, D-A-V-I-D ak Lè sa a, 15 espas vid, li sanble ke si chak jaden se longè a menm, anpil tankou yon etalaj te gen tout nan bagay li yo tounen nan tounen nan do nan do pou ke ou ta ka jis plis 1 pou li ale nan pwochen an valè, menm lide nan yon tab baz done. Si tout nan karaktè ou strings yo longè a menm, ou gen sa yo rele aksè o aza. Si tout strings yo yo se nan longè 20, ou pa fè sa jis fè plis 1 ou jis fè plis 20, plis 20, plis 20, plis 20, epi ou ka trè vit woulo liv atravè oswa rechèch nan tout nan done ou. Yon jaden Char varyab, pa kontra, pa toujou gen 20 karaktè. Li ta ka gen 20 ak Lè sa a 15 ak Lè sa a 19 ak Lè sa a 10, ak Se konsa, si ou vle fè rechèch nan li, ou pa kapab jis je fèmen ajoute 20 bytes pou li ale nan youn nan pwochen. Ou literalman gen nan rechèch nan paske kwen an nan estrikti a done, si ou vle, se dekousi. Li kalite ale nan ak soti ki baze sou longè aktyèl la nan fisèl la. Se konsa, lè ou konnen longè a, kòm Kareem di, sèvi ak yon jaden Char, paske ou jwenn ki efikasite pou yo te kapab nan rechèch nan li pi vit lè w ap chèche pou done, otreman sèvi ak yon varyab. Malerezman, Mwen pa gen okenn bon repons konbyen tan non an ta dwe, men pou yon bagay tankou yon non, mwen ta ka di yon varchar se komen paske li pa k ap pase yo dwe yon longè fiks pou tout moun. 20, mwen pa konnen, 20 santi l yon ti kras sere. Se pou nou jis di 50, 50. Li pa reyèlman koute ou ki pi plis yo di 50 olye pou yo 40, men nan kèk pwen, ou bezwen fè yon apèl jijman. Trè komen, franchman, pou [? istorik?] rezon, menm si li nan twòp, sa a vle di 255, paske gen kèk tan de sa, nan sistèm baz done popilè, tankou Miskl, yon gratis zouti sous louvri ke yon anpil nan konpayi tankou menm Facebook itilize, sa a te default la maksimòm Se konsa, pèp jis te ale ak li. Se konsa, pa rezonab, men nou pral sèvi ak yon ti kras pi plis entwisyon epi di, asire w 50, sa a, se pwobableman yon ti kras twòp. Sèks, mwen fè tankou anom, epi pou nou kapab Se poutèt sa resanse bouk ou fenmèl, oswa petèt pi plis efikasite, m oswa f oswa kèk lòt senbòl, men anom santi l tankou yon bon chwa a. Pou yo kapab klè, sèks te kapab jis gen yon Varchar, ak nou te kapab jis tout dakò moun ke bèl, toujou mete valè yo menm la. Fi oubyen pou gason oswa etajèr. Men, pwoblèm nan lè sa a, se ke nou te kapab fè yon erè, kòm [fèbl] pwopoze pi bonè nan yon kontèks diferan. Si nou fè yon erè, nou te ka jwenn valè kòrèk nan baz done nou an. Se konsa, sa ki nan bèl sou baz done tankou Oracle ak miskl ak lòt moun, se ke ou gen sa a dènye kouch nan defans kote ou administratè DBA, baz done, moun ki va ki desine tablo sa a tankou nou yo vèbalman, te kapab mete nan plas yon anom ki pwoteje kont ki pa ki espesifye gason, fi, ak konsa pesonn pa lòt pa gen okenn pwogramè kapab aksidantèlman Insert nenpòt lòt valè. Se konsa, sa a ta ka yon bon bagay. Sa a se yon karakteristik. Se konsa, yon ID, an konsideran yon ID nimerik, li pwobableman ta dwe gen yon nonb antye relatif pozitif. Apre sa, nou pafwa fè gen opòtinite yo diskite sou longè. Ou pa t 'vle tipikman presize yon nimewo isit la, ou ta olye pou presize sa a se yon int, oswa yon int gwo, kòm yo ap tipikman rele. Men, tipikman, yon nonb antye relatif ta dwe, se pou yo di, 4 bytes. Men, si li nan 4 bytes, sa a, se ki jan anpil Bits? ODYANS: [fèbl] DAVID Malan: 32 miyèt moso. Se konsa, kouman anpil divinò nou ka gen nan baz done nou an si yo tout gen yon ID ak ID sa a gen yo dwe inik? 32 Bits vle di nou gen modèl nan yon sèl, de, twa, kat, five-- Se konsa, kouman anpil modèl diferan nan zewo ak moun yo ou ka gen si gen 32? Sa a menm bagay la kòm mande sa ki nan de a 32 an? Li se yon nimewo gwo ke Mwen pa ka byen jwenn dwa, Men, mwen konnen li nan apeprè 4 milya dola. Se konsa, sa vle di tab baz done ou ka gen kat milya dola itilizatè yo ak sa a, se li. Se konsa, sa a se yon enteresan konsepsyon enplikasyon. Yon nimewo desan nan konpayi te deside, petèt pa tèlman pou itilizatè tab yo, paske li te gen 4 milya de dola itilizatè se yon pwoblèm ra anpil. Sa a se sòt de yon Facebook-style pwoblèm, pa yon pwoblèm konpayi nòmal pou li. Men, petèt si ou gen mòso bwa tranzaksyon oswa kèk kalite done ki toujou ap vin ekri nan baz done ou ki absoliman te kapab gen dè milya ak dè milya de ranje, ak ou itilize yon nonb antye relatif pou li, sa k ap pase rive le pli vit ke ou jwenn yo ranje nimewo 4 milya de dola ak Lè sa a ou eseye insert nan 4 biyyonnyèm ak 1, se konsa pale? Mwen senplifye nimewo yo yon ti jan. Ou ka koupe tounen, mwen vle di ou gen okipe li yon jan kanmenm. Ak sa ki yon òdinatè ta tipikman fè, panse osijè de sa yo soti nan sa a maten, si ou gen yon valè 4-ti jan tankou 1, 1, 1, 1, ki, jis mare maten an ansanm yo apremidi a, ki sa nimewo sa a reprezante nan binè? OK, nou pral fè li pi fasil. Ki sa nimewo sa a reprezante nan binè? OK, nou pral fè li pi fasil, ki sa sa a reprezante nan binè? ODYANS: Twa. DAVID Malan: Twa, paske nou gen yo menm ki column-- [Ri] Wou! Nou te gen yo menm kolòn nan ak kolòn nan Dezan. Se konsa, ta kwè ke, tout bon, nou an [? infield?] yo pa t '32 Bits, men li te de Bits, nou kapab konte soti nan itilizatè nimewo 0, 1, 2, 3, ak Lè sa a nou ap kalite tounen nan itilizatè 00 ankò. Se konsa, sa a se sa tipikman k ap pase. Si ou te janm tande pale ekspresyon ki nan pwobableman gen pa, men si ou en- nonb antye relatif debòde, kote ou kenbe ranvèrsan tout nan Bits ou yo dwe valè yo pi gwo posib, ak Lè sa a w ap soti nan Bits, sa ki ta tipikman rive? Poukisa pou m 'di 00? Oke, sa a se twa. Kouman pou mwen reprezante 4? Kouman pou mwen reprezante a pou nimewo 4 nan binè? ODYANS: [fèbl] DAVID Malan: yonn-yeah, pa di 100 se pou chak, paske li gen sa ki mal la siyifikasyon, men 1-0-0. Se konsa, ke nimewo 1-0-0 se vre kòrèk, men si ou gen sèlman de Bits, Kisa ou reyèlman fè konsa? Ou te woule sou nan 00. Ak tout bon, se sa ki ta rive. Aktyèlman, ou ka panse sou sa a plis familyerman. Si ou sonje, ki sa, 16 ane de sa, mond lan te sipoze fini lè pwoblèm nan Y2K te pase. Poukisa te sa? Oke pi òdinatè, pou desizyon rezonab, te estoke nimewo renmen an ane 1975 oswa ane a 1999 pa jis lè l sèvi avèk de chif nan memwa òdinatè a. Se konsa, nan kou, sa k ap pase lè ou rive nan ane a 2000, ou ale nan sa a, ou pito, yeah. Se konsa, ou ale nan ane a 2000, men si w ap sèlman lè l sèvi avèk de chif li sanble tankou ane a 00 ak se konsa ou te woule sou. Lè sa a se poukisa yon anpil nan sistèm bezwen yo dwe mete ajou nan moman an. Se konsa, avèk ki te di, konpayi tankou Facebook kouri moute kont sa a. Se konsa, wout la sèlman nan okipe a sitiyasyon, franchman, se antisipe li. Ou wout la propr okipe sitiyasyon sa a se antisipe li pou ou pa fè sa gen fè chanjman pita. Se konsa, olye pou yo 8 bytes, ou konnen ki sa? Mwen pral yo dwe pi devan-panse isit la, menm si li nan yon ti kras optimis ke nou ap ale nan gen 4 milya de dola ak 1 itilizatè sou sit entènèt nou an. Men, kite a jis itilize 8 bytes, oswa 64 Bits, ki ta jeneralman gen rele yon gwo nonb antye ki pè, trè teknik. Epi sa jis vle di ou ka gen menm plis chif nan nimewo ou yo. Men, sa a se yon enpòtan desizyon konsepsyon, paske si ou chwazi pou ou yon nimewo ki gen Bits tou kèk nan ekspresyon , ou te kapab aktyèlman kreye yon ensèk nan lojisyèl ou. Tout dwa, kidonk kite a vlope moute ak imel ak adrès lapòs. Se konsa, imel, konbyen tan ta dwe yon adrès imel ta dwe ye? 50. Mwen vrèman pa gen okenn lide, men li la pwobableman yon bagay tankou sa yo, paske otreman pa gen yon k ap pase yo ekri ou si li vin twò lontan, se konsa 50, se pou yo ale ak li pou kounye a. Sèvis adrès, depi konbyen tan ta dwe ki ta dwe ye? ODYANS: [fèbl] DAVID Malan: Li pa jis yon kòd postal, menm si. Sèvis adrès, m 'te tande. Se konsa, sa a se tankou 1 BRATTLE Square, vigil, Cambridge Mass., vigil, 02138. Ak an reyalite, kite m 'jis rale moute yon ti kras Fèy travay isit la. Sa a santi l tankou li nan yon opòtinite rate. Si nou gen 1 BRATTLE Square, vigil, Cambridge MA 02138, Mwen santi mwen tankou nou ka fè pi bon pase jis adrès lapòs. Poukisa nou pa nou eksploze sa a yon ti jan ti kras? Kisa mwen ap resevwa nan? Ki sa nou ta dwe olye gen pou ranje nou an isit la, petèt? ODYANS: [fèbl] DAVID Malan: Yeah, kidonk kite a rele li street_number, ak yon souliye se jis yon komen fason pou gen sa ki sanble yon espas, men li la pa, aktyèlman. Street, ak Lè sa a city-- regrèt? ODYANS: [fèbl] DAVID Malan: Nou te kapab fè sa. Liy youn, liy de. Poukisa nou pa nou ap kenbe li senp pou kounye a, men sa a absoliman yon desizyon akseptab. Lè sa a, eta, ak Lè sa kite nan gen yon ti kras US-santre pou kounye a ak jis fè kòd postal, jis paske li pral mennen nan yon erè enteresan oswa yon pwoblèm isit la. Se konsa, ta kwè sa a, se kounye a adrès nou an. Li se yon ti kras pi plis anmèdan ki nou gen tout bagay sa yo jaden yo plis, men kounye a nou ka tag bagay sa yo yon ti kras pi byen. Se konsa, kounye lari nimewo pwobableman pa ta dwe yon Char, yo ta dwe li? Ki sa ki ta li ta dwe ye? ODYANS: [fèbl] DAVID Malan: Petèt, yon PO tankou yon nonb antye relatif ankò? Yon nonb antye ki pè gwo? Ou pwobableman pa rete nan 4 milya dola Main Street oswa nenpòt bagay fou tankou sa. Se konsa, nonb antye ki pè se pwobableman bon, men gen nenpòt moun ki janm viv nan yon adrès tankou 1A BRATTLE Square, oswa 1 ak 1/2? Tout bagay sa yo egziste, malerezman, menm si ou pa te viv la, gen anomalies sa yo tankou 1A apatman, 1B, 1 c. Se konsa, ou konnen ki sa, nou pwobableman pa ta dwe ale ak nonb antye relatif, otreman nou pral pèdi kèk lavant yo. Char jaden, petèt? Mwen pa konnen konbyen tan. Li nan pwobableman pa pral fè ki long, se konsa 10 oswa yon bagay. Pa gen moun ki k ap pase yo ekri yon nimewo pi long, petèt. Men, ankò, nou ta dwe pwobableman bay plis te panse nan sa. Petèt google, fè kèk rechèch, men nou pral ale ak kouraz nou an pou kounye a. Streets, Char, 50, mwen pa konnen. Nan kèk pwen, pa gen yon k ap pase yo ekri l 'sou yon anvlòp, tou, se konsa gen nan pwobableman kèk limit anwo a. City, menm, asire w, se konsa Char 50. Eta a, kapab US-santre pou kounye a. Se konsa, li te kapab fè yon lis, se konsa kalite nan yon apèl jijman, leta yo. Li ta ka tankou de karaktè. Se konsa, aktyèlman, petèt, mwen te kenbe li di Char. Mwen pwobableman vle di Varchar, jis pou kèk efikasite, men nou pral tounen vin jwenn ke desizyon koulye a. Te kapab fè yon Char nan longè 2 pou eta a. Si nan peyi Etazini an yo gen, tankou MA, Massachusetts, NY, New York, New Jersey, New Jersey, ak pou fè. Se konsa, li te kapab dwe fiks nan sa. DC pou Washington DC. Men mwen panse ke, Olivier, ou pwopoze yon lòt apwòch. ODYANS: [fèbl] DAVID Malan: Yeah, se konsa li nan yon ti kras anmèdan tape nan, men yon anom ta ka fè plis sans, paske fason sa a, omwen nan peyi Etazini an, , ou te kapab resanse, si tediously, men ou fè li jis yon fwa nan baz done ou epi pa janm ankò gen yo reflechi sou li, tout 50 kòd de-karaktè. Se konsa, mwen renmen anom. Se pou nou rete ak ke gen, paske li sòt de fè respekte plis difikilte. Lè sa a, zip kòd? Mwen panse ke Andre te gen yon te panse sou ki ODYANS: [fèbl] DAVID Malan: Yeah, senk oswa nèf. Se pou nou jis kenbe li senp. Ou menm, fè senk pou kounye a. Men, petèt mwen te kapab jis fè yon nonb antye relatif, dwa? Mwen te kapab, men ou konnen ki sa, mwen te fè sa a erè yon fwa, nan kèk sans. Sa gen kèk ane, mwen te migrasyon soti nan Microsoft Outlook nan Gmail, ak pespektiv gen yon jan pou ekspòte tout nan kontak ou kòm yon dosye Excel, yon CSV dosye, vigil separe valè dosye-a. Apre sa, mwen fè erè a, mwen panse, yon lajan doub klike li, yon fwa mwen telechaje ekspòtasyon an, nan asire w ke li gade tankou mwen espere. Mwen dwe te frape Save oswa kite oto-sove kout pye nan oswa yon bagay. Paske lè m 'Lè sa a, enpòte l 'nan Gmail, li tout te travay. Men, pou ane, nan jou sa a, ak M 'te fè sa a senk, 10 ane de sa, Mwen toujou jwenn zanmi ki gen adrès ki gade tankou sa a. Poukisa? ODYANS: [fèbl] DAVID Malan: Li te pran 0 nan, byen, olye, li pran kòd postal antye kòm yon nimewo, ak Se poutèt sa li a yon 0 dirijan ki vle di li pa gen okenn sans. Se konsa, 2138 sanble ap kòd postal m 'yo. Lè sa a se, franchman, yon Excel anmèdan karakteristik kijan Mwen panse ke pa default, menm si li nan vle di ke yo jis gen tèks, Microsoft Excel deside, kite m 'ka itil, ak oh, mwen wè nimewo sèlman. Se pou nou trete sa yo kòm chif yo. Epi, se tronk zewo yo ki mennen. Mwen fè sèman bay Bondye, chak koup nan mwa mwen jwenn yon adrès, ak soti nan yon sòt de OCD, m 'ale tounen an epi ajoute 0 a, menm si mwen pa janm voye moun lèt oswa anyen. Men, mwen toujou jwenn sold nan sa a. Se konsa, sa sa a vle di, se sa a yon bon lide? OK, pa gen okenn, paske nenpòt moun ki nan Massachusetts, nan zòn sa a, ki pral gen yon o mache devan. Se konsa, se pou yo ale ak tankou Char, pwobableman, senk. Ak isit la, reyalize nou te kapab sèvi ak yon anom epi nou te kapab resanse 10,000 kòd postal posib, men sa santi l tankou li la pwobableman travèse yon liy nan, tankou, benefis yo. Si ou gen opinyon ki done anpil nan baz done ou nan pwoteje kont yon bagay. Se konsa, Char reyalize ou ta ka tape nan H-E-L-L-O kòm kòd postal ou, ki se pa, evidamman, nimerik. Se konsa, gen nan pa gen fason, nan yon baz done tipik, ou presize sèlman nimerik ak sèlman senk karaktè long, se konsa nou ap ale nan gen fè sa nan kòd. Nou pral fè sa nan PHP oswa Java oswa kèlkeswa sa lang nou ap lè l sèvi avèk sou sèvè a aplike ki kalite contrainte. Woo! Tout dwa, se konsa nenpòt kesyon jis ankò? Se pou yo fè yon lòt desizyon konsepsyon. Li sanble ke ou tou jwenn yo chwazi, lè konsepsyon yon baz done SQL, oswa tipik database-- relasyon kote ankò, relasyon jis vle di ranje ak kolòn, sa a, se ki jan ou òganize data-- ou ak reyalize ke sa sa vle di se, Mwen te twonpe nan sa, mwen se drawing-- sa a se sa ki rele proje a pou yon tab baz done. Sa a se renmen an espesifikasyon pou table-- la men lè li rive tan ki aktyèlman done magazen, epi n ap fè sa jis pa egzanp isit la. Mwen pral louvri moute Excel, paske Excel vle ban mwen ranje ak kolòn. Epi sa a, ekzakteman ki sa Oracle ak Miskl ak lòt zouti vle ban mwen. Se konsa, mwen jis ale nan sèvi ak li pou dedomajman pou diskisyon an. Kite m 'ale pi devan epi louvri moute yon reprezantan dokiman isit la, rale nan yon ti jan. Se konsa, pou egzanp, Tèt nou an yo kounye a se premye non, siyati, sèks, ID, imel, nimewo lari, lari, whoops. Street, vil, eta, jis sou adapte sou ekran an. Se konsa, sa sa vle di se ke lè yon itilizatè premye anrejistre pou sit entènèt m 'yo, li nan pral fè yon bagay tankou David, Malan, m, se pou yo di 1, malan@harvard.edu, nimewo lari pral dwe tankou 1 BRATTLE Square, Cambridge, MA, 02138, ak Lè sa pou fè. Se konsa, lè m 'di ke yon baz done relasyon oswa baz done SQL se ranje ak kolòn, Mwen vle di sa a. Eske se sa ke done reyèl ki estoke nan ranje ak kolòn. Sa a se jis yon konyensidans, ke nou te pale, epi mwen te jis dessin li soti nan ranje ak kolòn. Sa a se jis proje a, definisyon an toupatou. Se konsa, nan jaden sa yo isit la, oswa équivalant, gen, ki se jaden yo ke ou panse Mwen se chans yo rechèch sou si mwen se yon itilizatè oswa si mwen se administratè a baz done? Tankou, ki sa jaden yo mwen aktyèlman ale nan rechèch sou? ODYANS: [fèbl] DAVID Malan: Non a, yeah se konsa Mwen renmen lefèt that-- yeah, imel ta ka dwe trè komen. Padon, ou te di non. Se konsa, maybe-- e ankò, nou ap kalite pale nan abstrè a. Mwen pa konnen poukisa ou ta dwe pou chèche yon non, men ki santi l rezonab si w ap chèche pou yon itilizatè. Petèt eta, asire w, ID. Lè li nan yon glise pant, paske mwen te kapab konbine yon senaryo kote petèt te bòs nan travay mwen mande m ', konbyen moun nou gen sou sit nou an? Konbyen fanm nou gen sou sit nou an? Se konsa, nan pwen sa a, ou ta ka vle fè rechèch sou jaden an sèks, tou, e pa gen anyen lòt bagay. Se konsa, gen nan yon komès-off isit la. Yon fwa ankò, gen nan pa gen dwat repons, men gen se yon karakteristik nan pi fò baz done SQL li te ye tankou Indexing, annakò ak sa ou, designer a, nan administratè baz done, li ale nan deside davans ki jaden yo baz done a ta dwe optimize pou rechèch sou. Ou te kapab trè naivman di, optimize sa a, optimize sa, optimize sa a, optimize ki ak sa a, ak baz done a pral fè kèk bagay majik anba a kapo, ak fè yon bagay nan yon fason ki lè a pwochen ou rechèch sou nenpòt nan jaden yo sa yo, li pral, an reyalite, gen pi vit. Sa a se posib. Li pa anile tèt li soti. Men, dwe gen yon pri peye. Si ou naivman, oswa sou-antouzyasm di, endèks tout nan jaden sa yo, se konsa pale, fè yo tout avèk efikasite consultable, sa ki pri yo pwobableman ou peye? ODYANS: [fèbl] DAVID Malan: Pèfòmans. Kisa w vle di? Oke pèfòmans, omwen nan la kontèks mwen diskite sou, se pi bon kounye a. Sa a definisyon an nan Indexing. Li pral fè rechèch pi vit. Se konsa, tan diminye, se konsa pale. ODYANS: [fèbl] DAVID Malan: Espas. Se konsa, ankò, sa yo se yon komès komen. Mwen kapab pi vit rechèch ou, men li la pral koute ou plis bytes nan espas. Poukisa? Oke, pa default, si nou gen Pa gen yonn nan sa yo zetwal wouj, pa youn nan endis sa yo, kòm m ap di, ki jan ou rechèch pou yon non nan baz done sa a? Se konsa nou trase nou an atansyon sou egzanp sa a. Si nou gen David ak Scully ak Kareem ak arwa ak lòt moun nan ranje sa yo, pa egzanp. Se konsa, kite a fè egzakteman sa. Scully se nan isit la, ak Lè sa a nou gen Kareem, ak arwa, ak tout lòt moun, si ou pa fè sa gen yon endèks defini, se konsa pale, pi bon an ou ka fè se rechèch lineyè. Si ou rechèch pou arwa, nou pa ap pral pou kapab so dwa l ' byen vit. Nou pral kòmanse tèt ak ale tout wout la jouk anba a, pa kontrèman ak orijinal nou an Mike Smith egzanp. Si, toutfwa, mwen vle di, hey, baz done, endèks jaden an Non premye, lè sa a li k ap pase yo fè yon bagay amateur ak sipòte yon bagay tankou rechèch binè. Li pwobableman pa rechèch binè se pou chak. Baz done yo gen tandans sèvi ak yon lòt estrikti done rele b-pye bwa, pa dwe konfonn ak pye bwa binè, ki jis fè li pi vit fè rechèch yon bagay logaritmik nan lanati. Men, pri a ou peye yo bati moute ki karakteristik, ke estrikti done nan memwa, se pi plis bytes. Se konsa, li ta ka pran kèk megabit, kèk jigokte, ki moun ki konnen? Sa depann de done yo. Se konsa, nan kèk pwen, ou gen deside, li la pwobableman pa yon ka komen. Se konsa, sa yo komen aktyèl la ka, si ou reyèlman te gen yo chwazi, sa ki ka jaden yo pi renmen ou ta dwe ye? Imèl. Apre sa, mwen renmen imel paske imel, nan teyori, yo ta dwe inik. Se konsa, tipikman, lè ou konnen nan avanse ke youn nan jaden nou se oswa yo pral inik, ki gen tandans ka yon jaden bon fè rechèch sou li a, paske fason sa a, lè ou rechèch pou yon bagay, w ap ale nan jwenn tounen youn oswa zewo repons ak Lè sa a w ap fè. Ou pa oblije kenbe kap chèche ankò lòt moun. Se konsa, nan ka sa a isit la, imel, se konsa lontan ke ou pa kapab enskri de fwa ak imel la menm, se yon yon sèl bon. ID pa definisyon, nan la òdinatè mond syans, si w ap pale sou yon ID, ki te gen pi bon dwe inik. Sa a sòt de siyifikasyon an nan ID oswa idantifyan. Tout rès la nan sa yo ta ka, se pou yo rele yo bèl yo rich, men se pa reyèlman yo mande yo. Se konsa, nan yon baz done, ou presize endis, men ou kapab menm plis presi. Ou ka di, hey, baz done, asire w ke ke chak ID nan tablo sa a se inik. pa menm kite yon pwogramè aksidantèlman mete nan yon imel kopi oswa kopi nimewo ID. Se konsa, anpil tankou enums pwoteje nou Menm jan an tou, ou ka gen moun defans pi ba-nivo. Se konsa, konsepsyon baz done, nan kèk sans, se kalite plezi, paske ou fè l 'pridans. Ou sòt de asime ke ou ap travay ak terib, pwogramasyon terib , epi ou vle mete nan defans kòm anpil ke ou kapab pwoteje done ou a, men an menm tan ou vle yo ede yo fè pi bon pa chwazi ki jaden yo yo optimize pou. Men, ou pa ka nesesèman fè l 'nan yon vakyòm tankou nou kalite se isit la. Ou te te rive nan konnen ki sa yo ka sa yo komen ke yo te. Si devlopè yo yo mete ann aplikasyon yon liv adrès, ou ta ka trè byen vle pral kapab fè rechèch sou prèske chak jaden, jis pa nati nan aplikasyon an. Se konsa, petèt ou pase espas sa adisyonèl. Dwa, nenpòt kesyon? Yeah. ODYANS: [fèbl] DAVID Malan: No ODYANS: [fèbl] DAVID Malan: OK. ODYANS: [fèbl] DAVID Malan: Oh, se konsa nou ap pale nan yon fason kounye a ke nan konplètman ak lang agnostik. Se konsa, nou ap pale kounye a sou baz done relasyon plis jeneralman, oswa SQL baz done plis jeneralman. ODYANS: [fèbl] DAVID Malan: Yon ti mo pi bon yo sèvi se, kapab itilize pa nenpòt lang. Se konsa, mwen ka ekri JavaScript Kòd, C kòd, C ++ kòd, Java Kòd, Ruby kòd, tout nan yo ki pale ak yon baz done ak egzekite requêtes. An reyalite, sa a, se pa yon move seg nan yon sijè rechèch egzanp. Epi ankò, nou pa ap ale nan ale nan Java oswa C ++ oswa nenpòt nan sa ankò, men nan SQL, ak lang nan ki mwen kenbe refere li, estriktire rekèt Lang, sa a li menm se yon lang programmation, men li la vle di ke yo gen pou itilize pou, pa gen sipriz, estriktire demann rechèch. Pa sa mwen vle di sa a. Fason ki ou chwazi done ki sòti nan yon baz done miskl se ou literalman tape nan pwogram ou an yon bagay tankou chwazi zetwal soti nan itilizatè. Mwen an konsideran ke tablo sa a, koulye a yo rele itilizatè. Mwen te kapab rele l 'anyen nou vle, men ki kalite fè sans. Se konsa, chwazi se yon trè komen vèb, si ou pral, nan SQL, ki literalman fè sa. Ki sa ou panse zetwal vle di nan kontèks sa a? ODYANS: [fèbl] DAVID Malan: Mwen regrèt? ODYANS: [fèbl] DAVID Malan: Pa obligatwa, li nan plis enklizif pase sa, aktyèlman. Li nan pèsonaj la kat nan bwa. Star prèske toujou vle di anyen, kidonk sa a vle di, nan ka sa a, chwazi tout bagay soti nan baz done a. Se konsa, lè m 'di sa a, mwen vle di ban m 'tounen chak kolòn soti nan tab avè m 'rele itilizatè. Se konsa, ban m 'yon seri rezilta, kòm sa yo rele. Nan lòt mo, ban m 'yon kopi nan calcul, se sa m 'ap resevwa nan. Men, si m 'te di chwazi zetwal soti nan itilizatè kote ID egal 1, ki jan gwo ta dwe seri rezilta mwen an ap lè sa a? Ou équivalant, ranje konbyen ta dwe Mwen dwe remèt tounen soti nan baz done a? Pwobableman sèlman yon sèl, si mwen gen tout bon trete ID kòm yon idantifyan inik, epi si David gen ki ID inik, mwen ta dwe pran tounen yon sèl ak sèlman yon sèl ranje ki gen tout enfòmasyon David la. Si m 'te di sa a kote ID egal 99, mwen ta dwe jwenn tounen, nan kontèks sa a, zewo ranje, omwen nan moman an. Sepandan, si mwen pa reyèlman sousye sou tout enfòmasyon sa a, Mwen te kapab jis di, kote David ap viv? Chwazi Kòd postal soti nan itilizatè kote ID se 1. Sa a pral chwazi m 'sèlman postal David la Kòd epi yo pa antye a nan ki ranje. Poukisa pou m 'ta ka fè sa olye pou yo rechèch nan zetwal, kat nan bwa? ODYANS: [fèbl] DAVID Malan: Yeah, mwen ta ka sèlman bezwen li. Se konsa, pèfòmans se ankò repons lan isit la. Poukisa mande pou plis enfòmasyon pase ou bezwen, paske menm si li nan tout dwa ansanm, ou toujou gen a kapab bay kopi ke done, li ta sanble, ki soti nan baz done a nan pwogram ou an yon jan kanmenm, ak sa se sèlman komik si ou sèlman bezwen senk nan chif sa yo, pa antye a nan ranje a. Se konsa, kouman mwen insert yon itilizatè? Sipoze yon itilizatè gen jis anrejistre pou premye fwa. Sentaks la ta anjeneral gade tankou sa a. Antre nan itilizatè yo, ak lè sa a nou ta ka di valè, ak Lè sa a nou ta ka di valè tankou, kite la di, Lauren Scully, videograf nou an isit la menm. Apre sa, jaden an pwochen se sèks. Se konsa, nou pral di quote, unquote "F", Lè sa a, nou gen yon ID ak mwen pral say-- kite nan pretann li nan pa aktyèlman isit la, se konsa nou pral remonte nan istwa a. Se konsa, 2 yo pral ID li. Lè sa a, jaden an pwochen isit la se imel li. Se konsa, li k ap pase yo dwe tankou Lauren Scully ak pou fè, epi n ap jis dot dot dot l 'ale nan isit la sou. Koulye a, li pral jwenn yon ti kras fatigan, men rechèch la insert ta finalman gade tankou sa. Si m 'vle yo debarase m de Scully, uh-oh, se pou yo deregister li, li efase kont li, efase soti nan itilizatè kote ID egal 2, pral debarase m de Scully. Oswa mwen ka di itilizatè aktyalizasyon mete, kite a di, ki sa ki kapab nou chanje? Sipoze li deplase. Mete postal egal 021-- non, sa a, se postal aktyèl li. 90210. sèlman lòt kòd postal Mwen konnen nan mond lan. Se konsa, ki ta ka chanje postal li code-- aktyèlman, ki pa ta ka chanje kòd postal li. Ki sa mwen jis fè? Menm si sentaks la se pwobableman nouvo. ODYANS: [fèbl] DAVID Malan: Yeah, mwen te deplase tout moun nan Beverly Hills, California. Se konsa, mwen ta dwe aktyèlman di ki kote ID egal 2. Ak pou fè. Se konsa, SQL se tout sou sa yo kalite enstriksyon. Chwazi, insert, efase, aktyalizasyon, ak atribu sa yo nan fen a sa yo Paragraf kote, se konsa pale. Apre sa, nan yon anpil plis ou kapab fè, men li vrèman jis klou desann tou senpleman, si arcanely, eksprime sa ou vle baz done a fè. Lè sa a, baz done a pral konnen ki, lè ou insert Lauren Scully nan la baz done, ki kote yo mete l 'nan memwa pou nou ka trè byen vit jwenn li ki baze sou adrès imel li oswa ki baze sou nimewo ID li oswa renmen an. Yeah, lavil Dann. ODYANS: [fèbl] DAVID Malan: Vrèman bon kesyon. Èske Scripts sa yo chanje soti nan Microsoft Aksè nan Oracle miskl postgrèskl? Repons kout la se li depann. Nan teyori, gen yon trè enpòtan sous-ensemble komen nan SQL ki nan pataje atravè tout nan en sa yo. Sepandan, manifaktirè divès kalite gen te ajoute karakteristik nan baz done yo nan fè kèk bagay pi lwen pase sijè ki abòde lan karakteristik sa yo, ki ta ka, an reyalite, kraze. Se konsa, devlopè yo fason bòdi kont sa a, se ke olye ke ekri anvan tout koreksyon Kòd SQL tankou mwen ap ekri isit la, yo olye pou sèvi ak yon bibliyotèk, yon bibliyotèk komen ki tèt li se sòt de pi wo-nivo ak rezime lwen ki pwodwi w ap itilize. Apre sa, li ba ou fonksyon ak pwosedi yo rele pou ke ou pa janm aktyèlman ekri anvan tout koreksyon SQL. Nan teyori, lè sa a, ou kapab chanje pwodwi ki soti nan Oracle nan Microsoft oswa vis vèrsa oswa nenpòt bagay lòt moun, epi ou literalman chanje pa gen anyen sou kòd ou a. Reyalite a, menm si, se, ou pafwa bay moute karakteristik kòm yon rezilta. Ou ta ka te chwazi yon pwodwi paske li nan te resevwa sa yo karakteristik valè-te ajoute, epi w ap jis kounye a pa lè l sèvi avèk yo konsyans. Apre sa, anèkdotik, pifò konpayi yo gen tandans pa janm avanse pou pi lwen baz done yo. Se konsa, pandan sa a se yon bèl yo gen karakteristik, reyalite a se, si w ap ekzamine baz done ou, w ap pwobableman fè grap rezen lòt chanjman de tout fason, ke ou fè pa nesesèman bezwen antisipe sa. Se konsa, li joui sou-jeni pwoblèm nan, men li vrèman depann sou kontèks la. Men, nan teyori, SQL sa nou pataje atravè sa yo pwodwi divès kalite. Reyèlman bon kesyon. Yeah. ODYANS: [fèbl] DAVID Malan: Yeah, se konsa ou ka panse yon baz done se jis yon sèvè, nan fen jou a, ak andedan nan ki sèvè se yon pakèt antye nan tab, ranje ak kolòn. Men, lè ou voye yon sijè rechèch tankou sa a soti nan pwogram ou an, sit entènèt ou, ekri nan Java, Ruby, Piton, kèlkeswa sa, sèvè a ap resevwa kòmandman sa a ak entèprete l 'nan literalman menm jan an nou diskite pi bonè ak entèprete lang, ak Lè sa a fè kèk aksyon sou zewo oswa plis ranje nan zewo oswa plis tab. ODYANS: [fèbl] DAVID Malan: Egzakteman, egzakteman. Se konsa, pseudocode la pou yon bagay tankou ke sa ta kapab sa a. Nan dosye PHP ou oswa ou dosye Piton oswa dosye Java ou, ou ta gen pseudocode kòd, oswa Grafouyen-tankou blòk kòm, si vizit itilizatè acme.com/register~~V la pou premye fwa, Lè sa a, insert nan itilizatè yo ak pou fè. Apre sa, nou ta tradui sa a plis Kòd konkrè nan fen an. Men, reyèlman, nou gen tout blòk yo bilding isit la, menm si nou ap sote kèk nan etap sa yo aplikasyon. Se pou m 'jwenn fòt ak sa nou bèl te fè jis yon ti moman de sa. Ou te kreye yon bèl konplè tab pou itilizatè. Byensir, nou te ka aplike l 'nan yon kèk fason diferan, men ou gen aktyèlman mennen nou desann path-- la ak mwen di ou, men li la pwobableman fault-- m 'lan nan yon jistis rezèvwa aplikasyon baz done. Li pa nan normalized. Ak nan normalized Mwen vle di gen a pwal, sou tan, yon èkse enpòtan, ak Se poutèt sa ensifizans, an ap kraze nan espas. Baze sou ki sèlman ki sa ou wè la a, kapab ou anvizaje kote sa a fatra nan espas ki pral soti nan, sou tan, kòm pi plis ak plis itilizatè enskri pou sit entènèt ou a? Ki sa ki done ta ka vin redondants? ODYANS: [fèbl] DAVID Malan: Poukisa ou vle di ke? ODYANS: [fèbl] DAVID Malan: Yeah. Li kite yo asime pou rezon ki nan jounen jodi a ki se sa ki vre. Vire soti, epi nou te aprann sa a wout la difisil, se sa ki pa vre. Yon jan kanmenm lavil miltip genyen, yon jan kanmenm, kòd postal menm, ki kraze sa a entwisyon bèl bagay. Men, kite a ta kwè sa a, se vre, paske li nan prèske toujou vre. Se konsa, ta kwè ke yon kòd postal se toujou asosye avèk vil la menm ak eta a, ki se kalite nan sipozisyon rezonab, men kòrèk, li vire soti. Men, yon sipozisyon rezonab pou rezon a jodi a. Lè sa a, ta kwè ke mwen ap viv nan Cambridge, MA, dapre tab itilizatè sa a, ak ta kwè ke Lauren Scully ap viv nan Cambridge, MA, ak ta kwè ke Kareem ap viv nan Cambridge, MA, ak arwa ap viv nan Cambridge, MA, tout moun nan nou nan 02138. Poukisa nou sonje Cambridge, MA, 02138 pou tout kat nan nou? Ki sa ki ta sifi sonje? ODYANS: [fèbl] DAVID Malan: Jis kòd la postal. Jis ki 02138 egziste, paske ou konnen ki sa nou te ka fè? Nou te kapab jwenn yon ti kras anpenpan isit la ak sou isit la, defini yon lòt tab kote sa a ki pral yo dwe nan Non, sa a se pral yo dwe kalite a, sa a ki pral yo dwe nan longè, ak koulye a, mwen pral rele sa a tab lavil mwen. Sa a te rele, nan kou, itilizatè tab mwen. Se konsa, sa ki ta mwen mete sou isit la pou tab lavil mwen, ou panse? ODYANS: [fèbl] DAVID Malan: Yeah. Se konsa, zip ak leta ak vil la. Se konsa, kalite a isit la, nou pral di sa a ki pral gen yon Char 5 ankò, sijè a deba a nan pi bonè. Sa a pral yon anom, petèt tankou anvan, ak vil pral gen yon varchar 50. Se konsa, kounye a sa m 'jwenn ou efase soti nan tablo sa a elimine ki ensifizans? ODYANS: [fèbl] DAVID Malan: Nice. Eta ak vil ale, se konsa mwen te kounye a elimine ensifizans nan potansyèl pou redundantly sonje, Cambridge, MA, Cambridge, MA, Cambridge, MA, Cambridge, MA, ki, èspere ke pa janm pral chanje. E menm si li fè sa, li la minorly anmèdan, kounye a ke mwen gen chanje li nan ranje miltip, Lè nou konsidere ke isit la, mwen te kapab jis chanje li nan yon sèl kote. Koulye a, sa ki nan komès-off la, petèt? Sa a te super pratik. Te gen tout done mwen joliman ansanm. Men, sa ki nan byen klè ka a kounye a? ODYANS: [fèbl] DAVID Malan: Egzakteman, ak mwen se kontan ou itilize pawòl Bondye a rantre nan, paske se sa aktyèlman mo kle a, nan mond lan nan baz done relasyon nan SQL, li nan yon mo aktyèl ou ta ka tape oswa omwen transmèt. Men, an reyalite, ki sa nou kounye a gen fè yo chwazi tout enfòmasyon David la se yon bagay tankou chwazi zetwal soti nan itilizatè yo, rantre nan vil yo, e kounye a, on-- Mwen pral jis deplase nan yon liy dezyèm se konsa ke sa a users.zip fits-- egal cities.zip, kote users.ID egal 1. Se konsa, sa k ap pase sou? Li nan lèd kap, men ou kapab kalite li li l 'gòch a dwat, anwo jouk anba. Chwazi zetwal soti nan itilizatè se menm bagay la tankou anvan, men li la pa soti nan itilizatè yo, se pou chak. Li nan soti nan itilizatè rantre nan vil yo. Kisa mwen rantre nan sa yo de tab sou? Oke, aparamman, nan itilizatè tab zip jaden, epi peryòd sa a se jis espesyal sentaks eksprime sa yo panse ki lide, ak sa a se tab yo lavil zip jaden. Mwen vle sa yo de yo dwe egal, men mwen vle finalman chwazi se sèlman moun ki ranje kote ID nan tablo a itilizatè egal 1, ki te pase nan pou mwen nèt. Epi jis yo dwe klè, yon pwogramè, tipikman lè hardcode yon bagay tankou nimewo a 1, paske otreman sit entènèt la sèlman sipòte David la oswa trè premye itilizatè, ou ta olye fè yon bagay tankou ID, kote sa a reprezante yon varyab, yon bagay ki ka chanje apre yon sèten tan, menm jan nan Lespri Bondye a ki sa mwen te di byen bonè ak sa yo kalite placeholders. Men, pou kounye a nou pral jis hardcode li kòm 1. Se konsa, sa sa vle di? Oke, yon fason bèl yo visualized sa a se ke si men sa a se itilizatè tab la, ak men sa a se zips yo tab, nou ap sòt de finding-- ak konsèy yo nan dwèt m ', se postal sou isit la, ak konsèy yo nan dwèt mwen isit la yo se postal, w ap kalite fleo li pou ke ou jwenn tounen sa ki lakòz nan orijinal tab, pa vrèman rantre nan de moso wòch plat yo sou teren an komen. E li pa gen yo dwe postal. Li ta ka pi nenpòt lòt bagay, men postal se bèl, paske yon sèl, li nan ti bout tan, de, li toujou nan menm longè, se konsa gen nan yon efikasite reyèl nan sa Olivier pwopoze isit la ak faktè soti postal la, ak [Fèbl] pwopoze ke nou debarase m nan vil la ak eta yo. Se konsa, sa a se pwosesis la li te ye tankou nòmalizasyon. Nenpòt kesyon sou sa? Oke, kite m 'pwen soti sa a se ki kalite bagay, menm si li nan san patipri ki ba-nivo, sa a diskisyon, ki ou ta panse w ap sòt de ap resevwa pèdi nan move zèb yo, sa a se yon manifestasyon ase opòtinite pou devlopè yo dwe move. Ak an reyalite, menm lè nou, nan kou mwen te anseye, lè nou te gen, pou egzanp, san eksperyans pwogramasyon bakaloreya bati sou sit entènèt, nan premye gade, sou sit entènèt yo ta ka gade formidable. Apre sa, yo gen tout nan fonctionnalités nou mande a, devlopè yo te fè yon bon travay. Men, yo pa t 'nesesèman konnen ase sou konsepsyon baz done oswa yo pa t 'panse difisil ase sou ki kalite done epi ki kalite itilizatè yo sit entènèt te ale nan gen, epi nou jwenn, lè sa a, sis mwa pita, apre yo te gradye oswa deplase sou li a, ki modi li, sit entènèt nou an se reyèlman, vrèman dousman. Apre sa, mwen pa menm pale sou li te gen dè milyon oswa dè milye de itilizatè. Mwen vle di yon kèk santèn itilizatè sou lakou lekòl la, tout moun renmen, pou egzanp, magazen pou kou nan menm tan an, yo ap lè l sèvi avèk ki katalòg kou aplikasyon mwen mansyone ak bagay la a ap vin vrèman ralanti paske pa te gen okenn endis. Pa te gen okenn zetwal wouj, se konsa yo pale, oswa nou pa t 'gen nesesèman faktè soti done komen nan jwenn kèk ekonomi nan espas. Se konsa, lè revizyon yon pwomotè oswa moun baz done oswa tankou an, kalite ki nan kesyon yo panse a se menm, lè revize Kòd yon moun, yo di, pa nesesèman gade nan tout nan kòd yo, men di, kite pou yo gade nan tab yo baz done. Ki sa yo ou estoke? Lè sa a, yo di, byen, rete tann yon minit, poukisa w'ap lè l sèvi avèk yon nonb antye relatif? E si nou gen 4 milya de dola ak 1 nan ranje sa yo? Apre sa, sa yo kalite kesyon se yon opòtinite kalite pouse retounen lakay yo epi jwenn yon sans de, kote si ou pa konfòtab fè li, li te gen yon moun plis teknik poze kesyon sa yo, nan si wi ou non moun nan vrèman konnen bagay yo. Lè sa a se ki kalite bagay, tou, ke gen moun ki sou entènèt la ki yo endepandan anseye, petèt aprann mwens souvan, paske ou pa nesesèman vini nan tout li kòm anpil, paske ou ka jwenn baz done up ak kouri, men sof si ou te li moute sou tutoryèl oswa te te di sou baz done nòmalizasyon ak Indexing ak pèfòmans, sa yo, se kalite ki nan bagay sa yo ke yo pral fè ou mal. Epi ou ta ka panse, oswa yon enjenyè move ta ka di, o, byen, nou pi bon peye pou yon baz done pi gwo oswa yon baz done pi vit oswa jis jete lajan nan sa a, vètikal echèl, pa nesesèman sa. Si ou ale in-- epi ou ka ale nan apre endis yo fact-- epi ajoute, epi li ta ka pran yon kèk èdtan pou a baz done konstwi ke nouvo done estrikti ke mwen mansyone pi bonè, ou ka toujou ranje sa a apre reyalite a, ke sa a se kote ou kòmanse yo fè distenksyon ant konsèpteur bon bagay nan mitan move konsèpteur, pa sèlman estetik, men pèfòmans-ki gen bon konprann kòm byen. Nenpòt kesyon? Pa gen? Se konsa, pou NoSQL, ki te kalite a lòt nan baz done yo ki mwen mansyone pi bonè, ou pa gen ranje ak kolòn. Olye de sa, ou ta gen yon bagay ki sanble yon ti kras plis tankou sa a. Mwen pral sèvi ak sentaks komen. aparèy òtopedik Curly rive dwe itilize isit la byen yon anpil. Ou ta ka gen yon bagay tankou de premye non se David, ou ta ka gen dènye non se Malan, quotes, ou ta ka genyen ID is-- eskize mwen, whoops-- ID se 1, imel se malan@harvard.edu, ak mwen pa vle deranje sezisman soti rès la, ak Lè sa a kèk lòt bagay. Nan lòt mo, sa a se yon reprezantasyon textuelle nan sa nou ta jeneralman rele yon objè nan yon pwogram òdinatè. Apre sa, yon objè se jeneralman jis yon koleksyon pè valè kle. Se konsa, ankò, tèm sa a renouvlab. Nou te wè pè kle valè nan HTML, nou te wè kle pè valè kounye a nan yon kontèks la nan baz done, epi nou wè kle pè valè nan yon kontèks la nan, mwen panse, yon lang pi bonè jodi a. Kenbe vini yo. Ak tout bon, sa ki nan vrèman ki sa done klou desann nan, done ak Metadata, oswa valè ak kle, respektivman. Se konsa, yon moun ki pa relasyon baz done, yon bagay ki baze sou objè, kote ou jis touf tout bagay ansanm li mete l ' nan memwa, ta jeneralman gen foto kòm, oswa te panse de, tankou sa a. Apre sa, mwen pral kite ke kounye a kòm yon sòt de apwòch altènatif. Apre sa, yonn se pa nesesèman pi bon pase lòt la. An reyalite, anpil nan lamòd jou sa yo, se sistèm baz done tankou MongoDB ak Redis ak kèk lòt zouti sa yo, se gratis tou ki disponib, men yo de pli zan pli en lamòd. An pati paske yo ofri plis karakteristik sou apwòch sa yo tabulaire, men tou, paske yo ap yon ti kras pi fasil yo sèvi ak, paske ou pa bezwen panse osi difisil sou yon anpil nan desizyon sa yo konsepsyon. Se konsa, pluses ak minuses. Se konsa, reyalize gen opsyon pi lwen pase sa nou jis pase tan sou. Se konsa nou fè sa. Se pou nou tranzisyon yon ti kras tounen kounye a nan pwogram sou sit wèb ★ pou nou kalite konkli jodi a ak yon bagay sa a, se yon ti kras men-sou, ranpli nan kèk twou vid ki genyen soti nan yè. Kite m 'ale nan sa a an premye. Se konsa, sonje ke yè nou te gen kèk kanonyal HTML paj ki te gen okòmansman, se sèlman HTML, ak Lè sa a dezyemman te gen CSS, style kaskad dra. Sa a se yon tag nouvo ki nou pa t ' wè yè, oswa rete sou li a, sa yo rele tag script. Vire soti ou ka aktyèlman Afiche yon lang yo rele JavaScript nan entènèt ou paj, epi fè entènèt ou paj fè yon bagay. Se konsa, sa mwen vle di pa sa? Oke, kite m 'ale pi devan epi jis prete kòd sa a pou yon moman. Mwen pral ale nan Cloud9, pa bezwen ale la nou jis ankò, ak mwen pral yo rele sa a alert.HTML. Mwen pral keratin nan dosye m 'isit la. Epi jis klarifye sa mwen te fè, se pou m 'ale nan adrès sa a epi ale nan alète, epi ou wè mond lan Hello. Men, sa a se kalite underwhelming. Mwen vle fè yon bagay yon ti kras diferan. Se konsa, mwen ale nan aktyèlman fè sa a. Mwen pral ale nan isit la e, ak nan ant Tags script m 'yo, di alèt ( 'hello, mond'); se konsa avi li nan yon ti kras sloppy, men mwen te gen HTML, andedan nan ki se yon lang yo rele JavaScript, ak sa a se sa ki rele yon fonksyon apèl oswa pwosedi apèl. Sa a se yon vèb, literalman, nan ka sa a, epi mwen envoke Kòd fonctionnalités ke yon lòt moun te ekri. Se konsa, ki fonctionnalités se yon alèt, kidonk kite a ale nan paj sa a kounye a, epi klike Reload, epi kounye a ou wè yon ti kras nan interactivité. Li nan kalite lekòl fin vye granmoun ak lèd. Sa a jan de fè w sonje nan la pop-ups, petèt, nan pase men li te fè fè yon bagay yon ti kras pi plis pwogram. Se konsa, plis pase sa, se pou yo fè yon bagay ki pi enteresan. Kite m 'ale nan isit la ak debarase m de sa a. Men, mwen pral ale pi devan epi kreye yon fòm tankou nou te fè yè. Aktyèlman, ou konnen ki sa? Mwen pral ale nan google.html, nou te kòmanse sou yè, ki te sanble ak sa a, atravè nou fouye pou chat Men, remake gen nan kalite yon ensèk nan vèsyon aktyèl la. Li travay pou chat, men ta kwè ke Mwen pa kolabore ak mwen tape pa gen anyen, ak mwen tou senpleman klike sou soumèt. Sa a kalite konpòtman etranj. Te pran m 'nan byen Google la, pa t 'ban m' yon mesaj erè. Mwen ta renmen di itilizatè a ou bezwen bay nou yon valè. Se konsa, kouman nou ta ka fè sa? Oke kite m 'ale tounen nan Cloud9 ak kite m 'ale nan tèt la nan paj m' epi ajoute yon tag script tankou sa a, kote Mwen pral tape kèk kòd JavaScript. Apre sa, mwen pral fè sa ki annapre yo. Si (document.getelementByID-- ak rapèl ke nou te pale sou sa pi bonè, ki fonksyon. Ki sa ki ID mwen vle jwenn? Mwen vle jwenn q, ak mwen pral di egal pa gen anyen, tankou sa a men aktyèlman kite m 'sèvi ak quotes doub jis pou consistency-- egal pa gen anyen, Lè sa a, alèt ( "Tanpri tape yon rechèch") isit la. Se konsa, mwen gen sa ki parèt yon bagay tankou yon kondisyon. Nou te wè sa a lide jeneral nan grafonyen moun. Se tankou youn nan moun ki devinèt moso ki te sanble ak sa a. Ak sa ki mwen di? Oke, desann isit la, remake mwen se pral fè sa ki annapre yo. Mwen pral bay fòm sa a jaden pa sèlman yon non q, ki se sa ki vin pase sou Google, men mwen pral bay li yon idantifyan lokal yo, yo te rele tou q. Men, mwen te kapab rele anyen sa a mwen vle, mwen jis ale nan kenbe li senp epi tou li rele l 'q, jis pou senplisite. Epi, koulye a mwen pral fè yon bagay yon ti kras plis. Sou jaden yo fòm isit la, mwen pral ajoute sa ki rele yon kap okipe-evènman. Sou soumèt, mwen vle rele yon fonksyon rele validation. Sa a pa egziste ankò, sa a mo, oswa sa a validation vèb, paske sa m ap pral fè moute isit la kounye a se ajoute kèk kòd. Mwen pral di fonksyon validation. Mwen pral indent sa a epi ajoute yon lòt Curly atèl isit la ak yon lòt yon sèl isit la. Konsidere ki sa sa a se kounye a fè. Mwen gen now-- panse a sa a kòm kreye m ' pwòp moso devinèt ki pa t 'deja egziste, epi mwen te rele sa a devinèt moso moso nan validation devinèt. Objektif li nan lavi se al touye kat liy ki nan kòd andedan nan li. Si document.getElementByID se konsa concept, ki pral ale nan eleman an, eleman nan HTML ki gen inik lide se jis q, ak Lè sa menm si sentaks la sanble yon ti kras etranj, ki egal egal jis vle di egal. Se konsa, ki vle di si eleman an ak nan inik idantifyan nan q, lè vinn, pa gen okenn valè, li jis egal quote unquote, pa gen anyen nan la, Lè sa a, sa m 'vle fè? Mwen vle rele nan itilizatè a. Epi nou pa pral ale gwo detay isit la. Mwen pral retounen fo. Sa se yon erè. Lòt Bagay, mwen pral retounen vre. Se konsa, swa li te travay oswa li pa t '. Fo oswa ki vre. Epi, koulye a si mwen pa t 'fè okenn erè, kite m 'sove sa a ak Reload sa a. Ak kite m 'jis doub chèk ki Mwen pa t ', an reyalite, fè okenn tipo, se konsa mwen pa anbarase tèt mwen. Ann wè si sa a travay. Se konsa, kounye mwen pral tape chat. Li toujou ap travay, oswa mwatye travay, omwen. Koulye a, kite m 'Reload li, e kounye a, kite m 'eseye soumèt san yo pa sezisman anything-- modi li, li te kraze yo. Yon moman. Kite m 'louvri konsole a, [Fèbl] ouvri sesyon, Reload paj la. Kite m 'eseye sa a ankò. Oh, modi li. Mwen bliye. Mwen te fè yon Typo. Mwen sonje sa li ye. .Valè. Mwen vle di ke yo di si valè a nan eleman la ki gen ID se q egal sa, Lè sa a, rele nan itilizatè a. Se konsa, kounye kite m 'kenbe souf mwen ankò. Isit la nou ale. Gen nou ale. Tanpri tape yon rechèch. Se konsa, li pa nan kite m 'nan. Mwen ka kalite playful ak sa a, ak olye pou yo tcheke pou pa gen okenn valè, Mwen kapab di yon bagay tankou, pa plis chèche pou chat, epi kounye a nou ka jis plis jouan kite rechèch la itilizatè pou chen si li vle, oswa si mwen ale nan isit la ak rechèch pou chat, koulye a, mwen pa kapab. Se konsa, sa ki nan Takeaway a isit la? Se konsa, yon sèl, nou te entwodui nan mond nou an nan HTML ak CSS, pwogram fonctionnalités. Mwen kapab aktyèlman kounye a pran desizyon nan kòd. Précédemment, tout mwen te kapab fè se make moute textuelle kontni oswa kontni grafik epi di li ki sa gade tankou ak ki kote yo montre. Koulye a, mwen ka aktyèlman mande kesyon nan paj wèb la ak pran desizyon ki baze sou li, epi pouse itilizatè a si mwen bezwen rele nan li. Se konsa nou eseye yon bagay sou pwòp nou ak sa. Ale pi devan, kite m 'louvri moute glise nan pwochen te isit la, ak jis pwen soti yon sèl bagay. Jis tankou ak CSS, nou ka facteur soti Kòd JavaScript nou an nan yon dosye ki apa a, ou ka fè menm bagay la ak JavaScript menm jan ak CSS. Epi ou sèvi ak sa lè l sèvi avèk yon sous atribi nan tag a script. Men, nou pa pral konplike bagay sa yo pou kounye a. Olye de sa, si ou te kapab ale nan pa paj sa a, but-- kite m 'avanse pou pi alantou sa a nan order-- ale nan, si ou te kapab, paj sa a isit la. Sa a URL isit la. Li nan nan glisad a jodi a. Ou ta ka gen Reload paske Mwen te ajoute yon koup la bagay. Men, ale la kote kèk pezeul tann. Lè sa a pral ban nou yon chans, nan yon kontèks yon ti kras plis plezi, travayèz ak kèk JavaScript. Men, lè ou jwenn la, Mwen pral eksplike sa ki ap tann. Jwenn vèt. Mete ble. Ansanm vèt, kouche wouj. Wouch. Padon. Sa a se limit la nan nou an dokiman pou defi sa a. Lè sa a se ale nan travay jan sa a. Se konsa, sa ou gen sou sa a paj se yon pakèt antye nan: grafik devinèt pa yon zanmi nan Stanford University. Se konsa, sa w ap wè isit la se prèske kalite youn nan moun ki pezeul je majik, men si ou jis fikse nan li, pa gen anyen k ap pase yo pòp soti nan ou. Olye de sa, yon bagay ki kache nan imaj sa a. Epi li kache nan fason ki anba la a. Imaj, jan ou ka konnen, yo ka ki konpoze de jis twa koulè. Gen kèk wouj, gen kèk ble, ak kèk vèt. Apre sa, nou ka fè nan tout koulè nan lakansyèl la pa melanje sa yo twa koulè yon jan kanmenm. Se konsa, sa a sanble sitou vèt ak ble, men kòm Nick di isit la, sa a imaj devinèt fè se yon devinèt. Li genyen ladan li yon imaj de yon bagay pi popilè yo, sepandan, te imaj la te defòme. Objè a pi popilè se nan valè yo wouj. valè Sepandan, wouj la gen tout te divize pa 10. Konsa, yo twò piti pa yon faktè de 10. Se konsa, nan lòt mo, Nick pran yon zidòl wogatwa orijinal la, epi li desaturated tout nan wouj la soti nan li, bese kantite lajan an nan wouj lank, si ou vle, nan li. Valè yo ble ak vèt yo tout jis san sans, valè o aza, aka bri fèt nan fènwa imaj la reyèl. Se konsa, sa Nick te fè te li ton desann wouj la ak Lè sa a li jis jete o aza kantite ble ak vèt nan imaj la nan kalite fènwa sa ki nan aktyèlman toujou la. Ou dwe defèt deformasyon sa yo revele imaj la. Premyèman, mete tout valè yo ble ak vèt a zewo jwenn yo soti nan wout la, ak gade nan rezilta a. Lè sa a, miltipliye chak valè wouj pa 10, dekale tounen jiska apeprè final valè li yo. Ki sa ki se objè a pi popilè? Se konsa, tout nan ou gen rektang sa a nan navigatè ou a kounye a. Apre sa, remake ke gen kèk starter kòd, se konsa pale. Sa a se JavaScript kòd ki Nick te ekri pou ou. Apre sa, remake ke gen nan yon liy nan mitan an ki kòmanse ak yon koupe koupe, sa se sa k ap jeneralman yo rele yon kòmantè. Sa vle di li nan yon fraz pwogramè a ki pa gen okenn siyifikasyon fonksyonèl. Se jis nan yon Replik vizyèl nan imen an. Se konsa, ou ka ale pi devan epi efase sèlman sa liy, yo epi yo dwe super atansyon pa efase oswa chanje nenpòt lòt bagay. Ak kite m 'jis mache ou atravè sa kòd sa a fè epi mwen pral kite li jwenn ou pou evalye estati a sekrè. Liy sa a premye isit la ke mwen te jis make ba ou sa ki annapre yo. Sou bò men gòch, ou gen sa yo rele yon varyab ki Nick gen abitrèman, men rezonab rele im pou imaj. Sou bò nan men dwat nan ki siy egal, li te di ban m 'yon nouvo quote, unquote "senp imaj". Senp imaj, nan kontèks sa a se sa ki rele yon klas, byen, li nan kalite tankou yon class-- teknikman yon prototype-- men vrèman, sa a an, ap ban m 'yon objè nouvo, sa ki nan yo ki dosye a, fè-puzzle.png. Nan lòt mo, Nick te kreye sa a nosyon nan yon imaj senp pou nou kapab, pou pedagojik rezon, jwe ak imaj la ak chanje wouj li yo, vèt, ak ble valè. Ki jan pou nou fè sa? Sa a sentaks yon ti jan skre isit la se kalite tankou blòk la repete ke kèk nan ou te wè nan grafouyen pi bonè jodi a, kote ou ka repete 10 fwa. Nan ka sa a, Nick a pa gen anyen dur yon nimewo tankou 10. Olye de sa li ap di, inisyalize yon varyab rele x nan 0, tcheke si x se mwens pase lajè a nan imaj la. Se konsa, yo dwe plis apwopriye, imaj se nan varyab, dot vle di ale andedan nan li epi pou yo jwenn lajè li yo, ak Lè sa a, paren louvri, fèmen paren se jis fason yon pwogramè a nan di sa a se yon fonksyon. Sa a se yon pwosedi yo. Sa a se fonctionnalités yon lòt moun te ekri. Sèvi ak li epi bay m 'tounen yon repons. Lè sa a, x ++ se yon fason anpenpan nan di, apre yo fin ou te fè sa a yon fwa, kantite x pa 1. Nan lòt mo, sa a se yon fason yon pwogramè a nan pwovoke yon bouk sa a, se ale nan repekte sou tout nan kolòn yo nan yon imaj. An image se jis yon griy nan pwen, ranje ak kolòn nan pwen. Sa a se yon fason pou iteration sou tout moun ki kolòn. Yo, epi sou anndan an, pandan se tan, nou ap iteration sou mòn yo, isit la ak isit la ak isit la. Se konsa, sa a se jis yon fason pou traipsing, prèske tankou yon typewriter fin vye granmoun lekòl la, jis ale sou nan tout imaj iterativman. Menm sa a, se pa byen nèt klè, jis pran sou lafwa pou kounye a, ke moun twa liy nan kòd ansanm ap fè pral pou pèmèt ou al iterativman gade nan chak pixel, chak dot nan imaj la. Ki sa ki nan yon pixel? Oke, yo dwe klè, si nou gade nan orijinal la ak rale nan, si ou reyèlman mete je ou nan ekran an òdinatè, sa a, se jis yon pakèt antye nan pwen, plizyè mil pwen chaje ansanm la. Se konsa, ki sa yo ou pral fè? Chak youn nan moun ki pwen, yon definisyon final la, se rezilta nan sa ki nan jeneralman rele Rgb, wouj, vèt, ble, ki ankò, ka konbine yo ba ou nenpòt ki kantite koulè. An reyalite, si ou sonje soti nan anpil, anpil ane de sa, pwojektè ekran tankou bagay sa yo itilize yo gen pa gen yon sèl lantiy men twa. Youn nan yo krache soti limyè wouj, youn nan yo krache soti limyè vèt, yonn nan yo krache soti limyè ble. Men, si ou te nan yon lekòl mwayen tankou mwen te kote yo te pa janm byen ki aliyen, ou te toujou ap gade fim sinema istwa ki te yon ti kras defòme, paske twa koulè yo pa t ' konbine byen. Men, li sanble ke chak nan sa yo valè wouj, vèt, ak ble, ka gen yon nimewo ki asosye ak yo. Pou egzanp, 0 pou wouj vle di pa gen wouj, 0 pou vèt vle di pa gen vèt, ak 0 pou ble vle di pa gen ble. Se konsa, si ou pa gen okenn wouj, pa gen vèt, e pa gen ble, sa ki koulè ou genyen? ODYANS: [fèbl] DAVID Malan: Ou ta espere sa, li nan blan. Malerezman, sa a operates-- regrèt? ODYANS: [fèbl] DAVID Malan: Se konsa, ou aktyèlman gen nwa, nan ka sa a. Se konsa, si ou gen Pa gen yonn nan sa yo koulè vire sou, ou gen nwa. Sepandan, si ou gen, kite a di yon anpil nan yo, tankou yon bann wouj, 255 nan li, yon anpil nan vèt, ak yon anpil nan ble, se sa ki blan. Se konsa, sa yo, se de ekstrèm yo. Se konsa, pa sa a lojik, si mwen gen yon anpil nan wouj e pa gen vèt ak pa gen okenn ble, sa ki koulè se sa? ODYANS: [fèbl] DAVID Malan: Dwa, evidamman. Lè sa a, pa gen okenn wouj, anpil nan vèt, pa gen ble, ak Lè sa a si ou en-byen, nou pral jis fini li, jis paske, men sa a, nan kou, kounye a, se ble. Epi, koulye a ou ka konbine sa yo koulè. Koulye a, kòm yon sou kote, si nenpòt nan ou gen tout tan tout tan fè kèk konsepsyon sit entènèt reyèl, ou ta ka aktyèlman wè senbòl tankou sa a. FFF-- ak aktyèlman, li nan pwobableman pa menm sa. Li nan fff. Nenpòt moun ki janm wè F la ak E la ak A through-- se konsa li vire soti, nou te pale yè sou desimal, ak jodi a, kalite sou desimal. Jodi a nou te pale osijè de binè. Vire soti, ekzadesimal se yon trè sistèm baz komen yo itilize nan informatique. Binè se de, desimal se 10, Egzagòn se 16. Epi li vire soti, ki jan ou konte nan ekzadesimal? Zewo, yonn, de, twa, kat, senk, sis, sèt, uit, nèf, ki sa ou sèvi ak apre nèf? Ki sa ki nan nimewo vin apre a? Nou deja itilize zewo. Mwen bezwen 16 nan sa yo. Zewo, yonn, de, twa, kat, senk, sis, sèt, uit, nèf, ou bezwen kèk konvansyon abitrè. Ak sa ki limanite deside kèk tan de sa ke apre nèf vini lèt la A ak Lè sa a, B ak Lè sa a, C. Se konsa, nan fason ou konte nan ekzadesimal se zewo, yonn, de, twa, kat, senk, sis, sèt, uit, nèf, A, B, C, D, E, F, ak ki pral konte ou tout wout la, li vire soti, a 15. Se konsa, zewo nan 15 se zewo nan F. Koulye a, poukisa se ke enpòtan? Oke, lè ou gen de F la, sa a, se ki jan ou eksprime 255. Se konsa, lontan istwa kout, nan mond lan nan fotoschop, ke lojisyèl konsepsyon grafik, nan mond lan nan devlopman entènèt, kote ou gen anpil bagay nan koulè, nan kou, yo jwe avèk, souvan pwogramasyon pral eksprime moun ki nan ekzadesimal, jis paske li gen tandans yo dwe yon ti kras ki pi senp. Menm si nan premye gade li nan pi plis konplèks. Se konsa, nan nenpòt ka, sa a se enpòtan paske Nick nan Stanford te ban nou sis moso nan fonctionnalités ke ou, pwogramasyon yo boujònman, pral kounye a gen kapasite nan sèvi ak. Bati nan sa a web paj se sis fonksyon, sis pwosedi ki Nick te ekri. Twa nan yo pral fè ou jwenn yon nimewo, yon wouj, yon vèt, oswa se yon valè ble. Twa nan yo pral mete ki valè. Apre sa, evidans sa yo yo se jis placeholders, kidonk, ou bezwen konnen ki sa sa yo se. Se konsa, avèk twa fonksyon sa yo, premye a nan bagay sa yo a pwal yon x-kowòdone, ak dezyèm lan nan bagay sa yo ki pral gen yon koòdone-y. Nan lòt mo, ki dot, ki pixel ou vle jwenn vèt la a, jwenn ble a nan, jwenn wouj la a. Lè sa a, isit la, sa a ki pral yo dwe x, sa a ki pral gen yon valè y, ak sa a se pral gen yon kantite. Se konsa, kite a fè premye a liy nan sa a ansanm ak Lè sa a mwen pral kite l 'bay ou pou yo eseye enferyè rès la. Se konsa, pou chak enstriksyon yo nan paj sa a, nou bezwen ogmante wouj la pa yon faktè de 10, epi nou bezwen yo retire vèt la epi retire ble a. Ann kòmanse ak senaryo k'ap vini yo. Se konsa, si mwen vle, ak mwen pral indent lè l sèvi avèk kèk espas, si mwen vle yo mete wouj la, vèt la, oswa valè a ble, Mwen pral fè sa ki annapre yo. Imaj, im.setBlue, ak Lè sa ki baze sou enstriksyon m 'isit la, sa twa bagay m 'bezwen rete tape andedan nan parantèz kounye a? Mwen bezwen valè a x, nan y valè, e ki sa nimewo Mwen ta dwe mete isit la si mwen vle debarase m nan ble a, ki baze sou istwa sa a isit la? Jis zewo. Si m 'vle pa gen okenn ble, Mwen jis ale nan chanje li nan zewo. Koulye a, kite yo jis rapèl ki sa sa a ap fè. Mwen gen isit la sou sa yo tèt dezyèm ak twazyèm liy, Mwen te deklare ke de pasan, pasan enbrike, si ou pral, ke yo pral gen efè a nan pwogrè soti nan bò gòch a dwat, anwo jouk anba sou tout nan x la valè ak tout nan valè yo y. Paske ankò, yon foto se jis yon griy nan ranje ak kolòn. Se konsa, sa ki pral jwenn m de tout ble a. Kite m 'kite nan liy lan kap vini jwenn ou. Kouman pou mwen debarase m de tout vèt la? ODYANS: [fèbl] DAVID Malan: Nice. ODYANS: [fèbl] DAVID Malan: Nice. Men, mwen pral rale soti, li jis pran swen nan ke ou pa te fè nenpòt ki tipo. Men, si w ap konfòtab ak sa ou te fè, ale pi devan epi klike sou bouton an Kouri / Save ak wè sa ki w ap resevwa. Epi ankò, nou te fè jis twa chanjman. Nou efase ke premye kòmantè ak ranplase li ak de liy sa yo nan kòd. Epitou, se OK si ou bezwen frape Kouri / Save bouton an yon fwa koup ranje yon bagay. Ak kite m 'tou rale nan sou m' Kòd pou ou kapab transkripsyon. Bon. Se konsa, mwen wè Andre gen sa sanble ap yon erè. Li te jis te resevwa yon gwo nwa rektang sou ekran l 'yo. nenpòt lòt moun gen yon gwo rektang nwa? ODYANS: Wi. DAVID Malan: Big rektang nwa? OK, se konsa kite a panse sou sa ki sa a vle di. Nou te di ke zewo, zewo, zewo, konsa pa gen vèt, pa gen wouj, pa gen ble, ki pral ba ou nwa. Epi li vire soti ki pi fò nan laptops nou an jis pa gen ase fidelite. Ou pa ka byen di gen se aktyèlman yon bagay la. Men, si ou kalite petèt panche ekran ou a pou pi devan ak tounen lakay ou, petèt ou wè yon ti kras yon bagay la? Petèt, kalite, sòt de? Li pa parfe nwa. ODYANS: [fèbl] DAVID Malan: beke! Gen kèk wouj la, men sonje soti nan espesifikasyon yo nan pwoblèm nan, Nick ton l '. Li desaturated li yon ti jan, men se pa tout wout la nan zewo. Se konsa, si nou vle magnify kantite lajan an nan wouj, kite m 'pwopoze sa a jwe fent. Kite m 'rale nan sou ekran m' yo. Ak kite m 'ale pi devan epi di kantite lajan egal im.getRed (x, y). Liy sa a nan kòd an, ap ban m ' yon bagay yo rele yon varyab. Mwen gen abitrèman, men, joui, rezonab rele varyab mwen sa, aparamman? Kantite lajan. Jis kantite lajan. Mwen te kapab te rele l ' anyen mwen vle, men mwen lè l sèvi avèk sa a lòt fonksyon ke mwen dekri pi bonè yo ka resevwa kantite lajan an nan wouj nan x vigil y. Poukisa mwen fè sa? Ki sa ou vle fè isit la? Ou bezwen add-- ODYANS: [fèbl] DAVID Malan: Wi, petèt miltipliye li pa 10. Men, si ou pa konnen sa a, mwen se ale nan ale pi devan epi fè sa. Mwen pral ale pi devan epi di, mwen vle kantite lajan an nan wouj Mwen vle fè tou sa se nan wouj la, fwa 10, ak zetwal la, asterisk la sou ou klavye se the-- pa sèvi ak x. Sèvi ak etwal la. Sa a ki jan ou anpil anpil pitit bagay nan pifò lang programmation. Se konsa, dapre entwisyon Kareem a, ki estoke nan varyab sa a yo rele kantite lajan, se konbyen lajan wouj mwen vle nan xy kote. Ki jan, kounye a, èske mwen fè ki pixel gen ladan nimewo? Ou te deja fè sa a anvan. Ou mete vèt la a ak ble pa gen valè, a zewo. ODYANS: [fèbl] DAVID Malan: Wi, byen ou pa vle li nan 10. Ou deja te fè matematik la isit la. Se konsa, nou ap resevwa valè a nan wouj, ki se yon nimewo ki ba, prezimableman. Nou ap miltipliye moute pa 10. Ki sa ou vle fè ak kantite lajan an varyab kounye a? ODYANS: [fèbl] DAVID Malan: Nice. Se konsa, im.set-- ki sa? ODYANS: setRed. DAVID Malan: setRed, nan xy kote. Yeah. Epi jis kantite lajan. Nan lòt mo, yon varyab se yon kontneur pou yon ti tan ke ou ka mete nenpòt sa ou vle a. Nou rive yo dwe mete yon Nimewo nan li, nan moman an. Nou te miltipliye li pa 10 a fè l 'pi gran. Epi, koulye a mwen ranplase varyab sa kòm ke twazyèm agiman, oswa opinyon yo mete wouj. Se konsa, ke yon fwa ou fini sa, ak pran nòt nan semi kolon yo-yo ak parantèz yo. Ale pi devan epi klike sou kouri / sove ankò, epi ou ka wè; maji, sa ki te aktyèlman la. [? Arwa,?] Sa ki nan genyen? Tower a èifèl nan plen véritable wouj, pa byen fè nwa. li ta dwe plis evidan kounye a, repons lan se wi? OK. Te gen Andre, bwat pa plis nwa? ODYANS: [fèbl] DAVID Malan: Tout dwa. Se konsa, mwen pral kenbe sa a sou ekran an. Si ou vle yo jwe avèk sa a pita, mwen pral rkree sa a pou ou. Men, Kòd sa a isit la te fè egzakteman sa. Poukisa nou pa nou fè yon sèl ak lòt. Kite m 'desann yon ti kras. Se konsa, nan ka sa a, pwojektè a pa reyèlman fè l 'jistis. Men, sou ekran ou, ou pwobableman gen yon bwat trè wouj ak trè nwa. Sa a, tou, se yon devinèt ki montre yon bagay pi popilè. Sepandan, gen imaj la te defòme. Imaj la vre, tan sa a, se nan valè yo ble ak vèt. Sepandan, yo te tout te divize pa 20 se konsa valè yo yo piti anpil. Valè yo wouj yo se jis nimewo o aza, bri. Defèt deformasyon sa yo revele imaj la vre. Se konsa, Lè sa a, Nick di ou sa yo dwe fè. Mete valè yo wouj nan zewo, ak Lè sa a, pa gate sa li ye. Lè sa a, anpil anpil pitit ble a ak valè vèt pa 20. Se konsa, li nan prèske nan menm pwogram tankou anvan, men w ap ranvèse pwosesis la. Apre sa, mwen pral mete kòd m 'soti nan anvan sou ekran an nan ka ou vle, al gade tounen nan li oswa jwe pi lwen ak ke yon moun. Kite m 'rale nan sou sa. Men, rezoud imaj kòb kwiv mete devinèt, nimewo de. ODYANS: [fèbl] DAVID Malan: OK, se konsa yon sèl sa a mwen se pa pral bay kòm anpil sijesyon. Se konsa, mwen would-- oh, se pou yo wè, ou gen yon Typo isit la. Se konsa, sonje, sa a isit la aktyèlman bezwen ale la. Se konsa, sa mwen ta pwopoze, si ou vle konsantre sou yon sèl sa a, gen nan repons lan. Si ou vle transkripsyon ki, ki ta dwe pran premye yon sèl k ap travay la. Lè sa a, ou ka sèvi ak sa kòm enspirasyon pou yon, dezyèm lan. Nice. Bon. Se pou kirye a, sa a se yon egzanp ki senp nan yon syans oswa yon atis rele Steganography, atizay la nan kache enfòmasyon ki nan imaj. Tipikman, imaj ta ka Tatouage trè flagrant ak yon logo nan pati anba a kwen, men byen klè, ou kapab pi plis sofistike sou li e aktyèlman kache imaj lòt nan Imaj yo yon jan kanmenm ak teknik sa a. Pran yon lòt 30 segonn, ak Lè sa a nou pral omwen anonse sa ou ta dwe wè. Apre sa, mwen pral kite twazyèm lan yon sèl kòm yon egzèsis nan-kay, si ou ta renmen plis nan yon defi sa a wikenn. E mwen panse ke Andre ta ka gen vinn li an premye. Ki sa ki se imaj, dezyèm lan, Andre? ODYANS: Estati Libète. DAVID Malan: Estati Libète yo pral repons lan moman sa a. Se konsa, ankò, jis kèk senp egzanp, objektif la nan ki se bay ou yon sans de ki jan nou te tradui imaj Scratch blòk nan plis anmèdan ak plis ankò konplike Kòd, men tout nan lide yo yo toujou ekzakteman menm bagay la, kwake ak entwodiksyon an kounye a nan nosyon de yon varyab, yo te kapab nan magazen yon bagay pou yon ti tan. Se pou yo fè yon sèl plis men-sou, jis kounye a konekte pwen yo nan yon bagay yon ti kras plis-mond reyèl la. Lè w ap pare, si ou te kapab ale nan URL sa a sou ekran an. Sa a tou, nan yon kopi nan glisad, developers.google.com/maps~~V. Se pou nou aktyèlman fè yon bagay reyèl, se konsa pale, sou entènèt la lè l sèvi avèk Google Maps API la, oswa aplikasyon koòdone pwogram, nan fason sa a. Google, tankou anpil konpayi yo, bay yon anpil nan fonctionnalités gratis ke ou ka itilize yo bati ou pwòp aplikasyon enteresan. An reyalite, si ou te janm itilize Ube yo ka resevwa yon taksi oswa yon machin, pwobableman ou konnen ke ube gen yon kat jeyografik epi li montre machin sou li. Sa se, kòm pi bon ke mwen kapab di, Google Maps API. Yo aktyèlman lè l sèvi avèk kat Google a, men Ube se pa yon konpayi kat, ni t 'vle gen yon patikilyèman enteresan pwoblèm yo rezoud sou tèt yo pwoblèm sèvis machin. Se konsa, yo ap kanpe, ankò, sou zepòl yo nan lòt moun, Google nan ka sa a. Se konsa, yo itilize kat Google a men pwòp yo sèvis machin ak lòt karakteristik sa yo. Se konsa, nou ap ale nan pran avantaj nan sa a fè sa ki annapre yo. Men, si mwen te ale twò vit, jis rele m 'sou koulye a. Kè kontan yo rapèl kèk nan bagay la imaj. Ou ta dwe wè tèt ou Yon paj tankou sa a. Se konsa, bèl Google a, ak yo ap mitan pi bon an pou bay APIs pa sèlman, men APIs gratis ke ou ka jwe ak oswa itilize Commerce. Yo kòmanse chaje ou si itilizasyon ou se wo, men mwen te ale pi devan an avanse epi siyen nou moute pou yon kont gratis ki, èspere ke, 10 òdinatè pa pral diskalifye nou pou toudenkou. Se konsa, èspere ke sa a demonstrasyon pral travay. Apre sa, remake ke yo gen APIs pou Android, iOS, sèvis entènèt, ak entènèt, kèlkeswa sa ki se. Se pou nou konsantre sou entènèt. Se konsa, klike sou woz bwat, entènèt la, e ke pral mennen ou, èspere ke, nan yon paj isit la. Apre sa, yo te gen yon pakèt antye nan APIs. Epi, se kapab yon ti kras akablan nan premye, men mwen pral trennen nou nan sa nou vle. Nan bò gòch la tèt se Maps yo Google JavaScript API, API la JavaScript. Se konsa, ale pi devan epi klike sou ki yon sèl. Apre sa, ki pral mennen ou kounye a nan yo paj, Demonstrasyon ak kòd egzanp lan. Kite m 'rale soti isit la. Ak kite m 'jwenn nou to-- desann nan kote li di kòmanse etap rapid. ekran ou a ta dwe gade tankou m '. Apre sa, nan de etap, jwenn yon kle epi yo kòmanse devlope yo. Mwen deja te fè etap yonn pou nou, ap resevwa yon kle sa yo rele. Lè sa a se yon lide komen. Yon kle API se jeneralman jis yon nimewo gwo o aza oswa fisèl ke ou yo sipoze kole nan kòd ou, pou ke Google konnen ki moun ou ye lè w ap itilize sèvis yo, API yo. pa vle di nou ap ke yo te chaje anyen. Epi, koulye a, klike sou, olye pou yo yon sèl, klike sou kòmanse devlope. Si ou ta ka jis balanse m ' sou si pa si kote nou ye. Se konsa, nou pral jis grate nan sifas, isit la, men ki sa Mwen te panse ta dwe irezistib se gen aktyèlman nou tout, lè l sèvi avèk Cloud9 nan yon sèl fenèt ak sa a leson patikilye nan yon lòt fenèt, pèmèt aktyèlman jwenn pwòp nou aplikasyon leve, li kouri ki entègr yon koutim Google kat jeyografik nan Paj Web pwòp nou an, ak Lè sa a ajoute youn oubyen de karakteristik. Men, nou pral jis grate nan sifas nan sa nou kapab fè. Se konsa, jis yon saniti chèk rapid. Èske tout moun nan paj sa a, Google Maps JavaScript API? Ta dwe di trape te kòmanse. Nou pa pwal yo ale nan tout bagay la pa nenpòt vle di. OK, nan yon lòt tab, si ou pa fè sa genyen li louvri, antre nan Cloud9 epi pou yo jwenn tèt ou bay jis yon tab nouvo, finalman. Se konsa, ankò, c9.io soti nan yè, c9.io, ak jis kreye yon dosye nouvo. Apre sa, ale pi devan epi rele li tou sa ou ta renmen. Mwen te rele map.html mwen yo ye. Rele li anyen mete fen nan Html. Epi ou ta dwe apeprè kote m 'prale nan pwosesis sa a ak jis yon èd memwa kliyote nan yon vid tab rele yon bagay tankou map.html. Ou ranpli, nouvo dosye moman sa a. Koulye a, sou sou nan Google Maps JavaScript API, nou pral sote lekti nan tout nan tèks sa a. Men, remake ke mond alo se tout bon tout kote, ou wè li kounye a. Bonjou mond gen sa a gwo kolore egzanp sou yon pakèt antye nan HTML. Ale pi devan epi kopye epi kole sèlman ki HTML, se konsa soti nan kalite a doc nan tèt la tout wout la nan tag nan HTML fèmen, ale pi devan epi kopi tout nan that-- ankò, sa a, se anba mond lan alo example-- epi kole ki nan tab Cloud9 ou, se konsa ke kounye a ekran ou ta dwe gade apeprè tankou m '. Epi ou ka sove li, men pa chaje li jis ankò. Se pou nou premye gade nan kòd la ak wè si nou pa ka dégager oswa aprann soti nan sa li ye Google te gen nou je fèmen kopi ak keratin. Yo jis vle ede, literalman, jwenn nou te kòmanse, men gen nan pa sa ki anpil konpleksite aktyèlman la. Nenpòt kesyon jis ankò? Nou san danje yo fòje devan? OK. Se konsa, byen vit, se pou yo jis fè kèk chèk saniti rapid. Liy youn nan ki sa mwen wè, ak èspere ke, ou wè, ki sa sa vle di, Doktip html? Kareem, sonje? ODYANS: [fèbl] DAVID Malan: Wi. La ap vini HTML 5. Pandan se tan, liy de sou la ekran isit la vle di hey navigatè, isit la vini HTML a vrè. Liy twa se hey navigatè, isit la vini tèt la. Liy kat se, nan kou, hey navigatè, isit la vini tit la. Ki sa ki liy senk fè? Aktyèlman, sa a pa fè sa reyèlman fè anyen pou nou. Nan ka sa a, li jis rdimansyon paj la nan yon default. Liy sis, nou pa gen te pale osijè de, men li espesifye kodaj la karaktè. Genyen diferan fason yo programme dosye, espesyalman pou lang etranje. UTF-8 jis gen tandans ka default la. Se konsa, kounye nou pral wè nan liy sèt nan 16, gen kèk CSS. E menm si nou pa te wè tout bagay sa yo anvan, nou ka kalite dégager. Se konsa, liy uit vle di, hey navigatè, aplike tout nan bagay sa yo nan ki de Tags, aparamman? HTML ansanm ak tout kò Tèks la. Se konsa, vigil la se bagay ki nouvo la. Epi sa a, jis yon fason pou ki espesifye miltip Tags nan yon fwa. Lè sa a, nou te gen aparèy òtopedik yo Curly. Se konsa, aparamman, sa a di navigatè a, fè wotè nan paj 100% an. Se konsa, menm si gen nan anpil ti kontni, fè paj la tout antye, fè bagay la ranpli paj la. Fè kat jeyografik la finalman ranpli paj la. Maj, ki sa sa vle di? Sa a anjeneral tankou abitrè espas blan alantou bor yo ke kèk designer navigatè jis deside ta dwe gen, paske li kalite fè bagay sa yo gade pwòp. Men, nou pa vle sa. Nou vle kat jeyografik la pral tout wout la nan bor yo. Ranbouraj, menm jan an nan Lespri Bondye a marges. Marges vle di deyò, padding vle di andedan, men li la kalite a menm nan kontra. Li se yon ti kras nan yon zòn de defans ant ou menm ak bor yo. Lè sa a, liy 13 se yon bon chans pou yon revizyon rapid. Ki sa byen file kat jeyografik siy vle di, oswa kat jeyografik hashtag vle di? Ki sa sa, al gade nan, nan prensip? ODYANS: [fèbl] DAVID Malan: Egzakteman. Pwopriyete sa a, sa a pwopriyete CSS aplike nan jis yon sèl bagay, tag nan HTML ki gen yon ID nan quote, unquote "kat jeyografik". Epi, koulye a kite a vit pou pi devan, woulo liv desann nan pati anba a nan dosye a, ki se pa twò lwen, ak avi sou liy 19, si ou kole li egzakteman menm jan ak mwen te fè, liy 19 gen jis yon div, ki se yon divizyon nan paj la, ki yè mwen rele yon rejyon rektangilè. Li nan te resevwa pa gen anyen nan li. Se yon tag louvri, fèmen tag. Men, li gen yon ID inik. Se konsa, sa sanble ap pase isit la se Google se prepar paj entènèt nou yo gen yon nèt sou tout pwen wotè 100%, e pa gen padding, pa gen marges, paske sa nou ap ale nan mete anndan nan sa a div, ki gen inik ID se kat jeyografik, se yon kat jeyografik aktyèl entegre. Apre sa, nou vle li nan ranpli paj la epi li pa jis gen kèk rektang ti nan mitan yo. Se konsa, liy 14 Menm jan an tou mete aksan sou la, kat jeyografik tèt li ta dwe gen yon wotè ki 100%. Se konsa, kounye remake ant liy 20 ak 28, sa a se kòd JavaScript. Lè sa a se, menm si li nan syntactically yon ti kras etranj, gen nan pa tout sa ki anpil ale sou isit la. Nan liy 21, sa a se deklare yon bagay yo rele yon varyab. Olye pou yo rele li kantite lajan, tankou nou te fè anvan, nou ap plis jisteman di var, ki jis vle di varyab. Nou te kapab te itilize ke nan Kòd Nick a, men li pa t ', se konsa mwen pa t 'bezwen deranje fè li swa. Li se yon varyab rele kat jeyografik, ak Lè sa gen nan yon fonksyon sa a, se aparamman rele initMap. Se konsa, sa a se tankou pwòp koutim nou moso devinèt nan grafonyen moun. Nou te kreye yon moso nan fonctionnalités rele initMap, epi ou ka kalite dégager sa k ap pase isit la. Sou bò men gòch, nou te gen yon varyab, se konsa nou ap ale nan mete sa ki annapre yo bagay andedan ki varyab, de dwat a gòch. bò nan men dwat di, hey navigatè, ban m 'yon nouvo kat jeyografik Google. Apre sa, google.maps.map se jis yon fason Funky nan ki espesifye ke sa a fonctionnalités ki dwe nan Google Maps. Apre parantèz yo, nou te wè sa a anvan, hey navigatè, jwenn m 'eleman yo nan paj la, nan tag nan paj la ki gen inik ID is-- ODYANS: [fèbl] DAVID Malan: --map. Ak sa ki k ap pase, byen, liy sa a ansanm, liy 23, se esansyèlman di: hey navigatè, ale jwenn m ' ki div vid sou paj la ki gen inik ID se kat jeyografik, paske mwen vle insert nan l-- enjekte nan li, si ou will-- yon pakèt antye nan kontni ki k ap pase yo dwe vini soti nan entènèt la, imedyatman. Apre sa, Google a fè nan tout sa pou nou. Se konsa, ankò, nan fen la anpil nan jou a, nou gen egzanp sa a nan distraksyon. Mwen pa gen okenn lide ki sa yon kat jeyografik se oswa ki jan yo aplike yon API kat jeyografik. Nou pa bezwen. Nou jis bezwen di kat jeyografik la ki kote yo mete tèt li, epi kite moun aplikasyon kache detay sou Google. Koulye a, gen aparamman de moso nan done ki egzanp sa a se bay nan API Google la. Aparamman sant la nan kat jeyografik la, ak nivo a rale, se konsa pale. Ak nenpòt moun ki rekonèt sa yo kowòdone, latitid ak lonjitid? Pwobableman pa, men nou ka ale tounen leson patikilye a, literalman wè. Men, nou pral wè l 'nan jis yon ti moman. nivo Zoom se yon valè ant, mwen pa fè sa konnen, youn nan 13 oswa yon bagay tankou sa. Li jis te fè ak ki jan lwen ou se agrandi nan oswa soti, epi ki nan li. Epi, koulye a nan fen la anpil nan paj, avi liy 29-- li nan yon ti kras lèd paske li wraps-- liy sa a nan kòd se sa ki downloads nan la navigatè aktyèl API Google la. Tout moun nan kòd la ki Google la enjenyè te ekri ki aplike sa a karakteristik antye nan kat anbarkabl. Koulye a, kite a pa chanje anyen. Si w ap swiv ansanm, ale pi devan epi jis sove ke dosye, si ou tout bon gen sa m 'genyen. Ale nan URL li yo. Ou ka klike sou bouton an kouri moute tèt ak ki pral di ou URL la nan sèvè sit entènèt ou ankò. Epi li pral mennen ou nan yon tab nouvo. Si ou klike sou Open pou map.html, ak chans yo se w ap pral jwenn yon alèt, yon mesaj erè, wi? mesaj erè, mesaj BSOD? Se konsa, malerezman, erè a mesaj se pa sa ki Enstriktif sof si ou aktyèlman louvri nan konsole, ki tab espesyal nou kenbe louvri yè ak yon ti jan ti kras pi bonè jodi a. Men, mwen bite atravè sa a pi bonè, se konsa mwen deja kalkile sa solisyon an se. Nan glisad jodi a, oswa olye, nan Cloud9, avi ke nou pa t 'fè yon bagay fè espre. Remake sa a tag script nan liy 29, si w li nan li, li a tankou maps.googleapis.com/ yon bagay, yon bagay, yon bagay, Lè sa a, remake yon moun, youn nan devlopè yo, te ekri nan tout kapital lèt, kle API ou yo. Nou bezwen kole yon bagay nan a. Lè sa a te etap la M 'te fè pou nou anvan, e ankò yo ta ka lis nwa nou si toudenkou, 12 oswa plis nan nou kòmanse lè l sèvi avèk kle a menm, men kite a wè sa ki rive. Se konsa, si ou ale nan jodi a glisad, yon sèl glise pita, gen nan sa a fisèl trè Funky-kap nan tèks. Ale pi devan epi jis kopi sa ki epi kole li kote li di kle API ou yo. Sa a yon sèl la mwen siyen li pou. Ak definitivman pa eseye sezisman li soti manyèlman, paske li santi l plen ak tipo, ki kapab. Se konsa, jis kopye epi kole sa. Epi, se k ap pase fè liy nan pi long, men kounye a, jis yo dwe klè, li ta dwe gade yon ti kras plis tankou sa a, kote kle egal pa kapitalize tap rele ke nan ou. Save paj ou, tounen nan lòt tab la, Reload, ak espere wè yon kat jeyografik nan ki kote? ODYANS: Ostrali. DAVID Malan: Ostrali. Se konsa, aparamman sa yo se nan GPS kowòdone nan Ostrali. Ak kite m 'mache nan sèlman pou moman yon epi ede nenpòt ki moun ki pa byen la, men kite m 'pwopoze, atravè Google, jwenn GPS la kowòdone nan vil pwòp ou a oswa pwòp peyi lakay ou. Ak pwobableman Google ka vire sa a moute, oswa Wikipedya ka di ou. Men, chwazi de valè diferan pou latitid ak lonjitid, ale tounen nan epi kole yo, li Lè sa a, Reload paj la apre ekonomize ak wè si ou ka gen yon kat jeyografik pou peyi pwòp ou yo. Lè w ap fè ak sa, swiv-up nan challenge-- epi mwen pral bay yon ti kras mwens direksyon, fè espre, pou ke ou fè espre gen lite pou yon koup minit ak dokiman an, chanje kat jeyografik la yo dwe pa sa a cartoonish default, men yon kat jeyografik satelit. Se konsa, ou aktyèlman wè satelit simagri olye pou yo koulè yo bèl. Apre sa, allusion a Mwen pral ba w se chanje kalite kat jeyografik la. Tounen nan ke ap resevwa te kòmanse paj pou enspirasyon. Kòm ou ka rete ranmase grap lòj, si w ap chèche, gen anpil plis bagay ou ka fè. Gen kèk nan ou te deja chanje kalite a kat jeyografik. Men, ou ka do-- pou egzanp, kite m ' ale nan yon bagay nou te fè pou kou a Mwen teach-- maps.cs50.net. Youn nan undergrads nou yo te fè sa a. Nou sant kat jeyografik nou an sou Harvard Yard ak kouvri tout moun sa yo non bilding, epi nou te gen l 'ajoute sa a. Se konsa, si mwen vle pou fè rechèch pou, pou egzanp, Matthews Hall, nou gen yon ti kras meni drop-desann. E mwen panse ke li te lè l sèvi avèk demaraj a, bibliyotèk nou diskite pi bonè pou sa. Men, si ou klike sou Matthews Hall, li imedyatman sote kat jeyografik la nan yon sèten kote, epi li montre ou yon foto nan sa a ti kras pop-up. Men, menm sa a ti kras pop-up, nou pa t aplike. Si m 'desann sou nou an ap resevwa te kòmanse paj epi gade pou enfòmasyon fenèt yo, ou pral wè ke kèk nan la fonctionnalités ou tèt ou kapab ajoute, kwake ak yon konpleksite ti jan pi plis, se yon bagay yo rele yon fenèt enfòmasyon. Men, si mwen klike sou yon egzanp isit la, ak sa a se sa ki nan plezi, ou ka fè bagay sa yo tankou sa a, klike sou yon makè ak Lè sa a vwala, enfòmasyon Pops leve. Se konsa, nou pa gen afè prezante karakteristik ase nan JavaScript nan penti yon foto nan egzakteman ki jan ou te kapab fil tout bagay sa a ansanm, men nou te kalite grate sifas la. An reyalite, ki sa mwen jis te fè lè Mwen klike sou sa makè, te lakòz yon evènman, yon sa yo rele sou evènman klike sou. Apre sa, nou aktyèlman te wè yon evènman pi bonè jodi a, , La sa yo rele soumèt evènman lè nou te anpeche itilizatè a soti nan pou chèche chat. Se konsa, nou te kalite pran ak choosed nan mitan tout karakteristik sa yo divès kalite, l 'ban nou yon sans, èspere ke, nan sa ou kapab aktyèlman fè ak yon ti jan pi plis konfò nan pwogram, ak resous konplètman gratis. Nenpòt kesyon? Pa gen? Sa a se chans final ou a, omwen jodi a, sou yon Vandredi, jwenn anyen nan pwatrin ou pou ke ou mache soti nan isit la santi konfyans ak konfòtab. Wi. ODYANS: Poukisa pa fè sa ou ajoute yon sèl plis bagay? DAVID Malan: Oh mwen bonte. Mwen bezwen pran yon ti repo nan fen semèn sa, mwen panse ke. Lòt kesyon? ODYANS: [fèbl] DAVID Malan: Ou can-- nan Internet Explorer, rès ak kè poze, ou itilize yo dwe kapab mete VB script, vityèl script debaz yo, men sa reyèlman pa janm kenbe sou. Se konsa, repons lan kout se jis JavaScript. Lòt kesyon? Tout dwa, byen, kite m 'fè sa. Kite m 'gen tan pwan kòlèg nou deyò. Yo gen kèk evalyasyon fòm ke yo vle tout moun yo ap depanse yon kèk minit ranpli. Yo vle kolekte ke fòm ak nenpòt egzansyon ke ou ta ka gen deyò. Yo pral yo te genyen tou sètifika. Mwen devine gen nan toujou gen kèk ti goute deyò. Kite m 'pase sa yo soti, epi si ou gen nenpòt kesyon nan entre-temps la, Mwen pral mache nan plis endividyèlman epi nou ka fè ou jwenn te kòmanse. Wi, nan kou. ODYANS: [fèbl] DAVID Malan: Sa a anjeneral vre jou sa yo. Sètènman ak sit entènèt lojisyèl, w ap apiye sou lòt moun w ap swa estetik lè l sèvi avèk bagay sa yo tankou demaraj, se konsa ou pa fè sa gen aplike nivo a ki ba detay sou meni ak bouton ak tout sa ki. W ap apiye sou yon moun tankou Google pou ke ou pa gen yo bati yon ube biznis ak yon biznis kat, ak nenpòt ki kantite menm jan an aplikasyon kòm byen. An reyalite, koneksyon yo se popilè, tou. Si ou te itilize Spotify oswa nenpòt ki kantite sou sit entènèt, ou pral ouvri sesyon an nan kèk sit lè l sèvi avèk Facebook. Se konsa, sa a bèl, gen yo APIs pou koneksyon sèjousi, se konsa ke ou pa gen gen pwòp ou a itilizatè tab ak tout nan baz done pwòp ou a nesesèman nan limit la menm. Ou ka kite Facebook fè tout nan ki konpleksite pou ou. Se konsa, li yon moman enteresan, onètman, nan pwogram, paske gen anpil twazyèm pati sèvis ki ou ka bati sou tèt. Epi ankò, pri a ou peye se swa finansye oswa D '. Si Google desann, pou fè Ube, joui, men petèt sa a, se yon rezonab komès-off. Epi ankò, ki te youn nan tèm yo, èspere ke, pou koup la sot pase a nan jou, se sa yo komès-konpwomi. Ak raman ki gen la pral yo dwe yon repons dwat. Li reyèlman se pi bon an de oswa plis repons. Pase sa yo alantou. Men kont Cloud9 ap kontinye nan travay, nan teyori, nan pèrpetuèl. Ou ta ka jwenn si ou rete tann yon kèk jou oswa yon semenn oswa plis ou kapab konekte tounen nan yo, li ta ka pran tankou youn oswa senk minit yo louvri tounen moute, men sa a jis paske yo mete li nan dòmi pou konsève pou sou resous yo.