1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Musiikkia] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> DAVID MALAN: Tämä on CS50, ja tämä on alku viikolla kahdeksan. 5 00:00:13,350 --> 00:00:17,510 Ja olemme niin innoissaan toivottaa takaisin, iso yllätys, CS50 oma Ramon 6 00:00:17,510 --> 00:00:22,160 Galvan, nouseva vanhempi, joka on ollut menojen viime kuukausien 7 00:00:22,160 --> 00:00:26,190 heinäkuusta lähtien LA, Hollywood, kirjaimellisesti työstää upouusi TV 8 00:00:26,190 --> 00:00:31,930 näytä kutsutaan Colony, luoja, joka on todella Harvard aluna itse. 9 00:00:31,930 --> 00:00:36,610 Ja niin olemme hyvin innoissani tästä debyytti USA Network tammikuussa. 10 00:00:36,610 --> 00:00:40,370 Joten pysy kuulolla että sekä enemmän Ramon varten tulevina viikkoina. 11 00:00:40,370 --> 00:00:42,550 >> Tiedä nyt, että loppu on lähellä. 12 00:00:42,550 --> 00:00:47,400 Ja mitä tämä tarkoittaa, että siellä ei ole kaikki, että paljon jäljellä CS50, valitettavasti. 13 00:00:47,400 --> 00:00:49,400 Meillä on vain kolme ongelma sarjaa left-- siellä 14 00:00:49,400 --> 00:00:52,510 Harjoitus six-- joka on kädet nyt tai lähitulevaisuudessa, 15 00:00:52,510 --> 00:00:56,080 myöhemmin tänä week-- on tarkoitus kuroa meidän maailmoissa komentoriviltä, ​​jossa 16 00:00:56,080 --> 00:00:59,450 olemme käyttäneet suurimman osan ajastamme käyttämällä C, ja maailman web ohjelmointi. 17 00:00:59,450 --> 00:01:02,350 No, näet paljon ideoita lainattu komentoriviltä työtä, 18 00:01:02,350 --> 00:01:04,560 mutta myös paljon uutta ja mielenkiintoisia ideoita 19 00:01:04,560 --> 00:01:07,929 että myös olemaan Germane varten mobiilisovelluksia ja teknologian, 20 00:01:07,929 --> 00:01:10,470 yleisemmin, jonka kanssa kaverit ovat kaikki tuttuja nykyään 21 00:01:10,470 --> 00:01:12,090 tietokoneet ja puhelimet ja vastaavat. 22 00:01:12,090 --> 00:01:15,220 >> Joten sinun toteuttaa ei web-sivun, tai verkkosivuston 23 00:01:15,220 --> 00:01:17,620 sinänsä, mutta todellinen web-palvelin. 24 00:01:17,620 --> 00:01:21,590 Voit kirjoittaa loput web-palvelimen kirjoitettu C, jonka elämän tarkoitus 25 00:01:21,590 --> 00:01:25,410 on vastaanottaa HTTP-pyyntöjä, ne virtuaalinen kirjekuoret me vatvoa 26 00:01:25,410 --> 00:01:29,780 noin, ja itse asiassa vastata joko jotkut staattinen content-- kuin piste HTML 27 00:01:29,780 --> 00:01:32,310 tiedosto, tai piste JPEG tai muut tiedostojen määrän, 28 00:01:32,310 --> 00:01:37,070 tai jopa PHP-tiedosto, jossa Web- palvelin aikoo tulkita, että PHP 29 00:01:37,070 --> 00:01:38,332 koodi ja sylkemään tulokset. 30 00:01:38,332 --> 00:01:40,540 Nyt olemme toimittaneet teille melko vähän puitteet 31 00:01:40,540 --> 00:01:43,100 varten it-- todellakin jakelu koodi ongelma 32 00:01:43,100 --> 00:01:47,496 asettaa kuusi on yli 1000 riviä pitkä, paljon joka on kommentteja, olla fair-- 33 00:01:47,496 --> 00:01:49,370 mutta tämä on todella tarkoitti olla tilaisuus 34 00:01:49,370 --> 00:01:52,570 saada kädet likainen sukellus osaksi melko suuri projekti 35 00:01:52,570 --> 00:01:55,570 että olemme hyvin erityisesti veistetty kappaletta sinulle, 36 00:01:55,570 --> 00:01:59,046 niin että todella, kun poistut CS50 ja kirjoita reaalimaailman ohjelmoinnin 37 00:01:59,046 --> 00:02:00,920 ja haluavat harrastella mikä tahansa useita hankkeita, 38 00:02:00,920 --> 00:02:03,253 sinulla on paljon suurempi Comfort noudetaan lähde 39 00:02:03,253 --> 00:02:05,020 koodi, jotkut avoimen lähdekoodin hankkeen Webissä, 40 00:02:05,020 --> 00:02:08,174 ja sukeltaminen ja tehdä muutokset parhaaksi näet. 41 00:02:08,174 --> 00:02:11,340 Harjoitus seitsemän tulee olemaan noin tehdä oma web-pohjainen sovellus 42 00:02:11,340 --> 00:02:14,140 joka vie dynamisoi ja tuottaa dynaamisen lähtö muodossa 43 00:02:14,140 --> 00:02:16,920 of etrade.com kaltainen verkkosivuilla. 44 00:02:16,920 --> 00:02:20,800 Ja ongelma asetettu kahdeksan keskitytään vielä toinen kieli tunnetaan JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Samaan aikaan lopullinen hanke on näköpiirissä. 46 00:02:24,170 --> 00:02:26,800 Niin kutsuttua pre-ehdotus johtuu viikossa tänään. 47 00:02:26,800 --> 00:02:29,930 Pre-proposal-- kohti erittely, joka on CS50: n website-- 48 00:02:29,930 --> 00:02:33,260 on melko rento tilaisuus voit lähettää melko ytimekäs sähköpostia 49 00:02:33,260 --> 00:02:35,170 sinun opetus kaveri vain tietoonsa häntä 50 00:02:35,170 --> 00:02:38,250 tai hänen on mitä ajattelet, jotta käyttää häntä kaikupohjana. 51 00:02:38,250 --> 00:02:40,980 Ja on järki check-- onko olet ajatellut 52 00:02:40,980 --> 00:02:43,210 noin puree pois liian paljon tai ehkä liian vähän, 53 00:02:43,210 --> 00:02:46,480 tai ehkä sinulla ei ole aavistustakaan lainkaan ja haluavat osallistua keskusteluun. 54 00:02:46,480 --> 00:02:48,480 >> Tämän jälkeen on ehdotus ja tilanneraportin, 55 00:02:48,480 --> 00:02:51,860 ns CS50 hackathon täällä Cambridge Harvardin ja Yalen opiskelijat 56 00:02:51,860 --> 00:02:52,362 samankaltaisia. 57 00:02:52,362 --> 00:02:54,320 Lopullinen Hankkeen täytäntöönpano on sieltä. 58 00:02:54,320 --> 00:02:59,290 Ja sitten CS50 oikeudenmukainen täällä, Cambridge, sekä toinen New Haven. 59 00:02:59,290 --> 00:03:02,500 Joten ehdotus, vilkaise verkkosivuilla nämä tiedot. 60 00:03:02,500 --> 00:03:06,530 >> Mutta enemmän jännittävän, sekin on mahdollisuus saada kädet likainen, 61 00:03:06,530 --> 00:03:09,350 ja mielenne avoinna koko nippu aiheita ja työkalut 62 00:03:09,350 --> 00:03:12,920 ja tekniikoita, jotka ovat liitännäisiä kurssin ydin opetussuunnitelma, 63 00:03:12,920 --> 00:03:14,810 mutta kuitenkin liittyvät. 64 00:03:14,810 --> 00:03:18,400 Ja myös ihana välietappeja tekee todella hienoja lopullinen hankkeita, 65 00:03:18,400 --> 00:03:22,020 ylittävät materiaali olemme katettu muodollisesti ongelma asettaa tai luento. 66 00:03:22,020 --> 00:03:24,446 Niin mene CS50: n verkkosivuilla koko roster seminaareja. 67 00:03:24,446 --> 00:03:26,070 Jos et rekisteröi vielä, se käy hyvin. 68 00:03:26,070 --> 00:03:29,860 Menkää ja rekisteröityä edelleen ja me seurata live streaming linkkiä, 69 00:03:29,860 --> 00:03:31,844 päivä ja kellonaika on sivuilla. 70 00:03:31,844 --> 00:03:33,760 Ja kaikki on kirjataan ja toteuttaa verkossa 71 00:03:33,760 --> 00:03:35,800 jos et voi tehdä erityisesti päivinä ja kellonaikoina. 72 00:03:35,800 --> 00:03:39,380 >> Siitä, mitä on edessä thereafter-- hyvin, tietenkin, siellä CS50 hackathon. 73 00:03:39,380 --> 00:03:43,560 Tämä kuva, muistaa, viikosta nolla otettu noin 4 AM eräänä iltana menneinä vuosina. 74 00:03:43,560 --> 00:03:46,900 CS50 oikeudenmukainen, mikä taas tapahtuu molemmissa kaupungeissa. 75 00:03:46,900 --> 00:03:49,760 Ja sitten, vain istuttaa siemen, vaikka me vielä 76 00:03:49,760 --> 00:03:54,080 on kuukaudessa plus jäljellä lukukausi, jos haluat liittyä CS50 oma opetus 77 00:03:54,080 --> 00:03:56,770 henkilökunta ja haluat aloittaa ajatellut tulossa CA, 78 00:03:56,770 --> 00:03:59,550 tai opetus kaveri, tietävät, että Aloitamme puhua siitä enemmän 79 00:03:59,550 --> 00:04:00,630 myöhemmin tällä lukukaudella. 80 00:04:00,630 --> 00:04:03,470 Mutta Kuvassa Suurin osa tämän vuoden joukkue. 81 00:04:03,470 --> 00:04:06,950 >> Ja niin, PHP-- ja olin niin surullinen viime viikolla, että [? Allyse?] Ystävällisesti 82 00:04:06,950 --> 00:04:09,370 meni vaivaa saada meille näitä ihania rekvisiitta 83 00:04:09,370 --> 00:04:11,720 että en päätyä käyttämään, joten se oikeastaan ​​vain näytti typerää 84 00:04:11,720 --> 00:04:15,160 että meillä oli lapio istuu täällä kaikki päivä viime keskiviikkona, ja pieni lusikka. 85 00:04:15,160 --> 00:04:17,709 Mutta tämä oli minun vertauskuvallisen tapa yrittää maalata 86 00:04:17,709 --> 00:04:21,600 kuva miksi olemme siirtymässä C: stä kieli kuten PHP. 87 00:04:21,600 --> 00:04:25,480 Ja samaa voidaan sanoa mitään määrä languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 tai rypäleterttuja others-- mutta taas C, esimerkiksi kirjoittamista ohjelma C 89 00:04:31,270 --> 00:04:34,050 voi tyypillisesti olla kuin ottaen lusikka näin 90 00:04:34,050 --> 00:04:36,770 ja kaivaa reikä maahan, hiekkaan tai lika. 91 00:04:36,770 --> 00:04:39,770 PHP avulla voit ottaa paljon isompi puree pois ongelma, 92 00:04:39,770 --> 00:04:42,842 kirjallisesti paljon vähemmän koodia käyttämällä paljon pienempi työkalu, 93 00:04:42,842 --> 00:04:45,050 koska siellä on niin paljon enemmän toiminnallisuutta kasattiin vuonna. 94 00:04:45,050 --> 00:04:47,633 >> Nyt, jos olisimme todella dramaattinen, meillä olisi jotain lapio 95 00:04:47,633 --> 00:04:48,760 täällä, mutta olkoon niin. 96 00:04:48,760 --> 00:04:51,370 Samaan aikaan, toinen metafora keksimme 97 00:04:51,370 --> 00:04:53,770 on, tietenkin, voisit käyttää jotain jakoavain 98 00:04:53,770 --> 00:04:56,610 vasara on jotain kynsien. 99 00:04:56,610 --> 00:04:58,980 Mutta tietenkin, oikea työkalu on menossa 100 00:04:58,980 --> 00:05:01,360 olla ei niinkään kieli kutsutaan C-- 101 00:05:01,360 --> 00:05:03,590 ja nyt olen vain vihainen [? Sanders?] Luultavasti, 102 00:05:03,590 --> 00:05:07,890 me korjata että later-- niin oikea työkalu käyttää usein 103 00:05:07,890 --> 00:05:09,640 ei tule olemaan tämä alin taso työkalu. 104 00:05:09,640 --> 00:05:13,720 Ja todellakin, C ei kieli, joka useimmat olet ikinä käyttää, 105 00:05:13,720 --> 00:05:15,590 tai olisi välttämättä käyttää uudelleen. 106 00:05:15,590 --> 00:05:18,350 >> Ja itse asiassa hieman secret-- vain aika 107 00:05:18,350 --> 00:05:23,160 Käytän C itse on melko paljon välillä Syyskuussa ja joulukuussa joka syksy 108 00:05:23,160 --> 00:05:23,870 lukukausi. 109 00:05:23,870 --> 00:05:25,790 Ja se johtuu meidän käyttää sitä mahdollisuutena 110 00:05:25,790 --> 00:05:27,852 opettaa perustekijät ohjelmoinnin, 111 00:05:27,852 --> 00:05:29,810 ja se tietokoneen tiede perustekijät, tiedot 112 00:05:29,810 --> 00:05:32,435 rakenteet, algoritmit ja like-- mutta hyvin nopeasti aiotte 113 00:05:32,435 --> 00:05:35,010 Katsokaa nyt, että syntaksin ja ajatuksista C 114 00:05:35,010 --> 00:05:37,530 ovat niin ihanan siirrettävissä modernimpi 115 00:05:37,530 --> 00:05:41,130 korkeamman tason kielillä, kuten PHP ja Python ja Perl ja Java 116 00:05:41,130 --> 00:05:46,750 ja Objective-C-- oikeastaan, ei niinkään Tavoite-C-- mutta Swift, nämä uudemmat 117 00:05:46,750 --> 00:05:50,010 kielet, joita monet teistä sitten harrastella kanssasi opinnäytetyön. 118 00:05:50,010 --> 00:05:55,070 >> Joten pitemmittä puheitta, katsotaanpa oikeastaan PHP ratkaisemaan joitakin ongelmia. 119 00:05:55,070 --> 00:06:00,230 Muistuttaa, että varhain, viime viikko, me vain käytetty CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 kirjoitimme sievä pieni ohjelma että juuri sanoi, "Hei maailma." 121 00:06:02,990 --> 00:06:05,680 Ja sitten tallentanut sen tiedosto nimeltä hello.php. 122 00:06:05,680 --> 00:06:07,280 Ja sitten juoksin tätä komentoa. 123 00:06:07,280 --> 00:06:08,080 >> Ja miksi? 124 00:06:08,080 --> 00:06:09,900 Englanti, mitä täällä tapahtuu? 125 00:06:09,900 --> 00:06:12,760 Mitä teen, kun Juoksin tätä komentoa? 126 00:06:12,760 --> 00:06:13,405 >> Joo? 127 00:06:13,405 --> 00:06:16,572 >> Yleisö: On joitakin funktio PHP joka lukee mitä in-- ymmärtää, että. 128 00:06:16,572 --> 00:06:19,696 DAVID MALAN: Hyvä, siellä on toiminto PHP-- ja anna minun olla tarkempi, 129 00:06:19,696 --> 00:06:21,810 siellä on ohjelma nimeltä PHP, alias 130 00:06:21,810 --> 00:06:25,872 Tulkki, joka ymmärtää sisällön hello.php, 131 00:06:25,872 --> 00:06:27,830 ja tulkitsee sen ylhäältä alhaalta, vasemmalta oikealle, 132 00:06:27,830 --> 00:06:29,590 ja tekee mitä nuo komennot sanovat. 133 00:06:29,590 --> 00:06:33,320 Komennot hello.php, tietenkin, on vain lähde code-- toimintoja 134 00:06:33,320 --> 00:06:35,750 ja muuttujat ja silmukoita ja kuten, että me itse 135 00:06:35,750 --> 00:06:37,460 ovat alkoi kirjoittaa PHP. 136 00:06:37,460 --> 00:06:40,240 >> Mutta toisin kuin C, joka on käännetty kieli, 137 00:06:40,240 --> 00:06:42,810 PHP vain kirjoittaa sen, ja käyttää sitä. 138 00:06:42,810 --> 00:06:46,420 Voit ohittaa tämän välikäsi vaihe muuntamalla sen nollia ja ykkösiä, 139 00:06:46,420 --> 00:06:47,790 ja sitten näyttämään sitä. 140 00:06:47,790 --> 00:06:50,510 Ja niin mikä on kiihtymisen tästä? 141 00:06:50,510 --> 00:06:52,690 Miksi me ohita askel? 142 00:06:52,690 --> 00:06:55,238 Miksi modernimpi kielillä taipumus ohittaa tämän? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Mikä oli hyötyä? 145 00:07:01,220 --> 00:07:02,080 >> Tai vain intuitiivisesti? 146 00:07:02,080 --> 00:07:04,200 Vaikka olemme ei kirjoitettu paljon PHP ennen, 147 00:07:04,200 --> 00:07:07,210 mitä hyötyä siitä ei ole kokoamisessa koodi luulet? 148 00:07:07,210 --> 00:07:08,520 Ei? 149 00:07:08,520 --> 00:07:09,610 Ei sitoa? 150 00:07:09,610 --> 00:07:11,350 Naarmuuntumisen pään? 151 00:07:11,350 --> 00:07:12,614 Joo. 152 00:07:12,614 --> 00:07:13,600 >> Yleisö: Lisää dynaaminen. 153 00:07:13,600 --> 00:07:14,683 >> DAVID MALAN: Lisää dynaaminen? 154 00:07:14,683 --> 00:07:16,032 Mitä sinä tarkoitat? 155 00:07:16,032 --> 00:07:17,000 >> Yleisö: [äänetön] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID MALAN: OK, hyvä, joten riippuen tulo, 158 00:07:22,390 --> 00:07:23,470 sinun ei tarvitse kääntää joka kerta. 159 00:07:23,470 --> 00:07:24,990 Ja se todella on kuin yksinkertaista kuin that-- mitä 160 00:07:24,990 --> 00:07:26,990 järkeä on jatkuva kokoamaan koodi? 161 00:07:26,990 --> 00:07:29,480 Tämä on vain askel, joka on making-- tämä edellyttää,, 162 00:07:29,480 --> 00:07:31,900 jo usean viikkoa, kaksi kertaa niin monta askelta 163 00:07:31,900 --> 00:07:33,820 koska vain suorittaa ohjelma. 164 00:07:33,820 --> 00:07:36,940 Se on ollut hyödyllinen näkemään että olet nähdä virheilmoituksia ja niin edelleen, 165 00:07:36,940 --> 00:07:38,720 mutta se on silti vain harmittaa askel. 166 00:07:38,720 --> 00:07:41,810 >> Ja niin ohjelmoijat tajusi ajan, miksi emme 167 00:07:41,810 --> 00:07:45,327 kirjoittamaan kieliä, jotka eivät Tarvitsen sen melko mekaaninen vaihe, 168 00:07:45,327 --> 00:07:47,160 jotta voi vain kirjoittaa koodi ja suorita se. 169 00:07:47,160 --> 00:07:48,920 Mutta mikä oli hinta että näimme maksoimme 170 00:07:48,920 --> 00:07:50,910 viime viikolla, yksi erityinen esimerkki? 171 00:07:50,910 --> 00:07:51,650 Kyllä? 172 00:07:51,650 --> 00:07:52,370 >> Nopeus. 173 00:07:52,370 --> 00:07:54,690 Niin [? Mikä?] tulkit hieman hitaammin, 174 00:07:54,690 --> 00:07:57,330 että nollia ja ykkösiä ovat mukava ja nopea tietokone 175 00:07:57,330 --> 00:08:00,070 ymmärtää, koska Intel CPU, tai mikä se on, 176 00:08:00,070 --> 00:08:03,070 vain ymmärtää, mitä tapahtuu kanssa ne bittikuvioina. 177 00:08:03,070 --> 00:08:05,370 Kun taas tulkki on ohjelma, joka todella 178 00:08:05,370 --> 00:08:07,980 on lukea ASCII lähde koodi että olet kirjoittanut, 179 00:08:07,980 --> 00:08:12,700 ja muuntaa sen, niin sanoakseni, tai selvittää, miten se muuntaa lopulta 180 00:08:12,700 --> 00:08:13,525 että nollia ja ykkösiä. 181 00:08:13,525 --> 00:08:15,650 Joten se vie vain vähän hieman suorituskykyä osuma. 182 00:08:15,650 --> 00:08:16,858 Joten se on hieman kompromisseja. 183 00:08:16,858 --> 00:08:21,570 Nyt jos teemme tämän tänne, haluan mennä eteenpäin ja tehdä esimerkiksi seuraavasti. 184 00:08:21,570 --> 00:08:26,610 Jos menen tänne, uuden tiedoston, aion tallentaa tämän uudelleen on hello.php. 185 00:08:26,610 --> 00:08:31,450 Ja nyt aion mennä eteenpäin ja sanoa, "print Hello World" - 186 00:08:31,450 --> 00:08:35,130 ja muistuttavat, että voin käyttää tulostaa, en on käytettävä Tulosta-F. Ja nyt täällä, 187 00:08:35,130 --> 00:08:42,039 jos en PHP on hello.php, huh-- I eivät näytä ovat tulkinneet sen. 188 00:08:42,039 --> 00:08:43,412 Mitä tein väärin? 189 00:08:43,412 --> 00:08:44,710 >> Yleisö: kulma rannerenkaita. 190 00:08:44,710 --> 00:08:47,015 >> DAVID MALAN: Joo, tarvitset että kulma kiinnike ylös. 191 00:08:47,015 --> 00:08:49,390 Joten se on tavallaan ärsyttävää, mutta tottuu nopeasti. 192 00:08:49,390 --> 00:08:53,500 Jos minun täytyy kirjoittaa PHP, I yleensä tarvitse kertoa ohjelma, 193 00:08:53,500 --> 00:08:56,950 tai kertoa tulkki, hei PHP, tässä tulee joitakin PHP. 194 00:08:56,950 --> 00:09:00,440 Ja sitten kaiken kukkuraksi, olisin sulje tämä ei tällä, vaan pikemminkin 195 00:09:00,440 --> 00:09:03,740 vain kysymysmerkki kulma kiinnike, joten nyt täällä, 196 00:09:03,740 --> 00:09:06,840 jos juoksen tätä uudelleen, nyt Saan toivottua tulosta. 197 00:09:06,840 --> 00:09:09,820 >> Nyt tehdä hieman optimointi, juuri niin, että olet nähnyt sitä ennen. 198 00:09:09,820 --> 00:09:14,040 Tämä on tavallaan harmillista, että olen täytyy juosta PHP tilaa hello.php, 199 00:09:14,040 --> 00:09:16,060 koska aikaisemmin I voisi vain kirjoittaa piste slash 200 00:09:16,060 --> 00:09:17,560 ohjelman nimi, joka on tavallaan mukavaa. 201 00:09:17,560 --> 00:09:19,420 Se on tavallaan paremman käyttökokemuksen. 202 00:09:19,420 --> 00:09:24,160 >> Joten se kääntyy pois voit tehdä tämän PHP kanssa following-- I 203 00:09:24,160 --> 00:09:28,780 voi käyttää tätä melko arvoituksellinen loitsu huipulla täällä, 204 00:09:28,780 --> 00:09:31,740 joka on yleensä kutsutaan roska, jolloin tämä on terävä symboli, 205 00:09:31,740 --> 00:09:34,270 niin sanoakseni, tämä on bang tai huutomerkki. 206 00:09:34,270 --> 00:09:38,490 Ja tämä nyt on polku ohjelmaan tyypillinen Linux-järjestelmä, joka 207 00:09:38,490 --> 00:09:41,500 kutsutaan ympäristö, tai env. 208 00:09:41,500 --> 00:09:43,920 Ja tämä line-- pitkä tarina short-- linjalla yksi vain 209 00:09:43,920 --> 00:09:48,710 sanoo, hei tietokone, löytää PHP tulkki minulle ympäristössä, 210 00:09:48,710 --> 00:09:50,610 löydä sitä muistiin, niin sanoakseni. 211 00:09:50,610 --> 00:09:54,130 >> Ja mikä on kiva nyt, on että jos menen tänne, 212 00:09:54,130 --> 00:09:57,750 Voin tehdä piste slash Hei piste php, or-- hmm. 213 00:09:57,750 --> 00:09:59,000 Lupa kielletty. 214 00:09:59,000 --> 00:10:02,350 No, näet vielä enemmän tämän kanssa ongelma asettaa seitsemän, jos 215 00:10:02,350 --> 00:10:04,060 ole jo, kanssa käyttöoikeudet. 216 00:10:04,060 --> 00:10:06,510 On käynyt ilmi, että tarvitsen tätä komentoa 217 00:10:06,510 --> 00:10:10,779 nimeltään [? chamod?] muutoksen mode-- plus x hello.php. 218 00:10:10,779 --> 00:10:13,820 Tarvitsen [äänetön] tämä yksi ylimääräinen askel, joka kertoo tietokone, 219 00:10:13,820 --> 00:10:16,400 tehdä hello.php executable. 220 00:10:16,400 --> 00:10:21,310 Ja nyt katsoa mitä happens-- piste slash hello.php, se vain toimii. 221 00:10:21,310 --> 00:10:23,310 En tarvitse määrittää tulkki enää. 222 00:10:23,310 --> 00:10:26,680 Ja voin tehdä sen jopa kauniimpi, edelleen, jos en nimeä tämä asia. 223 00:10:26,680 --> 00:10:30,570 Jos muutan hello.php vain Hello-- joten ilmoituksen vasemmassa yläkulmassa, 224 00:10:30,570 --> 00:10:32,860 Ohjelman nimi on todellakin nyt vain Hei. 225 00:10:32,860 --> 00:10:37,300 Nyt voin tehdä sen näyttämään C-ohjelma, vaikka se on kirjoitettu PHP-- 226 00:10:37,300 --> 00:10:39,210 tai rehellisesti rajoittamattoman määrän Muiden kielten. 227 00:10:39,210 --> 00:10:41,480 >> Niin marginaalinen parannus, ole toiminnallista eroa. 228 00:10:41,480 --> 00:10:44,460 Mutta se on vain pieni uteliaisuus nyt, jotta voit kirjoittaa ohjelmia 229 00:10:44,460 --> 00:10:48,989 millä tahansa kielellä, ja käyttäjä ei täytyy tietää tai välitä siitä, mitä ne ovat. 230 00:10:48,989 --> 00:10:51,030 No, Katsotaanpa lisää pakottavia esimerkki nyt 231 00:10:51,030 --> 00:10:52,850 että olen lyöty jopa etukäteen. 232 00:10:52,850 --> 00:10:54,955 Ja tätä kutsutaan quote.php. 233 00:10:54,955 --> 00:10:56,740 Ja se on saatavilla verkossa. 234 00:10:56,740 --> 00:11:00,299 Ja huomaa, että se on melko short-- mutta se on komentorivi ohjelma, joka on 235 00:11:00,299 --> 00:11:02,840 menossa katsomaan ylös osakekursseja minulle, joka on todella menossa 236 00:11:02,840 --> 00:11:04,230 olla germane ongelma asettaa seitsemän. 237 00:11:04,230 --> 00:11:05,396 >> Joten mitä olen tekemässä. 238 00:11:05,396 --> 00:11:08,640 Huipulla Minulla alkusulkumerkki kysymysmerkki PHP. 239 00:11:08,640 --> 00:11:13,372 Sitten minulla on tämä linja, jonka olen vaativat tiedosto nimeltä functions.php-- 240 00:11:13,372 --> 00:11:15,080 aiomme nähdä Tästä lisää hieman, 241 00:11:15,080 --> 00:11:17,340 mutta tämä on kuin C: n versio teräviä ovat, 242 00:11:17,340 --> 00:11:19,090 mihin haluat mennä kuuluu toinen tiedosto. 243 00:11:19,090 --> 00:11:23,720 PHP kutsuu sitä edellyttävät, vaikka se myös kuuluu toiminto. 244 00:11:23,720 --> 00:11:26,861 Ja käy ilmi, että function.php on vain jotain kirjoitin ennen luokan. 245 00:11:26,861 --> 00:11:29,860 Laitoin sen samaan hakemistoon, koska Halusin tekijä joitakin koodi 246 00:11:29,860 --> 00:11:31,800 että saatamme haluta käyttää muualla. 247 00:11:31,800 --> 00:11:34,560 >> Samalla voit luultavasti päätellä mitä täällä tapahtuu. 248 00:11:34,560 --> 00:11:39,200 Tämä on hieman erilainen kuin C-- mutta mitä tarkoitan asianmukaisen käytön? 249 00:11:39,200 --> 00:11:41,180 Käännä tämä teknisesti. 250 00:11:41,180 --> 00:11:45,950 Missä olosuhteissa olen lopetus ohjelma, poistuttaessa? 251 00:11:45,950 --> 00:11:47,074 Joo? 252 00:11:47,074 --> 00:11:47,990 >> Yleisö: Kun sinulla ei ole kaksi komentoriviargumentteja. 253 00:11:47,990 --> 00:11:49,480 >> DAVID MALAN: Kun ei ole että komentoriviargumentteja. 254 00:11:49,480 --> 00:11:52,396 Ja muista, että yksi niistä perustelut on ohjelman nimi itsessään. 255 00:11:52,396 --> 00:11:55,340 Ja toinen tulee olemaan toinen sana kirjoitan jälkeen nopea. 256 00:11:55,340 --> 00:11:57,460 Joten kuten C, tämä on minun tapa tarkistaa, 257 00:11:57,460 --> 00:12:00,022 ei käyttäjä yhteistyötä ja ajaa ohjelman aioin? 258 00:12:00,022 --> 00:12:01,730 Nyt siinä on jotain hieman erilainen 259 00:12:01,730 --> 00:12:04,020 kanssa C-- ensinnäkin me on tämä dollarin merkki, 260 00:12:04,020 --> 00:12:07,710 ja mitä dollari kirjaudu merkitsevät PHP? 261 00:12:07,710 --> 00:12:08,440 Vain muuttuja. 262 00:12:08,440 --> 00:12:11,731 Se all-- vain muuttuja jälkeen mitä haluat todella kutsua sitä. 263 00:12:11,731 --> 00:12:14,000 Huomaa, siellä on jotain puuttuu minun PHP-ohjelma, 264 00:12:14,000 --> 00:12:18,210 aivan kuten se puuttui viimeksi viikko, vs. C, joka on mitä? 265 00:12:18,210 --> 00:12:21,620 >> Tyyppejä, mutta myös jotain muuta. 266 00:12:21,620 --> 00:12:26,409 Ei ole jotain function-- päätehtävä. 267 00:12:26,409 --> 00:12:27,450 Ei ole päätehtävä. 268 00:12:27,450 --> 00:12:29,680 Sinä vain aloittaa kirjoittamisen koodi ilman 269 00:12:29,680 --> 00:12:32,790 murehtia melko mielivaltaisesti yleissopimus nimeäminen oletus 270 00:12:32,790 --> 00:12:33,880 toiminto tärkein. 271 00:12:33,880 --> 00:12:36,720 Joten arg C on vain todella globaali muuttuja 272 00:12:36,720 --> 00:12:39,049 että tulkki siinä annetaan minulle. 273 00:12:39,049 --> 00:12:40,090 Nyt, tämä on mielenkiintoinen. 274 00:12:40,090 --> 00:12:41,140 Joten etsiä juttuja. 275 00:12:41,140 --> 00:12:43,370 Dollarin merkki varastossa on vasemmalle, se on minun muuttuja. 276 00:12:43,370 --> 00:12:45,120 Oikealla puolella, siellä on ilmeisesti 277 00:12:45,120 --> 00:12:50,270 toiminto PHP nimeltään Haku joka Olen ohimennen viimeinen komentoriviltä 278 00:12:50,270 --> 00:12:51,902 argumentti to-- mikä sana on. 279 00:12:51,902 --> 00:12:53,610 Ja näemme, miten tämä toimii hetki. 280 00:12:53,610 --> 00:12:55,380 >> Ja sitten lopuksi olen raportointi hinta. 281 00:12:55,380 --> 00:12:58,650 Olen tulostamalla yksi osuus tällainen ja tällainen. 282 00:12:58,650 --> 00:13:02,082 Ja muistakaa, tämä on tapa PHP-- tavalla PHP-- 283 00:13:02,082 --> 00:13:04,290 jossa sinun ei tarvitse tehdä dollarin merkki S enää. 284 00:13:04,290 --> 00:13:06,782 Voit vain käyttää aaltosulkeita ja kytke jokin muuttuja. 285 00:13:06,782 --> 00:13:09,240 Sinun ei tarvitse huolehtia käyttämällä printf samalla tavalla. 286 00:13:09,240 --> 00:13:13,530 >> Ja sivuun, kun laittaa muuttuja sisällä lainausmerkkeihin näin, 287 00:13:13,530 --> 00:13:17,370 käytät fancy tekniikkaa kutsutaan muuttuja interpolointi. 288 00:13:17,370 --> 00:13:20,380 Se vain tarkoittaa, kytke muuttuja täällä. 289 00:13:20,380 --> 00:13:23,760 Ja syrjään, jotkut teistä, jotka tulevat muista ohjelmointi taustat, 290 00:13:23,760 --> 00:13:26,960 et saa käyttää puolilainausmerkkejä noin jouset tehdä tämän. 291 00:13:26,960 --> 00:13:30,290 Sinun on käytettävä lainausmerkkejä varten muuttuja interpolointi töihin. 292 00:13:30,290 --> 00:13:32,740 Muuten sinun kirjaimellisesti katso nämä aaltosulkeita. 293 00:13:32,740 --> 00:13:34,500 >> Joten lopuksi, mennään eteenpäin ja suorittaa tämän. 294 00:13:34,500 --> 00:13:36,690 Haluan tehdä minun pääte hieman isompi. 295 00:13:36,690 --> 00:13:41,940 Anna minun mennä eteenpäin ja ajaa sisällä minun lainaus hakemistoon. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AM?] [? lainaus?] PHP lainaus piste PHP, 297 00:13:46,950 --> 00:13:50,290 ja aion etsiä jotain kuten GOOG, joka on sen ticker symboli, 298 00:13:50,290 --> 00:13:55,510 ja yksi osake sen uusi nimi, Aakkoset Inc, maksaa $ 717 Kuten tänään. 299 00:13:55,510 --> 00:13:58,680 Hyvä on, jos haluamme suorittaa tämän uudelleen, kuka tahansa 300 00:13:58,680 --> 00:14:02,600 on toinen pörssikursseja he haluavat etsiä? 301 00:14:02,600 --> 00:14:06,770 >> Microsoft on mielestäni tämä, MSFT-- $ 53. 302 00:14:06,770 --> 00:14:09,720 Mielestäni Yahoo on ehkä se. 303 00:14:09,720 --> 00:14:12,130 Ja Facebook on se. 304 00:14:12,130 --> 00:14:13,740 >> Joten mitä tämä ohjelma tekee? 305 00:14:13,740 --> 00:14:16,306 Taika näyttää upotettu että haku-toiminto. 306 00:14:16,306 --> 00:14:17,430 Joten ottaa vilkaista. 307 00:14:17,430 --> 00:14:21,815 >> On käynyt ilmi, että ei tule PHP, se on functions.php. 308 00:14:21,815 --> 00:14:23,690 Ja emme mene läpi tämä hyvin yksityiskohtaisesti, 309 00:14:23,690 --> 00:14:28,040 mutta huomaa tärkeä sana tässä on että linja kuusi functions.php-- 310 00:14:28,040 --> 00:14:29,440 Olen kirjaimellisesti sanoa toiminto. 311 00:14:29,440 --> 00:14:31,050 Olen määritellä nimi minun toiminto. 312 00:14:31,050 --> 00:14:34,330 Sitten määrittää minkä tahansa argumentteja, tai parametrit, 313 00:14:34,330 --> 00:14:36,480 Haluan, että toiminto take-- ei tyyppejä. 314 00:14:36,480 --> 00:14:37,580 Ja sitten toteuttaa se. 315 00:14:37,580 --> 00:14:39,240 >> Ja minä aalto käteni toteutusvaiheessa, 316 00:14:39,240 --> 00:14:42,115 koska se on melko pitkälle edennyt oikeanpuoleinen nyt, mutta näemme sen uudelleen todella 317 00:14:42,115 --> 00:14:44,700 in viikolla ongelma asettaa seitsemän. 318 00:14:44,700 --> 00:14:47,490 Mutta voin puhdistaa tämän ylös, liian. 319 00:14:47,490 --> 00:14:49,590 Olen myös mukana Nykypäivän koodi versio 320 00:14:49,590 --> 00:14:52,340 lainaus, jolla ei ole piste PHP-tiedosto. 321 00:14:52,340 --> 00:14:57,270 Sillä mitä on oletettavasti yläosassa ohjelman nimeltä vain lainata? 322 00:14:57,270 --> 00:15:00,140 Että niin sanotut shebang-- melko arvoituksellinen loitsu 323 00:15:00,140 --> 00:15:04,590 joka sanoo löytää PHP ja sitten suorita se minun koodi täällä. 324 00:15:04,590 --> 00:15:07,360 >> Hyvä, että tuo meitä mihin jäimme 325 00:15:07,360 --> 00:15:09,560 viime time-- vaikkakin jotkut kehittyneempiä esimerkkejä. 326 00:15:09,560 --> 00:15:13,980 Kysyttävää tähän mennessä noin PHP tai mitä teemme? 327 00:15:13,980 --> 00:15:15,570 No-- kunnossa. 328 00:15:15,570 --> 00:15:16,180 Joo? 329 00:15:16,180 --> 00:15:19,610 >> Yleisö: Inside HTML-tiedostoja, tehdä sinä-- 330 00:15:19,610 --> 00:15:22,226 [? sinä?] [? vain soittaa se?] [äänetön] PHP-tiedosto? 331 00:15:22,226 --> 00:15:23,350 DAVID MALAN: Hyvä kysymys. 332 00:15:23,350 --> 00:15:26,070 Web tilanteessa, mikä olemme kirjaimellisesti noin siirtymistä, 333 00:15:26,070 --> 00:15:28,028 et käytä ns roska huipulla, 334 00:15:28,028 --> 00:15:31,980 koska raina server-- usein ohjelma nimeltä Apache tai Microsoftin 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server, tai useita muita web-palvelinohjelmisto, 336 00:15:37,470 --> 00:15:40,636 tietää, että kun se näkee piste PHP-tiedosto, että se 337 00:15:40,636 --> 00:15:42,010 pitäisi ajaa tulkin sitä. 338 00:15:42,010 --> 00:15:43,468 Se ei katso, että ensimmäinen rivi. 339 00:15:43,468 --> 00:15:45,580 Joten tämä ensimmäinen rivi temppu on vain kun olet 340 00:15:45,580 --> 00:15:48,330 kirjallisesti komentoriviltä programs-- joka emme tee Super usein, 341 00:15:48,330 --> 00:15:52,510 mutta se on meidän tapa kuroa meidän C esimerkkejä nyt meidän PHP. 342 00:15:52,510 --> 00:16:00,680 >> Joten todellakin kuroa tämä maailma komentoriviltä maailman web 343 00:16:00,680 --> 00:16:02,230 toimimalla seuraavasti. 344 00:16:02,230 --> 00:16:05,090 Anna minun mennä eteenpäin ja tehdä täällä vain hetken. 345 00:16:05,090 --> 00:16:09,940 Joten jos meillä on web-palvelimen, tai pikemminkin jos meillä on minun laptop tänne, 346 00:16:09,940 --> 00:16:11,280 joissa pääsen piirtää näin. 347 00:16:11,280 --> 00:16:14,250 Ja tässä meillä Internet jossain muodossa. 348 00:16:14,250 --> 00:16:18,210 Ja sitten täällä, meillä on palvelin building-- 349 00:16:18,210 --> 00:16:20,760 tämä on, miten internet works-- ja täällä 350 00:16:20,760 --> 00:16:23,120 on palvelin valoja ehkä. 351 00:16:23,120 --> 00:16:27,530 Mitä todella tapahtuu näiden kahden yhteyksiä? 352 00:16:27,530 --> 00:16:29,240 >> Joten tässä rakennuksessa on web-palvelin. 353 00:16:29,240 --> 00:16:31,420 Se on vain tietokone joka on käynnissä jotkin käyttöjärjestelmät 354 00:16:31,420 --> 00:16:34,561 system-- ehkä ilmainen ohjelmisto nimeltään Apache, joka CS50 IDE on käynnissä. 355 00:16:34,561 --> 00:16:36,310 Joten voit itse ajatella tämän rakennuksen 356 00:16:36,310 --> 00:16:38,579 olevan rakennuksen joka CSt0 IDE on tallennettu. 357 00:16:38,579 --> 00:16:40,870 Siellä teillä kaikilla on tilit, jossa te kaikki 358 00:16:40,870 --> 00:16:43,130 on oma web-palvelin käynnissä, te kaikki 359 00:16:43,130 --> 00:16:45,730 on oma ainutlaatuinen URL, kun aloimme keskustella, 360 00:16:45,730 --> 00:16:47,280 ja näet enemmän P. asetettu kuusi. 361 00:16:47,280 --> 00:16:49,450 >> Tässä on minun laptop jonnekin muuallakaan Internetissä. 362 00:16:49,450 --> 00:16:54,550 Ja niin kun käyn URL, joka kuuluu minulle, että Internet-liikennettä on menossa 363 00:16:54,550 --> 00:16:58,360 yli palvelimelle, palvelimen vastaanotetaan HTTP-request-- 364 00:16:58,360 --> 00:17:02,900 kuten saada index.html ja se on vastaat kyseisen sivun. 365 00:17:02,900 --> 00:17:04,280 Niin, että yleinen paradigma. 366 00:17:04,280 --> 00:17:07,089 Kun taas kaiken ylös asti tänään, kaikki 367 00:17:07,089 --> 00:17:09,660 tapahtui vain rajojen tämän rakennuksen. 368 00:17:09,660 --> 00:17:12,910 Käytin minun laptop, mutta Olin liitetty CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 joten kaikki näistä ohjelmista Juoksin oli sisällä että palvelin, itse. 370 00:17:17,369 --> 00:17:22,660 >> Mutta nyt, aloitetaan uudelleenkäyttö PHP kirjoittaa joitakin todellisia ohjelmia, jotka 371 00:17:22,660 --> 00:17:24,230 palvelee kasvoi web-palvelin. 372 00:17:24,230 --> 00:17:30,320 Ja tehdä tämän, aion mennä osaksi koko joukko esimerkkejä 373 00:17:30,320 --> 00:17:33,710 että käyttöön tämä ajatus tässä. 374 00:17:33,710 --> 00:17:38,500 Joten tämä on tavallaan hieno tapa kuvataan ohjelmointi paradigma. 375 00:17:38,500 --> 00:17:41,540 >> Ja itse asiassa niin poistut CS50 tai työskennellä opinnäytetöiden, 376 00:17:41,540 --> 00:17:43,520 tai kestää jonkin seurata luokan, voit alkaa 377 00:17:43,520 --> 00:17:45,740 nähdä, että world-- varsinkin kasvoin 378 00:17:45,740 --> 00:17:48,300 kieliä kuten C jotka ovat super alhaiset level-- 379 00:17:48,300 --> 00:17:51,290 ymmärtää, että on parempi tapoja kirjoittaminen ohjelmisto. 380 00:17:51,290 --> 00:17:53,290 On tiettyjä malleja voit seurata, 381 00:17:53,290 --> 00:17:57,640 tiettyjä tapoja järjestää tiedostoja ja tapoja nimeät toimintoja, 382 00:17:57,640 --> 00:18:00,300 jotta pitkän tarinan lyhyesti, maailma on keksiä 383 00:18:00,300 --> 00:18:04,340 koko joukko lyhenteitä ja nimet tapoja ohjelmointia. 384 00:18:04,340 --> 00:18:06,260 Nämä ovat vain tekniikoita voit käyttää. 385 00:18:06,260 --> 00:18:09,660 >> Ja yksi niistä on nimeltään MVC, Model View Controller. 386 00:18:09,660 --> 00:18:12,270 Ja tämä on vain, varten nyt, liian monimutkainen 387 00:18:12,270 --> 00:18:18,960 tapa sanoa miten pitäisi asetella PHP-pohjainen sivusto, meidän tapauksessamme. 388 00:18:18,960 --> 00:18:22,140 Miten järjestää tiedostot, miten järjestää logiikka, 389 00:18:22,140 --> 00:18:26,220 tavalla, joka helpottaa kirjoittaa monimutkaisempi sivustot? 390 00:18:26,220 --> 00:18:28,550 Ja todellakin, käymme nopeasti sinne p-asettaa seitsemän. 391 00:18:28,550 --> 00:18:32,020 >> Joten maailmassa MVC, olet menossa nähdä, että meidän koodi voidaan yleensä 392 00:18:32,020 --> 00:18:38,290 luonnehtia joko Mallikoodi, tai ohjaimen koodi, tai katsella koodia. 393 00:18:38,290 --> 00:18:40,200 Ja aion pelkistettyjen se follows-- 394 00:18:40,200 --> 00:18:42,074 ohjain on aivot oman ohjelman, 395 00:18:42,074 --> 00:18:44,100 Siellä kaikki mielenkiintoinen logiikka tapahtuu. 396 00:18:44,100 --> 00:18:46,110 Joten kaikki olemme olleet kirjallisesti toistaiseksi luokassa, 397 00:18:46,110 --> 00:18:48,210 on ikään kuin ohjaimen code-- se valvontaan 398 00:18:48,210 --> 00:18:50,585 ohjelma, silmukat, sinun olosuhteet, teidän toiminnot 399 00:18:50,585 --> 00:18:52,100 ja muuttujat ja kaikki. 400 00:18:52,100 --> 00:18:56,160 >> Näkymät, nyt, tulevat olemaan hieman selvempi maailmassa rainan. 401 00:18:56,160 --> 00:18:59,360 Näkymä on estetiikka sivuston. 402 00:18:59,360 --> 00:19:04,080 Se mitä käyttäjä sees-- kuvia, HTML-taulukoita, HTML-tunnisteita, ja kaikki 403 00:19:04,080 --> 00:19:08,220 Kyseisen, kaikki pörröinen esteettinen tavaraa, joka ei ole niin vaikea kirjoittaa, 404 00:19:08,220 --> 00:19:11,380 mutta on juuri mitä olet tuottavan, on niin sanottu näkymä, estetiikka. 405 00:19:11,380 --> 00:19:13,880 Ja malli, lopulta on menossa on tietokanta, stuff-- joka 406 00:19:13,880 --> 00:19:16,510 aloitamme sukeltamalla kaikki enemmän tänä keskiviikkona. 407 00:19:16,510 --> 00:19:19,740 Joten ohjain on logiikka, Näkymä on esteettinen tavaraa, 408 00:19:19,740 --> 00:19:23,500 ja malli tulee olemaan missä Tallennamme meidän todelliset tiedot. 409 00:19:23,500 --> 00:19:26,410 >> Joten katsokaamme tämä konkreettisemmin seuraavalla esimerkillä. 410 00:19:26,410 --> 00:19:34,700 Aion mennä minun hakemistoon täällä nykypäivän lähde code-- jotka kaikki 411 00:19:34,700 --> 00:19:35,770 on saatavilla verkossa. 412 00:19:35,770 --> 00:19:37,800 Ja aion mennä versioon nolla. 413 00:19:37,800 --> 00:19:41,500 Ja tässä is-- kutsukaamme sitä versio nolla CS50 verkkosivuilla. 414 00:19:41,500 --> 00:19:43,010 Siellä ei ole paljon täällä ollenkaan. 415 00:19:43,010 --> 00:19:46,810 Se on hyvin yksinkertainen web-sivu, joka on luultavasti käyttäen mitä HTML tags-- vain 416 00:19:46,810 --> 00:19:48,970 arvata ohi esimerkkejä? 417 00:19:48,970 --> 00:19:49,890 >> Mikä tuo on? 418 00:19:49,890 --> 00:19:53,920 H1-- luultavasti että iso rohkea otsikko, että logo ylös, CS50. 419 00:19:53,920 --> 00:19:55,080 Ja mitä muuta on leikkiä? 420 00:19:55,080 --> 00:19:55,799 Joo? 421 00:19:55,799 --> 00:19:56,840 Yleisö: Järjestämätön lista. 422 00:19:56,840 --> 00:19:59,990 DAVID MALAN: Järjestämätön list-- niin UL tag ja ehkä pari LI tageja. 423 00:19:59,990 --> 00:20:01,840 Ja jos et muista näitä, se rehellisesti ei ole väliä. 424 00:20:01,840 --> 00:20:04,170 Nämä ovat pörröinen eräänlainen toteutuksen yksityiskohdat HTML 425 00:20:04,170 --> 00:20:06,378 että voit nopeasti etsiä ja olet taas matkalla. 426 00:20:06,378 --> 00:20:10,040 Me keskittyä enemmän ohjelmointi ideoita, jotka ovat juicier kappaletta. 427 00:20:10,040 --> 00:20:12,890 >> Joten vain ottaa nopeasti katso HTML-- ja todellakin 428 00:20:12,890 --> 00:20:16,880 jos minä avata näytä lähdekoodi täällä, yup, Juuri täällä tapahtuu. 429 00:20:16,880 --> 00:20:18,440 Ei UL-tunniste. 430 00:20:18,440 --> 00:20:20,630 Sisäkkäisiä sisällä joka on LI tageja. 431 00:20:20,630 --> 00:20:24,470 Ja sitten Lainasin URL todellisen oppimäärän täällä. 432 00:20:24,470 --> 00:20:27,570 >> Ja sitten lectures.php on ilmeisesti 433 00:20:27,570 --> 00:20:31,640 toinen dynaamisesti sivu joka on menossa on, katsotaanpa see-- ah, 434 00:20:31,640 --> 00:20:33,170 kahden ensimmäisen viikon luento. 435 00:20:33,170 --> 00:20:36,600 Joten viikko nolla ja viikko yksi, katsotaanpa katso this-- jos näen sivun lähdekoodi, 436 00:20:36,600 --> 00:20:38,120 myös erittäin yksinkertainen. 437 00:20:38,120 --> 00:20:42,430 Nämä johtavat kaksi sivua kutsutaan week0.php, ja week1.php. 438 00:20:42,430 --> 00:20:44,040 Joten harkita nyt, mitä tapahtuu. 439 00:20:44,040 --> 00:20:50,630 >> Kun klikkaan week0.php, minun laptop tekee pyyntöä week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Web-palvelin, alias, CS50 IDE, vastaanottaa että virtuaalinen kirjekuori. 442 00:20:58,110 --> 00:21:01,040 Se näkee viestin kuten, saat week0.php. 443 00:21:01,040 --> 00:21:05,060 Se on sitten tulkita tiedosto, alkuun alas, vasemmalle right-- tiedosto 444 00:21:05,060 --> 00:21:07,720 nimeltään week0.php-- ja sylkeminen ulos tulokset. 445 00:21:07,720 --> 00:21:10,510 Joten sisällä olevan tiedoston, week0.php, on 446 00:21:10,510 --> 00:21:15,410 ohjain logiikka, joka tuottaa tämän HTML, ja me pian nähdä, että. 447 00:21:15,410 --> 00:21:19,340 >> Mutta nyt haluan klikkaa viikolla nolla, ja nyt meillä on keskiviikko ja perjantai, 448 00:21:19,340 --> 00:21:25,260 ja nyt meillä on dioja hitaasti viikko nolla. 449 00:21:25,260 --> 00:21:27,400 Ja saatat muistaa Tämä siitä Paluumatkalla kun. 450 00:21:27,400 --> 00:21:29,340 Niin, että kaikki tämän sivuston tekee. 451 00:21:29,340 --> 00:21:31,120 >> Joten pohtia, miten se tekee tämän. 452 00:21:31,120 --> 00:21:34,290 Aion mennä takaisin lähdekoodia täällä, CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 ja aion avata index.php. 454 00:21:36,660 --> 00:21:38,910 Ylimpänä tämän tiedoston on joukko kommentteja. 455 00:21:38,910 --> 00:21:43,000 Ja sitten keskellä olevan tiedoston, se kääntyy pois, ei PHP lainkaan. 456 00:21:43,000 --> 00:21:47,380 Koska jos sinulla ei ole mitään alkusulkumerkki kysymysmerkki PHP tunnisteet, 457 00:21:47,380 --> 00:21:49,180 olet vapaa vain laittaa HTML. 458 00:21:49,180 --> 00:21:51,480 >> Koska mitä PHP tulkki on tarkoitus tehdä, 459 00:21:51,480 --> 00:21:53,938 on, kun se lukee tätä file-- ylhäältä alas, vasemmalle right-- 460 00:21:53,938 --> 00:21:59,100 se vain tulkitsee koodia se näkee välillä ne kulmakiinnikkeet kysymysmerkki. 461 00:21:59,100 --> 00:22:02,380 Ja muuta, että se ei tunnustaa PHP, se vain sylkee. 462 00:22:02,380 --> 00:22:05,080 Ja HTML on yksi kamaa se vain sylkäistä. 463 00:22:05,080 --> 00:22:09,090 >> Joten tämä tiedosto voi olla kutsuttu index.html, 464 00:22:09,090 --> 00:22:11,690 mutta olen nimeäminen kaiken dot PHP ponnahduslautana. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- samalla tavalla underwhelming, se on vain joitakin HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php, samoin vain joitakin HTML. 467 00:22:19,840 --> 00:22:22,300 >> Mutta Nyt laittaa sananlaskun suunnittelu hattu, 468 00:22:22,300 --> 00:22:24,400 ja pohdittava, miten voimme parantaa tätä. 469 00:22:24,400 --> 00:22:28,541 Ei ole vaikea tehdä tätä, mutta olen sellainen hajautetun osaksi kopioi ja liitä. 470 00:22:28,541 --> 00:22:31,540 Ja itse asiassa, jos teen viikolla kaksi, te tietää mitä minä luultavasti tehdä? 471 00:22:31,540 --> 00:22:34,940 Aion mennä week1.php, olen menossa esiin kaiken. 472 00:22:34,940 --> 00:22:39,110 Aion kopioida, liitä se uuteen tiedosto nimeltä week2.php, 473 00:22:39,110 --> 00:22:42,440 nipistää joitakin URL-osoitteita ja olla tulossa. 474 00:22:42,440 --> 00:22:45,240 >> Joten sen perusteella, mitä olemme nähdään C jo, 475 00:22:45,240 --> 00:22:46,860 tämä ei tunnu oikealta, toivottavasti. 476 00:22:46,860 --> 00:22:49,610 Kopioida, liittää harvoin oikea ratkaisu. 477 00:22:49,610 --> 00:22:51,429 Mitä siis voimme alkaa tehdä parantaakseen tämän? 478 00:22:51,429 --> 00:22:53,345 Missä ovat mahdollisuudet voidaan paremmin suunnitella? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> Mennessä pääsen viikko kahdeksan, se on menossa 481 00:22:58,760 --> 00:23:00,910 olla todella ärsyttävää jos haluan muuttaa 482 00:23:00,910 --> 00:23:03,930 fontin jokaisen sivuillani, tai jos haluan 483 00:23:03,930 --> 00:23:06,522 muuttaa rakennetta asettelua. 484 00:23:06,522 --> 00:23:08,396 Joten missä on mahdollisuus voidaan paremmin suunnitella? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 No, katsotaanpa miettiä mitä yhteinen kaikkien näiden tiedostojen. 487 00:23:15,160 --> 00:23:21,696 >> Tässä viikko yksi, tässä on viikko nolla, tässä lectures.php, 488 00:23:21,696 --> 00:23:25,790 tässä index.php-- mikä on sama ja mikä on erilaista, karkeasti ottaen, 489 00:23:25,790 --> 00:23:26,760 kussakin näistä tiedostoista? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Joo? 492 00:23:32,060 --> 00:23:34,560 >> Yleisö: [äänetön] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID MALAN: OK, hyvä. 495 00:23:42,160 --> 00:23:46,115 Joten siellä on kuvio, varmasti, jolloin joka kerta päätän luento I, 496 00:23:46,115 --> 00:23:48,250 Minun pitäisi tuottaa hyvin samannäköisiä sivu. 497 00:23:48,250 --> 00:23:50,375 Ja joten ehkä voin hyödyntää että todella, 498 00:23:50,375 --> 00:23:53,060 me tietoisesti numeerisesti indeksoitu meidän lectures-- 499 00:23:53,060 --> 00:23:55,290 jos voin laittaa vieläkin sanat vastauksesi. 500 00:23:55,290 --> 00:23:59,984 Ja mikä on ainoa asia, todella, että on muuttumassa välillä viikko one-- 501 00:23:59,984 --> 00:24:02,400 ja haluan selaa joten se on suunnilleen samalla place-- 502 00:24:02,400 --> 00:24:05,480 joten tässä viikko nolla, suunnilleen huipulla. 503 00:24:05,480 --> 00:24:12,370 Tässä on viikko yksi, viikko nolla, viikko yksi, viikko nolla. 504 00:24:12,370 --> 00:24:14,370 OK, kirjaimellisesti jos tiedät ole ohjelmaa lainkaan, 505 00:24:14,370 --> 00:24:16,286 tämä on nyt aivan kuin kaavoja peli. 506 00:24:16,286 --> 00:24:17,200 Joten mikä on erilaista? 507 00:24:17,200 --> 00:24:18,765 Joo? 508 00:24:18,765 --> 00:24:19,777 >> Yleisö: [äänetön] 509 00:24:19,777 --> 00:24:22,360 DAVID MALAN: Hyvä, joten otsikko muuttuu, koskaan niin hieman. 510 00:24:22,360 --> 00:24:24,010 Zero on menossa, tietenkin yksi. 511 00:24:24,010 --> 00:24:25,570 Sama asia tapahtuu H1 tag. 512 00:24:25,570 --> 00:24:28,790 Ja emme oikein näe sitä helposti, koska URL-osoitteet ovat hieman pitkä. 513 00:24:28,790 --> 00:24:30,670 Mutta ne URL-osoitteet muuttuvat hieman. 514 00:24:30,670 --> 00:24:34,490 >> Mutta mitä ei vaihtoväli, uskallan sanovat, suurin osa sisällöstä page-- 515 00:24:34,490 --> 00:24:38,530 HTML-koodi on sama, pää on sama otsikko on lähes sama, 516 00:24:38,530 --> 00:24:40,659 runko on sama, ja melkein kaikki muu 517 00:24:40,659 --> 00:24:42,450 on sama, lukuun ottamatta nuo pienet hienosäädön. 518 00:24:42,450 --> 00:24:45,310 Joten kuinka voimme edetä factoring joitakin tätä? 519 00:24:45,310 --> 00:24:48,740 >> No haluan ehdottaa täsmälleen että seuraavassa versiossa. 520 00:24:48,740 --> 00:24:53,890 Joten tässä versiossa yksi, minulla on tarkka samoihin tiedostoihin, sekä pari muuta. 521 00:24:53,890 --> 00:24:59,730 Tässä index.php-- ja vaikka et ole koskaan nähnyt PHP ennen, 522 00:24:59,730 --> 00:25:05,511 mitä olen luultavasti tekemässä ratkaisemiseksi problem-- perusteella, mitä näet tässä? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Joo, on että hieman sitoumus? 525 00:25:12,760 --> 00:25:13,450 Ei? 526 00:25:13,450 --> 00:25:16,020 Kyllä, mennä. 527 00:25:16,020 --> 00:25:17,380 >> Yleisö: [äänetön] 528 00:25:17,380 --> 00:25:18,380 >> DAVID MALAN: Jep. 529 00:25:18,380 --> 00:25:20,380 >> Yleisö: [äänetön] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID MALAN: sinun pitää puhua vain vähän kovempaa. 532 00:25:28,669 --> 00:25:31,084 >> Yleisö: [äänetön] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID MALAN: OK, hyvä. 535 00:25:36,660 --> 00:25:38,620 Ja minä think-- se oli vaikea kuulla sinä-- mutta minä 536 00:25:38,620 --> 00:25:42,690 ajatella mitä saat on on, että tunnisteet, jotka ovat yhteisiä ylös, 537 00:25:42,690 --> 00:25:47,710 ja tunnisteet, jotka olivat yleisiä pohja, on nyt pois laskusta, 538 00:25:47,710 --> 00:25:51,140 tai taka mitä tiedostoja? 539 00:25:51,140 --> 00:25:53,476 Header.php ja footer.php-- ja olemme menossa 540 00:25:53,476 --> 00:25:55,600 tehdä joitakin tweaks puuttumaan huolta juuri 541 00:25:55,600 --> 00:25:59,370 herättänyt numerot vaihtokauppoja Esimerkiksi, jos kuulin oikein. 542 00:25:59,370 --> 00:26:02,060 >> Mutta se näyttää olevan ydin se. 543 00:26:02,060 --> 00:26:04,820 Jos oli valtavasti irtisanominen yläreunassa sivun, 544 00:26:04,820 --> 00:26:06,736 ja valtava määrä irtisanominen alareunassa, 545 00:26:06,736 --> 00:26:09,280 nyt kirjaimellisesti vain kohokohta ja leikkaa että sisällön ulos, 546 00:26:09,280 --> 00:26:13,270 laita se erilliseen file-- kuten ajatus CSS, jossa laskelmiin ulos 547 00:26:13,270 --> 00:26:16,710 hyvin samankaltainen estetiikka, laittaa se erilliseen piste PHP-tiedosto, 548 00:26:16,710 --> 00:26:20,340 Käytä vaativat mechanism-- joka on kuin C terävä include-- joka 549 00:26:20,340 --> 00:26:23,570 on pohjimmiltaan kuin sanoisi mennä napata sisältö header.php, 550 00:26:23,570 --> 00:26:25,370 ja kopioida ja liittää ne tästä. 551 00:26:25,370 --> 00:26:29,490 >> Mutta mitä tämä tarkoittaa, että nyt index.php, minulla on nämä kaksi riviä. 552 00:26:29,490 --> 00:26:32,130 Vuonna lectures.php, olen myös on nämä kaksi riviä. 553 00:26:32,130 --> 00:26:35,230 Vuonna week0.php, olen myös on nämä kaksi riviä. 554 00:26:35,230 --> 00:26:38,380 >> Joten nyt, jos haluan muuttaa otsikko kaikki minun sivuja, 555 00:26:38,380 --> 00:26:40,530 tai haluan vaihtaa perusrakenteen, 556 00:26:40,530 --> 00:26:44,380 Voin vaihtaa sen nyt vain yhdessä paikassa, tai kaksi places-- header ja footer, 557 00:26:44,380 --> 00:26:45,429 vastaavasti. 558 00:26:45,429 --> 00:26:47,970 Nyt koodin alkavat näyttää hieman arvoituksellisesti, eikö? 559 00:26:47,970 --> 00:26:53,590 Mutta jos ajattelee, mitä sivu on doing-- jos olen pyynnön week0.php, 560 00:26:53,590 --> 00:26:59,880 aivan kuten piirustus yli here-- kun week0.php haetaan, 561 00:26:59,880 --> 00:27:00,960 mitä se tarkoittaa? 562 00:27:00,960 --> 00:27:04,410 >> Kirjaimellisesti, tämä tiedosto on selain pyytää. 563 00:27:04,410 --> 00:27:06,240 Web server-- alias 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- nappaa tämä tiedosto, week0.php, ja lukee 565 00:27:09,250 --> 00:27:10,780 se ylhäältä alas, vasemmalta oikealle. 566 00:27:10,780 --> 00:27:15,400 Linjalla yksi, se heti kohtaa alkusulkumerkki kysymysmerkki PHP, vaatia 567 00:27:15,400 --> 00:27:17,872 header dot PHP, ja niin mitä PHP tulkki 568 00:27:17,872 --> 00:27:20,580 does-- joka on rakennettu osaksi web palvelin, koska me valmiiksi 569 00:27:20,580 --> 00:27:24,580 se sinä-- se menee automaattisesti osaksi header.php, kopioi sisältö, 570 00:27:24,580 --> 00:27:25,640 pastat ne tästä. 571 00:27:25,640 --> 00:27:28,790 >> Mutta sitten tulkki kohtaamiset kysymysmerkki lähellä kiinnike, 572 00:27:28,790 --> 00:27:30,320 joten se kaikki tapahtuu ajattelua. 573 00:27:30,320 --> 00:27:33,400 Nyt se vain sokeasti sylkee ulos linjat kaksi kautta seitsemän, 574 00:27:33,400 --> 00:27:35,240 koska se on vain raaka HTML. 575 00:27:35,240 --> 00:27:38,470 Pääsee linja kahdeksan, ja tekee sen sama taika again-- tiedoston avaus 576 00:27:38,470 --> 00:27:41,460 tarttumalla sisältö, ja että heidän tai liittämällä ne 577 00:27:41,460 --> 00:27:42,480 juuri silloin tai siellä. 578 00:27:42,480 --> 00:27:44,210 >> Mutta minä vain viittasin bugi. 579 00:27:44,210 --> 00:27:48,610 Tämä on osittainen askel taaksepäin, koska jos katsomme header.php, 580 00:27:48,610 --> 00:27:50,850 Olen tavallaan leikattu kulma. 581 00:27:50,850 --> 00:27:56,250 Mitä ominaisuus minä periksi, jotta saada tämä kyseenalaista parempi suunnittelu? 582 00:27:56,250 --> 00:27:57,305 Joo? 583 00:27:57,305 --> 00:27:58,180 Yleisö: [äänetön] 584 00:27:58,180 --> 00:28:00,570 DAVID MALAN: Joo, olen sellainen Leikatun triviaali nurkkaan. 585 00:28:00,570 --> 00:28:04,489 Voit huomautti, että mitä oli muuttumassa oli otsikko, numero otsikossa, 586 00:28:04,489 --> 00:28:05,530 ja numero H1. 587 00:28:05,530 --> 00:28:08,170 Joten minun ratkaisu oli, OK, Haluan vain nimetä uudelleen, 588 00:28:08,170 --> 00:28:10,080 eikä käsitellä että ongelma lainkaan. 589 00:28:10,080 --> 00:28:12,130 Niin, että osittainen askel taaksepäin varmasti. 590 00:28:12,130 --> 00:28:14,300 >> Mutta mikä on huomionarvoista täällä on, että mitä olen tehnyt 591 00:28:14,300 --> 00:28:17,200 on muuten laskelmiin kaikki yhteistä kamaa. 592 00:28:17,200 --> 00:28:21,520 Ja footer.php, huomaan laskelmiin pois kaikki tämä, vaikkakin vähemmän, 593 00:28:21,520 --> 00:28:22,790 yhteinen kamaa. 594 00:28:22,790 --> 00:28:26,070 Joten minun täytyy jotenkin nyt pystyä ottaa toisen askeleen eteenpäin, ja vahvistaa 595 00:28:26,070 --> 00:28:27,160 että otsikko kysymyksiä. 596 00:28:27,160 --> 00:28:28,180 Joten tehdä. 597 00:28:28,180 --> 00:28:35,060 >> Anna minun mennä minun toinen versio täällä, joka taas on samat tiedostot 598 00:28:35,060 --> 00:28:36,825 paitsi yksi uusi lisäksi. 599 00:28:36,825 --> 00:28:38,950 Ja se on hieman verbose, mutta katsotaan jos me 600 00:28:38,950 --> 00:28:40,550 voi kiusata erilleen mitä täällä tapahtuu. 601 00:28:40,550 --> 00:28:45,370 Joten sen sijaan edellyttävät header.php, ja footer.php, 602 00:28:45,370 --> 00:28:50,180 Näytän olevan edellyttämällä yksi file-- kutsutaan, tietenkin, helpers.php. 603 00:28:50,180 --> 00:28:52,560 Ja haluan määrätään nyt, mitä sisällä helpers.php 604 00:28:52,560 --> 00:28:55,330 on vain joukko toimintoja että kirjoitin, aivan kuten ennen. 605 00:28:55,330 --> 00:28:57,550 Mutta kutsuin sitä helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Nyt ilmeisesti, vuonna linja kolme ja 10, olen 607 00:29:00,370 --> 00:29:02,840 jossa kaksi functions-- tehdä header, tehdä footer. 608 00:29:02,840 --> 00:29:05,040 Ne eivät tule PHP, kirjoitin ne itse. 609 00:29:05,040 --> 00:29:07,880 Ja laitoin ne helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Nyt olemme vain nähnyt tämän syntaksin kerran, ja se oli super lyhyt. 611 00:29:11,210 --> 00:29:15,330 Mutta tämä on ilmeisesti argumentti tehdä header, toiminto. 612 00:29:15,330 --> 00:29:16,450 Miksi minä tiedän, että? 613 00:29:16,450 --> 00:29:18,522 No tässä lähellä paren, tässä avoin paren. 614 00:29:18,522 --> 00:29:21,230 Ja tietenkin, kuten C, mitään näiden sulkeissa 615 00:29:21,230 --> 00:29:23,350 on input-- tai argumentti toiminto. 616 00:29:23,350 --> 00:29:26,710 >> Mikä on tietotyyppi tämän väitteen, sen perusteella, mitä olen korostanut? 617 00:29:26,710 --> 00:29:30,820 Mitä ne hakasulkeita osoittavat, joka perustuu viime viikolla? 618 00:29:30,820 --> 00:29:33,390 Joo, se on array-- erityisesti tällainen taulukko. 619 00:29:33,390 --> 00:29:35,700 Ja tämä syntaksi tosin on hieman outoja, 620 00:29:35,700 --> 00:29:38,860 mutta tämä on vain ohimennen yksi keskeinen arvo pari. 621 00:29:38,860 --> 00:29:43,530 Tärkeintä on, lainaus lainaus päättyy otsikko, ja arvo on CS50. 622 00:29:43,530 --> 00:29:46,220 >> Jos olisimme tehneet tämän C, se voisi sen sijaan 623 00:29:46,220 --> 00:29:49,400 näyttämään tämän, vain lainaus lainaus päättyy CS50-- 624 00:29:49,400 --> 00:29:52,460 tai oikeastaan ​​se olisi kihara henkselit, tai jotain C, 625 00:29:52,460 --> 00:29:55,580 missä avain on nolla, ja arvo on CS50. 626 00:29:55,580 --> 00:29:59,840 Mutta jälleen kerran, PHP, vaikka syntaksi on, taas vähän outo, 627 00:29:59,840 --> 00:30:02,860 sen avulla voit kulkea sanoja numeroiden sijasta 628 00:30:02,860 --> 00:30:05,120 yhdistää avaimet arvoja. 629 00:30:05,120 --> 00:30:06,390 >> Mitä tämä kaikki tarkoittaa? 630 00:30:06,390 --> 00:30:09,750 Jos menen helpers.php, Katsotaanpa tätä toimintoa. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, pikemminkin renderHeader on tehtäväni, 632 00:30:13,620 --> 00:30:16,220 ja tiedän, että koska näen toiminto avainsana tässä. 633 00:30:16,220 --> 00:30:19,450 Tämä on uusi päässä C-- se ilmeisesti vie argumentin nimeltä data-- 634 00:30:19,450 --> 00:30:22,400 mutta voisin ovat kutsuneet tätä mitään, mutta kutsuin sitä tietoa, 635 00:30:22,400 --> 00:30:25,090 vain olla hieman clean-- ja ota arvaus, erityisesti 636 00:30:25,090 --> 00:30:28,173 jos olet ohjelmoinut muulla korkeamman tason kieli ennen, jotain 637 00:30:28,173 --> 00:30:29,820 Edellä C, käsitteellisesti. 638 00:30:29,820 --> 00:30:33,820 >> Mitä yhdenvertaisen alkusulkumerkki hakasulje luultavasti tarkoittaa? 639 00:30:33,820 --> 00:30:35,540 Tai mitä voisi se tarkoittaa? 640 00:30:35,540 --> 00:30:39,660 Emme ole nähnyt tätä C. Joo? 641 00:30:39,660 --> 00:30:40,480 >> Tyhjä jono. 642 00:30:40,480 --> 00:30:45,440 Erityisesti tämä tarkoittaa, että jos käyttäjä ei soita renderHeader 643 00:30:45,440 --> 00:30:49,340 jossa argumentti, Aion silti on argumentin nimeltä tietoja, 644 00:30:49,340 --> 00:30:52,327 mutta sen oletusarvo on olemaan tyhjä jono. 645 00:30:52,327 --> 00:30:53,660 Joten se on vain mukava mukavuutta. 646 00:30:53,660 --> 00:30:56,493 Minulla ei ole huutaa käyttäjä, tai sanoa käytit tehtäväni väärin. 647 00:30:56,493 --> 00:30:59,849 Voin vain antaa käyttäjälle oletuksena arvoa, jos en ole erityisen välitä. 648 00:30:59,849 --> 00:31:01,890 Nyt tämä toiminto, olen menossa aalto käsiäni. 649 00:31:01,890 --> 00:31:07,620 Mutta tämä ote toiminnon avulla voimme siirtää näitä muuttujia tiedot 650 00:31:07,620 --> 00:31:10,360 osaksi header.php seuraavasti. 651 00:31:10,360 --> 00:31:13,100 Ja tämä on viimeinen pala, Luulen, funky syntaksin. 652 00:31:13,100 --> 00:31:15,860 Tässä on minun uusi versio of header.php-- se 653 00:31:15,860 --> 00:31:20,140 tapana sanoa, kirjaimellisesti, avoin kiinnike otsikko CS50, ja se oli siinä. 654 00:31:20,140 --> 00:31:21,766 Ja sama asia H1. 655 00:31:21,766 --> 00:31:24,310 >> Nyt se ilmeisesti sanoo jotain melko funky. 656 00:31:24,310 --> 00:31:28,030 Ja haluaisin yksinkertaistaa tämä hetkeksi seuraavasti. 657 00:31:28,030 --> 00:31:31,020 Tämä on mitä olen muuttanut nimike. 658 00:31:31,020 --> 00:31:35,140 Kuitenkin, se alkaa hieman ruma jatkuvasti avoin suluissa PHP, 659 00:31:35,140 --> 00:31:36,610 ja sitten käyttää tulostusta. 660 00:31:36,610 --> 00:31:40,810 On käynyt ilmi, että PHP on lyhenne merkintätapa tämä, joka on vain 661 00:31:40,810 --> 00:31:45,050 yhtäläisyysmerkki, joka on teknisesti toiminto nimeltään echo sijaan tulosta, 662 00:31:45,050 --> 00:31:46,800 mutta se on sama asia, tehokkaasti. 663 00:31:46,800 --> 00:31:48,440 >> Se vain näyttää paremmalta. 664 00:31:48,440 --> 00:31:50,510 Se on vain syntaktinen sokeri, jos haluatte, 665 00:31:50,510 --> 00:31:52,260 joka tekee minun koodi näyttää hieman paremmin. 666 00:31:52,260 --> 00:31:54,010 Mutta näyttää siltä, ​​ja näemme tämän uudelleen 667 00:31:54,010 --> 00:31:57,420 ennen pitkää, meidän täytyy kutsua tätä ärsyttävän pitkä toiminto nimeltään 668 00:31:57,420 --> 00:32:00,582 HTML erityistä merkkiä kohteessa PHP, koska se kääntyy pois 669 00:32:00,582 --> 00:32:02,790 on olemassa tiettyjä panoksia että käyttäjä voi antaa meille, 670 00:32:02,790 --> 00:32:05,160 tai että käyttäjät voisivat antaa meille, jotka ovat menossa murtaa sivustollemme. 671 00:32:05,160 --> 00:32:07,035 Mutta näemme, että seuraava viikko JavaScript. 672 00:32:07,035 --> 00:32:10,740 Mutta nyt, juuri tietää, että tämä tiedosto, headers.php, yksinkertaisesti 673 00:32:10,740 --> 00:32:13,040 vie otsikko, Kuljin, se tekee 674 00:32:13,040 --> 00:32:17,380 että se on turvallista ruiskuttaa web sivu, ja se sylkee sen pois minun otsikko 675 00:32:17,380 --> 00:32:18,640 ja minun H1. 676 00:32:18,640 --> 00:32:24,440 Joten jos menen tämän version nyt, huomaa, että luentoja on sen nimi takaisin, 677 00:32:24,440 --> 00:32:28,630 viikko nolla on sen nimi takaisin, ja todellakin, HTML olen tuottavan 678 00:32:28,630 --> 00:32:32,110 on sama kuin mitä minun ensimmäinen versio was-- paitsi minun välilyönnillä, 679 00:32:32,110 --> 00:32:35,150 koska olen alkanut formatoinnin minun koodi hieman eri tavalla. 680 00:32:35,150 --> 00:32:38,082 Mutta olen luotu kaikki koodi välitän. 681 00:32:38,082 --> 00:32:39,790 Joten haluan tauko vain hetken ja nähdä 682 00:32:39,790 --> 00:32:42,200 jos on kysyttävää tai sekavuutta Olen luonut. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Selvä, joten katsotaanpa twist hieman vaikeampi täällä 685 00:32:48,150 --> 00:32:51,500 onko siellä mahdollisuus parantaa. 686 00:32:51,500 --> 00:32:56,130 Helpers.php oli myös tämä toimintoa, jota kutsutaan renderFooter. 687 00:32:56,130 --> 00:32:59,652 Ja mikä on huomionarvoista noin renderHeader, ja renderFooter? 688 00:32:59,652 --> 00:33:02,610 Ja vielä, päivän tarkoituksiin, tietää että ote toiminto on vain 689 00:33:02,610 --> 00:33:08,280 minun tapa välittää argumentteja osaksi header.php ja footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Anteeksi? 692 00:33:11,780 --> 00:33:13,056 >> Yleisö: [äänetön] 693 00:33:13,056 --> 00:33:15,180 DAVID MALAN: Joo, minä vain muuttanut vaativat linja. 694 00:33:15,180 --> 00:33:19,410 Niin kirjaimellisesti, olen tehnyt syntiä kopiointi ja liittäminen, jälleen kerran. 695 00:33:19,410 --> 00:33:21,920 Se ei ole valtava määrä linjat, mutta tulevat on-- 696 00:33:21,920 --> 00:33:25,220 jos olen kopioimalla ja liittämällä kaikki vain muuttaa yhtä pieni sana, 697 00:33:25,220 --> 00:33:28,610 ja yksi pieni sana, joka Alan huomauttaa Out alatunnisteeseen täällä, verrattuna header täällä. 698 00:33:28,610 --> 00:33:30,670 Muuten kaikki on identtinen, lukuun ottamatta, 699 00:33:30,670 --> 00:33:32,180 tietenkin funktion nimiä. 700 00:33:32,180 --> 00:33:33,690 Mitä me voisimme tehdä paremmin? 701 00:33:33,690 --> 00:33:39,810 >> No anna minun avata tämän version täällä, jolloin vuonna helpers.php, 702 00:33:39,810 --> 00:33:42,300 miksi en vain saada vähän fiksumpia tästä? 703 00:33:42,300 --> 00:33:46,410 Kirjoita hieman monimutkaisempi koodi, mutta kutsuvat sitä tehdä? 704 00:33:46,410 --> 00:33:48,470 Joten mitä minä olen perusteellisesti muuttunut? 705 00:33:48,470 --> 00:33:51,770 >> Se vie argumentti now-- kaksi perustelua, tiedot edelleen. 706 00:33:51,770 --> 00:33:54,444 Ja mitä sitten on ensimmäinen nimi todennäköisesti käytetään, 707 00:33:54,444 --> 00:33:55,860 perusteella, mitä luet täällä? 708 00:33:55,860 --> 00:33:58,452 Vaikka jotkut syntaksin on vielä uusi. 709 00:33:58,452 --> 00:33:59,660 Mikä on dollarin merkki malli? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Anteeksi? 712 00:34:03,016 --> 00:34:03,710 >> Yleisö: ylä- tai alatunnisteen. 713 00:34:03,710 --> 00:34:04,510 >> DAVID MALAN: ylä- tai alatunnisteen. 714 00:34:04,510 --> 00:34:07,134 Joten ilmeisesti, päätin että jos ainoa asia, joka on muuttumassa 715 00:34:07,134 --> 00:34:10,159 on mitä malli haluan on print-- ja malli 716 00:34:10,159 --> 00:34:13,100 Tarkoitan tämä on suunnitelma koodi, joka haluan tuotos, 717 00:34:13,100 --> 00:34:16,350 mutta haluan plug joissakin values-- joten jos se on vain otsikko 718 00:34:16,350 --> 00:34:20,440 tai alatunnisteen, miksi en parametroida että ja soita argumentti dollarin merkki 719 00:34:20,440 --> 00:34:21,409 malli? 720 00:34:21,409 --> 00:34:26,250 Ja sitten tämä funky syntaksin antaa minulle luoda polku muuttuja tässä. 721 00:34:26,250 --> 00:34:28,030 >> Joten dollarin merkki polku on vaihteleva. 722 00:34:28,030 --> 00:34:31,120 Mitä tämä syntaksi do, jos olet perehtynyt? 723 00:34:31,120 --> 00:34:32,512 Joo? 724 00:34:32,512 --> 00:34:34,065 >> Yleisö: [äänetön] 725 00:34:34,065 --> 00:34:34,940 DAVID MALAN: Aivan. 726 00:34:34,940 --> 00:34:37,600 Jos malli on, lainaus lainaus päättyy, header, tai jos malli on, 727 00:34:37,600 --> 00:34:41,170 lainaus lainaus päättyy, footer, että linja siellä että olen korostanut, linja kahdeksan, 728 00:34:41,170 --> 00:34:46,330 on yksinkertaisesti ottaa tätä nimeä, kuten otsikko, ja liittämällä se piste PHP. 729 00:34:46,330 --> 00:34:49,750 Joten meillä ei ole tätä operaattori C. Tämä piste operaattori on 730 00:34:49,750 --> 00:34:54,520 hämmästyttävä asia PHP-- jos olet perehtynyt JavaScript tai Java, 731 00:34:54,520 --> 00:34:56,949 voit käyttää plus kirjaudu tehdä ketjuttamista. 732 00:34:56,949 --> 00:34:59,974 >> C, se on kipu neck-- ja olen niin pahoillani, P-set kuusi, 733 00:34:59,974 --> 00:35:02,390 olet menossa täytyy tehdä this-- se on kipua niskassa 734 00:35:02,390 --> 00:35:03,930 ketjuttaa merkkijonoja. 735 00:35:03,930 --> 00:35:04,670 Miksi? 736 00:35:04,670 --> 00:35:06,580 No, koska jos sinulla merkkijono, joka on tämän pitkän, 737 00:35:06,580 --> 00:35:09,538 ja toinen merkkijono, joka on tämän pitkän, et voi vain kytkeä niitä yhteen. 738 00:35:09,538 --> 00:35:11,070 Mitä sen sijaan täytyy tehdä C? 739 00:35:11,070 --> 00:35:11,680 Joo? 740 00:35:11,680 --> 00:35:12,380 >> Yleisö: [äänetön] 741 00:35:12,380 --> 00:35:15,090 >> DAVID MALAN: Sinun on malloc muisti, tai käytä array pinoon. 742 00:35:15,090 --> 00:35:17,214 Ja te oikeastaan ​​tarvitse tehdä, että joukko tarpeeksi suuri 743 00:35:17,214 --> 00:35:20,940 sopivaksi tämä plus tämä, plus kenoviiva nolla. 744 00:35:20,940 --> 00:35:24,994 Sitten liität ne yhteen sekoita kissa tai manuaalisesti silmukka, 745 00:35:24,994 --> 00:35:26,160 tai useita tekniikoita. 746 00:35:26,160 --> 00:35:27,760 Ja näytämme pari p-set kuusi. 747 00:35:27,760 --> 00:35:29,080 >> Se on kipua niskassa. 748 00:35:29,080 --> 00:35:34,190 Ja tämä on todella mitä tarkoitan noin tämä vs. this-- kuten C vastaan ​​PHP. 749 00:35:34,190 --> 00:35:36,870 Sinä vain saada niin paljon enemmän toiminnallisuus ilmaiseksi, 750 00:35:36,870 --> 00:35:39,030 jotta voit keskittyä, mieluiten, on hauskaa 751 00:35:39,030 --> 00:35:41,190 osa koodaus, projekti haluat ratkaista, 752 00:35:41,190 --> 00:35:43,190 pikemminkin kuin alhainen pikkuseikat. 753 00:35:43,190 --> 00:35:49,840 >> Joten tämä vain tuottaa header.php tai footer.php jonka perusteella yksi kutsun. 754 00:35:49,840 --> 00:35:52,280 Ja todellakin jos menen osaksi index.php, ilmoitus 755 00:35:52,280 --> 00:35:56,230 kaikki mitä changed-- sijaan soittamalla tehdä ylä- tai tehdä alatunnisteen, 756 00:35:56,230 --> 00:36:00,230 Soitan tehdä, jonka jälkeen nimi mallin, että haluan tehdä. 757 00:36:00,230 --> 00:36:02,370 Ja näet tämäkin, ongelmatilanteissa asettaa seitsemän, 758 00:36:02,370 --> 00:36:05,530 jolloin me voit käyttää Sama toiminto tehdä nippuina 759 00:36:05,530 --> 00:36:07,550 ja rypäleterttuja eri verkkosivujen. 760 00:36:07,550 --> 00:36:10,570 >> Joten mieluummin kuin asun liian paljon enemmän niihin details-- 761 00:36:10,570 --> 00:36:13,210 joka näet jälleen Harjoitus seven-- katsotaanpa 762 00:36:13,210 --> 00:36:16,850 on nyt alussa liuoksen entistä mielenkiintoinen ongelma. 763 00:36:16,850 --> 00:36:19,310 Tähän mennessä mitään olemme tehnyt on tallennettuja tietoja. 764 00:36:19,310 --> 00:36:22,920 Itse asiassa ainoa kerta, kun olemme koskaan tallennettu jotain olemme tehneet tässä luokassa 765 00:36:22,920 --> 00:36:31,030 on, kun meillä oli hyvin yksinkertainen demo jonkin aikaa takaisin, jolloin käytimme tiedosto IO C, 766 00:36:31,030 --> 00:36:34,520 ja mielestäni olen kirjoittanut nimeni, ja Hannahin nimi, ja Marian nimi, 767 00:36:34,520 --> 00:36:37,610 tai ehkä Andyn nimi, ja sitten tallennetaan CSV file-- 768 00:36:37,610 --> 00:36:39,430 pilkulla erotetut arvot tiedosto. 769 00:36:39,430 --> 00:36:43,530 >> Ja käytimme fopen-- mielestäni käytimme fprintf muistaakseni, 770 00:36:43,530 --> 00:36:44,910 ja me tallennettu tiedosto. 771 00:36:44,910 --> 00:36:46,920 Nyt, että on yksinkertaisin tietokannan muodossa. 772 00:36:46,920 --> 00:36:50,230 Jos haluat tehdä verkkosivuilla Frosh IMS-ohjelma, jonka Fuksit 773 00:36:50,230 --> 00:36:53,390 voi ilmoittautua urheilu, voit ihannetapauksessa haluavat tehdä jotain, että tiedot. 774 00:36:53,390 --> 00:36:55,370 Viime viikolla teimme mitään kanssa data-- me vain sanoi, 775 00:36:55,370 --> 00:36:56,661 olet rekisteröitynyt, ei oikeastaan. 776 00:36:56,661 --> 00:36:58,950 Tai ehkä sähköpostitse Proctor, ja se oli siinä. 777 00:36:58,950 --> 00:37:02,110 >> Mutta se olisi mukavaa, jos voisin antaa että Proctor CSV-tiedosto, 778 00:37:02,110 --> 00:37:03,340 kuten Excel-tiedoston. 779 00:37:03,340 --> 00:37:05,090 Tai vielä parempaa, se olisi olisi mukavaa, jos voisin 780 00:37:05,090 --> 00:37:08,830 laittaa ne käyttäjien nimiä ja asuntolan nimet ja kaikki tämä 781 00:37:08,830 --> 00:37:11,740 tietokantaan, joka vain elää ikuisesti, 782 00:37:11,740 --> 00:37:13,530 kunnes päätän poistaa tiedot. 783 00:37:13,530 --> 00:37:15,645 Tietokanta, jonka avulla minua kyselyn tiedot. 784 00:37:15,645 --> 00:37:18,070 Ja todellakin, sitähän tietokanta on. 785 00:37:18,070 --> 00:37:20,470 >> Esittelemme tänään, ja ensi viikolla, liian, tekniikka 786 00:37:20,470 --> 00:37:25,020 kutsutaan SQL-- Structured Query Kieli, joka on toinen kieli. 787 00:37:25,020 --> 00:37:28,750 Se on pohjimmiltaan ohjelmointi kieli, mutta tietokantoihin. 788 00:37:28,750 --> 00:37:31,760 Ja tietokanta nyt, vain ajatella kuin super hieno versio 789 00:37:31,760 --> 00:37:35,710 Microsoft Excel, tai Google Taulukkolaskenta, tai Apple Numerot. 790 00:37:35,710 --> 00:37:39,950 Se on yleensä ohjelma, jonka avulla voit tallentaa koko joukko tiedot 791 00:37:39,950 --> 00:37:43,960 riveihin ja sarakkeisiin, melko kuten saatat Excelissä. 792 00:37:43,960 --> 00:37:47,100 >> Mutta mitä on mukava, varsinkin jos emme ole super tuttuja Excel, 793 00:37:47,100 --> 00:37:52,040 mitä SQL voit tehdä on kyselyn tämä tiedot kirjoittamalla riviä koodia 794 00:37:52,040 --> 00:37:55,220 jossa voit, vaikka tietokanta on miljoona rivit se, 795 00:37:55,220 --> 00:37:57,190 Löydät asioita huippunopea. 796 00:37:57,190 --> 00:37:59,950 Itse asiassa, Excel on erityisen huono suuria tietomääriä. 797 00:37:59,950 --> 00:38:02,460 Ja itse asiassa jopa muutamia vuotta sitten, osoittautui 798 00:38:02,460 --> 00:38:08,890 Excel vain voit tallentaa jopa 65535 riviä data-- joka 799 00:38:08,890 --> 00:38:12,020 kuulostaa paljolta, mutta kun olin grad opiskelija, 800 00:38:12,020 --> 00:38:14,920 ja muistan kompastumisen tämä koska olin tuottavan 801 00:38:14,920 --> 00:38:17,900 CSV-tiedostoja minun tutkimusta ja minä halusivat analysoida niitä nopeasti 802 00:38:17,900 --> 00:38:19,530 vain avaamalla ylös Excelissä. 803 00:38:19,530 --> 00:38:23,730 Tietenkin minun tietokone vain kaatui, koska minulla oli enemmän kuin 65000 riviä. 804 00:38:23,730 --> 00:38:27,210 >> Mutta mistä 65535 tulevat? 805 00:38:27,210 --> 00:38:29,670 Mitä Microsoft tekee, oletettavasti? 806 00:38:29,670 --> 00:38:32,430 Jos olet hyvä kanssa voimiasi kaksi? 807 00:38:32,430 --> 00:38:37,160 Niin, he käyttivät 16-bittinen arvo edustaa rivin numero. 808 00:38:37,160 --> 00:38:41,310 Ja kaksi 16 on 65,536-- miinus yksi, koska jos 809 00:38:41,310 --> 00:38:45,414 nolla indeksi tarkoittaa, että oli useimmat rivien voisin olla. 810 00:38:45,414 --> 00:38:46,830 Ja se oli vain suunnittelun päätöstä. 811 00:38:46,830 --> 00:38:52,760 Säästämällä 16 bittiä, he rajoittaa minua 16000 riviä sijasta 4000000000, 812 00:38:52,760 --> 00:38:54,322 jotka olisin voinut ollut ihanteellisesti. 813 00:38:54,322 --> 00:38:57,030 Mutta nyt aiomme esitellä tämä lisää web yhteydessä. 814 00:38:57,030 --> 00:39:00,390 Ja mikä on mukavaa noin SQL on, että vaikka vaikka se on aika vahva ja kaunis 815 00:39:00,390 --> 00:39:04,050 hienostunut, se todella kiehuu alas neljä keskeistä toimintaa, neljä 816 00:39:04,050 --> 00:39:08,060 keskeisiä tehtäviä, jos will-- valitset, hakemisessa tietojen etsiminen 817 00:39:08,060 --> 00:39:12,510 tietojen; poistaa tai poistaa tietoja; lisätä lisäämällä rivejä tietokantaan; 818 00:39:12,510 --> 00:39:13,410 ja päivittäminen. 819 00:39:13,410 --> 00:39:17,010 Joten jos olet joskus käyttänyt Google Taulukkolaskenta, Apple Numerot, Microsoft 820 00:39:17,010 --> 00:39:19,310 Excel, olet teloitettiin, todennäköisimmin, kaikki 821 00:39:19,310 --> 00:39:22,530 Näiden toimintojen kuin ihmisen mukaan vain näppäimistön avulla ja mouse-- 822 00:39:22,530 --> 00:39:26,050 lisäämällä tietoja käyttämällä silmäsi Voit valita tai etsiä tietoja, 823 00:39:26,050 --> 00:39:28,360 tai päivittää tietoja tai poistaa tietoja. 824 00:39:28,360 --> 00:39:29,870 >> Mitä tämä tarkoittaa? 825 00:39:29,870 --> 00:39:34,300 No, esiasennettuna CS50 IDE on ohjelma nimeltä MySQL. 826 00:39:34,300 --> 00:39:37,050 Se on ilmainen, avoimen lähdekoodin tietokanta, jota on erittäin suosittu. 827 00:39:37,050 --> 00:39:40,590 Facebook, esimerkiksi, käyttää sitä tämän päivä, joukossa muita työkaluja, jotka he käyttävät. 828 00:39:40,590 --> 00:39:44,300 Ja paljon erittäin suositut sivustot käyttävät se suurelta osin, koska se on nopea, 829 00:39:44,300 --> 00:39:45,230 ja koska se on ilmainen. 830 00:39:45,230 --> 00:39:46,820 Vaikka varmasti vaihtoehtoja. 831 00:39:46,820 --> 00:39:49,580 Ja jotkut teistä ehkä harrastella vaihtoehtoja opinnäytetöiden. 832 00:39:49,580 --> 00:39:55,330 >> Tämä kuvakaappaus puolestaan ​​on Web-pohjainen työkalu nimeltään phpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 On sattumaa, että tätä web-pohjainen työkalu on myös 834 00:39:58,260 --> 00:40:01,720 kirjoitettu kielellä, PHP, mutta mitä se on tarkoitus tehdä 835 00:40:01,720 --> 00:40:04,620 on antaa meille web-pohjainen käyttöliittymä tietokantaan. 836 00:40:04,620 --> 00:40:07,180 Koska MySQL on tyypillisesti jotain, historiallisesti, te 837 00:40:07,180 --> 00:40:08,770 olisi vuorovaikutuksessa vain jossa komentoriviltä. 838 00:40:08,770 --> 00:40:10,811 Ja olisi erittäin ärsyttävää ja vaikeaselkoisten on 839 00:40:10,811 --> 00:40:14,487 kirjoittaa tekstisisältöä komentoja valita tiedot, lisätä tietoja, ja poistaa tietoja. 840 00:40:14,487 --> 00:40:16,820 Joten jotkut ihmiset Internetissä kirjoitti web-pohjainen ohjelma 841 00:40:16,820 --> 00:40:18,900 että vain meille hallita tiedot tietokantaamme. 842 00:40:18,900 --> 00:40:23,040 Se on kuin tuplaklikkaamalla Excel, ja käynnissä web-pohjainen versio sen. 843 00:40:23,040 --> 00:40:26,370 >> Ja mitä aiot käyttää tätä lopulta ensi viikolla, ei p-set kuusi, 844 00:40:26,370 --> 00:40:28,680 mutta on rakentaa jotain nimeltään CS50 Finance, joka 845 00:40:28,680 --> 00:40:32,630 tulee olemaan tietokanta käyttäjille, joilla käyttäjätunnuksia ja salasanoja, 846 00:40:32,630 --> 00:40:34,860 dollaria määriä, että ne ovat niiden pankkitileille. 847 00:40:34,860 --> 00:40:37,280 Se tulee olemaan jotain käytät tallentaa 848 00:40:37,280 --> 00:40:39,910 symbolit ja määrät varastojen että käyttäjät 849 00:40:39,910 --> 00:40:42,567 ostanut virtuaalisen dollareita, että voit antaa heille. 850 00:40:42,567 --> 00:40:44,900 Ja se tulee sallia käyttäjille rekisteröityä sivuston, 851 00:40:44,900 --> 00:40:47,190 niin että jopa ystäväsi Voit virittää sivustoosi 852 00:40:47,190 --> 00:40:49,360 ja todella rekisteröidä, kirjaudu sisään, ja leikkiä 853 00:40:49,360 --> 00:40:52,807 ja yrittää löytää vikaa koodissa, ja yrittää löytää virheitä sivuston. 854 00:40:52,807 --> 00:40:55,390 Ja he yksinkertaisesti ilmoittautua lisäämällä itse, tehokkaasti, 855 00:40:55,390 --> 00:40:58,120 kautta koodin kirjoittaa tietokantaan. 856 00:40:58,120 --> 00:41:02,470 >> Esimerkiksi, tämä lyhyesti kuvakaappaus mitä tietokanta voisi näyttää. 857 00:41:02,470 --> 00:41:05,190 Tämä oli yksi viime vuoden solutions-- 858 00:41:05,190 --> 00:41:07,760 tämä on kuin mini Excel tiedosto, tallennetaan tietokantaan, 859 00:41:07,760 --> 00:41:09,950 tallennettu tämän ohjelmiston nimeltään MySQL. 860 00:41:09,950 --> 00:41:13,260 Vasemmalla puolella, olen ilmeisesti annetaan jokaiselle käyttäjälle yksilöllinen numero. 861 00:41:13,260 --> 00:41:16,200 Toisessa sarakkeessa, olen antanut jokainen käyttäjä name-- oma 862 00:41:16,200 --> 00:41:16,880 heidän joukossa. 863 00:41:16,880 --> 00:41:21,430 Ja oikealla puolella, Olen antanut heille hash. 864 00:41:21,430 --> 00:41:26,760 >> Nyt tämä on todella salasana, mutta se ei ole pelkkää tekstiä salasana. 865 00:41:26,760 --> 00:41:30,160 Se on salattu salasanan, jos haluatte, tai hash salasana. 866 00:41:30,160 --> 00:41:32,000 Joka me palata ennen pitkää. 867 00:41:32,000 --> 00:41:34,340 >> Mutta jos olet koskaan lukenut artikkeli siitä, miten 868 00:41:34,340 --> 00:41:37,950 salasana jossain pankki tai joissakin sivusto on saattanut vaarantua, 869 00:41:37,950 --> 00:41:39,630 se voidaan yleensä tarkoittaa kahta asiaa. 870 00:41:39,630 --> 00:41:42,780 Joten tämä on vain ote kuusi käyttäjää. 871 00:41:42,780 --> 00:41:45,460 Kaikki te nyt voi selvittää out kautta hakkerointi tai halkeilua 872 00:41:45,460 --> 00:41:47,690 mitä kuusi ihmistä salasanoja ovat. 873 00:41:47,690 --> 00:41:49,720 Mutta jos olet joskus saanut hälytys tai anteeksipyyntö 874 00:41:49,720 --> 00:41:52,803 yritykseltä tai verkkosivuilla sanomalla, pahoillani, hakkeri murtautui meidän tietokantaan, 875 00:41:52,803 --> 00:41:56,360 sinun pitäisi luultavasti muuttaa salasana, mikä voisi tarkoittaa? 876 00:41:56,360 --> 00:41:59,670 >> No, yksi, voi tarkoittaa Yhtiö on ollut enemmän moronic, 877 00:41:59,670 --> 00:42:03,630 ja on tallentamiseen salasana sarakkeen näin, salaamaton. 878 00:42:03,630 --> 00:42:05,840 Mikä tarkoittaa vastustaja, joka varasti tietokanta, 879 00:42:05,840 --> 00:42:07,440 kirjaimellisesti tuntee käyttäjätunnus ja salasana. 880 00:42:07,440 --> 00:42:08,960 Se on pahin mahdollinen skenaario. 881 00:42:08,960 --> 00:42:11,710 Ja kuten näet p-sarja seitsemän, joten helppo välttää. 882 00:42:11,710 --> 00:42:15,624 Ei ole mitään tekosyytä, että muodossa tyhmyys nykypäivän Internet. 883 00:42:15,624 --> 00:42:18,540 Two-- ja me löytää joitakin artikkeleita todistamaan, että tämä edelleen 884 00:42:18,540 --> 00:42:21,710 tapahtuu, nonetheless-- kaksi, ehkä vastustaja 885 00:42:21,710 --> 00:42:23,840 oli tämä versio tietokannan. 886 00:42:23,840 --> 00:42:27,110 Joka on edelleen sellainen huono, koska nyt he tietävät, että minulla on kuusi asiakasta, 887 00:42:27,110 --> 00:42:29,270 Tiedän käyttäjätunnukset näistä kuusi asiakkaita, 888 00:42:29,270 --> 00:42:32,910 ja tiedän salattu versioita tai hajauttamat versiot, 889 00:42:32,910 --> 00:42:34,340 näistä kuusi asiakkaiden salasanoja. 890 00:42:34,340 --> 00:42:37,010 Mutta joku teistä jotka ehkä tehty [? Hakkeri 2?] 891 00:42:37,010 --> 00:42:41,150 jossa säröillä salasanoja, tai otti katso tuota versio ongelma 892 00:42:41,150 --> 00:42:46,280 sarja, miksi se vielä hieman huolestuttava jos vastustaja tuntee hash 893 00:42:46,280 --> 00:42:47,435 salasanat? 894 00:42:47,435 --> 00:42:49,732 >> Yleisö: koska ne voivat kirjoita koko sanakirja 895 00:42:49,732 --> 00:42:50,690 osaksi tiivistefunktio. 896 00:42:50,690 --> 00:42:54,520 Ja jos salasana on sanakirja sana, [? he voivat vain match--?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID MALAN: Aivan, vastustaja voi vain kirjoittaa koodia, kuten jotkut teistä 898 00:42:57,640 --> 00:43:00,526 teki [? Hakkeri?] 2, jolloin voit kerrata yli 899 00:43:00,526 --> 00:43:03,400 kaikki sanat sanakirjasta, tai kaikki mahdolliset yhdistelmät 900 00:43:03,400 --> 00:43:06,610 Z ja yksi kautta nine-- joka kuulostaa paljon, ja se on. 901 00:43:06,610 --> 00:43:08,361 Mutta tietokone, se on tosi nopea. 902 00:43:08,361 --> 00:43:10,610 Ja itse asiassa, että oli piste [? Hakkeri 2,?] Oli 903 00:43:10,610 --> 00:43:12,540 ottaa tavaraa, joka kirjaimellisesti näyttää tältä, 904 00:43:12,540 --> 00:43:14,900 ja purkaa mitä se todellisuudessa oli. 905 00:43:14,900 --> 00:43:17,270 >> Joten me tarkastelemme, miten voimme Tallenna tämä tehokkaammin. 906 00:43:17,270 --> 00:43:20,210 Osoittautuu, onneksi MySQL, siellä aiotaan tietotyyppejä. 907 00:43:20,210 --> 00:43:22,800 Ja yksi hauska osista noin tietokannan suunnittelu, ollakseni rehellinen, 908 00:43:22,800 --> 00:43:25,810 oikeastaan ​​tekee päätökset itse miten sinun pitäisi edustaa tietoja? 909 00:43:25,810 --> 00:43:29,630 Jos edustavat puhelinnumeron int, kuin iso numero, tai pitkä? 910 00:43:29,630 --> 00:43:31,630 Vai oletteko todella tehdä sen sarjana merkkiä? 911 00:43:31,630 --> 00:43:33,780 Ja siellä voi olla hyvin ei-triviaali vaikutuksia tämän. 912 00:43:33,780 --> 00:43:36,714 >> Itse asiassa, yksi aikaisintaan hauskaa Germane tarinoita 913 00:43:36,714 --> 00:43:39,880 on, kun Mark Zuckerberg rakensi Facebook, se oli kirjoitettu alunperin, 914 00:43:39,880 --> 00:43:42,300 ja vielä on pitkälti kirjoitettu PHP. 915 00:43:42,300 --> 00:43:45,400 Ja yksi suurimmista haasteista he kohtasivat varhain oli skaalaus. 916 00:43:45,400 --> 00:43:48,820 Kun he pitivät lisäämällä koulun jälkeen koulu koulun jälkeen, tietääkseni, 917 00:43:48,820 --> 00:43:51,639 yksi alkuperäisistä ratkaisujen oli lähinnä kopioida ja liittää 918 00:43:51,639 --> 00:43:53,430 Osa tietokannoista ja joitakin koodi, 919 00:43:53,430 --> 00:43:55,346 niin että Harvardin oli käynnissä omasta palvelimelle, 920 00:43:55,346 --> 00:43:56,995 ja MIT oli käynnissä omasta palvelimelle. 921 00:43:56,995 --> 00:43:59,120 Ja juuri sen vuoksi, joidenkin teistä, jotka ehkä muistaa, 922 00:43:59,120 --> 00:44:01,510 et voisi olla ystäviä muissa verkoissa. 923 00:44:01,510 --> 00:44:05,050 >> Et todennäköisesti ole ystäviä MIT tai Harvardin 10 tai niin vuotta sitten, 924 00:44:05,050 --> 00:44:07,467 mutta ei voinut span verkkojen sillä osittain tästä syystä. 925 00:44:07,467 --> 00:44:10,550 Ja yksi suurimmista haasteista Mark ja yrityksille kuten Facebook 926 00:44:10,550 --> 00:44:13,460 on todella käsittely sadoilta ja tuhansien ja miljoonien 927 00:44:13,460 --> 00:44:14,460 Pyyntöjen sekunnissa. 928 00:44:14,460 --> 00:44:16,501 Joten mitä me aloitamme puhumme tällä viikolla 929 00:44:16,501 --> 00:44:19,860 ovat todella olemaan germane kirjallisesti hyvä ohjelmisto, ja kansan keskuudessa 930 00:44:19,860 --> 00:44:23,040 onnistunut työkaluja, pystyy käsittelemään paljon käyttäjiä. 931 00:44:23,040 --> 00:44:25,460 >> Joten me puhumme asioista kuten indeksointi ja haku, 932 00:44:25,460 --> 00:44:26,910 mutta että se on tänään. 933 00:44:26,910 --> 00:44:28,780 Tulemme näkemään sinua lisää keskiviikkona. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [MUSIC - "SEINFELD" teema] 936 00:44:33,902 --> 00:44:35,943 DAVID MALAN: voit se, ja vähentävät sitä. 937 00:44:35,943 --> 00:44:38,859 Ja sinun ei tarvitse pitäytyä Joissakin ennalta määrätyn määrän muistia. 938 00:44:38,859 --> 00:44:40,580 No, mitä se aikoo kutsua? 939 00:44:40,580 --> 00:44:42,369 >> SPEAKER 1: No, mitä on tekeillä? 940 00:44:42,369 --> 00:44:43,535 SPEAKER 2: Mitä tarkoitat? 941 00:44:43,535 --> 00:44:44,451 Hän luennoi. 942 00:44:44,451 --> 00:44:47,650 DAVID MALAN: Ja voimme käyttää toiminto nimeltään malloc on memory-- 943 00:44:47,650 --> 00:44:50,050 >> SPEAKER 1: Miksi ei hänen aseita liikkuvat? 944 00:44:50,050 --> 00:44:52,450 >> SPEAKER 2: No that's-- tiedätte, se on normaalia. 945 00:44:52,450 --> 00:44:57,162 Se on aivan kuin hän on juuri iso makkarat roikkuu siellä. 946 00:44:57,162 --> 00:44:59,040 >> SPEAKER 1: Se on normaalia? 947 00:44:59,040 --> 00:45:03,096 >> SPEAKER 2: Joo, mielestäni vain olettaa hän vahingossa 948 00:45:03,096 --> 00:45:06,840 korvataan hänen deodorantti pikaliimalla. 949 00:45:06,840 --> 00:45:07,608