DAVID Malan: Kull dritt, aħna huma lura. Dan għall-eċċitanti konklużjoni, l-aħħar taqsima tagħna dwar l-ipprogrammar tal-web, li jiena ħsibt aħna'd użu bħala terminu ġenerali jaqbad suġġetti ftit fadal. Għalhekk fl-aħħar tal- jum, aħna ser fil-fatt jagħmlu xi ftit ta 'hands-on-ipprogrammar tal-web bil-lingwa msejħa JavaScript. U naħseb aħna ser tagħti ħarsa fuq xi ħaġa relatati ma 'immaġini u jiskopru xi ħaġa segretament moħbija fil-immaġini, u wkoll tagħti ħarsa lejn l-Google Mapep API, programmi applikattivi interface, bħala xi ħaġa rappreżentattiva tat-tip ta 'software li l-aktar u liberament disponibbli llum. Iżda għaliex ma we tagħti ħarsa fi ingredjent għal din id-dinja li konna tip ta ġiet filwaqt għall mogħtija teżisti għal xi żmien, database. Għall-aħħar ġurnata u nofs konna jassumi li għandna aċċess għal database, iżda liema problema ma 'database ssolvi? X'tikkontrolla do għalina? X'inhu? UDJENZA: [inaudible] DAVID Malan: Stivi l-informazzjoni kollha, OK, u liema tipi ta 'informazzjoni jista 'ma tqiegħed fiha? UDJENZA: [inaudible] DAVID Malan: Kull tagħrif inti jistabbilixxu dan, int ser tingħata lura. Dan huwa veru. U fuq sit jew web fuq l-internet tipiku applikazzjoni, liema tipi ta 'informazzjoni, speċifikament, jistgħu inti tpoġġi fil-? UDJENZA: [inaudible] DAVID Malan: Utenti. Allura x'hemm utent? UDJENZA: [inaudible] DAVID Malan: OK, irreġistrata utent tas-sit. U dak ma jfisser li Informazzjoni utenti taħżen? Liema composés utent? A utent għandu xiex? UDJENZA: [inaudible] DAVID Malan: Yeah, personali dejta, u I simili li. Ejja ikunu aktar preċiżi. Allura l-utent tipikament għandha isem, x'iktar jista utent għandhom? UDJENZA: [inaudible] DAVID Malan: An OK addr--, hekk l-ewwel isem, isem l-aħħar. Tajjeb. Attwalment, ejja tiffissa li, minħabba li għaddej biex jiftħu opportunità għall diskussjoni, xorta, aktar. L-ewwel isem, isem l-aħħar, sess. ID ta 'xi tip. X'aktar? Smajt xi ħaġa oħra qabel, wisq. Email, indirizz postali. Mela ejja nieqaf hemm u issa jqisu mhux dak li aħna qed ħażna fid-database, but-- u mhux għaliex, peress li huwa forsi ovvju li ladarba inti tirreġistra utent, inti tixtieq li tiftakar lilhom għal xi żmien. Inti ma tridx li biss jiġu maħżuna fil-RAM u jkunu forgotten-- hekk ejja tiffoka fuq il-kif. Jirriżulta li fl -dinja ta 'databases, hemm mill-inqas żewġ tipi f'dawn il-jiem. Xi ħaġa imsejħa database SQL, Strutturat Mistoqsija Lingwa, jew, cutely imsemmi, noSQL, li mhuwiex SQL. U l-aħħar hija eżempju ta 'dak jista għandu jissejjaħ oġġett orjentati lejn, jew maħżen oġġett, database li l-ħażniet l-oġġetti, u mhux, skuża lili, kif aħna se malajr tara, ringieli. Allura aħna ser niffukaw għal ftit mument fuq l-ewwel minn dawn, jiġifieri, SQL database, jekk biss għaliex dan huwa hekk familjari diġà, lil xi ħadd li jkun użat Excel jew Folji google jew Apple Numri jew kwalunkwe standard programm spreadsheet, jew, b'mod ekwivalenti, jew aktar sophisticatedly, xi ħaġa bħal Microsoft Aċċess jew Oracle jew MySQL jew PostgreSQL, li kollha huma ismijiet tal-prodotti għall-implimentazzjonijiet tal-idea li ġejja. Database relazzjonali hija sempliċement xi ħaġa li għandha ringieli u kolonni. U billi ringieli u kolonni, I litteralment tfisser xi ħaġa bħal dan, hekk fejn aħna jista 'jkollhom l isem ta 'qasam u t-tip tiegħu fuq hawn. U fil-fatt, let me issa jibdew mappa dawn. Allura fil-fatt, I do not know għaliex I ġibdet chart separat. Ejja iżommu din sempliċi. Għandna dritt hawn il bidu tat-tabella tagħna, fejn dan huwa l-isem tal-qasam u dan huwa t-tip tad-data, u skond it-tip I tfisser dan li ġej. Huwa ta 'numru, huwa string, string qasir bħal kelma, ma hija punt, huwa data binarja, bħal immaġni? U ejja biss tease dan il apparti għal ftit mument. Allura l-ewwel isem, in-numru, spag, blokki kbar ta 'text-- UDJENZA: [inaudible] DAVID Malan: Iva, hekk sekwenza. U f'kuntest database, aħna ser tipikament sejħa dan il-qasam char. I ser biss jgħidu char għal issa imma aħna qed ser tirfina dan fil-mument. qasam Karattru. isem l-aħħar probabbilment l-istess. Sess? Maskili jew femminili, u għalhekk jista 'jkun qasam char. Dan jista 'jkun jew kwotazzjoni, unquote "Maskili" jew kwotazzjoni, unquote "mara" jew jista 'jkun m jew f. Jekk inti tixtieq li tkun aktar inklużiva, jista 'jkollok bżonn terz valur jew xi tip ta 'qasam ieħor għal kollox. U għalhekk inti tista 'tuża falza vera. Il-qasam li jista 'jissejjaħ raġel, u allura inti tista 'tgħid vera jew falza. Iżda dan ma jolqotx neċessarjament il l-informazzjoni kollha li inti tista 'tixtieq. Għalhekk jirriżulta li hemm tip ieħor ta kamp li jista 'jkun utli hawnhekk f'database tipiku, imsejjaħ ENUM, fejn dan huwa qasam karattru, imma inti, il-disinjatur, isiru tenumera-valuri possibbli, bħal kwotazzjoni, unquote "maskili", kwotazzjoni, unquote "mara" u oħrajn. Allura li kwalunkwe valur huwa fid-database tiegħek, huwa tabilħaqq bbażati fuq il-karattru, iżda għandu jkun wieħed minn dawn il-valuri. Aħna probabbilment ma tkunx tixtieq xi ENUM għall-ewwel isem jew l-isem aħħar. Inkella rridu naraw li jiġu nnumerati, bħala l-isem joħroġ mill-litteralment kull possibbli l-ewwel isem u l-aħħar isem. OK, hekk ID x'għandu ID jkun? Iva, hekk forsi numru. Mela ejja twaħħal mal li għal issa, in-numru. U bħala għadd, numru huwa ftit wisq wiesa issa. Għall-aħħar tat-tieni jum, inħoss bħal aħna għandu jkun ftit aktar preċiż. In-numru jista 'jfisser simili, huwa jista 'jkun xi ħaġa bħal 1.236. U li probabbilment mhux dak li rridu nfissru minn ID. What do we probabbilment jfisser minn ID? UDJENZA: [inaudible] DAVID Malan: Oh, OK, hekk forsi huwa lanqas numru. Forsi huwa attwalment identifikatur uniku li l string, bħal isem l-utent. Allura assolutament, jista 'jkun. Naħseb li xi ħadd probabbilment fisser numerika, għalkemm. Mela ejja jibqgħu ma 'dak. Liema tip ta 'numru? X'hemm aktar precise-- integer. Allura numru bħall 0, 1, 2, 3, hekk aħna ser sejħa dan integer. U anke dakinhar, stajt jiġu nitpicking, huwa mhux verament ftit numru sħiħ ġenerali li trid. Inti probabilment ma jridux valuri negattivi, sempliċement minħabba, hija biss iħoss stramb. Inti probabilment tixtieq interi pożittivi. Allura inti tista 'wkoll tesprimi li f'database, iżda għal issa, aħna ser ngħidu numru sħiħ. Email? Din hija probabbilment just-- ta 'dak? UDJENZA: [inaudible] DAVID Malan: Huwa ta 'email, iżda li karattri, id-dritt? Hija biss għandha karattru funky bħal ta ' "fi" simbolu jew xi ħaġa oħra, iżda huwa għadu qasam karattru. U l-indirizz postali? qasam Karattru. Allura li l-bidu sbieħ, iżda ejja jkun ftit aktar preċiż issa. Għalhekk jirriżulta li fl database, inti spiss għandhom għażla fuq aktar raffinati verżjonijiet ta 'dawn l-affarijiet. Fil-fatt, fid-database SQL tipiku, SQL, jew b'mod iktar ġenerali, id-database relazzjonali, databases ringieli u kolonni, inti spiss nikseb biex tispeċifika mhux biss it-tip ta 'l- field-- let me tagħmel xi here-- kamra iżda wkoll it-tul. Allura kemm żmien huwa l-ewwel isem? I think, D-A-V-I-D. OK, ltqajna I probabbilment biss reċidiv bħal nofs tan-nies fil-kamra, id-dritt, peress ismijiet tiegħek huma itwal minn ħames ittri, hekk ħamsa jidher egoist ftit u naive, hekk x'hemm valur aħjar? 10, id-dritt, u naħseb aħna qed OK fil-kamra. 13? 30? Għaliex ma I jieħdu l- approċċ ta 'qabel meta aħna kienu jitkellem dwar arrays u l-memorja? Għaliex ma I biss ngħid simili 1000? Isem Ħadd ma huwa għaddej li jkun itwal minn 1,000. Imbotta lura. UDJENZA: [inaudible] DAVID Malan: Yeah, huwa ħalja, id-dritt, speċjalment jekk l-ismijiet l-aktar huma biss ħames jew 10 jew 15 karattri, li l-ħela ħafna. Allura inti taf liema? Din hija tip ta 'mistoqsija iebsa. Issa, nistgħu ċertament tanalizza l-Ingliż u ismijiet kwalunkwe lingwa oħra u ċifra barra, ukoll, dak li huwa l- medja average-- ma verament jgħinu us-- x'inhu l-mass hija probabbilment dak li aħna verament irridu. Iżda jirriżulta aħna anke jkollhom xi għażla dwar it-tip hawn. Fi SQL database tipiku, inti jkunu xi ħaġa imsejħa qasam char u wkoll varchar, V-A-R, għall-qasam char varjabbli. U d-differenza hija din. Qasam char, inti l-disinjatur, għandek jispeċifikaw minn qabel it-tul eżatt tal-qasam. Hekk forsi l-ewwel isem bħall 20 iħoss tip ta 'periklu. Jista 'jkollhom jagħmlu xi googling biex tara jekk dan huwa fil-fatt sigura biżżejjed. Hemm probabbilment isem ma 21 karattri, iżda għal issa, ejja ngħidu 20 huwa sigur. Qasam char ikun jimplika f'database li inti huma jużaw 20 u dejjem 20 karattru. Issa jekk huwa biss D-A-V-I-D, 15 minnhom huma biss se tkun karattri vojta, iżda int xorta tuża 20 bytes kollha. Qasam varchar, għall-kuntrarju, ifisser il- sekwenza għandha tkun sa 20 karattru imma jekk huwa biss ħamsa, int biss ser tuża ħames, jew forsi sitta għal valur speċjali fl-aħħar, bħal dik 0 iddiskutejna dak ifisser it-tmiem ta 'karattru sekwenza fil-memorja. Allura meta taħseb inti tista 'tagħżel char versus varchar, peress li l-kummerċ ta 'darba? Char użi li ħafna karattri, varchar użi mhux aktar minn li ħafna karattri. UDJENZA: [inaudible] DAVID Malan: OK, meta inti taf l- tul tas-sekwenza pjuttost konvinċenti li biss l-użu char, "kawża jekk tkun taf, biss jitqiegħed l-isfel. U forsi dan huwa veru għal b'żipp kodiċi, fl-Istati Uniti, mill-inqas, 02138, huwa dejjem se jkunu ħamsa karattri sakemm inti żid il-sing erbgħa. Imma inti jista 'jkollhom xi valuri għal li inti dejjem taf it-tul. Jew simboli istat forsi, bħal NY għal New York, u ATS għall Massachusetts fl-Istati Uniti. Forsi inti għandek xi sitwazzjonijiet fejn dan huwa totalment raġonevoli, iżda minn dak loġika, għaliex huma aħna anke overthinking dan? Għaliex ma we biss użu varchar u allura aħna ser biss dejjem jużaw żewġ karattri xorta waħda, jew dejjem jużaw ħames karattri xorta? Għaliex mhux biss jiffranka varchar għall dak kollu, billi din il-loġika? Għandu jkun hemm qabda. UDJENZA: [inaudible] DAVID Malan: Jista tikteb xi ħaġa ħażina. Allura dan huwa veru. Iżda anke dakinhar, dawn ma jistgħux jużaw memorja aktar minn I jalloka. I għadhom l-aħħar jgħidu fuq it-tul, b'mod li ma jistgħux aċċidentalment tagħmel li żball, iżda riflessjoni tajba. Huwa aktar sottili, imma hija relatata ħafna għad-diskussjoni tagħna, fil-fatt, ta 'arrays u l-listi marbuta preċedenti. Jirriżulta li database, jekk dan jaf li kollha tal-valuri huma ta 'tul fiss, anki jekk xi wħud minn dawk il-valuri huma vojta, tip ta 'estetikament vojta, D-A-V-I-D u mbagħad 15 blanks, jirriżulta li jekk kull -qasam huwa l-istess tul, ferm simili firxa kellha kollu Jittieħed tagħha lura lura lura biex lura hekk li inti tista 'biss flimkien ma' 1 biex jiksbu l-jmiss valur,-istess idea f'tabella database. Jekk kollha ta 'karattru tiegħek kordi huma l-istess tul, għandek dak li sejjaħ aċċess bl-addoċċ. Jekk il-kordi huma ta ' Tul 20, inti ma biss do flimkien ma '1 inti biss tagħmel plus 20, kif ukoll 20, flimkien ma '20, flimkien ma' 20, u inti tista 'malajr ħafna iscroll permezz jew tfittxija kollha tad-data tiegħek permezz. Qasam char varjabbli, għall-kuntrarju, mhux dejjem ikollhom 20 karattru. Jista 'jkollhom 20 u mbagħad 15 u mbagħad 19 u mbagħad 10, u hekk jekk inti tixtieq li tfittex permezz ta 'dan, inti ma tistax sempliċement bl-addoċċ żid 20 bytes biex jiksbu għal dak li jmiss. Inti litteralment ikollhom biex tfittex permezz minħabba li l-tarf tal-istruttura tad-data, jekk inti se, huwa ragged. Huwa tip ta 'tmur fi u barra bbażata fuq it-tul attwali tas-sekwenza. Allura meta inti taf l-tul, kif Kareem jgħid, uża qasam char, għaliex inti jiksbu dak effiċjenza li jkunu kapaċi li jfittxu permezz ta 'dan aktar malajr meta inti qed tfittex għal data, inkella l-użu ta 'varjabbli. Sfortunatament, għandi l-ebda tweġiba tajba biex kemm żmien l-isem għandu jkun, iżda għal xi ħaġa bħal isem, nixtieq ngħid a varchar huwa komuni għaliex mhuwiex ser li jkun ta 'tul fiss għal kulħadd. 20, I do not know, 20 iħoss stretta ftit. Ejja ngħidu biss 50, 50. Hija ma verament jiswik li ħafna aktar li jgħidu 50 minflok 40, iżda f'xi punt, inti għandek bżonn tagħmel sejħa sentenza. Komuni ħafna, franchement, għall [? storiku?] raġunijiet, anki jekk huwa eċċessiv, jiġifieri 255, minħabba li xi żmien ilu, fis-sistemi tad-database popolari, bħal MySQL, għodda b'xejn open source li ħafna kumpaniji simili, anki Facebook użati, dan kien in-nuqqas massimu sabiex in-nies biss marru miegħu. Allura mhux raġonevoli, iżda aħna ser jużaw ftit aktar intwizzjoni u jgħidu, żgur 50, li l- probabbilment ftit eċċessiv. Sess, I do simili ENUM, u għalhekk aħna jistgħu għalhekk tenumera raġel jew mara, jew forsi b'mod aktar effiċjenti, m jew f jew xi symbology oħra, iżda ENUM iħoss bħal għażla tajba hemmhekk. Biex ikunu ċari, sess jista 'jkun biss varchar, u nistgħu biss kollha jaqbel nies kif sbieħ, li dejjem tpoġġi l-istess valuri hemmhekk. Maskili jew femminili jew whatnot. Iżda l-problema allura, huwa li nistgħu tagħmel żball, kif [inaudible] propost qabel f'kuntest differenti. Jekk nagħmlu żball, nistgħu jiksbu Valuri skorretti fid-database tagħna. Allura x'hemm sbieħ dwar bażijiet ta 'dejta bħal Oracle u MySQL u oħrajn, huwa li inti għandek din l-aħħar saff ta 'difiża fejn tiegħek amministratur DBA, id-database, min qed tfassal din it-tabella simili aħna huma verbalment, tista 'tpoġġi fis-seħħ ta 'ENUM li jipproteġi kontra dik billi tispeċifika irġiel, nisa, u għalhekk l-ebda waħda inkella mhux programmer tista aċċidentalment daħħal kwalunkwe valur ieħor. Allura dan tkun ħaġa tajba. Din hija karatteristika. Allura ID, jekk wieħed jassumi ID numerika, dan probabbilment għandha tkun numru sħiħ pożittiv. U aħna kultant ma jkollhom opportunità li jiddiskutu tul. Inti ma tkunx tipikament tispeċifika numru hawnhekk, inti minflok tispeċifika dan huwa int, jew int kbir, kif dawn qed tipikament imsejħa. Iżda tipikament, integer Ikun, ejja ngħidu, 4 bytes. U jekk huwa 4 bytes, li kif ħafna bits? UDJENZA: [inaudible] DAVID Malan: 32 bits. Allura kif ħafna utenti jistgħu għandna fil database tagħna, jekk dawn kollha jkollhom identità u dan ID għandu jkun uniku? 32 bits tfisser li għandna mudelli ta 'wieħed, tnejn, tlieta, erba, five-- mudelli differenti hekk kif ħafna mill żerijiet u dawk jista 'jkollok jekk ikun hemm 32? Dik hija l-istess ħaġa bħat tistaqsi x'inhu tnejn għall-32? Huwa numru kbir li Ma nistax pjuttost tikseb id-dritt, imma naf li huwa bejn wieħed u ieħor 4 biljun. Allura dan ifisser it-tabella database tiegħek jista jkollhom erba biljun utenti u li hu. Allura dan huwa interessanti implikazzjoni disinn. Għadd deċenti ta 'kumpaniji iddeċidew, forsi mhux tant għall-mejda utenti tagħhom, minħabba li jkollhom 4 biljun utenti hija problema rari. Din hija tip ta 'Facebook stil problema, mhux problema kumpanija tipika. Imma forsi jekk għandek reġistri tat-tranżazzjonijiet jew xi tip ta 'data li kontinwament gets miktuba fid-database tiegħek li assolutament jista 'jkollhom biljuni u biljuni ta 'ringieli, u tuża integer għal dan, x'inhu jiġri malajr kemm jista ' ikollok biex ringiela numru 4000000000 u allura inti tipprova li daħħal il- 4000000000 u 1, biex ngħidu hekk? Jien simplifikazzjoni-numri daqsxejn. Tista maqtugħin lura, I jfissirx li inti jkollhom jittrattaw qualche. U liema kompjuter tipikament do, taħseb dwarha anki minn dalgħodu, jekk għandek valur 4-bit bħal 1, 1, 1, 1, li, biss li jiġu kkonsolidati l għodu flimkien mal-wara nofsinhar, liema ma dan in-numru jirrappreżenta fil binarju? OK, aħna ser jagħmilha aktar faċli. Xi jfisser dan in-numru rappreżentati f binarju? OK, aħna ser jagħmilha aktar faċli, liema ma dan jirrappreżenta fil binarju? UDJENZA: Tliet. DAVID Malan: Tliet, għaliex għandna dawk column-- [Rires] Whew! Kellna l-kolonna dawk u l-kolonna twos. Allura jissoponi li, tabilħaqq, tagħna [? infield?] ma kinux 32 bit, iżda kienu żewġ bits, nistgħu jgħodd min-numru 0, 1, 2, 3 utent, u allura aħna qed tip ta ' lura għall-utent 00 ġdid. Allura dan huwa dak li tipikament jiġri. Jekk inti stajt qatt semgħu l expression-- probabbilment ma jkunux, imma jekk int have-- overflow numru sħiħ, fejn inti iżommu flipping kollha ta 'bits tiegħek li huma l-valuri akbar possibbli, u mbagħad int barra ta 'bits, dak li tipikament jiġri? Għaliex għandi ngħid 00? Ukoll, dan huwa tlieta. Kif nista jirrappreżentaw 4? Kif nista jirrappreżentaw il- għal numru 4 fil binarju? UDJENZA: [inaudible] DAVID Malan: One-- yeah, ma jgħidux 100 per se, minħabba li għandha l żbaljata konnotazzjoni, iżda 1-0-0. Allura dak in-numru 1-0-0 huwa tabilħaqq korretta, imma jekk inti biss għandek żewġ bits, dak usted verament isir? You ħadthom tinqaleb għal 00. U fil-fatt, dan huwa dak li jiġri. Attwalment, inti tista 'taħseb dwar dan aktar familjari. Jekk inti recall, liema, 16-il sena ilu, id-dinja suppost kellha tintemm meta il-problema Y2K ġara. Għaliex kien li? Ukoll kompjuters aktar, għall deċiżjonijiet raġonevoli, kienu ħażna numri bħall- sena 1975 jew is-sena 1999 bi ftit użu ta 'żewġ ċifri fil-memorja tal-kompjuter. Allura naturalment, dak li jiġri meta ikollok is-sena 2000, inti tmur għal dan, jew minflok, yeah. Allura inti tmur għas-sena 2000, imma jekk int biss billi jintużaw żewġ figuri li jistenna bħall-sena 00 u sabiex inti ħadthom tinqaleb. U dan huwa għaliex ħafna sistemi hemm bżonn li jiġu aġġornati fil-ħin. Allura ma 'dak imsemmi, kumpaniji bħal Facebook run up kontra din il. Allura l-uniku mod biex jimmaniġġaw il- sitwazzjoni, franchement, huwa li jantiċipaw dan. Jew l-aktar nodfa mod biex jimmaniġġjaw din is-sitwazzjoni huwa li jiġu antiċipati sabiex inti ma għandek tagħmel bidliet aktar tard. Allura minflok ta '8 bytes, inti taf liema? Jien ser tkun tħares 'ħsieb hawn, anki jekk huwa ftit ottimista li aħna qed tmur biex ikollhom 4000000000 u 1-utenti fuq il-websajt tagħna. Imma ejja biss użu 8 bytes, jew 64 bits, li ġeneralment ikunu imsejħa numru sħiħ kbir, ħafna tekniku. U dan ifisser biss inti jista 'jkollhom saħansitra aktar ċifri fin-numru tiegħek. Iżda dan huwa importanti deċiżjoni tad-disinn, għaliex jekk inti tagħżel numru li għandu ftit wisq bits ta 'expressiveness inti tista 'attwalment toħloq bug fis-software tiegħek. Kull dritt, hekk ejja nagħlaq bl-email u l-indirizz postali. Allura email, kemm żmien għandha email address jkun? 50. I really ma jkollu ebda idea, imma hija probabbilment xi ħaġa bħal dik, għax inkella l-ebda wieħed għaddej biex tikteb int jekk jiġrilha wisq twil, hekk 50, ejja jmorru magħha għal issa. indirizz postali, kemm żmien jekk dan ikun? UDJENZA: [inaudible] DAVID Malan: Mhuwiex biss zip code, għalkemm. indirizz postali, Smajt. Allura dan huwa simili 1 BRATTLE Square, comma, Cambridge Massa., comma, 02138. U fil-fatt, let me biss pull up worksheet ftit hawn. Din il iħoss simili huwa opportunità mitlufa. Jekk għandna 1 BRATTLE Square, comma, Cambridge MA 02138, Inħoss bħal nistgħu nagħmlu aħjar milli indirizz postali sempliċiment. Għaliex ma we jisplodu dan ftit? What am I jkollna fi? X'għandu għandna minflok għandna għall ringieli tagħna hawn, forsi? UDJENZA: [inaudible] DAVID Malan: Yeah, hekk ejja sejħa hija street_number, u underscore huwa biss komuni Mod ta 'wara dak qisu ispazju, iżda mhux, fil-fatt. Triq, u mbagħad city-- sorry? UDJENZA: [inaudible] DAVID Malan: Stajna nagħmlu dan. Linja waħda, linja tnejn. Għaliex ma we se żżomm sempliċi għal issa, iżda li assolutament deċiżjoni aċċettabbli. U mbagħad istat, u mbagħad ejja jkun ftit Istati Uniti iċċentrati għal issa u biss tagħmel zip code, sempliċement minħabba dan ser iwassal għal żball interessanti jew problema hawn. Allura jissoponi li issa ż-indirizz tagħna. Huwa ftit aktar tedjanti li aħna għandna kull f'dawn l-oqsma aktar, iżda issa nistgħu tag affarijiet ftit aħjar. Numru Allura issa triq probabbilment m'għandhiex tkun char, jekk dan? X'għandu jkun? UDJENZA: [inaudible] DAVID Malan: Forsi, numru bħal integer mill-ġdid? A eqreb numru sħiħ big? Inti probabilment ma jgħixux fil 4000000000 Main Street jew xi ħaġa crazy bħal dik. Allura numru sħiħ huwa probabbilment multa, iżda għandha xi ħadd qatt għex f'indirizz simili 1A BRATTLE Pjazza, jew 1 u 1/2? Dawn l-affarijiet jeżistu, sfortunatament, anki jekk int ma għexu hemmhekk, hemm dawn l-anomaliji bħal appartament 1A, 1B, 1C. Allura inti taf liema, aħna probabbilment m'għandhomx imorru mal numru sħiħ, inkella aħna qed tmur li jitilfu xi bejgħ. qasam Char, forsi? I do not know kemm żmien. Huwa probabbilment mhux se tkun dak twil, hekk 10 jew xi ħaġa. Ebda wieħed għaddej biex jikteb numru itwal, forsi. Iżda għal darb'oħra, għandna probabbilment jagħtu aktar riflessjoni għal dan. Forsi google, jagħmlu xi riċerka, iżda aħna ser jmorru ma imsaren tagħna għal issa. Toroq, char, 50, I do not know. F'xi punt, l-ebda wieħed għaddej li tikteb fuq envelop, wisq, sabiex hemm probabilment xi limiti ta 'fuq hemmhekk. Belt,-istess, żgur, hekk char 50. Istat, jista 'jkun Istati Uniti iċċentrati għal issa. Għalhekk jista 'jkun lista, tant tip ta 'sejħa sentenza, l-istat. Dan jista 'jkun bħal żewġ karattri. Allura fil-fatt, forsi, I tinżamm qal char. I probabbilment tfisser varchar, biss għal xi wħud effiċjenza, iżda aħna ser terga 'lura għal dik id-deċiżjoni fil-mument. Jista 'jkun char ta' tul 2 għall-istat. Jekk fl-Istati Uniti huma għandhom, bħall MA, Massachusetts, NY, New York, NJ, New Jersey, u oħrajn. Għalhekk jista 'jiġi iffissat għal dik. DC għall f'Washington DC. Imma naħseb, Olivier, inti propost approċċ ieħor. UDJENZA: [inaudible] DAVID Malan: Yeah, dan huwa ta ' ftit annoying li tip, iżda ENUM jista 'jagħmel aktar sens, għaliex b'dan il-mod, għall-inqas fl-Istati Uniti, inti tista 'tenumera, jekk tediously, iżda inti tagħmel dan darba biss fid-database tiegħek u qatt ma jerġa 'jkollhom biex jaħsbu dwar dan, kodiċijiet kollha 50 b'żewġ karattri. So I simili ENUM. Ejja twaħħal ma 'dak hemm, għaliex dan it-tip ta 'tinforza aktar rigorożità. U allura zip kodiċi? Naħseb Andrew kellhom ħasbu fuq li UDJENZA: [inaudible] DAVID Malan: Yeah, ħames jew disgħa. Ejja biss jżommha sempliċi. Just do ħamsa għal issa. Imma forsi I jistgħu biss do integer, id-dritt? I tista ', imma inti taf liema, I magħmula dan l-iżball darba, f'xi sens. Snin ilu, I kien jemigra minn Microsoft Outlook għall-Gmail, u l-Prospettivi għandu mod ta 'l-esportazzjoni kollha tal-kuntatti tiegħek bħala fajl Excel, fajl CSV, comma separati valuri fajl. UI għamel l-iżball, I think, ta doppja tikklikkja dan, ladarba I jitniżżel l-esportazzjoni, li kun żgur deher li stennejt. I irid ikun hit Save jew mikrija auto-jiffrankaw il kick in jew xi ħaġa. Għaliex meta I imbagħad importat fis Gmail, dan kollu maħduma. Iżda għas-snin, din il-ġurnata, u Jien għamilt dan ħamsa, 10 snin ilu, Jien xorta jsibu ħbieb li għandhom indirizzi li jixbhu dan l. Għaliex? UDJENZA: [inaudible] DAVID Malan: Hija ħadet il 0, ukoll, pjuttost, ħa l-kodiċi zip kollha bħala numru, u għalhekk huwa riskju ta '0 ewlieni li jfisser ma jkollu ebda tifsira. U hekk 2138 jidher li jkun zip code tiegħi. U dan huwa, franchement, annoying Excel Karatteristika li bihom Naħseb fil-kontumaċja, anki jekk huwa maħsub għal ftit jkun it-test, Microsoft Excel jiddeċiedi, let me jkun utli, oh u, nara numri biss. Ejja jittrattaw dawn bħala numri. U taqta 'l-żerijiet ewlenin. Jiena naħlef li Alla, kull koppja ta 'xhur nsib l-indirizz, u barra ta 'tip ta' OCD, mmur lura fi u żid 0, anki jekk I qatt ma tibgħat ittri nies jew xejn. Imma jien xorta jsibu fdalijiet ta 'dan il-. Allura dan huwa li jgħidu, hija din idea tajba? OK, l-ebda, minħabba li xi ħadd fil Massachusetts, f'dan il-qasam, se jkun hemm o jwassal għalihom. Mela ejja jmorru ma simili char, probabbilment, ħamsa. U hawn, tirrealizza aħna tista 'tuża l-ENUM u aħna jista tenumera 10000 kodiċijiet possibbli zip, iżda li jħoss simili huwa probabbilment jaqsmu linja ta ', bħal, benefiċċji. Jekk għandek l-input li ħafna dejta fis-database tiegħek biex jipproteġu kontra xi ħaġa. Allura char realizzati inti tista tip fil-H-E L-L-O kif zip code tiegħek, li mhuwiex, ovvjament, numeriċi. Hekk hemm ebda mod, fl database tipiku, biex jispeċifikaw biss numerika u biss ħames karattri twil, hekk aħna qed tmur biex ikollhom biex tagħmel dan fil-kodiċi. Aħna qed tmur biex tagħmel dan fil-PHP jew Java jew kwalunkwe lingwa nkunu jużaw fuq is-server biex jinfurzaw dak it-tip ta 'restrizzjoni. Whoo! Kull dritt, hekk xi mistoqsijiet għadha biss? Ejja jagħmlu deċiżjoni oħra tad-disinn. Jirriżulta li inti wkoll tikseb biex jagħżlu, meta titfassal SQL database, jew database-- tipiċi relazzjonali fejn għal darb'oħra, relazzjonali biss tfisser ringieli u kolonni, li kif inti torganizza data-- tiegħek u jirrealizzaw li dak li dan ifisser huwa, Stajt ġiet qarrieqa fil li, jien drawing-- din il huwa dak li sejjaħ il-schema għal tabella database. Dan huwa simili l- speċifikazzjonijiet għall-table-- iżda meta niġu żmien li attwalment jaħżen id-data, u aħna ser nagħmlu dan biss bl-eżempju hawn. Jien ser jiftħu Excel, għaliex Excel se tagħti me ringieli u kolonni. U dan huwa eżattament dak Oracle u MySQL u għodod oħra se tagħti me. Hekk jien biss ser tuża huwa f'ġieħ-diskussjoni tal. Let me imorru quddiem u tiftaħ dokument rappreżentattiv hawn, zoom ftit. Allura per eżempju, headers tagħna huma issa ewwel isem, isem l-aħħar, is-sess, identità, email, in-numru tat-triq, triq, Whoops. Triq, belt, statali, kemm dwar joqgħod fuq l-iskrin. Allura dak li dan ifisser huwa li meta utent ewwel reġistri għall-website tiegħi, li għaddej biex tkun xi ħaġa simili David, Malan, m, ejja ngħidu 1, malan@harvard.edu, in-numru tat-triq se jkun simili 1 BRATTLE Pjazza, Cambridge, MA, 02138, u mbagħad oħrajn. Allura meta nerġa 'ngħid li database relazzjonali jew database SQL huwa ringieli u kolonni, I tfisser dan. Li d-data attwali hija maħżuna fir-ringieli u kolonni. Dan huwa biss koinċidenza, li konna nitkellmu, u I kien biss tpinġija dan fir-ringieli u kolonni. Dan huwa biss il schema, id-definizzjoni ġenerali. Allura ta 'dawn l-oqsma hawn, jew b'mod ekwivalenti, hemm, li huma l-oqsma li taħseb Jien probabbli li tfittxija fuq jekk jien utent jew jekk jien l-amministratur database? Bħal, liema oqsma am I fil-fatt se tfittex fuq? UDJENZA: [inaudible] DAVID Malan: L-isem, yeah hekk I bħall-fatt that-- yeah, posta elettronika jista 'jkun pjuttost komuni. Jiddispjacini, inti qal isem. Allura maybe-- u għal darb'oħra, aħna qed tip ta 'jitkellem b'mod astratt. I do not know għaliex youd tkun tiftix għal isem, iżda li jħoss raġonevoli jekk int tiftix għal utent. Forsi jgħid, żgur, ID. U huwa jiżolqux inklinazzjoni, minħabba I tista contrive xenarju fejn forsi boxxla tiegħi staqsa lili, kif ħafna rġiel għandna fis-sit tagħna? Kemm in-nisa nistgħu jkollhom fuq is-sit tagħna? U hekk f'dak il-punt, inti tista 'tixtieq li tfittxija fuq il-qasam tas-sessi, wisq, u xejn iżjed. Allura hemm kompromess hawn. Għal darb'oħra, hemm ebda risposta dritt, imma hemm hija karatteristika f'ħafna databases SQL magħrufa bħala indiċjar, fejn inti, il-disinjatur, il- amministratur database, nikseb biex jiddeċiedu minn qabel liema Oqsma id-database għandha tottimizza għal tfittxijiet fuq. Inti tista 'naively ħafna jgħidu, jottimizzaw dan, jottimizzaw li, jottimizzaw dan, jottimizzaw dan u dan, u d-database se tagħmel xi ħaġa maġika taħt il- barnuża, u jagħmel xi ħaġa b'mod li l-ħin li jmiss inti tfittex fuq kwalunkwe wieħed minn dawn l-oqsma, se, fil-fatt, tkun iktar mgħaġġla. Dan huwa possibbli. Ma tikkanċella innifsu barra. Iżda għandu jkun hemm prezz imħallas. Jekk inti naively, jew over-b'entużjażmu jiġifieri, indiċi kollha ta 'dawn l-oqsma, biex ngħidu hekk, jagħmluhom kollha effiċjenti jitfittex, liema prezz huma inti probabilment tħallas? UDJENZA: [inaudible] DAVID Malan: Prestazzjoni. Xi trid tfisser? Ukoll prestazzjoni, għall-inqas fil- kuntest Jien jiddiskutu, huwa aħjar issa. Dik hija d-definizzjoni ta 'indiċjar. Se tagħmel tfittxijiet aktar mgħaġġel. Allura waqt tonqos, biex ngħidu hekk. UDJENZA: [inaudible] DAVID Malan: Ispazju. Għalhekk għal darb'oħra, dawn huma l-kummerċ komuni. I tista 'tħaffef tiftix tiegħek, imma hija se jiswik aktar bytes ta 'spazju. Għaliex? Ukoll, fil-kontumaċja, jekk ikollna ħadd mill dawn l-istilel aħmar, ħadd minn dawn l-indiċi, kif jien qal, kif taħseb li tfittex għal isem f'din id-database? Mela ejja tiġbed tagħna attenzjoni għal dan l-eżempju. Jekk għandna David u Scully u Kareem u Arwa u oħrajn f'dawn ringieli, per eżempju. Mela ejja do eżattament dan. Scully huwa fil hawn, u mbagħad għandna Kareem, u Arwa, u kulħadd, jekk inti ma jkollhom indiċi definit, biex ngħidu hekk, -aħjar li tista 'tagħmel huwa tfittxija lineari. Jekk inti tfittex għal Arwa, aħna mhux qed ser ikunu jistgħu jaqbżu d-dritt tagħha malajr. Aħna qed tmur biex tibda fuq u jmorru it-triq kollha lejn il-qiegħ, ma b'differenza oriġinali tagħna Eżempju Mike Smith. Jekk, madankollu, I say, ħej, id-database, indiċi l-kamp isem ewwel, allura huwa għaddej biex jagħmlu xi ħaġa fancier u jappoġġjaw xi ħaġa bħal tfittxija binarja. Huwa probabbilment mhux tfittxija binarja per se. Bażijiet ta 'dejta għandhom tendenza li jużaw ieħor istruttura tad-data msejħa b 'siġar, ma għandhomx jiġu mfixkla ma 'siġar binarju, li ftit ikun aktar mgħaġġel biex tfittex xi ħaġa logaritmika fin-natura. Imma l-prezz li inti tħallas biex jibnu dik karatteristika, li l-istruttura tad-data fil-memorja, huwa aktar bytes. Allura jista 'jieħu xi megabytes, xi gigabytes, li jaf? Hija tiddependi fuq id-data. Allura f'xi punt, inti għandek tiddeċiedi, huwa probabbilment mhux il-każ komuni. Allura dak li huma l-komuni attwali każijiet, jekk int verament kellhom jagħżlu, dak li jista oqsma favoriti tiegħek tkun? Email. U I simili email għaliex email, fit-teorija, għandu jkun uniku. U hekk tipikament, meta taf bil-quddiem li waħda mill-oqsma tiegħek huwa jew se jkun uniku, li tendenza li jkunu qasam tajba tiftix fuq, peress li l-mod, meta inti tfittex xi ħaġa, int ser terġa 'lura wieħed jew żero tweġibiet u mbagħad inti qed isir. Inti ma għandekx biex iżommu infittxu f'oħrajn. U hekk f'dan il-każ hawnhekk, email, sakemm inti ma tistax tirreġistra darbtejn bl-istess email, hija waħda tajba. ID b'definizzjoni, fil- dinja tax-xjenza tal-kompjuter, jekk inti qed jitkellem dwar ID, li kienu aħjar ikunu uniċi. Dik hija tip tal-konnotazzjoni tal-identità jew identifikatur. U l-bqija ta 'dawn jistgħu jkunu, ejja jsejħulhom sbieħ li haves, iżda mhux verament meħtieġa. U hekk f'database, inti tispeċifika indiċi, imma int tista 'tkun saħansitra aktar preċiżi. Tista 'tgħid, ħej, id-database, tagħmel żgur li kull ID f'din it-tabella hija unika. Lanqas Tħallix programmer aċċidentalment tpoġġi fi email duplikat jew duplikat numru ta 'identifikazzjoni. Tant simili enums tħarisna-istess mod, inti jista 'jkollhom dawk difiżi ta' livell aktar baxx. U għalhekk id-disinn database, b'mod f'ċertu sens, huwa tip ta 'gost, għaliex inti tagħmel dan fid-difiża. Inti tip ta jassumi li inti taħdem bil horrible, programmaturi horrible u inti tixtieq li tqiegħed f'kemm difiżi kemm tista 'biex tipproteġi d-data tiegħek, imma fl-istess ħin trid biex jgħinuhom iwettqu aħjar billi jagħżlu li oqsma biex jottimizzaw għall. Imma inti ma tistax neċessarjament tagħmel dan fil vakwu bħal aħna tip ta are here. You ħadthom ltqajna biex tkun taf liema huma F'dawk il-każijiet komuni benessri. Jekk l-iżviluppaturi huma implimentazzjoni ta 'ktieb l-indirizz, inti tista 'tajjeb ħafna tixtieq li tkun tista li tfittxija fuq kważi kull qasam, biss min-natura ta 'l-applikazzjoni. Allura forsi inti tqatta dak l-ispazju addizzjonali. Dritt, xi mistoqsijiet? Yeah. UDJENZA: [inaudible] DAVID Malan: Le UDJENZA: [inaudible] DAVID Malan: OK. UDJENZA: [inaudible] DAVID Malan: Oh, hekk aħna qed nitkellmu b'mod issa li l-kompletament lingwa agnostic. Allura aħna qed nitkellmu issa dwar databases relazzjonali aktar ġenerali, jew databases SQL b'mod aktar ġenerali. UDJENZA: [inaudible] DAVID Malan: A kelma aħjar li tuża hija, tista 'tintuża minn kwalunkwe lingwa. So I tista 'tikteb kodiċi JavaScript, Ċ kodiċi kodiċi, C ++, Java kodiċi, kodiċi Ruby, li kollha jitkellmu ma ' database u tesegwixxi mistoqsijiet. Fil-fatt, li mhux ħażin segue għal eżempju mistoqsija. U għal darb'oħra, aħna qed mhux se jmorru fil Java jew Ċ ++ jew xi li aktar, iżda fil SQL, il-lingwa li fiha I iżommu -rinviju, Strutturat Mistoqsija Lingwa, dan il nnifisha hija lingwa ta 'programmar, imma hija maħsuba biex jintużaw għall-ebda sorpriża, strutturati mistoqsijiet query. Permezz I tfisser dan. Il-mod inti tagħżel id-data minn database MySQL huwa inti litteralment tip fil-programm tiegħek xi ħaġa simili tagħżel stilla minn utenti. I am wieħed jassumi li din it-tabella, issa huwa msejjaħ utenti. I jistgħu sejħa hija xi ħaġa li rridu, iżda dak it-tip ta jagħmel sens. U għalhekk tagħżel hija ferm verb komuni, jekk inti għandha, SQL, li litteralment ma dan. What do you think stilla ifisser f'dan il-kuntest? UDJENZA: [inaudible] DAVID Malan: Im sorry? UDJENZA: [inaudible] DAVID Malan: Mhux meħtieġ, huwa aktar inklużiva minn dan, fil-fatt. Hu l-karattru wild card. Star kważi dejjem ifisser xejn, għalhekk dan ifisser, f'dan il-każ, tagħżel kollox mid-database. Allura meta I say dan, I tfisser tagħti me lura kull kolonna mit-tabella tiegħi imsejħa utenti. Allura tagħti me ta 'riżultati, kif huwa msejjaħ. Fi kliem ieħor, agħti lili kopja tal- spreadsheet, huwa dak li jien jkollna fuq. Imma jekk jien qal tagħżel stilla minn utenti fejn ID huwa ugwali 1, kemm hu kbir jekk sett riżultat tiegħi jkun allura? Jew b'mod ekwivalenti, kemm ringieli jekk I jingħataw lura mid-database? Probabbilment wieħed biss, jekk ikolli tabilħaqq ID trattati bħala identifikatur uniku, u jekk David tkun dik ID unika, jien għandhom jingħataw lura wieħed u ringiela waħda biss li jkun fih l-informazzjoni David. Jekk jien qal dan meta ID huwa ugwali 99, I għandhom jingħataw lura, f'dan il-kuntest, żero ringieli, għall-inqas fil-mument. Madankollu, jekk jien ma verament kura dwar dik l-informazzjoni kollha, I jistgħu biss jgħidu, fejn ma David jgħix? Kodiċi zip Agħżel minn utenti fejn ID huwa 1. Dan se tagħżel għalija biss zip David kodiċi u mhux l-intier ta 'dak ringiela. Għaliex jista I jagħmlu dan minflok il-mistoqsija istilla, il-wild card? UDJENZA: [inaudible] DAVID Malan: Yeah, I jista 'biss bżonnha. Allura prestazzjoni hija għal darb'oħra t-tweġiba hawn. Għaliex jitolbu għal aktar Informazzjoni milli għandek bżonn, minħabba li, anki jekk dan kollu dritt flimkien, inti għad għandek biex tikkopja dak id-data, jidher, mid-database fil-programm tiegħek b'xi, u li jinsab biss iblah jekk inti biss bżonn ħamsa minn dawk numri, mhux l-intier tal-filliera. Allura kif nista daħħal utent? Ejja ngħidu l-utent ikollu biss irreġistrata għall-ewwel darba. Is-sintassi normalment teżamina bħal dan. Daħħal in-utenti, u allura aħna ngħid valuri, u allura aħna se ngħidu valuri simili, ejja ngħidu, Lauren Scully, videographer tagħna dritt hawn. U l-qasam li jmiss huwa ġeneru. Allura aħna ser ngħidu kwotazzjoni, unquote "F", allura għandna ID u jien ser say-- ejja nippretendu hi li ma attwalment hawn, hekk aħna ser kontrina fl-istorja. Allura 2 se jkun identità tagħha. U allura l-kamp li jmiss hawnhekk huwa l-email tagħha. Allura li għaddej biex tkun simili Lauren Scully u oħrajn, u aħna ser biss dot dot dot bogħod minn hawn fuq. Issa se jiksbu ftit tedious, iżda l-inserzjoni mistoqsija finalment look bħal dik. Jekk irrid li jeħles mill Scully, UH-oh, ejja tiddereġistra tagħha, hija tħassar kont tagħha, ħassar minn utenti fejn ID jiġi daqs 2, se jeħles Scully. Jew nista 'ngħid aġġornament utenti stabbiliti, ejja ngħidu, dak li nistgħu bidla? Ejja ngħidu hi jiċċaqlaq. zip sett huwa ugwali 021-- Nope, li l-zip attwali tagħha. 90,210. L-unika kodiċi ieħor zip Naf fid-dinja. Allura li se tinbidel zip tagħha code-- attwalment, li ma tinbidilx zip code tagħha. What did I biss do? Anki jekk il-sintassi huwa probabbilment ġdida. UDJENZA: [inaudible] DAVID Malan: Yeah, I mċaqalqa kulħadd li Beverly Hills, California. So I għandhom attwalment jiġifieri meta ID huwa daqs 2. U oħrajn. Allura SQL hija kollha dwar dawn tipi ta 'struzzjonijiet. Agħżel, daħħal, tħassar, jaġġornaw, ma 'dawn predicates fl-aħħar dawn il-klawsoli fejn, biex ngħidu hekk. U hemm ħafna aktar li tista do, imma huwa verament ftit jeħodna li sempliċiment, jekk arcanely, jesprimu dak li trid l-bażi tad-dejta li tagħmel. U allura l-bażi tad-dejta se figura out awtomatiku, meta inti daħħal Lauren Scully fil- database, fejn tpoġġi lilha fil-memorja sabiex inkunu nistgħu malajr ħafna jiksbu tagħha bbażat fuq l-indirizz email tagħha jew ibbażati fuq numru ta 'ID tagħha jew oħrajn bħal dawn. Yeah, Dan. UDJENZA: [inaudible] DAVID Malan: mistoqsija Verament tajba. Se dawn skripts jinbidlu minn Microsoft Aċċess għall-Oracle li MySQL għal PostgreSQL? Ir-risposta qasira hija li dan jiddependi. Fit-teorija, hemm ħafna subsett komuni sinifikanti ta 'SQL thats maqsuma bejn kulħadd ta 'dawn implimentazzjonijiet. Madankollu, diversi manifatturi għandhom karatteristiċi miżjuda għad-databases tagħhom biex jagħmlu ċerti affarijiet lil hinn mill-ambitu ta 'dawn il-karatteristiċi, li jistgħu, fil-fatt, break. Allura l-mod iżviluppaturi hedge kontra dan, hija li minflok kitba prima kodiċi SQL bħal jien bil-miktub hawn, huma minflok jużaw librerija, librerija komuni li hi stess huwa tip ta 'diplomi ta' livell u astratti bogħod liema prodott inti qed tuża. U li tagħtik funzjonijiet u l-proċeduri li jitolbu sabiex inti qatt ma attwalment tikteb SQL prima. Fit-teorija, allura, inti tista 'bidla prodotti minn Oracle lill-Microsoft jew viċe-versa jew xejn inkella, u int litteralment bidla xejn dwar kodiċi tiegħek. Ir-realtà, madankollu, huwa, inti xi kultant jieqfu karatteristiċi bħala riżultat. Inti jista 'jkollok għażlu prodott minħabba huwa ltqajna dawn il-karatteristiċi ta 'valur miżjud, u int biss issa mhux jużawhom konxjament. U anecdotally, aktar kumpaniji għandhom tendenza qatt ma jitbiegħdu minn dejtabejż tagħhom. Allura filwaqt li dan huwa sbieħ li għandhom karatteristika, ir-realtà huwa, jekk int taqlib database tiegħek, int probabbilment jagħmlu għenieqed ta 'bidliet oħrajn xorta waħda, li inti ma neċessarjament jeħtieġ li jantiċipaw li. Allura huwa forsi il-problema inġinerija żejjed, imma huwa verament jiddependi fuq il-kuntest. Iżda fit-teorija, SQL hija maqsuma madwar dawn il-prodotti varji. mistoqsijiet verament tajba. Yeah. UDJENZA: [inaudible] DAVID Malan: Yeah, hekk inti tista 'taħseb database huwa biss server, fl-aħħar tal il-jum, u ġewwa ta 'dak server huwa mazz sħiħ ta ' tabelli, ringieli u kolonni. U meta inti tibgħat mistoqsija bħal din mill-programm tiegħek, website tiegħek, miktuba fl Java, Ruby, Python, tkun xi tkun, -server qed tirċievi din l-kmand u l-interpretazzjoni fil litteralment l-istess mod aħna diskussa aktar kmieni ma ' lingwi interpretati, u mbagħad li jwettqu xi azzjoni fuq żero jew aktar ringieli fit żero jew iżjed tabelli. UDJENZA: [inaudible] DAVID Malan: Eżattament, eżattament. Allura l-pseudocode għal xi ħaġa bħal dik tista 'tkun din. Fil fajl PHP tiegħek jew tiegħek fajl python jew file Java tiegħek, inti jkollok kodiċi pseudocode, jew -Scratch simili blokki kif, kieku żjarat utent acme.com/register~~V għall-ewwel darba, imbagħad daħħal fil-utenti u oħrajn. U aħna se tittraduċi dan aktar kodiċi konkreta fl-aħħar. Imma tassew, aħna għandna kollha -sisien hawn, anke jekk aħna qed taqbeż is-site xi mill-passi ta 'implimentazzjoni. So let me kkritikat l dak li aħna wonderfully ma ftit mument ilu. Inti ħolqu pjuttost tabella kompluta għall-utenti. Ċertament, nistgħu jimplimentaw dan fil-modi differenti ftit, iżda inti għandek attwalment wasslu lilna l-path-- u jien ngħid lilek, imma hija probabbilment fault-- tiegħi ta 'pjuttost implimentazzjoni dejtabejż ineffiċjenti. Mhuwiex normalizzata. U mill normalizzat I jfisser hemm se tkun, matul iż-żmien, redundancy sinifikanti, u għalhekk ineffiċjenza, jiġifieri skart ta 'spazju. Ibbażat fuq biss dak li tara hawn, tista inti envision meta dan l-iskart ta 'l-ispazju se jiġu minn, maż-żmien, kif tirreġistra utenti aktar u aktar għall-website tiegħek? Liema data tista 'ssir żejda? UDJENZA: [inaudible] DAVID Malan: Għaliex għandek jfissirx li? UDJENZA: [inaudible] DAVID Malan: Yeah. U ejja nassumu għall-finijiet tal-lum li dan huwa veru. Jirriżulta, u konna tgħallimna din il il-mod iebes, li mhux veru. bliet b'xi mod multipli jkollhom, b'xi, l-istess kodiċi zip, li pawżi dan il-intwizzjoni isbaħ. Imma ejja nassumu li huwa veru, għaliex dan huwa kważi dejjem veru. Allura jissoponi li kodiċi zip huwa dejjem assoċjat mal-istess belt u l-istat, li huwa tip ta assunzjoni raġonevoli, iżda mhux korretta, jirriżulta. Iżda ipotesi raġunevoli għal skopijiet lum. Imbagħad jissoponi li noqgħod fl-Cambridge, MA, skont it-Tabella dan l-utent, u jissoponi li Lauren Scully jgħix fil-Cambridge, MA, u jissoponi li Kareem jgħix fil-Cambridge, MA, u Arwa jgħix fil-Cambridge, MA, lkoll fil 02,138. Għaliex aħna ftakar Cambridge, MA, 02138 għall-erba 'us? X'għandu jkun biżżejjed biex tiftakar? UDJENZA: [inaudible] DAVID Malan: Biss il-kodiċi zip. Biss li 02138 jeżisti, minħabba inti taf dak li stajna nagħmlu? Nistgħu jiksbu fancy ftit hawn u minn hawn, jiddefinixxu ieħor tabella fejn dan ikun ser tkun l- isem, dan se jkun it-tip, dan se jkun l- tul, u issa, jien ser sejħa dan ibliet il-mejda tiegħi. Dan kien jissejjaħ, ta Naturalment, l-utenti tal-mejda tiegħi. U hekk x'għandi nressaq hawn fuq għall-mejda ibliet tiegħi, do you think? UDJENZA: [inaudible] DAVID Malan: Yeah. Allura zip u l-istat u l-belt. U għalhekk it-tip hawnhekk, aħna ser ngħidu dan se jkun char 5 darb'oħra, bla ħsara għad-dibattitu ta 'qabel. Din se tkun ENUM, forsi bħal qabel, u l-belt se tkun varchar 50. U hekk issa liema nista 'nikseb litħassar minn din it-tabella jiġi eliminat dak l-ineffiċjenza? UDJENZA: [inaudible] DAVID Malan: Nizza. Istat u l-belt jmorru lil hinn, hekk stajt issa eliminati l-ineffiċjenza potenzjali għall redundantly ftakar, Cambridge, MA, Cambridge, MA, Cambridge, MA, Cambridge, MA, li, wieħed jittama huwa qatt se jibdlu. U anki jekk dan huwa minnu, huwa minorly annoying, issa li għandi għall-bidla dan f'ringieli multipli, billi hawn, I jistgħu biss bidla fil-post wieħed. Issa x'inhu l-kompromess, forsi? Dan kien super konvenjenti. Kieku d-data kollha tiegħi nicely flimkien. Imma x'hemm b'mod ċar il-każ issa? UDJENZA: [inaudible] DAVID Malan: Eżattament, u jien ferħan uża l-kelma jissieħbu, għaliex dan fil-fatt l-keyword, fid-dinja ta 'databases relazzjonali SQL, huwa ta 'kelma attwali inti tista tip jew għall-inqas twassal. U fil-fatt, dak li aħna issa għandek tagħmel biex tagħżel tagħrif sħiħ David huwa xi ħaġa simili tagħżel stilla minn utenti, jissieħbu ibliet, on-- u issa Jien ser biss jimxu lejn tieni linja b'tali mod li dan users.zip fits-- hija ugwali cities.zip, fejn users.ID huwa daqs 1. Allura x'inhu għaddej? Huwa ikrah tfittex, imma int tista tip ta taqrah xellug għal-lemin, fuq s'isfel. star Agħżel minn utenti huwa l-istess bħal qabel, iżda mhux minn utenti, per se. Huwa minn utenti jissieħbu ibliet. What am I li tgħaqqad dawn iż-żewġ tabelli fuq? Ukoll, apparentement, il- tabelli utenti zip qasam, u dan il-perjodu huwa biss speċjali sintassi biex jesprimu dik l-idea, u dan huwa t-tabelli ibliet zip qasam. Irrid dawk iż-żewġ li jkun daqs, imma nixtieq li finalment jintgħażlu biss dawk ringieli fejn ID fit-tabella utenti huwa ugwali 1, li ġara li jkun minjiera. U biss li jkun ċar, ta ' programmer, tipikament meta hardcode xi ħaġa bħall-numru 1, għax inkella l-websajt biss jappoġġja David jew l ewwel utent, int minflok tagħmel xi ħaġa simili ID, fejn dan jirrappreżenta varjabbli, xi ħaġa li tista 'tbiddel matul iż-żmien, simili fl-ispirtu ta 'dak li għidt qabel ma dawn it-tipi ta 'placeholders. Iżda għal issa aħna ser biss hardcode bħala 1. U hekk dak li jfisser dan? Ukoll, mod sabiħ li Ħares dan huwa li jekk dan idejn hija t-tabella utenti, u dan idejn huwa l-żippijiet mejda, aħna qed tip ta 'finding-- u l-ponot tas-swaba tiegħi huma zip minn hawn, u l-ponot tas-swaba tiegħi hawn huma zip, int tip ta 'interlocking dan hekk li tikseb lura l-jirriżultaw tabella oriġinali, billi tassew tgħaqqad -żewġ tabelli fil-grawnd komuni. U ma għandhom ikunu zip. Dan jista 'jkun xejn aktar ħaġa oħra, iżda zip huwa sabiħ, għaliex wieħed, huwa qasir, tnejn, huwa dejjem l- istess tul, b'hekk m'hemm l- effiċjenza reali għal dak li Olivier propost hawn mal factoring l-b'żipp, u [Inaudible] fejn ippropona li aħna jeħles tal-belt u l-istati. Allura dan huwa l-proċess magħrufa bħala normalizzazzjoni. Kwalunkwe mistoqsijiet dwar dak? Well let me punt dan hu t-tip ta 'għalf, anki jekk huwa pjuttost ta 'livell baxx, din id-diskussjoni, li inti taħseb int tip ta 'jkollna mitlufa fil-ħaxix ħażin, dan huwa manifestazzjoni ta abbundanti opportunità għall-iżviluppaturi biex tkun ħażina. U fil-fatt, anke meta aħna, fil korsijiet Stajt mgħallma, meta aħna kellna, per eżempju, esperjenza programmaturi undergraduate jibnu websajts, ewwel daqqa t'għajn, -websajts tista 'tidher terrific. U dawn ikollhom kollha ta 'l- funzjonalità aħna mitluba, l-iżviluppaturi għamlet xogħol tajjeb. Iżda dawn ma kinux neċessarjament jaf biżżejjed dwar id-disinn dejtabejż jew dawn ma naħsibx iebes biżżejjed dwar it-tipi ta 'data u t-tipi ta 'utenti l- websajt kien se jkollhom, u insibu, allura, sitt xhur wara, wara li ħadthom gradwat jew imxiet fuq, li kkritikat dan, il-websajt tagħna huwa verament, tassew bil-mod. U jien lanqas jitkellem dwar li jkollhom miljuni jew eluf ta 'utenti. I tfisser ftit mijiet utenti fuq il-kampus, kollha kemm huma simili li, per eżempju, shop għall-korsijiet fil -istess ħin, dawn qed jużaw dik katalogu tal-kors applikazzjoni semmejt u l-ħaġa hija jkollna verament bil-mod minħabba li ma kienx hemm indiċijiet. Ma kien hemm l-ebda stilla ħamra, hekk li jitkellmu, jew kellna mhux neċessarjament fatturati minn dejta komuni għall nikseb xi tfaddil ta 'spazju. U hekk meta tgħarbel l-iżviluppatur jew persuna database jew bħalhom, -tipi ta 'mistoqsijiet li wieħed jaħseb permezz huwa saħansitra, meta jirrevedi kodiċi ta 'xi ħadd, ngħid, mhux neċessarjament tħares kollha tal-kodiċi tagħhom, iżda jgħidu permezz, ejja nħarsu permezz tal-tabelli database. Liema huma inti ħażna? U mbagħad jgħidu, ukoll, stenna minuta, għaliex huma inti tuża integer? X'jiġri jekk ikollna 4000000000 u 1 ta 'dawn ir-ringieli? U dawn it-tipi ta ' mistoqsijiet hija opportunità għall tip ta 'timbotta lura u jiksbu sens ta ', fejn jekk int mhux komdu tagħmel dan, wara li xi ħadd aktar tekniċi jistaqsu dawn il-mistoqsijiet, dwar jekk jew le il-persuna verament jaf Jittieħed tagħhom. U dan hu t-tip ta Jittieħed, wisq, li n-nies fuq l-internet li huma awto-mgħallma, forsi jitgħallmu inqas spiss, għaliex inti mhux bilfors jiltaqgħu ma 'dan kemm, għaliex inti tista 'tikseb database u t-tħaddim, imma sakemm inti stajt taqra up fuq tutorials jew kienu qal dwar normalizzazzjoni dejtabejż u l-indiċizzazzjoni u l-prestazzjoni, dawn huma t-tipi ta 'affarijiet li ser tweġġgħek. U inti tista 'taħseb, jew inġinier ħażin jista 'jgħid, oh, ukoll, paga aħna aħjar għal database akbar jew database aktar malajr jew biss tarmi l-flus għal dan, iskala vertikalment, mhux neċessarjament hekk. Jekk inti tmur in-- u inti tista 'tmur fil wara l-indiċi fact-- u żid, u jista 'jieħu ftit sigħat għall- database biex jibnu dik id-data l-ġdida struttura li jien allużjoni għall qabel, inti xorta tista 'tiffissa dan wara l-fatt, li dan huwa fejn inti jibdew jiddistingwu disinjaturi tajba mill ħażina disinjaturi, mhux biss estetikament, imma-prestazzjoni għaqli kif ukoll. Kwalunkwe mistoqsijiet? Nru? Allura għal NoSQL, li kien it-tip ieħor ta 'database li għalih jien alluda qabel, inti ma għandekx ringieli u kolonni. Minflok, inti għandek xi ħaġa li jistenna ftit aktar bħal dan. Jien ser tuża sintassi komuni. ċingi kaboċċi jiġri tintuża hawnhekk pjuttost ħafna. Inti jista 'jkollok xi ħaġa bħall-ewwel isem huwa David, inti jista 'jkollhom l-aħħar isem huwa Malan, kwotazzjonijiet, inti jista 'jkollhom ID is-- skuża me, ID whoops-- huwa 1, email huwa malan@harvard.edu, u jien mhux ser jolqot ittajpjar l-bqija, u mbagħad xi affarijiet oħra. Fi kliem ieħor, dan huwa rappreżentazzjoni testwali ta 'dak li ġeneralment sejħa oġġett fi programm tal-kompjuter. U l-oġġett huwa ġeneralment biss ġabra ta 'pari b'valur ewlenin. Għalhekk għal darb'oħra, din it-tema rikorrenti. Rajna pari b'valur ewlieni fil HTML, rajna pari b'valur ewlenin issa fil-kuntest ta 'databases, u aħna raw pari b'valur ewlenin fil-kuntest ta ', I think, lingwa qabel illum. Jżomm ġejjin up. U fil-fatt, dan huwa tassew liema data jeħodna għall- data u metadata, jew valuri u ċwievet, rispettivament. Allura mhux relazzjonali database, xi ħaġa ibbażata dwar oġġetti, fejn inti biss jinġemgħu kollox flimkien u poġġih fil-memorja, ġeneralment ikun isaffru bħala, jew meqjusa, peress li dan. U jien ser leave li issa bħala tip ta 'approċċ alternattiv. U wieħed mhuwiex neċessarjament aħjar mill-oħra. Fil-fatt, ħafna fil Vogue dawn il-jiem huma sistemi tad-database bħall MongoDB u REDIS u ftit għodod oħra bħal dawn, disponibbli liberament, iżda huma dejjem aktar mt Vogue. Parzjalment minħabba li huma joffru addizzjonali Karatteristiċi aktar minn dawn l-approċċi tabulari, iżda wkoll għaliex qed ftit aktar faċli għall-użu, għaliex inti ma għandekx biex jaħsbu bħala hard dwar ħafna minn dawn id-deċiżjonijiet tad-disinn. Allura pluses u minuses. Allura jirrealizzaw hemm għażliet lil hinn minn dak li aħna biss qattgħu żmien fuq. Mela ejja tagħmel dan. Ejja tranżizzjoni ftit lura issa għall-ipprogrammar tal-web, sabiex inkunu tip ta jikkonkludi illum ma 'xi ħaġa Li l-ftit hands-on, mili fil xi lakuni mill-bieraħ. Let me go għal dan l-ewwel. Allura tfakkar li l-bieraħ kellna xi HTML kanoniċi paġni li kellhom fil-bidu, biss HTML, u mbagħad sekondarjament kellhom CSS, folji stil cascading. Din hija tag ġdida li aħna ma ara bieraħ, jew nitkellem fuq, hekk imsejħa tag iskrittura. Jinstabx inti tista 'attwalment ssodata lingwa imsejħa JavaScript fil-web tiegħek -paġna u jagħmlu web tiegħek paġni tagħmel xi ħaġa. Allura dak do I jfisser minn dak? Well, let me imorru quddiem u biss jissellef dan il-kodiċi għal mument. Jien se jmorru fil Cloud9, l-ebda ħtieġa li jmorru hemm infuskom għadha biss, u jien ser sejħa dan alert.HTML. Jien ser paste fil-fajl tiegħi hawn. U biss biex tiċċara dak li ghamilt, let me go għal dan l-indirizz u jmorru biex iwissu, u inti tara l-Organizzazzjoni Dinjija Hello. Iżda din hija tip ta 'underwhelming. I trid tagħmel xi ħaġa ftit differenti. Hekk jien ser fil-fatt jagħmlu dan. Jien se jmorru fil hawn e, u fl bejn tags iskrittura tiegħi, jgħidu twissija ( "bonjour, dinja"); hekk avviż huwa ftit sloppy, imma stajt ltqajna HTML, ġewwa minnhom hija lingwa imsejħa JavaScript, u dan huwa dak li sejjaħ sejħa funzjoni jew sejħa proċedura. Dan huwa verb, litteralment, f'dan il-każ, u jiena jinvoka funzjonalità kodiċi li xi ħadd ieħor kiteb. Allura li l-funzjonalità hija allert, sabiex ejja mur din il-paġna issa u kklikkja rikarigu, u issa int tara xi ftit ta 'interattività. Huwa tip ta 'skola qodma u ikrah. Dan it-tip ta tfakkrek l pop-ups, forsi, ta 'l-imgħoddi iżda hija ma tagħmel xi ħaġa ftit aktar programmatiku. Allura aktar minn dan, ejja do xi ħaġa aktar interessanti. Let me go hawn u teħles minn dan. U jien ser jimxi 'l quddiem u joħloq forma bħal għamilna bieraħ. Attwalment, inti taf liema? Jien se jmorru fil google.html, li aħna bdiet fuq bieraħ, li dehru qishom dan, permezz li aħna mfittxija għall-qattus Iżda avviż hemm tip ta ' bug fil-verżjoni kurrenti. Hija taħdem għall-qtates, iżda jissoponi li Jien ma jikkooperawx u jien tip xejn, u jien sempliċement ikklikkja jissottomettu. C'est tip ta 'mġieba stramb. Domt għall-Google reali, ma tagħti me messaġġ ta 'żball. Nixtieq li tgħid l-utent għandek bżonn biex tagħtina valur. Allura kif tista 'nagħmlu dan? Well let me jmorru lura fis Cloud9 u let me jmorru fil-quċċata tal-paġna tiegħi u żid tag b'kitba bħal dan, fejn Jien ser tip xi kodiċi JavaScript. U jien ser jagħmlu dan li ġej. Jekk (document.getelementByID-- u jfakkru li tkellimna dwar dan qabel, dik il-funzjoni. Dak ID do I rridu nġibu? I rridu nġibu Q, u jien ser jiġifieri huwa ugwali xejn, bħal this-- attwalment let me użu kwotazzjonijiet doppja biss għall consistency-- huwa daqs xejn, imbagħad twissija ( "Daħħal l query") hawn. So I jkollhom dak li jidher li jkun xi ħaġa bħal kundizzjoni. Rajna din l-idea ġenerali scratch. Huwa bħal wieħed minn dawk puzzle biċċiet li dehru qishom dan l. U dak li jien qal? Ukoll, stabbiliti hawn, l-avviż jien se jagħmlu dan li ġej. Jien ser tagħti din il-formola qasam mhux biss isem ta 'Q, li huwa dak gets mgħoddi lill-Google, imma jien ser tagħtiha identifikatur lokali, imsejħa wkoll q. Imma I jistgħu sejħa dan xejn I trid, jien biss ser jżommha sempliċi u wkoll sejħa hija q, biss għas-sempliċità. U issa jien se tagħmel xi ftit aktar. Fuq il-forma oqsma hawn, jien ser żid dak li sejjaħ handler avveniment. Fuq tissottometti, nixtieq li sejħa funzjoni msejħa Ivvalida. Dan ma jeżistux, f'dan il- kelma, jew din id jivvalidaw verb, għaliex dak li jien ser tagħmel hawn issa hu li żżid xi kodiċi. Jien se ngħid Validate funzjoni. Jien ser inċiż dan u żid ieħor Brace kaboċċi hawn u ieħor hawn. Ikkunsidra dak li din issa qed tagħmel. Għandi now-- think ta 'dan bħala ħoloq tiegħi stess biċċa puzzle li ma jkunux qabel jeżistu, u stajt sejjaħ dan puzzle biċċa l-biċċa puzzle Validate. L-għan tiegħu fil-ħajja huwa li teżegwixxi l-erba 'linji ta' kodiċi ta 'ġewwa ta' dan. jekk document.getElementByID hekk kunċettwalment, li ser jmorru fil--element, l-element HTML li uniċi idea hija biss q, u mbagħad anki jekk il sintassi jistenna ftit stramb, li ndaqs huwa ugwali ifisser biss ugwali. Allura li jfisser li jekk l-element bl- identifikatur uniku tal q, meta gotten, m'għandha l-ebda valur, hija biss huwa daqs kwotazzjoni unquote, xejn fil hemm, allura dak li nixtieq do? Irrid li Yell fil-utent. U aħna mhux se jmorru dettal ħafna hawn. Jien ser jirritornaw falza. Dan huwa żball. Inkella, jien ser jirritorna veru. Allura kemm hija maħduma jew dan ma kienx. Falza jew veru. U issa jekk jien ma tagħmel xi żbalji, let me jiffranka dan u rikarigu dan il. U let me check biss doppju ta 'dak I ma, fil-fatt, tagħmel xi typos, so I ma embarras lili nnifsi. Ejja naraw jekk dan jaħdem. Allura issa jien ser qtates tip. Għadu jaħdem, jew xogħlijiet nofs, mill-inqas. Issa let me rikarigu dan, u issa ejja me jippruvaw jissottomettu mingħajr ittajpjar anything-- kkritikat dan, kissru. Wieħed mill-mument. Let me tiftaħ il-console, [Inaudible] log, rikarigu-paġna. Let me jippruvaw dan jerġa. Oh, kkritikat dan. Insejt. I magħmula typo. I remember dak li hu. .value. I fisser li jgħidu jekk il-valur tal-element ID li hija q huwa egwali għal dak, allura Yell fil-utent. Allura issa let me jżommu n-nifs tiegħi mill-ġdid. Here we go. Hemm immorru. Jekk jogħġbok tip query. Allura huwa ma kiri lili permezz. I jista 'jkun it-tip ta' jilgħab ma 'dan, u minflok ta 'verifika għall-ebda valur, Nista 'ngħid xi ħaġa simili, mhux aktar tiftix għall-qtates, u issa nistgħu biss aktar playfully let it-tfittxija utent għall-klieb jekk hu jew hi jixtieq, jew jekk immur fil hawn u tfittxija għall-qtates, issa ma nistax. Allura x'inhu l-takeaway hawn? Allura wieħed, konna introdotti fil dinja tagħna ta 'HTML u CSS, funzjonalità programmazzjoni. I jistgħu attwalment issa jagħmlu deċiżjonijiet fil-kodiċi. Preċedentement, kollha I tista 'tagħmel huwa mark up kontenut testwali jew il-kontenut grafika u għid liema tfittex simili u fejn li jintwerew. Issa I jistgħu attwalment jistaqsu kwistjonijiet ta 'l-web page u jagħmlu deċiżjonijiet ibbażati fuqha, u fil-pront l-utent jekk għandi bżonn biex Yell fi lilu jew lilha. Mela ejja tipprova xi ħaġa waħedna ma 'dan. Jimxi 'l quddiem, let me tiftaħ il-pjastra jmiss hawn, u biss josservaw ħaġa waħda. Eżatt bħal ma 'CSS, nistgħu fattur barra kodiċi JavaScript tagħna għal fajl separat, inti tista 'tagħmel l-istess ħaġa ma JavaScript kif ma CSS. U inti tuża dak li juża sors jattribwixxu tal-lametta iskrittura. Iżda aħna mhux se jikkumplikaw l-affarijiet għal issa. Minflok, jekk inti tista ' mur ma din il-paġna, but-- let me jimxu madwar dan fil order-- mur, jekk inti tista ', din il-paġna hawn. Dan il-URL hawn. Huwa fil pjastri lum. Inti jista 'jkollok biex jerġgħu jitgħabbew għaliex Stajt miżjud koppja ta 'ħaġa. Iżda jmorru hemm fejn xi puzzles tistenna. U dan se tagħtina opportunità, f'kuntest kemmxejn aktar divertenti, dabble ma 'xi JavaScript. U meta inti naslu s'hemm, I ser jispjegaw dak li jistenna. Get aħdar. Set blu. Settijiet aħdar, settijiet aħmar. Oops. Jiddispjacini. Dan huwa l-estent ta 'tagħna dokumentazzjoni għal din l-isfida. U dan ikun sejjer jaħdem kif ġej. Allura dak li għandek fuq din il paġna huwa mazz sħiħ ta 'puzzles immaġni minn buddy fil Stanford University. Allura dak li int tara hawnhekk huwa kważi tip ta 'wieħed minn dawn il puzzles għajnejn magic, imma jekk inti biss stare fil dan, xejn għaddej biex pop fil inti. Pjuttost, hija xi ħaġa moħbija fil din id-dehra. U huwa moħbija fil-mod li ġej. Images, kif inti tista 'taf, jista' jkun komposta minn biss tliet kuluri. Xi aħmar, xi blu, u xi aħdar. U nistgħu nagħmlu l- kuluri fil-qawsalla bit-taħlit dawn it-tliet kuluri b'xi. Allura dan jistenna aktar aħdar u blu, iżda bħala Nick jgħid hawnhekk, din id-dehra puzzle ħadid huwa puzzle. Fiha l-immaġni ta xi ħaġa famużi, madankollu, -immaġini tkun ġiet mgħawġa. L-għan famuża hija fil-valuri aħmar. Valuri Madankollu, il ħomor kollha ġew diviżi b'10. Allura dawn huma żgħar wisq b'fattur ta '10. Allura fi kliem ieħor, Nick ħadet immaġini oriġinali, u hu desaturated kollha tal-aħmar minnha, jbaxxu l-ammont ta 'aħmar linka, jekk inti se, fiha. Il-valuri blu u ħodor huma kollha biss bla sens, Valuri każwali, aka istorbju iddisinjati joskuraw l-immaġni reali. Allura dak li Nick ma kien hu attenwata l-aħmar u mbagħad hu biss threw każwali ammonti ta 'blu u ħodor fil-immaġini biex tip ta joskuraw x'hemm attwalment għadha hemm. Int trid teqred dawn id-distorsjonijiet li tiżvela l-immaġini. L-ewwel, tistabbilixxi l-valuri blu u ħodor għal żero biex tikseb minnhom barra mill-mod, u ħarsa lejn ir-riżultat. imbagħad immoltiplika kull valur aħmar b'10, skalar lura sa l bejn wieħed u ieħor il-valur finali tiegħu. X'inhu l-oġġett famuż? Allura kollha inti għandek dan ir-rettangolu fil-browser tiegħek dritt issa. U avviż li hemm xi kodiċi starter, biex ngħidu hekk. Dan huwa kodiċi JavaScript li Nick kitbet għalik. U avviż li hemm linja fin-nofs li jibda bil slash mmejla, li l- x'hemm ġeneralment imsejjaħ kumment. Dan ifisser li huwa frażi li l-programmer li għandha l-ebda tifsira funzjonali. Huwa biss CUÉ viżwali għall-bniedem. Allura inti tista 'tmur quddiem u ħassar biss dik il-linja, u tkun super attent li ma tħassar jew tbiddel xi ħaġa oħra. U let me biss jimxu miegħek permezz liema dan il-kodiċi ma u jien ser jitilqu minnu lilek biex insemmu l-immaġini sigrieti. Dan l-ewwel linja hawnhekk li stajt biss enfasizzati jagħtik dan li ġej. Min-naħa tax-xellug, għandek dak li sejjaħ varjabbli li Nick għandha arbitrarju, iżda raġonevolment sejjaħ im għall-immaġni. Min-naħa tal-lemin ta 'dak is-sinjal ugwali, hu qal jagħtu me ġdid kwotazzjoni, unquote "immaġini sempliċi". immaġni sempliċi, f'dan il-kuntest huwa dak li sejjaħ klassi, ukoll, huwa tip simili ta 'class-- teknikament prototype-- imma verament, dan huwa tajtu lili oġġett ġdid, l-kontenut tagħha huma l-fajl, ħadid puzzle.png. Fi kliem ieħor, Nick ħoloq dan il-kunċett ta 'immaġni sempliċi sabiex inkunu nistgħu, għal pedagoġika skopijiet, play mal-immaġni u l-bidla aħmar tagħha, Valuri aħdar, u blu. U kif qed nagħmlu dan? Din il sintassi kemmxejn mistur hawn huwa tip ta bħall-blokk irrepeti li xi wħud minnkom raw fil Scratch preċedenti illum, fejn inti tista 'tirrepeti 10 darbiet. F'dan il-każ, Nick ma jkunx hardcoded numru simili 10. Minflok huwa qal, initialize varjabbli msejħa x għal 0, iċċekkja jekk x huwa inqas minn il-wisa 'l-immaġini. U dan biex ikun aktar xieraq, immaġini huwa l- varjabbli, dot ifisser mur ġewwa ta 'dan u nikseb wisa 'tagħha, u imbagħad paren miftuħa, magħluqa paren huwa biss mod ta 'programmer kif tgħid dan huwa funzjoni. Din hija proċedura. Dan huwa funzjonalità xi ħadd ieħor kiteb. Jużawha u tagħti me lura risposta. U allura x ++ huwa mod fancy ta ' qal, wara li inti ghamilt dan darba, inkrement x b'1. Fi kliem ieħor, dan huwa mod ta 'programmer tħeġġeġ lil linja li l- ser jtenni fuq kollha tal-kolonni fi immaġini. Immaġini huwa biss grilja ta ' tikek, ringieli u kolonni ta 'tikek. Dan huwa mod ta 'iterazzjoni fuq kollha ta 'dawn il-kolonni. U fuq ġewwa, sadanittant, aħna qed jiġu mtennija matul l-għoli, hawn u hawn u hawn. Allura dan huwa biss mod ta 'traipsing, kważi simili typewriter iskola antika, li jmorru biss fuq il- immaġini kollu iteratively. Anki li mhux pjuttost kompletament ċar, ħu fuq il-fidi għal issa, li dawn it-tliet linji tal-kodiċi flimkien huma ser jippermettu li inti iteratively tfittex f'kull pixel, kull dot fil-immaġini. X'hemm pixel? Ukoll, li tkun ċara, jekk inħarsu fil-oriġinali u zoom fi, jekk int verament tpoġġi għajnejn tiegħek l-iskrin tal-kompjuter, dan huwa biss mazz sħiħ ta 'tikek, diversi elf tikek ppakkjati flimkien hemmhekk. U għalhekk dak li huma inti waslu biex jagħmlu? Kull wieħed minn dawn il tikek, definizzjoni finali, hija r-riżultat ta 'dak li ġeneralment imsejħa RGB, aħmar, aħdar, blu, li għal darb'oħra, jistgħu jiġu kkombinati sa jagħtuk l-ebda numru ta 'kuluri. Fil-fatt, jekk inti tiftakar minn ħafna, ħafna snin ilu, skrins proġettazzjoni bħal dawn l-affarijiet użati li jkollhom mhux lenti waħda iżda tlieta. Waħda minnhom bżiq dawl aħmar, wieħed mill minnhom bżiq dawl aħdar, wieħed minnhom bżiq dawl blu. U jekk inti kienu fi skola tan-nofs bħal I kien fejn kienu qatt allineati kif jixraq, inti kienu dejjem jaraw films istorja li kienu ftit mgħawġa, minħabba li t-tliet kuluri ma kinux jikkombinaw sew. Iżda jirriżulta li kull wieħed dawn il-valuri aħmar, aħdar, u blu, jista 'jkollhom numru assoċjati magħhom. Per eżempju, 0 għat aħmar ifisser l-ebda aħmar, 0 għat aħdar jfisser l-ebda aħdar, u 0 għat blu jfisser l-ebda blu. Mela jekk ma jkollok ebda aħmar, l-ebda aħdar, u l-ebda blu, liema kulur għandek? UDJENZA: [inaudible] DAVID Malan: Int tkun hope so, huwa abjad. Sfortunatament, dan operates-- sorry? UDJENZA: [inaudible] DAVID Malan: Allura inti fil-fatt għandhom iswed, f'dan il-każ. Mela jekk għandek ebda wieħed minn dawn kuluri mixgħula, għandek iswed. Madankollu, jekk għandek, ejja ngħidu ħafna minnhom, simili ħafna ta 'aħmar, 255 ta' dan, ħafna aħdar, u ħafna ta blu, li huwa abjad. Allura dawn huma l-żewġ estremi. Allura billi din il-loġika, jekk għandi ħafna ta 'aħmar u l-ebda aħdar u l-ebda blu, liema kulur huwa li? UDJENZA: [inaudible] DAVID Malan: Dritt, ovvjament. U allura l-ebda aħmar, lott ta ' aħdar, l-ebda blu, u mbagħad jekk inti have-- ukoll, aħna ser biss finitura dan, sempliċement minħabba, iżda dan, naturalment, Issa, huwa blu. U issa inti tista 'tgħaqqad dawn il-kuluri. Issa bħala twarrib, jekk kwalunkwe inti għandek qatt sar xi disinn ta 'website attwali, inti tista 'attwalment ara simboli bħal dan. FFF-- u fil-fatt, huwa probabbilment lanqas dik. Huwa FFFFFF. Ħadd qatt rat s F u E tal u A through-- għalhekk jirriżulta, tkellimna bieraħ dwar deċimali, u llum, it-tip ta 'madwar deċimali. Illum tkellimna dwar binarja. Jirriżulta, hexadeċimali huwa ferm sistema bażi komuni għall-użu fil-kompjuters. Binarju huwa tnejn, deċimali huwa 10, hex hija 16. U jirriżulta, kif do inti għadd f'hexadecimal? Żero, wieħed, tnejn, tlieta, erba, ħames, sitt, seba ', tmien, disa ', liema do you tuża wara disa? X'hemm-numru li jmiss? Aħna diġà użati żero. I bżonn 16 ta 'dawn. Żero, wieħed, tnejn, tlieta, erba, ħames, sitt, seba ', tmien, disa', għandek bżonn xi konvenzjoni arbitrarja. U dak umanità iddeċieda xi żmien ilu li wara disa 'taqa' l-ittra A u mbagħad B u mbagħad Ċ Allura l- mod inti għadd f'hexadecimal huwa żero, wieħed, tnejn, tlieta, erba, ħames, sitt, seba ', tmien, disa', A, B, Ċ, D, E, F, u li se jgħoddu inti-triq kollha, jirriżulta, sa 15. Allura żero sa 15 huwa żero permezz F. Issa għaliex hija li sinifikanti? Ukoll, meta għandek żewġ F, il li kif inti tesprimi 255. Allura storja qasira, fil twil -dinja ta 'Photoshop, li softwer ta 'disinn grafiku, fid-dinja ta 'żvilupp tal-web, fejn għandek lottijiet ta 'kuluri, naturalment, jilagħbu ma ', spiss programmaturi se jesprimu dawk f'hexadecimal, sempliċement minħabba li hemm tendenza li jkun ftit aktar sempliċi. Anki jekk l-ewwel daqqa t'għajn huwa ħafna aktar kumpless. Allura fi kwalunkwe każ, dan huwa importanti għaliex Nick fil Stanford tatna sitt biċċiet ta 'funzjonalità li inti, l-programmaturi jibża, issa se jkollhom l-abbiltà li persuna tuża. Mibnija fil din il-web paġna huwa ta 'sitt funzjonijiet, sitt proċeduri li Nick kiteb. Tlieta minnhom inti se tikseb numru, aħmar, aħdar, jew valur blu. Tlieta minnhom se sett dak il-valur. U dawn jissottolinja huma biss placeholders, sabiex inti jeħtieġ li tkun taf liema dawn huma. Allura ma 'dawn it-tliet funzjonijiet, l-ewwel ta 'dawn l-affarijiet se tkun x-jikkoordina, u t-tieni ta 'dawn l-affarijiet se tkun y-jikkoordinaw. Fi kliem ieħor, li dot li pixel do inti tixtieq li tikseb l-aħdar tal- jiksbu l-blu tal, jiksbu l-aħmar tal. U allura hawnhekk, dan se jkun x, dan se jkun valur y, u dan se jkun hemm numru. Mela ejja jagħmlu l-ewwel Linja ta 'dan flimkien u mbagħad I ser jitilqu minnu lilek biex tipprova tiddeduċi l-bqija. Allura skond l-istruzzjonijiet fuq din il-paġna, għandna bżonn biex iżidu l-aħmar b'fattur ta 10, u għandna bżonn biex tneħħi l-aħdar u neħħi l-blu. Nibdew bl-xenarji aħħar. Mela jekk jien tixtieq li, u jien ser li inċiż billi tuża xi spazji, jekk irrid li jiġu stabbiliti l-aħmar, l-aħdar, jew il-valur blu, Jien ser tagħmel dan li ġej. Image, im.setBlue, u mbagħad ibbażat fuq l-istruzzjonijiet tiegħi hawn, liema tliet affarijiet għandi tip ġewwa ta 'parentesi issa? I bżonn l-valur x, il valur y, u liema numru Għandu nressaq hawn jekk irrid biex jeħles -blu, ibbażat fuq din l-istorja hawn? Just żero. Jekk irrid ebda blu, jien biss se jibdlu għal żero. Issa ejja biss terġa dak li dan qed tagħmel. Għandi hawn fuq dawn quċċata tieni u t-tielet linji, I tellgħu żewġ linji, loops nested, jekk inti se, li ser ikollhom l-effett ta 'progress mix-xellug għal-lemin, fuq għal isfel fuq kollha ta 'l-x valuri u l-valuri y. Minħabba darb'oħra, l-istampa hija biss grilja ta 'ringieli u kolonni. Allura dan se tikseb rid ta 'l-blu. Let me leave fil-linja li jmiss lilek. Kif nista 'jeħles ta' dan kollu aħdar? UDJENZA: [inaudible] DAVID Malan: Nizza. UDJENZA: [inaudible] DAVID Malan: Nizza. U jien ser zoom out, u ħu kura ta 'dak li inti stajt ma jsirx ebda typos. U jekk int komdu ma 'dak li inti ghamilt, imorru quddiem u kklikkja l-buttuna Mexxi / Save u ara dak ikollok. U għal darb'oħra, aħna ħadna biss tliet bidliet. Aħna imħassar li l-ewwel jikkummentaw u sostitwit ma 'dawn iż-żewġ linji ta' kodiċi. U huwa OK jekk inti għandek bżonn hit il-buttuna Mexxi / Save koppja darbiet biex jiffissaw xi ħaġa. U let me wkoll zoom fl fuq tiegħi kodiċi sabiex inti tista tifformulaha. Tajba. So I tara Andrew jkun dak jidher li jkun żball. Hu biss ltqajna big black rettangolu fuq l-iskrin tiegħu. ħaddieħor ma jkollu rettangolu big black? UDJENZA: Iva. DAVID Malan: rettangolu iswed Big? OK, so ejja jaħsbu dwar xi tfisser din. Aħna qal li żero, żero, żero, sabiex l-ebda aħdar, l-ebda aħmar, ebda blu, huwa ser jagħtuk iswed. U jirriżulta li ħafna mill-laptops tagħna biss ma jkollhomx biżżejjed fedeltà. Inti ma tistax pjuttost tell hemmhekk huwa attwalment xi ħaġa hemmhekk. U jekk inti-tip ta 'forsi dgħif iskrin tiegħek quddiem u lura, forsi inti tara ftit xi ħaġa hemmhekk? Forsi, tip ta ', tip ta'? Mhuwiex perfettament iswed. UDJENZA: [inaudible] DAVID Malan: Spoiler! Hemm xi aħmar hemmhekk, iżda ftakar mill-ispeċifikazzjonijiet tal-problema, Nick attenwata l-isfel. Huwa desaturated kemmxejn, iżda mhux it-triq kollha għal żero. Mela jekk irridu li tkabbar l-ammont ta 'aħmar, let me tipproponi dan trick. Let me zoom fl fuq l-iskrin tiegħi. U let me imorru quddiem u jgħidu Ammont hija ugwali im.getRed (x, y). Din il-linja tal-kodiċi qed tagħti me xi ħaġa imsejħa varjabbli. Għandi arbitrarju, iżda, forsi, raġonevolment imsejħa varjabbli tiegħi dak, apparentament? Ammont. ammont eżatt. I jistgħu stajt imsejħa xejn Irrid, imma jien tuża din il-funzjoni l-oħra li I deskritt qabel biex tikseb l-ammont ta 'aħmar fuq y x virgola. Għaliex ma nagħmel dan? What do inti tixtieq li tagħmel hawn? Ikollok bżonn li add-- UDJENZA: [inaudible] DAVID Malan: Iva, forsi immoltiplika lilha mill-10. U jekk ma tafx dan, jien se jimxi 'l quddiem u jagħmlu dan. Jien ser jimxi 'l quddiem u jiġifieri, Irrid li l-ammont ta 'aħmar Nixtieq inkun x'ikun hija fil-ħamra, il-ħinijiet 10, u l-istilla, l-asterisk fuq tiegħek tastiera huwa the-- ma jużawx x. Uża l-istilla. Thats kif inti immoltiplika l-affarijiet fil-lingwi ta 'programmar aktar. Dan skond l-intwizzjoni Kareem, il maħżuna f'dan il-varjabbli imsejħa ammont, huwa kif ħamra kemm irrid fil xy post. Kif, issa, nista 'tagħmel dan Pixel jkollu dak in-numru? You ħadthom diġà għamlu dan qabel. Tissettja l-aħdar u l- blu għal ebda valur, għal żero. UDJENZA: [inaudible] DAVID Malan: Iva, tajjeb inti ma tridx li 10. Inti diġà għamlu l-matematika hawn. Allura aħna qed jkollna l-valur ta 'aħmar, li huwa għadd baxx, preżumibbilment. Aħna multiplikazzjoni up b'10. Dak li trid tagħmel ma l-ammont varjabbli issa? UDJENZA: [inaudible] DAVID Malan: Nizza. Allura im.set-- liema? UDJENZA: setRed. DAVID Malan: setRed, fil xy post. Yeah. U biss ammont. Fi kliem ieħor, varjabbli hija placeholder temporanju li inti tista 'tpoġġi xi ħaġa li trid fil. Aħna jiġri li tkun tqegħid ta ' Numru fiha, fil-mument. Imxejna immultiplikat lilha mill 10 li jagħmilha akbar. U issa jien tissostitwixxi dak il-varjabbli bħal dik tielet argument, jew dħul li jiġu stabbiliti aħmar. U għalhekk li ladarba inti finitura li, u jieħdu nota tal-semi-colons u l parentesi. Jimxi 'l quddiem u kklikkja run / tiffranka mill-ġdid, u int għandha tara, magically, dak li kien fil-fatt hemmhekk. [? Arwa,] x'hemm hemmhekk? Il-Torri Eiffel full-sħiħ aħmar, pjuttost mhux dlam. din għandha tkun aktar evidenti issa, iva? KOLLOX SEW. U Andrew, kaxxa mhux aktar sewda? UDJENZA: [inaudible] DAVID Malan: Kull dritt. So I ser iżommu dan fuq l-iskrin. Jekk inti tixtieq li jilagħbu ma 'dan wara, I ser jirrikreaw dan għalik. Iżda dan il-kodiċi hawn ma eżattament dan. Għaliex ma we do wieħed ieħor. Let me iscroll ftit. Allura f'dan il-każ, il-proġettazzjoni ma verament tagħmel dan ġustizzja. Imma fuq l-iskrins tiegħek, inti probabilment jkollhom kaxxa aħmar ħafna u ħafna iswed. Dan, ukoll, hija puzzle li turi xi ħaġa famużi. Madankollu, l-immaġni ġie mgħawġa. L-immaġni vera, din id-darba, huwa fil-valuri blu u ħodor. Madankollu, dawn ħadthom ġew diviżi kollha sal-20 ta għalhekk il-valuri huma żgħar ħafna. Il-valuri aħmar huma biss numri bl-addoċċ, l-istorbju. Jneħħu dawn id-distorsjonijiet li tiżvela l-immaġini veru. Mela Nick allura jgħidlek x'għandek tagħmel. Tistabbilixxi l-valuri aħmar għal żero, u allura ma jħassru dak li hu. Imbagħad immoltiplika l-blu u l-valuri ekoloġiċi b'20. Allura huwa kważi l- istess programm bħal qabel, imma int rivers il-proċess. U jien ser tpoġġi kodiċi tiegħi minn qabel fuq l-iskrin fil-każ inti tixtieq li tirreferi lura lilu jew jilagħbu ulterjuri ma 'li wieħed. Let me zoom fl fuq dan. Iżda isolvu immaġni tar-ram puzzle, numru tnejn. UDJENZA: [inaudible] DAVID Malan: OK, so dan wieħed jien mhux ser jagħti kemm ideat. So I would-- oh, ejja ara, ikollok typo hawn. Mela ftakar, dan il hawn fil-fatt jeħtieġ li jmorru hemm. Allura dak I kienet se tipproponi, jekk inti tixtieq li tiffoka fuq dan wieħed, hemm ir-risposta. Jekk inti tixtieq li tifformulaha li, din għandhom jingħataw l-ewwel waħda tax-xogħol. U allura inti tista 'tuża dan bħala ispirazzjoni għat-tieni waħda. Nizza. Tajba. U għall-kurjuż, dan huwa eżempju sempliċi ta 'xjenza jew arti imsejħa steganography, l-arti tal ħabi informazzjoni fi stampi. Tipikament, stampi jista 'jkun watermark sfaċċatament ħafna b'logo fil-qiegħ kantuniera, iżda b'mod ċar, int jistgħu jkunu ħafna aktar sofistikata dwar dan u fil-fatt jinħbew immaġini oħra fil-Images b'xi ma din it-teknika. Ħu ieħor 30 sekondi, u mbagħad aħna ser għall-inqas iħabbru liema għandek tara. U jien ser iħallu l-tielet wieħed bħala eżerċizzju fuq il-home, jekk inti tixtieq aktar ta ' isfida dan il-weekend. U naħseb Andrew jista gotten l-ewwel. X'inhu l-immaġni tat-tieni, Andrew? UDJENZA: Istatwa tal-Libertà. DAVID Malan: Istatwa tal-Libertà se tkun ir-risposta din id-darba. Għalhekk għal darb'oħra, biss ftit sempliċi eżempji, l-għan tiegħu huwa li jagħtuk sens ta 'kif konna tradotta Scratch bl-istampi blokki għal aktar tedjanti u aktar kodiċi kkumplikata, iżda kollha ta 'l-ideat għadhom eżattament l-istess, għalkemm bl-introduzzjoni issa tal-kunċett ta 'varjabbli, li kapaċi li jaħżen xi ħaġa temporanjament. Ejja nagħmlu waħda aktar hands-on, biss biex issa jgħaqqdu l-tikek għal xi ħaġa ftit aktar tad-dinja reali. Meta int lest, jekk inti tista ' mur dan il-URL fuq l-iskrin. Li wkoll fil-kopja tiegħek ta 'l- slides, developers.google.com/maps~~V. Ejja fil-fatt jagħmlu xi ħaġa reali, biex ngħidu hekk, fuq il-web tuża l-Google Maps API, jew interface programmazzjoni applikazzjoni, fil-mod li ġej. Google, bħal ħafna kumpaniji, jipprovdi ħafna ta 'funzjonalità ħielsa li tista 'tuża biex jibnu tiegħek applikazzjonijiet interessanti stess. Fil-fatt, jekk inti stajt qatt jintużaw Über biex tikseb kabina jew karozza, inti probabilment taf li über għandha Mappa u dan juri karozzi fuqha. Dan huwa, bl-aħjar mod li nista ' tell, Google Maps API. Dawn huma attwalment jużaw mapep Google, iżda über ma tkunx kumpannija immappjar, lanqas li kieku jkun problema partikolarment interessanti biex issolvi fuq quċċata ta 'tagħhom problema servizz tal-karozzi. U allura jkunu wieqfa, għal darb'oħra, fuq l-ispallejn ta 'oħrajn, Google f'dan il-każ. Allura dawn jużaw mapep Google iżda tagħhom stess servizzi tal-karozzi u l-karatteristiċi oħra bħal dawn. Allura aħna qed tmur biex tieħu vantaġġ ta 'dan li tagħmel dan li ġej. U jekk stajt marret wisq malajr, biss isejħuli fuq fil-mument. Kuntenti li terġa wħud mill-għalf immaġini. Għandek tara lilek innifsek bi paġna bħal dan. Hekk sbieħ Google, u dawn qed fost l-aqwa li tipprovdi mhux biss APIs, iżda APIs ħielsa li inti jistgħu jilagħbu ma 'jew l-użu kummerċjali. Huma jibdew iċċarġjar inti jekk użu tiegħek hija għolja, imma I marru quddiem bil-quddiem u ffirmat jiftħilna għal kont ħielsa li, wieħed jittama, 10 kompjuters mhux se jiskwalifikaw magħna għal għarrieda. Allura nisperaw li dan dimostrazzjoni se taħdem. U tinnota li dawn ikollhom APIs għal Android, IOS, servizzi tal-web, u l-web, kwalunkwe li hu. Ejja niffukaw fuq il-web. Allura ikklikkja l-kaxxa roża, web, u li se jwassal inti, wieħed jittama, għal paġna hawn. U ħadthom ltqajna mazz sħiħ ta 'APIs. U jista 'jkun ftit enormi fl-ewwel, imma jien ser steer lilna permezz ta 'dak li rridu. Fil-quċċata xellug huwa l-Google Maps JavaScript API, l-API JavaScript. Allura aqbad u kklikkja li wieħed. U li se jwassal inti issa għall- ġejja paġna, demos u kodiċi tal-kampjun. Let me zoom out hawn. U let me nikseb us to-- iscroll li fejn jgħid passi bi tnedija b'pass mgħaġġel. iskrin tiegħek għandu look like mini. U hemm żewġ passi, jiksbu ċavetta u tibda tiżviluppa. I diġà għamlu pass wieħed għall magħna, jkollna hekk imsejħa ċavetta. U din hija idea komuni. API ewlenin hija ġeneralment biss numru bl-addoċċ kbar jew spag li inti suppost biex paste fis kodiċi tiegħek, b'tali mod li Google jaf min int meta inti qed tuża servizz tagħhom, API tagħhom. Ma jfissirx li aħna qed ċċarġjata xejn. U issa, ikklikkja, minflok wieħed, ikklikkja tibda tiżviluppa. Jekk inti tista 'biss mewġa lili fuq jekk mhux ċert fejn ninsabu. Allura aħna ser biss tobrox il- wiċċ, hawnhekk imma dak Ħsibt ikun konvinċenti huwa li attwalment ikollhom lkoll, jużaw Cloud9 tieqa waħda u dan tutorja tieqa ieħor, tikri fatt tikseb tagħna stess applikazzjoni u t-tħaddim li jinkorpora drawwa Google Mappa fi webpage tagħna stess, u mbagħad iżid waħda jew żewġ karatteristiċi. Iżda aħna ser biss tobrox il- wiċċ ta 'dak li nistgħu nagħmlu. Hekk biss verifika sanità malajr. Huwa kulħadd fl din il-paġna, Google Maps JavaScript API? Għandha tgħid jkollna beda. Aħna mhux se jgħaddu il-ħaġa sħiħa bi kwalunkwe mezz. OK, fi tab oħra, jekk inti ma għandhom dan miftuħ, ma jmorrux fis Cloud9 u nikseb yourself għal ftit ġdid tab, finalment. Għalhekk għal darb'oħra, c9.io mill-bieraħ, c9.io, u biss toħloq fajl ġdid. U jimxi 'l quddiem u sejħa dan tkun xi tkun tixtieq. I imsejħa map.html minjiera. Sejħa hija xi ħaġa li jintemm fil html. U inti għandek tkun bejn wieħed u ieħor fejn I am f'dan il-proċess biss bi pront Teptip fi vojta tab imsejħa xi ħaġa bħal map.html. Jew file, fajl ġdid din id-darba. U issa, fuq ix- Google Maps JavaScript API, aħna ser skip qari kollha ta 'dan it-test permezz. Iżda avviż li dinja bonjour huwa tabilħaqq kullimkien, inti tara dan issa. Hello dinja għandha dan kbar ikkuluriti Eżempju ta mazz sħiħ ta HTML. Jimxi 'l quddiem u kopja u paste dan biss HTML, hekk mit-tip dok fil-quċċata -triq kollha lejn l-HTML tag qrib, mur quddiem u kopja kollha tal that-- darb'oħra, li taħt il-dinja bonjour example-- u paste dan in tab Cloud9 tiegħek, hekk li issa l-iskrin tiegħek għandu look bejn wieħed u ieħor bħall-mini. U inti tista 'tiffranka, iżda ma tagħbija għadha biss. Ejja ewwel ħarsa lejn il-kodiċi u ara jekk irridu ma tistax tiddeduċi jew jitgħallmu minn dak li huwa Google kellha magħna bl-addoċċ kopja u paste. Huma biss jixtiequ jgħinu, litteralment, nikseb us tibda, imma hemm Ma li ħafna kumplessità fil-fatt hemmhekk. Kwalunkwe mistoqsijiet għadha biss? Aħna sikur biex nimxu 'l quddiem? KOLLOX SEW. Hekk malajr, ejja biss tagħmel xi kontrolli sanità malajr. Linja waħda ta 'dak I tara, u wieħed jittama, inti ara, xi jfisser, HTML DOCTYPE? Kareem, recall? UDJENZA: [inaudible] DAVID Malan: Iva. Hawnhekk tidħol HTML 5. Sadanittant, linja tnejn fuq il- iskrin hawnhekk tfisser ħej browser, hawnhekk jidħol l-HTML attwali. Linja tliet snin huwa ħej browser, hawnhekk jidħol l-ras. Linja erba huwa, ovvjament, ħej browser, hawnhekk jidħol it-titolu. X'jagħmel linja ħamsa do? Attwalment, dan ma verament tagħmel xejn għalina. F'dan il-każ, hija biss resizes il-paġna għal xi inadempjenza. Linja sitt, aħna ma tkellmu dwar, iżda dan jispeċifika l-kodifikazzjoni tal-karattri. Hemm modi differenti biex jikkodifikaw il-fajls, speċjalment għall-lingwi barranin. UTF-8 biss tendenza li jkun l-inadempjenza. Allura issa aħna ser tara fil-linja seba permezz 16, xi CSS. U anki jekk aħna ve ma bbenefikawx kollha ta 'dawn l-affarijiet qabel, nistgħu tip ta 'jiddeduċu. Allura linja tmien mezzi, ħej browser, japplikaw dawn kollha li ġejjin li għalihom żewġ tikketti, apparentament? L-HTML u l-korp test. Allura l-virgola hija l-ħaġa ġdida hemmhekk. U dan huwa biss mod ta ' li tispeċifika tags multipli fuq darba. Imbagħad konna ltqajna-braces kaboċċi. Allura apparentement, dan jirrakkonta l-browser, jagħmlu l-għoli tal-paġna 100%. Għalhekk anki jekk hemm ftit li xejn kontenut, jagħmlu l-paġna kollha, jagħmlu l-ħaġa timla l-paġna. Agħmel il-mappa finalment timla l-paġna. Marġni, xi jfisser? C'est normalment simili arbitrarja ispazju bajda madwar it-truf li xi disinjatur browser biss iddeċieda għandu jkun hemm, għaliex tip ta 'jagħmel l-affarijiet ħarsa aktar nodfa. Iżda aħna ma rridux li. Aħna rridu l-mappa għaddej -triq kollha lejn it-truf. Ikkuttunar, simili fl-ispirtu għal marġini. Marġini ifissru barra, mezzi ikkuttunar ġewwa, imma hija l-istess tip ta 'ftehim. Huwa xi ftit ta 'buffer bejnek u t-truf. U allura linja 13 hija tajba opportunità għal reviżjoni malajr. Xi jfisser Mappa sinjal qawwi mean, jew mappa hashtag jfisser? Xi jfisser li jirreferu għal, fil-prinċipju? UDJENZA: [inaudible] DAVID Malan: Eżattament. Din il-proprjetà, din il-proprjetà CSS japplika biss ħaġa waħda, il-lametta HTML li għandha identità ta kwotazzjoni, unquote "mappa". U issa ejja fast quddiem, iscroll sal-qiegħ tal-fajl, li mhix wisq bogħod, u avviż fuq il-linja 19, jekk inti paste eżattament bħal I ma, Linja 19 għandha biss div, li hija tqassim tal-paġna, li I bieraħ imsejħa reġjun rettangolari. Huwa ltqajna xejn fiha. Huwa ta 'lametta miftuħ, lametta qrib. Iżda hi ma jkollhiex ID unika. Allura dak li jidher li jkun jiġri hawn huwa Google huwa readying paġna web tagħna biex ikollhom għoli kompluta 100%, u l-ebda ikkuttunar, l-ebda marġini, għaliex dak li aħna qed tmur biex tqiegħed ġewwa ta 'dan div, li ID unika hija mappa, huwa mappa attwali integrati. U irridu li timla -paġna u mhux biss jkun hemm xi rettangolu żgħira fin-nofs. Allura linja 14 bl-istess mod jenfasizza, l- Mappa innifsu għandu jkollha għoli ta '100%. Allura issa Avviż bejn il-linji 20 u 28, dan huwa JavaScript kodiċi. U dan huwa, anki jekk huwa sintattikament ftit stramba, hemm mhux kollu li ħafna jiġri hawn. F'konformità 21, dan huwa jiddikjara xi ħaġa imsejħa varjabbli. Minflok ssejjaħ dan ammonti, bħal għamilna qabel, aħna qed aktar preċiż tgħid var, li ifisser biss varjabbli. Jista 'jkollna użati li fl- kodiċi Nick, iżda huwa ma, so I ma jolqot tagħmel dan lanqas. Huwa varjabbli msejħa Mappa, u allura hemm funzjoni li l- apparentament imsejħa initMap. Allura dan huwa simili custom tagħna stess biċċa puzzle scratch. Imxejna ħolqot biċċa funzjonalità imsejħa initMap, u inti tista 'tip ta jiddeduċu x'inhu għaddej hawn. Min-naħa tax-xellug, konna ltqajna varjabbli, hekk aħna qed tmur biex tpoġġi dan li ġej Ħaġa ġewwa dak varjabbli, mill-lemin għax-xellug. In-naħa tal-lemin jgħid, ħej browser, agħti lili mappa Google ġdid. U google.maps.map huwa biss mod funky ta tispeċifika li din il-funzjonalità jappartjeni għall Google Maps. Wara l-parentesi, Rajna dan qabel, ħej browser, jiksbu lili l-elementi fil-paġna, il- tikketta fil-paġna li ID unika is-- UDJENZA: [inaudible] DAVID Malan: --map. U dak li qed jiġri, ukoll, din il-linja flimkien, linja 23, essenzjalment qal, ħej browser, mur jiksbu me li div vojta fuq il-paġna li ID unika huwa Mappa, għaliex nixtieq li daħħal fis it-- tinjetta fis dan, jekk inti will-- mazz sħiħ ta 'kontenut li jiġri li jkunu ġejjin mill-web, sussegwentement. U Google tagħmel kollha ta 'dan għalina. Għalhekk għal darb'oħra, fl-aħħar nett tal-ġurnata, għandna dan l-eżempju ta 'estrazzjoni. Għandi l-ebda idea dak mappa huwa jew kif timplimenta mappa API. Aħna ma bżonn. Jinħtieġ li tgħid il-mappa fejn jitqiegħdu innifsu, u leave dawk implimentazzjoni sottostanti dettalji għal Google. Issa li milli jidher żewġ biċċiet ta 'data li dan l-eżempju huwa jipprovdu lill API Google. Apparentement-ċentru tal-mappa, u l-livell zoom, biex ngħidu hekk. U ħadd ma tirrikonoxxix dawn koordinati, latitudni u lonġitudni? Probabbilment le, imma nistgħu mmorru lura l-tutorja, litteralment tara. Iżda aħna ser tara fi ftit mument. livell zoom huwa valur bejn, jien ma jafu, wieħed fil 13 jew xi ħaġa bħal dik. Hija biss għandha x'taqsam ma 'kemm int żżomjati fil-jew barra, u li hu. U issa fl-aħħar nett tal -paġna, avviż linja 29-- huwa ftit ikrah għaliex huwa wraps-- din il-linja tal-kodiċi huwa dak downloads għall- brawżer API attwali Google. Kollha tal-kodiċi li Google inġiniera kitbu li jimplimentaw din il-karatteristika kollu ta 'mapep embeddable. Issa ejja ma tbiddel xejn. Jekk inti qed ġejja flimkien, imorru quddiem u biss ħlief dan il-fajl, jekk inti tabilħaqq għandhom dak li għandi. Mur fil-URL tagħha. Tista 'tikklikkja l-buttuna Run top up u li se jgħidulek inti l-URL tal-web server tiegħek mill-ġdid. U se twassal biex inti ġdid tab. Jekk tikklikkja Iftaħ għall map.html, u odds huma int ser tikseb allert, messaġġ ta 'żball, iva? Error messaġġ, messaġġ ta 'żball? Allura sfortunatament, l-iżball Messaġġ mhix dik illuminanti sakemm inti fil-fatt tiftaħ il- console, li tab speċjali aħna miżmuma ftuħ bieraħ u ftit kmieni llum. Imma I stumbled madwar dan il preċedenti, so I diġà dehret dak is-soluzzjoni hija. Fil slides tal-lum, jew pjuttost, fil Cloud9, avviż li aħna ma tagħmel xi ħaġa deliberatament. Avviż li dan il-tikketta iskrittura fil linja 29, jekk inti taqra permezz ta 'dan, huwa simili maps.googleapis.com/ xi ħaġa, xi ħaġa, xi ħaġa, imbagħad avviż xi ħadd, wieħed mill-iżviluppaturi, kiteb fil-kapital kollu ittri, API ewlenin tiegħek. Għandna bżonn li paste xi ħaġa fil hemm. U dan kien il-pass Jien għamilt għalina qabel, u għal darb'oħra dawn jistgħu blacklist us jekk f'daqqa, 12 jew aktar minna tibda tuża l-istess ċavetta, imma ejja ara dak li jiġri. Mela jekk inti tmur fis lum slides, slide waħda wara, hemm din is-sekwenza funky li tħares stess ta 'test. Jimxi 'l quddiem u biss kopja dak u paste fejn jgħid API ewlenin tiegħek. Dik hija l-waħda I ffirmaw għall. U definittivament ma tippruvax ittajpjar out manwalment, għaliex iħoss mimli ma typos, potenzjalment. Hekk biss kopja u paste dan. U li għaddej biex jagħmlu l-linja itwal, imma issa, biss biex tkun ċara, hija għandha tfittex ftit aktar bħal dan, fejn ċavetta huwa daqs mhux kapitalizzat yelling fi inti. Save paġna tiegħek, mur lura l-tab oħra, rikarigu, u nittama li nara mappa ta 'fejn? UDJENZA: Awstralja. DAVID Malan: Awstralja. Allura apparentement dawn huma l- GPS koordinati tal-Awstralja. U let me jimxu madwar għal ftit mument u jgħinu lil xi ħadd min pjuttost mhux hemm, iżda let me tipproponi, permezz Google, issib l GPS koordinati ta 'Hometown tiegħek stess jew pajjiż tiegħek dar stess. U probabbilment Google tista 'ddawar dan il up, jew il-Wikipedija jista 'jgħidlek. Iżda jagħżlu żewġ valuri differenti għall latitudni u lonġitudni, mur lura fi u paste minnhom, u allura rikarigu-paġna wara iffrankar u ara jekk inti tista 'jkollha Mappa għall Hometown tiegħek stess. U meta inti qed isir mal li, s-segwitu challenge-- u jien ser jagħtuk ftit inqas direzzjoni, deliberatament, sabiex inti deliberatament ikollhom ibatu għal koppja minuti mad-dokumentazzjoni, jibdlu l-mappa biex tkun le dan kontumaċja cartoonish, iżda mappa satellita. Allura inti attwalment ara satellita xbihat minflok il-kuluri pretty. U l-ħjiel jien ser jagħtuk hija l-bidla tat-tip tal-mappa tal. Mur lura għal dak jkollna beda paġna għall-ispirazzjoni. Kif jista 'jkollok miġbura, jekk inti qed tfittex, hemm daqstant aktar affarijiet li tista 'tagħmel. Xi wħud minnkom diġà biddel it-tip mappa. Iżda int tista 'do-- per eżempju, let me mur għal xi ħaġa li għamilna għall-kors I teach-- maps.cs50.net. Waħda mill undergrads tagħna ma dan. Aħna ċentru Mappa tagħna matul Harvard tarzna u overlay kollha ta 'dawn l-ismijiet tal-bini, u kellna lilu żid din. Mela jekk jien trid tfittex għal, per eżempju, Matthews Hall, għandna ftit drop-down menu. U naħseb hu juża bootstrap, il librerija aħna diskussa aktar kmieni għal dan. U jekk inti ikklikkja fuq Matthews Hall, immedjatament jumps il-mappa għal ċertu lokazzjoni, u dan juri inti stampa f'dan il-ftit pop-up. Iżda anke dan ftit pop-up, aħna ma implimentatx. Jekk I iscroll isfel fuq tagħna jkollna beda paġna u jfittxu għall-twieqi info, tkun taf tara li xi wħud mill- funzjonalità inti stess tista 'żżid, għalkemm kumplessità daqsxejn aktar, hija xi ħaġa imsejħa tieqa info. U jekk jien ikklikkja eżempju hawn, u dan huwa dak gost, inti tista 'tagħmel affarijiet bħal dan, tikklikkja fuq markatur u mbagħad voila, informazzjoni pops up. Allura aħna ma pjuttost introduċew karatteristiċi biżżejjed ta JavaScript li jagħti stampa ta 'eżattament kif inti jista wajer kollha ta 'dan il-għalf flimkien, imma konna tip ta scratched-wiċċ. Fil-fatt, dak I biss għamlet meta Jien għafast fuq dak li jimmarkaw, kien attivazzjoni avveniment, l- hekk imsejħa ikklikkja fuq avveniment. U aħna attwalment raw avveniment aktar kmieni llum, l-hekk imsejħa jissottomettu avveniment, meta konna prevenzjoni l-utent minn tiftix għal qtates. Allura konna tip ta qabad u choosed minn fost dawn il-karatteristiċi varji, li jtik sens, wieħed jittama, ta 'dak li inti tista' attwalment tagħmel ma daqsxejn aktar kumdità fl-ipprogrammar, u r-riżorsi kompletament ħieles. Kwalunkwe mistoqsijiet? Nru? Dan huwa ċ-ċans finali tiegħek, -inqas illum, il-Ġimgħa, biex tikseb xejn off sider tiegħek sabiex inti walk out ta 'hawn tħossok kunfidenti u komdi. Iva. UDJENZA: Għaliex ma inti żid ħaġ'oħra? DAVID Malan: Oh my goodness. I bżonn għall-mistrieħ dan il-weekend, I think. Mistoqsijiet oħra? UDJENZA: [inaudible] DAVID Malan: Inti can-- fl Internet Explorer, mistrieħ fil-paċi, inti użati biex ikunu jistgħu jitqiegħdu VB iskript, b'kitba bażika virtwali, iżda li verament qatt maqbuda fuq. Allura l-risposta qasira hija biss JavaScript. Mistoqsijiet oħra? Kull dritt, ukoll, let me jagħmlu dan. Let me grab kollegi tagħna barra. Huma għandhom xi evalwazzjoni forom li huma jixtiequ kulħadd li jonfqu ftit minuti mili barra. Huma jridu jiġbru dik il-formola u kwalunkwe rinunzji li inti jista 'jkollok barra. Huma ser ikollhom ukoll ċertifikati. Jien guessing hemm għadhom xi snacks barra. Let me jgħaddu dawn jitwettqu, u jekk int xi mistoqsijiet fil-frattemp, I ser jimxu madwar aktar individwalment u nistgħu jiksbu bdejt. Iva, ovja. UDJENZA: [inaudible] DAVID Malan: Li normalment veru dawn il-jiem. Ċertament ma 'web softwer, inti jegħleb fuq oħrajn int jew estetikament jużaw affarijiet bħall bootstrap, sabiex inti ma jkollhom jimplimentaw l-livell baxx dettalji ta 'menus u buttuni u dak kollu li. Inti jegħleb fuq xi ħadd bħall-Google sabiex inti m'għandhomx għalfejn tibni über negozju u negozju mmappjar, u kull numru ta simili applikazzjonijiet kif ukoll. Fil-fatt, logins huma popolari, wisq. Jekk inti ħadthom użati Spotify jew kull numru ta 'websajts, inti ser login għal xi websajts permezz Facebook. Allura x'hemm sbieħ, hemm huma APIs għal logins illum, sabiex inti ma għandekx li jkollhom l-utenti tiegħek tabella stess u kollha ta 'database tiegħek stess neċessarjament bl-istess mod. Tista let Facebook jagħmlu dak kollu ta 'dik kumplessità għalik. Allura huwa żmien eċċitanti, onestament, fil-programmazzjoni, għaliex hemm parti terza tant servizzi li inti tista 'tibni fuq quċċata ta'. U għal darb'oħra, il-prezz li inti tħallas huwa jew finanzjarju jew waqfien. Jekk Google jinżel, sabiex ma über, forsi, imma forsi li l- raġonevoli kompromess. U għal darb'oħra, li kienet waħda mit-temi, nisperaw, għall-aħħar ftit jiem, Huwa dawn kompromessi. U rarament huwa jmur hemmhekk li tkun risposta tajba. Huwa verament huwa l-aħjar ta 'tnejn jew aktar tweġibiet. Għaddi dawn madwar. U dawn il-kontijiet Cloud9 se jkompli għax-xogħol, fit-teorija, al dejjem. Inti tista 'ssib jekk inti tistenna ftit jiem jew ġimgħa jew aktar biex log lura fis minnhom, jista 'jieħu bħal wieħed jew ħames minuti biex tiftaħ back-up, iżda li biss għaliex dawn jitqiegħdu li jorqdu biex jiffrankaw fuq ir-riżorsi.