>> [Musiikkia]
>> DAVID MALAN: Tämä on CS50, ja tämä on alku viikolla kahdeksan.
Ja olemme niin innoissaan toivottaa takaisin, iso yllätys, CS50 oma Ramon
Galvan, nouseva vanhempi, joka on ollut menojen viime kuukausien
heinäkuusta lähtien LA, Hollywood, kirjaimellisesti työstää upouusi TV
näytä kutsutaan Colony, luoja, joka on todella Harvard aluna itse.
Ja niin olemme hyvin innoissani tästä debyytti USA Network tammikuussa.
Joten pysy kuulolla että sekä enemmän Ramon varten tulevina viikkoina.
>> Tiedä nyt, että loppu on lähellä.
Ja mitä tämä tarkoittaa, että siellä ei ole kaikki, että paljon jäljellä CS50, valitettavasti.
Meillä on vain kolme ongelma sarjaa left-- siellä
Harjoitus six-- joka on kädet nyt tai lähitulevaisuudessa,
myöhemmin tänä week-- on tarkoitus kuroa meidän maailmoissa komentoriviltä, ​​jossa
olemme käyttäneet suurimman osan ajastamme käyttämällä C, ja maailman web ohjelmointi.
No, näet paljon ideoita lainattu komentoriviltä työtä,
mutta myös paljon uutta ja mielenkiintoisia ideoita
että myös olemaan Germane varten mobiilisovelluksia ja teknologian,
yleisemmin, jonka kanssa kaverit ovat kaikki tuttuja nykyään
tietokoneet ja puhelimet ja vastaavat.
>> Joten sinun toteuttaa ei web-sivun, tai verkkosivuston
sinänsä, mutta todellinen web-palvelin.
Voit kirjoittaa loput web-palvelimen kirjoitettu C, jonka elämän tarkoitus
on vastaanottaa HTTP-pyyntöjä, ne virtuaalinen kirjekuoret me vatvoa
noin, ja itse asiassa vastata joko jotkut staattinen content-- kuin piste HTML
tiedosto, tai piste JPEG tai muut tiedostojen määrän,
tai jopa PHP-tiedosto, jossa Web- palvelin aikoo tulkita, että PHP
koodi ja sylkemään tulokset.
Nyt olemme toimittaneet teille melko vähän puitteet
varten it-- todellakin jakelu koodi ongelma
asettaa kuusi on yli 1000 riviä pitkä, paljon joka on kommentteja, olla fair--
mutta tämä on todella tarkoitti olla tilaisuus
saada kädet likainen sukellus osaksi melko suuri projekti
että olemme hyvin erityisesti veistetty kappaletta sinulle,
niin että todella, kun poistut CS50 ja kirjoita reaalimaailman ohjelmoinnin
ja haluavat harrastella mikä tahansa useita hankkeita,
sinulla on paljon suurempi Comfort noudetaan lähde
koodi, jotkut avoimen lähdekoodin hankkeen Webissä,
ja sukeltaminen ja tehdä muutokset parhaaksi näet.
Harjoitus seitsemän tulee olemaan noin tehdä oma web-pohjainen sovellus
joka vie dynamisoi ja tuottaa dynaamisen lähtö muodossa
of etrade.com kaltainen verkkosivuilla.
Ja ongelma asetettu kahdeksan keskitytään vielä toinen kieli tunnetaan JavaScript.
>> Samaan aikaan lopullinen hanke on näköpiirissä.
Niin kutsuttua pre-ehdotus johtuu viikossa tänään.
Pre-proposal-- kohti erittely, joka on CS50: n website--
on melko rento tilaisuus voit lähettää melko ytimekäs sähköpostia
sinun opetus kaveri vain tietoonsa häntä
tai hänen on mitä ajattelet, jotta käyttää häntä kaikupohjana.
Ja on järki check-- onko olet ajatellut
noin puree pois liian paljon tai ehkä liian vähän,
tai ehkä sinulla ei ole aavistustakaan lainkaan ja haluavat osallistua keskusteluun.
>> Tämän jälkeen on ehdotus ja tilanneraportin,
ns CS50 hackathon täällä Cambridge Harvardin ja Yalen opiskelijat
samankaltaisia.
Lopullinen Hankkeen täytäntöönpano on sieltä.
Ja sitten CS50 oikeudenmukainen täällä, Cambridge, sekä toinen New Haven.
Joten ehdotus, vilkaise verkkosivuilla nämä tiedot.
>> Mutta enemmän jännittävän, sekin on mahdollisuus saada kädet likainen,
ja mielenne avoinna koko nippu aiheita ja työkalut
ja tekniikoita, jotka ovat liitännäisiä kurssin ydin opetussuunnitelma,
mutta kuitenkin liittyvät.
Ja myös ihana välietappeja tekee todella hienoja lopullinen hankkeita,
ylittävät materiaali olemme katettu muodollisesti ongelma asettaa tai luento.
Niin mene CS50: n verkkosivuilla koko roster seminaareja.
Jos et rekisteröi vielä, se käy hyvin.
Menkää ja rekisteröityä edelleen ja me seurata live streaming linkkiä,
päivä ja kellonaika on sivuilla.
Ja kaikki on kirjataan ja toteuttaa verkossa
jos et voi tehdä erityisesti päivinä ja kellonaikoina.
>> Siitä, mitä on edessä thereafter-- hyvin, tietenkin, siellä CS50 hackathon.
Tämä kuva, muistaa, viikosta nolla otettu noin 4 AM eräänä iltana menneinä vuosina.
CS50 oikeudenmukainen, mikä taas tapahtuu molemmissa kaupungeissa.
Ja sitten, vain istuttaa siemen, vaikka me vielä
on kuukaudessa plus jäljellä lukukausi, jos haluat liittyä CS50 oma opetus
henkilökunta ja haluat aloittaa ajatellut tulossa CA,
tai opetus kaveri, tietävät, että Aloitamme puhua siitä enemmän
myöhemmin tällä lukukaudella.
Mutta Kuvassa Suurin osa tämän vuoden joukkue.
>> Ja niin, PHP-- ja olin niin surullinen viime viikolla, että [? Allyse?] Ystävällisesti
meni vaivaa saada meille näitä ihania rekvisiitta
että en päätyä käyttämään, joten se oikeastaan ​​vain näytti typerää
että meillä oli lapio istuu täällä kaikki päivä viime keskiviikkona, ja pieni lusikka.
Mutta tämä oli minun vertauskuvallisen tapa yrittää maalata
kuva miksi olemme siirtymässä C: stä kieli kuten PHP.
Ja samaa voidaan sanoa mitään määrä languages-- Java, Python, Ruby
tai rypäleterttuja others-- mutta taas C, esimerkiksi kirjoittamista ohjelma C
voi tyypillisesti olla kuin ottaen lusikka näin
ja kaivaa reikä maahan, hiekkaan tai lika.
PHP avulla voit ottaa paljon isompi puree pois ongelma,
kirjallisesti paljon vähemmän koodia käyttämällä paljon pienempi työkalu,
koska siellä on niin paljon enemmän toiminnallisuutta kasattiin vuonna.
>> Nyt, jos olisimme todella dramaattinen, meillä olisi jotain lapio
täällä, mutta olkoon niin.
Samaan aikaan, toinen metafora keksimme
on, tietenkin, voisit käyttää jotain jakoavain
vasara on jotain kynsien.
Mutta tietenkin, oikea työkalu on menossa
olla ei niinkään kieli kutsutaan C--
ja nyt olen vain vihainen [? Sanders?] Luultavasti,
me korjata että later-- niin oikea työkalu käyttää usein
ei tule olemaan tämä alin taso työkalu.
Ja todellakin, C ei kieli, joka useimmat olet ikinä käyttää,
tai olisi välttämättä käyttää uudelleen.
>> Ja itse asiassa hieman secret-- vain aika
Käytän C itse on melko paljon välillä Syyskuussa ja joulukuussa joka syksy
lukukausi.
Ja se johtuu meidän käyttää sitä mahdollisuutena
opettaa perustekijät ohjelmoinnin,
ja se tietokoneen tiede perustekijät, tiedot
rakenteet, algoritmit ja like-- mutta hyvin nopeasti aiotte
Katsokaa nyt, että syntaksin ja ajatuksista C
ovat niin ihanan siirrettävissä modernimpi
korkeamman tason kielillä, kuten PHP ja Python ja Perl ja Java
ja Objective-C-- oikeastaan, ei niinkään Tavoite-C-- mutta Swift, nämä uudemmat
kielet, joita monet teistä sitten harrastella kanssasi opinnäytetyön.
>> Joten pitemmittä puheitta, katsotaanpa oikeastaan PHP ratkaisemaan joitakin ongelmia.
Muistuttaa, että varhain, viime viikko, me vain käytetty CS50 IDE,
kirjoitimme sievä pieni ohjelma että juuri sanoi, "Hei maailma."
Ja sitten tallentanut sen tiedosto nimeltä hello.php.
Ja sitten juoksin tätä komentoa.
>> Ja miksi?
Englanti, mitä täällä tapahtuu?
Mitä teen, kun Juoksin tätä komentoa?
>> Joo?
>> Yleisö: On joitakin funktio PHP joka lukee mitä in-- ymmärtää, että.
DAVID MALAN: Hyvä, siellä on toiminto PHP-- ja anna minun olla tarkempi,
siellä on ohjelma nimeltä PHP, alias
Tulkki, joka ymmärtää sisällön hello.php,
ja tulkitsee sen ylhäältä alhaalta, vasemmalta oikealle,
ja tekee mitä nuo komennot sanovat.
Komennot hello.php, tietenkin, on vain lähde code-- toimintoja
ja muuttujat ja silmukoita ja kuten, että me itse
ovat alkoi kirjoittaa PHP.
>> Mutta toisin kuin C, joka on käännetty kieli,
PHP vain kirjoittaa sen, ja käyttää sitä.
Voit ohittaa tämän välikäsi vaihe muuntamalla sen nollia ja ykkösiä,
ja sitten näyttämään sitä.
Ja niin mikä on kiihtymisen tästä?
Miksi me ohita askel?
Miksi modernimpi kielillä taipumus ohittaa tämän?
Mikä oli hyötyä?
>> Tai vain intuitiivisesti?
Vaikka olemme ei kirjoitettu paljon PHP ennen,
mitä hyötyä siitä ei ole kokoamisessa koodi luulet?
Ei?
Ei sitoa?
Naarmuuntumisen pään?
Joo.
>> Yleisö: Lisää dynaaminen.
>> DAVID MALAN: Lisää dynaaminen?
Mitä sinä tarkoitat?
>> Yleisö: [äänetön]
DAVID MALAN: OK, hyvä, joten riippuen tulo,
sinun ei tarvitse kääntää joka kerta.
Ja se todella on kuin yksinkertaista kuin that-- mitä
järkeä on jatkuva kokoamaan koodi?
Tämä on vain askel, joka on making-- tämä edellyttää,,
jo usean viikkoa, kaksi kertaa niin monta askelta
koska vain suorittaa ohjelma.
Se on ollut hyödyllinen näkemään että olet nähdä virheilmoituksia ja niin edelleen,
mutta se on silti vain harmittaa askel.
>> Ja niin ohjelmoijat tajusi ajan, miksi emme
kirjoittamaan kieliä, jotka eivät Tarvitsen sen melko mekaaninen vaihe,
jotta voi vain kirjoittaa koodi ja suorita se.
Mutta mikä oli hinta että näimme maksoimme
viime viikolla, yksi erityinen esimerkki?
Kyllä?
>> Nopeus.
Niin [? Mikä?] tulkit hieman hitaammin,
että nollia ja ykkösiä ovat mukava ja nopea tietokone
ymmärtää, koska Intel CPU, tai mikä se on,
vain ymmärtää, mitä tapahtuu kanssa ne bittikuvioina.
Kun taas tulkki on ohjelma, joka todella
on lukea ASCII lähde koodi että olet kirjoittanut,
ja muuntaa sen, niin sanoakseni, tai selvittää, miten se muuntaa lopulta
että nollia ja ykkösiä.
Joten se vie vain vähän hieman suorituskykyä osuma.
Joten se on hieman kompromisseja.
Nyt jos teemme tämän tänne, haluan mennä eteenpäin ja tehdä esimerkiksi seuraavasti.
Jos menen tänne, uuden tiedoston, aion tallentaa tämän uudelleen on hello.php.
Ja nyt aion mennä eteenpäin ja sanoa, "print Hello World" -
ja muistuttavat, että voin käyttää tulostaa, en on käytettävä Tulosta-F. Ja nyt täällä,
jos en PHP on hello.php, huh-- I eivät näytä ovat tulkinneet sen.
Mitä tein väärin?
>> Yleisö: kulma rannerenkaita.
>> DAVID MALAN: Joo, tarvitset että kulma kiinnike ylös.
Joten se on tavallaan ärsyttävää, mutta tottuu nopeasti.
Jos minun täytyy kirjoittaa PHP, I yleensä tarvitse kertoa ohjelma,
tai kertoa tulkki, hei PHP, tässä tulee joitakin PHP.
Ja sitten kaiken kukkuraksi, olisin sulje tämä ei tällä, vaan pikemminkin
vain kysymysmerkki kulma kiinnike, joten nyt täällä,
jos juoksen tätä uudelleen, nyt Saan toivottua tulosta.
>> Nyt tehdä hieman optimointi, juuri niin, että olet nähnyt sitä ennen.
Tämä on tavallaan harmillista, että olen täytyy juosta PHP tilaa hello.php,
koska aikaisemmin I voisi vain kirjoittaa piste slash
ohjelman nimi, joka on tavallaan mukavaa.
Se on tavallaan paremman käyttökokemuksen.
>> Joten se kääntyy pois voit tehdä tämän PHP kanssa following-- I
voi käyttää tätä melko arvoituksellinen loitsu huipulla täällä,
joka on yleensä kutsutaan roska, jolloin tämä on terävä symboli,
niin sanoakseni, tämä on bang tai huutomerkki.
Ja tämä nyt on polku ohjelmaan tyypillinen Linux-järjestelmä, joka
kutsutaan ympäristö, tai env.
Ja tämä line-- pitkä tarina short-- linjalla yksi vain
sanoo, hei tietokone, löytää PHP tulkki minulle ympäristössä,
löydä sitä muistiin, niin sanoakseni.
>> Ja mikä on kiva nyt, on että jos menen tänne,
Voin tehdä piste slash Hei piste php, or-- hmm.
Lupa kielletty.
No, näet vielä enemmän tämän kanssa ongelma asettaa seitsemän, jos
ole jo, kanssa käyttöoikeudet.
On käynyt ilmi, että tarvitsen tätä komentoa
nimeltään [? chamod?] muutoksen mode-- plus x hello.php.
Tarvitsen [äänetön] tämä yksi ylimääräinen askel, joka kertoo tietokone,
tehdä hello.php executable.
Ja nyt katsoa mitä happens-- piste slash hello.php, se vain toimii.
En tarvitse määrittää tulkki enää.
Ja voin tehdä sen jopa kauniimpi, edelleen, jos en nimeä tämä asia.
Jos muutan hello.php vain Hello-- joten ilmoituksen vasemmassa yläkulmassa,
Ohjelman nimi on todellakin nyt vain Hei.
Nyt voin tehdä sen näyttämään C-ohjelma, vaikka se on kirjoitettu PHP--
tai rehellisesti rajoittamattoman määrän Muiden kielten.
>> Niin marginaalinen parannus, ole toiminnallista eroa.
Mutta se on vain pieni uteliaisuus nyt, jotta voit kirjoittaa ohjelmia
millä tahansa kielellä, ja käyttäjä ei täytyy tietää tai välitä siitä, mitä ne ovat.
No, Katsotaanpa lisää pakottavia esimerkki nyt
että olen lyöty jopa etukäteen.
Ja tätä kutsutaan quote.php.
Ja se on saatavilla verkossa.
Ja huomaa, että se on melko short-- mutta se on komentorivi ohjelma, joka on
menossa katsomaan ylös osakekursseja minulle, joka on todella menossa
olla germane ongelma asettaa seitsemän.
>> Joten mitä olen tekemässä.
Huipulla Minulla alkusulkumerkki kysymysmerkki PHP.
Sitten minulla on tämä linja, jonka olen vaativat tiedosto nimeltä functions.php--
aiomme nähdä Tästä lisää hieman,
mutta tämä on kuin C: n versio teräviä ovat,
mihin haluat mennä kuuluu toinen tiedosto.
PHP kutsuu sitä edellyttävät, vaikka se myös kuuluu toiminto.
Ja käy ilmi, että function.php on vain jotain kirjoitin ennen luokan.
Laitoin sen samaan hakemistoon, koska Halusin tekijä joitakin koodi
että saatamme haluta käyttää muualla.
>> Samalla voit luultavasti päätellä mitä täällä tapahtuu.
Tämä on hieman erilainen kuin C-- mutta mitä tarkoitan asianmukaisen käytön?
Käännä tämä teknisesti.
Missä olosuhteissa olen lopetus ohjelma, poistuttaessa?
Joo?
>> Yleisö: Kun sinulla ei ole kaksi komentoriviargumentteja.
>> DAVID MALAN: Kun ei ole että komentoriviargumentteja.
Ja muista, että yksi niistä perustelut on ohjelman nimi itsessään.
Ja toinen tulee olemaan toinen sana kirjoitan jälkeen nopea.
Joten kuten C, tämä on minun tapa tarkistaa,
ei käyttäjä yhteistyötä ja ajaa ohjelman aioin?
Nyt siinä on jotain hieman erilainen
kanssa C-- ensinnäkin me on tämä dollarin merkki,
ja mitä dollari kirjaudu merkitsevät PHP?
Vain muuttuja.
Se all-- vain muuttuja jälkeen mitä haluat todella kutsua sitä.
Huomaa, siellä on jotain puuttuu minun PHP-ohjelma,
aivan kuten se puuttui viimeksi viikko, vs. C, joka on mitä?
>> Tyyppejä, mutta myös jotain muuta.
Ei ole jotain function-- päätehtävä.
Ei ole päätehtävä.
Sinä vain aloittaa kirjoittamisen koodi ilman
murehtia melko mielivaltaisesti yleissopimus nimeäminen oletus
toiminto tärkein.
Joten arg C on vain todella globaali muuttuja
että tulkki siinä annetaan minulle.
Nyt, tämä on mielenkiintoinen.
Joten etsiä juttuja.
Dollarin merkki varastossa on vasemmalle, se on minun muuttuja.
Oikealla puolella, siellä on ilmeisesti
toiminto PHP nimeltään Haku joka Olen ohimennen viimeinen komentoriviltä
argumentti to-- mikä sana on.
Ja näemme, miten tämä toimii hetki.
>> Ja sitten lopuksi olen raportointi hinta.
Olen tulostamalla yksi osuus tällainen ja tällainen.
Ja muistakaa, tämä on tapa PHP-- tavalla PHP--
jossa sinun ei tarvitse tehdä dollarin merkki S enää.
Voit vain käyttää aaltosulkeita ja kytke jokin muuttuja.
Sinun ei tarvitse huolehtia käyttämällä printf samalla tavalla.
>> Ja sivuun, kun laittaa muuttuja sisällä lainausmerkkeihin näin,
käytät fancy tekniikkaa kutsutaan muuttuja interpolointi.
Se vain tarkoittaa, kytke muuttuja täällä.
Ja syrjään, jotkut teistä, jotka tulevat muista ohjelmointi taustat,
et saa käyttää puolilainausmerkkejä noin jouset tehdä tämän.
Sinun on käytettävä lainausmerkkejä varten muuttuja interpolointi töihin.
Muuten sinun kirjaimellisesti katso nämä aaltosulkeita.
>> Joten lopuksi, mennään eteenpäin ja suorittaa tämän.
Haluan tehdä minun pääte hieman isompi.
Anna minun mennä eteenpäin ja ajaa sisällä minun lainaus hakemistoon.
[? CDsource?] [? AM?] [? lainaus?] PHP lainaus piste PHP,
ja aion etsiä jotain kuten GOOG, joka on sen ticker symboli,
ja yksi osake sen uusi nimi, Aakkoset Inc, maksaa $ 717 Kuten tänään.
Hyvä on, jos haluamme suorittaa tämän uudelleen, kuka tahansa
on toinen pörssikursseja he haluavat etsiä?
>> Microsoft on mielestäni tämä, MSFT-- $ 53.
Mielestäni Yahoo on ehkä se.
Ja Facebook on se.
>> Joten mitä tämä ohjelma tekee?
Taika näyttää upotettu että haku-toiminto.
Joten ottaa vilkaista.
>> On käynyt ilmi, että ei tule PHP, se on functions.php.
Ja emme mene läpi tämä hyvin yksityiskohtaisesti,
mutta huomaa tärkeä sana tässä on että linja kuusi functions.php--
Olen kirjaimellisesti sanoa toiminto.
Olen määritellä nimi minun toiminto.
Sitten määrittää minkä tahansa argumentteja, tai parametrit,
Haluan, että toiminto take-- ei tyyppejä.
Ja sitten toteuttaa se.
>> Ja minä aalto käteni toteutusvaiheessa,
koska se on melko pitkälle edennyt oikeanpuoleinen nyt, mutta näemme sen uudelleen todella
in viikolla ongelma asettaa seitsemän.
Mutta voin puhdistaa tämän ylös, liian.
Olen myös mukana Nykypäivän koodi versio
lainaus, jolla ei ole piste PHP-tiedosto.
Sillä mitä on oletettavasti yläosassa ohjelman nimeltä vain lainata?
Että niin sanotut shebang-- melko arvoituksellinen loitsu
joka sanoo löytää PHP ja sitten suorita se minun koodi täällä.
>> Hyvä, että tuo meitä mihin jäimme
viime time-- vaikkakin jotkut kehittyneempiä esimerkkejä.
Kysyttävää tähän mennessä noin PHP tai mitä teemme?
No-- kunnossa.
Joo?
>> Yleisö: Inside HTML-tiedostoja, tehdä sinä--
[? sinä?] [? vain soittaa se?] [äänetön] PHP-tiedosto?
DAVID MALAN: Hyvä kysymys.
Web tilanteessa, mikä olemme kirjaimellisesti noin siirtymistä,
et käytä ns roska huipulla,
koska raina server-- usein ohjelma nimeltä Apache tai Microsoftin
IIS, Internet Information Server, tai useita muita web-palvelinohjelmisto,
tietää, että kun se näkee piste PHP-tiedosto, että se
pitäisi ajaa tulkin sitä.
Se ei katso, että ensimmäinen rivi.
Joten tämä ensimmäinen rivi temppu on vain kun olet
kirjallisesti komentoriviltä programs-- joka emme tee Super usein,
mutta se on meidän tapa kuroa meidän C esimerkkejä nyt meidän PHP.
>> Joten todellakin kuroa tämä maailma komentoriviltä maailman web
toimimalla seuraavasti.
Anna minun mennä eteenpäin ja tehdä täällä vain hetken.
Joten jos meillä on web-palvelimen, tai pikemminkin jos meillä on minun laptop tänne,
joissa pääsen piirtää näin.
Ja tässä meillä Internet jossain muodossa.
Ja sitten täällä, meillä on palvelin building--
tämä on, miten internet works-- ja täällä
on palvelin valoja ehkä.
Mitä todella tapahtuu näiden kahden yhteyksiä?
>> Joten tässä rakennuksessa on web-palvelin.
Se on vain tietokone joka on käynnissä jotkin käyttöjärjestelmät
system-- ehkä ilmainen ohjelmisto nimeltään Apache, joka CS50 IDE on käynnissä.
Joten voit itse ajatella tämän rakennuksen
olevan rakennuksen joka CSt0 IDE on tallennettu.
Siellä teillä kaikilla on tilit, jossa te kaikki
on oma web-palvelin käynnissä, te kaikki
on oma ainutlaatuinen URL, kun aloimme keskustella,
ja näet enemmän P. asetettu kuusi.
>> Tässä on minun laptop jonnekin muuallakaan Internetissä.
Ja niin kun käyn URL, joka kuuluu minulle, että Internet-liikennettä on menossa
yli palvelimelle, palvelimen vastaanotetaan HTTP-request--
kuten saada index.html ja se on vastaat kyseisen sivun.
Niin, että yleinen paradigma.
Kun taas kaiken ylös asti tänään, kaikki
tapahtui vain rajojen tämän rakennuksen.
Käytin minun laptop, mutta Olin liitetty CS50 IDE,
joten kaikki näistä ohjelmista Juoksin oli sisällä että palvelin, itse.
>> Mutta nyt, aloitetaan uudelleenkäyttö PHP kirjoittaa joitakin todellisia ohjelmia, jotka
palvelee kasvoi web-palvelin.
Ja tehdä tämän, aion mennä osaksi koko joukko esimerkkejä
että käyttöön tämä ajatus tässä.
Joten tämä on tavallaan hieno tapa kuvataan ohjelmointi paradigma.
>> Ja itse asiassa niin poistut CS50 tai työskennellä opinnäytetöiden,
tai kestää jonkin seurata luokan, voit alkaa
nähdä, että world-- varsinkin kasvoin
kieliä kuten C jotka ovat super alhaiset level--
ymmärtää, että on parempi tapoja kirjoittaminen ohjelmisto.
On tiettyjä malleja voit seurata,
tiettyjä tapoja järjestää tiedostoja ja tapoja nimeät toimintoja,
jotta pitkän tarinan lyhyesti, maailma on keksiä
koko joukko lyhenteitä ja nimet tapoja ohjelmointia.
Nämä ovat vain tekniikoita voit käyttää.
>> Ja yksi niistä on nimeltään MVC, Model View Controller.
Ja tämä on vain, varten nyt, liian monimutkainen
tapa sanoa miten pitäisi asetella PHP-pohjainen sivusto, meidän tapauksessamme.
Miten järjestää tiedostot, miten järjestää logiikka,
tavalla, joka helpottaa kirjoittaa monimutkaisempi sivustot?
Ja todellakin, käymme nopeasti sinne p-asettaa seitsemän.
>> Joten maailmassa MVC, olet menossa nähdä, että meidän koodi voidaan yleensä
luonnehtia joko Mallikoodi, tai ohjaimen koodi, tai katsella koodia.
Ja aion pelkistettyjen se follows--
ohjain on aivot oman ohjelman,
Siellä kaikki mielenkiintoinen logiikka tapahtuu.
Joten kaikki olemme olleet kirjallisesti toistaiseksi luokassa,
on ikään kuin ohjaimen code-- se valvontaan
ohjelma, silmukat, sinun olosuhteet, teidän toiminnot
ja muuttujat ja kaikki.
>> Näkymät, nyt, tulevat olemaan hieman selvempi maailmassa rainan.
Näkymä on estetiikka sivuston.
Se mitä käyttäjä sees-- kuvia, HTML-taulukoita, HTML-tunnisteita, ja kaikki
Kyseisen, kaikki pörröinen esteettinen tavaraa, joka ei ole niin vaikea kirjoittaa,
mutta on juuri mitä olet tuottavan, on niin sanottu näkymä, estetiikka.
Ja malli, lopulta on menossa on tietokanta, stuff-- joka
aloitamme sukeltamalla kaikki enemmän tänä keskiviikkona.
Joten ohjain on logiikka, Näkymä on esteettinen tavaraa,
ja malli tulee olemaan missä Tallennamme meidän todelliset tiedot.
>> Joten katsokaamme tämä konkreettisemmin seuraavalla esimerkillä.
Aion mennä minun hakemistoon täällä nykypäivän lähde code-- jotka kaikki
on saatavilla verkossa.
Ja aion mennä versioon nolla.
Ja tässä is-- kutsukaamme sitä versio nolla CS50 verkkosivuilla.
Siellä ei ole paljon täällä ollenkaan.
Se on hyvin yksinkertainen web-sivu, joka on luultavasti käyttäen mitä HTML tags-- vain
arvata ohi esimerkkejä?
>> Mikä tuo on?
H1-- luultavasti että iso rohkea otsikko, että logo ylös, CS50.
Ja mitä muuta on leikkiä?
Joo?
Yleisö: Järjestämätön lista.
DAVID MALAN: Järjestämätön list-- niin UL tag ja ehkä pari LI tageja.
Ja jos et muista näitä, se rehellisesti ei ole väliä.
Nämä ovat pörröinen eräänlainen toteutuksen yksityiskohdat HTML
että voit nopeasti etsiä ja olet taas matkalla.
Me keskittyä enemmän ohjelmointi ideoita, jotka ovat juicier kappaletta.
>> Joten vain ottaa nopeasti katso HTML-- ja todellakin
jos minä avata näytä lähdekoodi täällä, yup, Juuri täällä tapahtuu.
Ei UL-tunniste.
Sisäkkäisiä sisällä joka on LI tageja.
Ja sitten Lainasin URL todellisen oppimäärän täällä.
>> Ja sitten lectures.php on ilmeisesti
toinen dynaamisesti sivu joka on menossa on, katsotaanpa see-- ah,
kahden ensimmäisen viikon luento.
Joten viikko nolla ja viikko yksi, katsotaanpa katso this-- jos näen sivun lähdekoodi,
myös erittäin yksinkertainen.
Nämä johtavat kaksi sivua kutsutaan week0.php, ja week1.php.
Joten harkita nyt, mitä tapahtuu.
>> Kun klikkaan week0.php, minun laptop tekee pyyntöä week0.php.
Web-palvelin, alias, CS50 IDE, vastaanottaa että virtuaalinen kirjekuori.
Se näkee viestin kuten, saat week0.php.
Se on sitten tulkita tiedosto, alkuun alas, vasemmalle right-- tiedosto
nimeltään week0.php-- ja sylkeminen ulos tulokset.
Joten sisällä olevan tiedoston, week0.php, on
ohjain logiikka, joka tuottaa tämän HTML, ja me pian nähdä, että.
>> Mutta nyt haluan klikkaa viikolla nolla, ja nyt meillä on keskiviikko ja perjantai,
ja nyt meillä on dioja hitaasti viikko nolla.
Ja saatat muistaa Tämä siitä Paluumatkalla kun.
Niin, että kaikki tämän sivuston tekee.
>> Joten pohtia, miten se tekee tämän.
Aion mennä takaisin lähdekoodia täällä, CS50 IDE,
ja aion avata index.php.
Ylimpänä tämän tiedoston on joukko kommentteja.
Ja sitten keskellä olevan tiedoston, se kääntyy pois, ei PHP lainkaan.
Koska jos sinulla ei ole mitään alkusulkumerkki kysymysmerkki PHP tunnisteet,
olet vapaa vain laittaa HTML.
>> Koska mitä PHP tulkki on tarkoitus tehdä,
on, kun se lukee tätä file-- ylhäältä alas, vasemmalle right--
se vain tulkitsee koodia se näkee välillä ne kulmakiinnikkeet kysymysmerkki.
Ja muuta, että se ei tunnustaa PHP, se vain sylkee.
Ja HTML on yksi kamaa se vain sylkäistä.
>> Joten tämä tiedosto voi olla kutsuttu index.html,
mutta olen nimeäminen kaiken dot PHP ponnahduslautana.
Lectures.php-- samalla tavalla underwhelming, se on vain joitakin HTML.
Week0.php, samoin vain joitakin HTML.
>> Mutta Nyt laittaa sananlaskun suunnittelu hattu,
ja pohdittava, miten voimme parantaa tätä.
Ei ole vaikea tehdä tätä, mutta olen sellainen hajautetun osaksi kopioi ja liitä.
Ja itse asiassa, jos teen viikolla kaksi, te tietää mitä minä luultavasti tehdä?
Aion mennä week1.php, olen menossa esiin kaiken.
Aion kopioida, liitä se uuteen tiedosto nimeltä week2.php,
nipistää joitakin URL-osoitteita ja olla tulossa.
>> Joten sen perusteella, mitä olemme nähdään C jo,
tämä ei tunnu oikealta, toivottavasti.
Kopioida, liittää harvoin oikea ratkaisu.
Mitä siis voimme alkaa tehdä parantaakseen tämän?
Missä ovat mahdollisuudet voidaan paremmin suunnitella?
>> Mennessä pääsen viikko kahdeksan, se on menossa
olla todella ärsyttävää jos haluan muuttaa
fontin jokaisen sivuillani, tai jos haluan
muuttaa rakennetta asettelua.
Joten missä on mahdollisuus voidaan paremmin suunnitella?
No, katsotaanpa miettiä mitä yhteinen kaikkien näiden tiedostojen.
>> Tässä viikko yksi, tässä on viikko nolla, tässä lectures.php,
tässä index.php-- mikä on sama ja mikä on erilaista, karkeasti ottaen,
kussakin näistä tiedostoista?
Joo?
>> Yleisö: [äänetön]
DAVID MALAN: OK, hyvä.
Joten siellä on kuvio, varmasti, jolloin joka kerta päätän luento I,
Minun pitäisi tuottaa hyvin samannäköisiä sivu.
Ja joten ehkä voin hyödyntää että todella,
me tietoisesti numeerisesti indeksoitu meidän lectures--
jos voin laittaa vieläkin sanat vastauksesi.
Ja mikä on ainoa asia, todella, että on muuttumassa välillä viikko one--
ja haluan selaa joten se on suunnilleen samalla place--
joten tässä viikko nolla, suunnilleen huipulla.
Tässä on viikko yksi, viikko nolla, viikko yksi, viikko nolla.
OK, kirjaimellisesti jos tiedät ole ohjelmaa lainkaan,
tämä on nyt aivan kuin kaavoja peli.
Joten mikä on erilaista?
Joo?
>> Yleisö: [äänetön]
DAVID MALAN: Hyvä, joten otsikko muuttuu, koskaan niin hieman.
Zero on menossa, tietenkin yksi.
Sama asia tapahtuu H1 tag.
Ja emme oikein näe sitä helposti, koska URL-osoitteet ovat hieman pitkä.
Mutta ne URL-osoitteet muuttuvat hieman.
>> Mutta mitä ei vaihtoväli, uskallan sanovat, suurin osa sisällöstä page--
HTML-koodi on sama, pää on sama otsikko on lähes sama,
runko on sama, ja melkein kaikki muu
on sama, lukuun ottamatta nuo pienet hienosäädön.
Joten kuinka voimme edetä factoring joitakin tätä?
>> No haluan ehdottaa täsmälleen että seuraavassa versiossa.
Joten tässä versiossa yksi, minulla on tarkka samoihin tiedostoihin, sekä pari muuta.
Tässä index.php-- ja vaikka et ole koskaan nähnyt PHP ennen,
mitä olen luultavasti tekemässä ratkaisemiseksi problem-- perusteella, mitä näet tässä?
Joo, on että hieman sitoumus?
Ei?
Kyllä, mennä.
>> Yleisö: [äänetön]
>> DAVID MALAN: Jep.
>> Yleisö: [äänetön]
>> DAVID MALAN: sinun pitää puhua vain vähän kovempaa.
>> Yleisö: [äänetön]
DAVID MALAN: OK, hyvä.
Ja minä think-- se oli vaikea kuulla sinä-- mutta minä
ajatella mitä saat on on, että tunnisteet, jotka ovat yhteisiä ylös,
ja tunnisteet, jotka olivat yleisiä pohja, on nyt pois laskusta,
tai taka mitä tiedostoja?
Header.php ja footer.php-- ja olemme menossa
tehdä joitakin tweaks puuttumaan huolta juuri
herättänyt numerot vaihtokauppoja Esimerkiksi, jos kuulin oikein.
>> Mutta se näyttää olevan ydin se.
Jos oli valtavasti irtisanominen yläreunassa sivun,
ja valtava määrä irtisanominen alareunassa,
nyt kirjaimellisesti vain kohokohta ja leikkaa että sisällön ulos,
laita se erilliseen file-- kuten ajatus CSS, jossa laskelmiin ulos
hyvin samankaltainen estetiikka, laittaa se erilliseen piste PHP-tiedosto,
Käytä vaativat mechanism-- joka on kuin C terävä include-- joka
on pohjimmiltaan kuin sanoisi mennä napata sisältö header.php,
ja kopioida ja liittää ne tästä.
>> Mutta mitä tämä tarkoittaa, että nyt index.php, minulla on nämä kaksi riviä.
Vuonna lectures.php, olen myös on nämä kaksi riviä.
Vuonna week0.php, olen myös on nämä kaksi riviä.
>> Joten nyt, jos haluan muuttaa otsikko kaikki minun sivuja,
tai haluan vaihtaa perusrakenteen,
Voin vaihtaa sen nyt vain yhdessä paikassa, tai kaksi places-- header ja footer,
vastaavasti.
Nyt koodin alkavat näyttää hieman arvoituksellisesti, eikö?
Mutta jos ajattelee, mitä sivu on doing-- jos olen pyynnön week0.php,
aivan kuten piirustus yli here-- kun week0.php haetaan,
mitä se tarkoittaa?
>> Kirjaimellisesti, tämä tiedosto on selain pyytää.
Web server-- alias
CS50 ID-- nappaa tämä tiedosto, week0.php, ja lukee
se ylhäältä alas, vasemmalta oikealle.
Linjalla yksi, se heti kohtaa alkusulkumerkki kysymysmerkki PHP, vaatia
header dot PHP, ja niin mitä PHP tulkki
does-- joka on rakennettu osaksi web palvelin, koska me valmiiksi
se sinä-- se menee automaattisesti osaksi header.php, kopioi sisältö,
pastat ne tästä.
>> Mutta sitten tulkki kohtaamiset kysymysmerkki lähellä kiinnike,
joten se kaikki tapahtuu ajattelua.
Nyt se vain sokeasti sylkee ulos linjat kaksi kautta seitsemän,
koska se on vain raaka HTML.
Pääsee linja kahdeksan, ja tekee sen sama taika again-- tiedoston avaus
tarttumalla sisältö, ja että heidän tai liittämällä ne
juuri silloin tai siellä.
>> Mutta minä vain viittasin bugi.
Tämä on osittainen askel taaksepäin, koska jos katsomme header.php,
Olen tavallaan leikattu kulma.
Mitä ominaisuus minä periksi, jotta saada tämä kyseenalaista parempi suunnittelu?
Joo?
Yleisö: [äänetön]
DAVID MALAN: Joo, olen sellainen Leikatun triviaali nurkkaan.
Voit huomautti, että mitä oli muuttumassa oli otsikko, numero otsikossa,
ja numero H1.
Joten minun ratkaisu oli, OK, Haluan vain nimetä uudelleen,
eikä käsitellä että ongelma lainkaan.
Niin, että osittainen askel taaksepäin varmasti.
>> Mutta mikä on huomionarvoista täällä on, että mitä olen tehnyt
on muuten laskelmiin kaikki yhteistä kamaa.
Ja footer.php, huomaan laskelmiin pois kaikki tämä, vaikkakin vähemmän,
yhteinen kamaa.
Joten minun täytyy jotenkin nyt pystyä ottaa toisen askeleen eteenpäin, ja vahvistaa
että otsikko kysymyksiä.
Joten tehdä.
>> Anna minun mennä minun toinen versio täällä, joka taas on samat tiedostot
paitsi yksi uusi lisäksi.
Ja se on hieman verbose, mutta katsotaan jos me
voi kiusata erilleen mitä täällä tapahtuu.
Joten sen sijaan edellyttävät header.php, ja footer.php,
Näytän olevan edellyttämällä yksi file-- kutsutaan, tietenkin, helpers.php.
Ja haluan määrätään nyt, mitä sisällä helpers.php
on vain joukko toimintoja että kirjoitin, aivan kuten ennen.
Mutta kutsuin sitä helpers.php.
>> Nyt ilmeisesti, vuonna linja kolme ja 10, olen
jossa kaksi functions-- tehdä header, tehdä footer.
Ne eivät tule PHP, kirjoitin ne itse.
Ja laitoin ne helpers.php.
>> Nyt olemme vain nähnyt tämän syntaksin kerran, ja se oli super lyhyt.
Mutta tämä on ilmeisesti argumentti tehdä header, toiminto.
Miksi minä tiedän, että?
No tässä lähellä paren, tässä avoin paren.
Ja tietenkin, kuten C, mitään näiden sulkeissa
on input-- tai argumentti toiminto.
>> Mikä on tietotyyppi tämän väitteen, sen perusteella, mitä olen korostanut?
Mitä ne hakasulkeita osoittavat, joka perustuu viime viikolla?
Joo, se on array-- erityisesti tällainen taulukko.
Ja tämä syntaksi tosin on hieman outoja,
mutta tämä on vain ohimennen yksi keskeinen arvo pari.
Tärkeintä on, lainaus lainaus päättyy otsikko, ja arvo on CS50.
>> Jos olisimme tehneet tämän C, se voisi sen sijaan
näyttämään tämän, vain lainaus lainaus päättyy CS50--
tai oikeastaan ​​se olisi kihara henkselit, tai jotain C,
missä avain on nolla, ja arvo on CS50.
Mutta jälleen kerran, PHP, vaikka syntaksi on, taas vähän outo,
sen avulla voit kulkea sanoja numeroiden sijasta
yhdistää avaimet arvoja.
>> Mitä tämä kaikki tarkoittaa?
Jos menen helpers.php, Katsotaanpa tätä toimintoa.
renderHeader.php, pikemminkin renderHeader on tehtäväni,
ja tiedän, että koska näen toiminto avainsana tässä.
Tämä on uusi päässä C-- se ilmeisesti vie argumentin nimeltä data--
mutta voisin ovat kutsuneet tätä mitään, mutta kutsuin sitä tietoa,
vain olla hieman clean-- ja ota arvaus, erityisesti
jos olet ohjelmoinut muulla korkeamman tason kieli ennen, jotain
Edellä C, käsitteellisesti.
>> Mitä yhdenvertaisen alkusulkumerkki hakasulje luultavasti tarkoittaa?
Tai mitä voisi se tarkoittaa?
Emme ole nähnyt tätä C. Joo?
>> Tyhjä jono.
Erityisesti tämä tarkoittaa, että jos käyttäjä ei soita renderHeader
jossa argumentti, Aion silti on argumentin nimeltä tietoja,
mutta sen oletusarvo on olemaan tyhjä jono.
Joten se on vain mukava mukavuutta.
Minulla ei ole huutaa käyttäjä, tai sanoa käytit tehtäväni väärin.
Voin vain antaa käyttäjälle oletuksena arvoa, jos en ole erityisen välitä.
Nyt tämä toiminto, olen menossa aalto käsiäni.
Mutta tämä ote toiminnon avulla voimme siirtää näitä muuttujia tiedot
osaksi header.php seuraavasti.
Ja tämä on viimeinen pala, Luulen, funky syntaksin.
Tässä on minun uusi versio of header.php-- se
tapana sanoa, kirjaimellisesti, avoin kiinnike otsikko CS50, ja se oli siinä.
Ja sama asia H1.
>> Nyt se ilmeisesti sanoo jotain melko funky.
Ja haluaisin yksinkertaistaa tämä hetkeksi seuraavasti.
Tämä on mitä olen muuttanut nimike.
Kuitenkin, se alkaa hieman ruma jatkuvasti avoin suluissa PHP,
ja sitten käyttää tulostusta.
On käynyt ilmi, että PHP on lyhenne merkintätapa tämä, joka on vain
yhtäläisyysmerkki, joka on teknisesti toiminto nimeltään echo sijaan tulosta,
mutta se on sama asia, tehokkaasti.
>> Se vain näyttää paremmalta.
Se on vain syntaktinen sokeri, jos haluatte,
joka tekee minun koodi näyttää hieman paremmin.
Mutta näyttää siltä, ​​ja näemme tämän uudelleen
ennen pitkää, meidän täytyy kutsua tätä ärsyttävän pitkä toiminto nimeltään
HTML erityistä merkkiä kohteessa PHP, koska se kääntyy pois
on olemassa tiettyjä panoksia että käyttäjä voi antaa meille,
tai että käyttäjät voisivat antaa meille, jotka ovat menossa murtaa sivustollemme.
Mutta näemme, että seuraava viikko JavaScript.
Mutta nyt, juuri tietää, että tämä tiedosto, headers.php, yksinkertaisesti
vie otsikko, Kuljin, se tekee
että se on turvallista ruiskuttaa web sivu, ja se sylkee sen pois minun otsikko
ja minun H1.
Joten jos menen tämän version nyt, huomaa, että luentoja on sen nimi takaisin,
viikko nolla on sen nimi takaisin, ja todellakin, HTML olen tuottavan
on sama kuin mitä minun ensimmäinen versio was-- paitsi minun välilyönnillä,
koska olen alkanut formatoinnin minun koodi hieman eri tavalla.
Mutta olen luotu kaikki koodi välitän.
Joten haluan tauko vain hetken ja nähdä
jos on kysyttävää tai sekavuutta Olen luonut.
Selvä, joten katsotaanpa twist hieman vaikeampi täällä
onko siellä mahdollisuus parantaa.
Helpers.php oli myös tämä toimintoa, jota kutsutaan renderFooter.
Ja mikä on huomionarvoista noin renderHeader, ja renderFooter?
Ja vielä, päivän tarkoituksiin, tietää että ote toiminto on vain
minun tapa välittää argumentteja osaksi header.php ja footer.php.
>> Anteeksi?
>> Yleisö: [äänetön]
DAVID MALAN: Joo, minä vain muuttanut vaativat linja.
Niin kirjaimellisesti, olen tehnyt syntiä kopiointi ja liittäminen, jälleen kerran.
Se ei ole valtava määrä linjat, mutta tulevat on--
jos olen kopioimalla ja liittämällä kaikki vain muuttaa yhtä pieni sana,
ja yksi pieni sana, joka Alan huomauttaa Out alatunnisteeseen täällä, verrattuna header täällä.
Muuten kaikki on identtinen, lukuun ottamatta,
tietenkin funktion nimiä.
Mitä me voisimme tehdä paremmin?
>> No anna minun avata tämän version täällä, jolloin vuonna helpers.php,
miksi en vain saada vähän fiksumpia tästä?
Kirjoita hieman monimutkaisempi koodi, mutta kutsuvat sitä tehdä?
Joten mitä minä olen perusteellisesti muuttunut?
>> Se vie argumentti now-- kaksi perustelua, tiedot edelleen.
Ja mitä sitten on ensimmäinen nimi todennäköisesti käytetään,
perusteella, mitä luet täällä?
Vaikka jotkut syntaksin on vielä uusi.
Mikä on dollarin merkki malli?
>> Anteeksi?
>> Yleisö: ylä- tai alatunnisteen.
>> DAVID MALAN: ylä- tai alatunnisteen.
Joten ilmeisesti, päätin että jos ainoa asia, joka on muuttumassa
on mitä malli haluan on print-- ja malli
Tarkoitan tämä on suunnitelma koodi, joka haluan tuotos,
mutta haluan plug joissakin values-- joten jos se on vain otsikko
tai alatunnisteen, miksi en parametroida että ja soita argumentti dollarin merkki
malli?
Ja sitten tämä funky syntaksin antaa minulle luoda polku muuttuja tässä.
>> Joten dollarin merkki polku on vaihteleva.
Mitä tämä syntaksi do, jos olet perehtynyt?
Joo?
>> Yleisö: [äänetön]
DAVID MALAN: Aivan.
Jos malli on, lainaus lainaus päättyy, header, tai jos malli on,
lainaus lainaus päättyy, footer, että linja siellä että olen korostanut, linja kahdeksan,
on yksinkertaisesti ottaa tätä nimeä, kuten otsikko, ja liittämällä se piste PHP.
Joten meillä ei ole tätä operaattori C. Tämä piste operaattori on
hämmästyttävä asia PHP-- jos olet perehtynyt JavaScript tai Java,
voit käyttää plus kirjaudu tehdä ketjuttamista.
>> C, se on kipu neck-- ja olen niin pahoillani, P-set kuusi,
olet menossa täytyy tehdä this-- se on kipua niskassa
ketjuttaa merkkijonoja.
Miksi?
No, koska jos sinulla merkkijono, joka on tämän pitkän,
ja toinen merkkijono, joka on tämän pitkän, et voi vain kytkeä niitä yhteen.
Mitä sen sijaan täytyy tehdä C?
Joo?
>> Yleisö: [äänetön]
>> DAVID MALAN: Sinun on malloc muisti, tai käytä array pinoon.
Ja te oikeastaan ​​tarvitse tehdä, että joukko tarpeeksi suuri
sopivaksi tämä plus tämä, plus kenoviiva nolla.
Sitten liität ne yhteen sekoita kissa tai manuaalisesti silmukka,
tai useita tekniikoita.
Ja näytämme pari p-set kuusi.
>> Se on kipua niskassa.
Ja tämä on todella mitä tarkoitan noin tämä vs. this-- kuten C vastaan ​​PHP.
Sinä vain saada niin paljon enemmän toiminnallisuus ilmaiseksi,
jotta voit keskittyä, mieluiten, on hauskaa
osa koodaus, projekti haluat ratkaista,
pikemminkin kuin alhainen pikkuseikat.
>> Joten tämä vain tuottaa header.php tai footer.php jonka perusteella yksi kutsun.
Ja todellakin jos menen osaksi index.php, ilmoitus
kaikki mitä changed-- sijaan soittamalla tehdä ylä- tai tehdä alatunnisteen,
Soitan tehdä, jonka jälkeen nimi mallin, että haluan tehdä.
Ja näet tämäkin, ongelmatilanteissa asettaa seitsemän,
jolloin me voit käyttää Sama toiminto tehdä nippuina
ja rypäleterttuja eri verkkosivujen.
>> Joten mieluummin kuin asun liian paljon enemmän niihin details--
joka näet jälleen Harjoitus seven-- katsotaanpa
on nyt alussa liuoksen entistä mielenkiintoinen ongelma.
Tähän mennessä mitään olemme tehnyt on tallennettuja tietoja.
Itse asiassa ainoa kerta, kun olemme koskaan tallennettu jotain olemme tehneet tässä luokassa
on, kun meillä oli hyvin yksinkertainen demo jonkin aikaa takaisin, jolloin käytimme tiedosto IO C,
ja mielestäni olen kirjoittanut nimeni, ja Hannahin nimi, ja Marian nimi,
tai ehkä Andyn nimi, ja sitten tallennetaan CSV file--
pilkulla erotetut arvot tiedosto.
>> Ja käytimme fopen-- mielestäni käytimme fprintf muistaakseni,
ja me tallennettu tiedosto.
Nyt, että on yksinkertaisin tietokannan muodossa.
Jos haluat tehdä verkkosivuilla Frosh IMS-ohjelma, jonka Fuksit
voi ilmoittautua urheilu, voit ihannetapauksessa haluavat tehdä jotain, että tiedot.
Viime viikolla teimme mitään kanssa data-- me vain sanoi,
olet rekisteröitynyt, ei oikeastaan.
Tai ehkä sähköpostitse Proctor, ja se oli siinä.
>> Mutta se olisi mukavaa, jos voisin antaa että Proctor CSV-tiedosto,
kuten Excel-tiedoston.
Tai vielä parempaa, se olisi olisi mukavaa, jos voisin
laittaa ne käyttäjien nimiä ja asuntolan nimet ja kaikki tämä
tietokantaan, joka vain elää ikuisesti,
kunnes päätän poistaa tiedot.
Tietokanta, jonka avulla minua kyselyn tiedot.
Ja todellakin, sitähän tietokanta on.
>> Esittelemme tänään, ja ensi viikolla, liian, tekniikka
kutsutaan SQL-- Structured Query Kieli, joka on toinen kieli.
Se on pohjimmiltaan ohjelmointi kieli, mutta tietokantoihin.
Ja tietokanta nyt, vain ajatella kuin super hieno versio
Microsoft Excel, tai Google Taulukkolaskenta, tai Apple Numerot.
Se on yleensä ohjelma, jonka avulla voit tallentaa koko joukko tiedot
riveihin ja sarakkeisiin, melko kuten saatat Excelissä.
>> Mutta mitä on mukava, varsinkin jos emme ole super tuttuja Excel,
mitä SQL voit tehdä on kyselyn tämä tiedot kirjoittamalla riviä koodia
jossa voit, vaikka tietokanta on miljoona rivit se,
Löydät asioita huippunopea.
Itse asiassa, Excel on erityisen huono suuria tietomääriä.
Ja itse asiassa jopa muutamia vuotta sitten, osoittautui
Excel vain voit tallentaa jopa 65535 riviä data-- joka
kuulostaa paljolta, mutta kun olin grad opiskelija,
ja muistan kompastumisen tämä koska olin tuottavan
CSV-tiedostoja minun tutkimusta ja minä halusivat analysoida niitä nopeasti
vain avaamalla ylös Excelissä.
Tietenkin minun tietokone vain kaatui, koska minulla oli enemmän kuin 65000 riviä.
>> Mutta mistä 65535 tulevat?
Mitä Microsoft tekee, oletettavasti?
Jos olet hyvä kanssa voimiasi kaksi?
Niin, he käyttivät 16-bittinen arvo edustaa rivin numero.
Ja kaksi 16 on 65,536-- miinus yksi, koska jos
nolla indeksi tarkoittaa, että oli useimmat rivien voisin olla.
Ja se oli vain suunnittelun päätöstä.
Säästämällä 16 bittiä, he rajoittaa minua 16000 riviä sijasta 4000000000,
jotka olisin voinut ollut ihanteellisesti.
Mutta nyt aiomme esitellä tämä lisää web yhteydessä.
Ja mikä on mukavaa noin SQL on, että vaikka vaikka se on aika vahva ja kaunis
hienostunut, se todella kiehuu alas neljä keskeistä toimintaa, neljä
keskeisiä tehtäviä, jos will-- valitset, hakemisessa tietojen etsiminen
tietojen; poistaa tai poistaa tietoja; lisätä lisäämällä rivejä tietokantaan;
ja päivittäminen.
Joten jos olet joskus käyttänyt Google Taulukkolaskenta, Apple Numerot, Microsoft
Excel, olet teloitettiin, todennäköisimmin, kaikki
Näiden toimintojen kuin ihmisen mukaan vain näppäimistön avulla ja mouse--
lisäämällä tietoja käyttämällä silmäsi Voit valita tai etsiä tietoja,
tai päivittää tietoja tai poistaa tietoja.
>> Mitä tämä tarkoittaa?
No, esiasennettuna CS50 IDE on ohjelma nimeltä MySQL.
Se on ilmainen, avoimen lähdekoodin tietokanta, jota on erittäin suosittu.
Facebook, esimerkiksi, käyttää sitä tämän päivä, joukossa muita työkaluja, jotka he käyttävät.
Ja paljon erittäin suositut sivustot käyttävät se suurelta osin, koska se on nopea,
ja koska se on ilmainen.
Vaikka varmasti vaihtoehtoja.
Ja jotkut teistä ehkä harrastella vaihtoehtoja opinnäytetöiden.
>> Tämä kuvakaappaus puolestaan ​​on Web-pohjainen työkalu nimeltään phpMyAdmin.
On sattumaa, että tätä web-pohjainen työkalu on myös
kirjoitettu kielellä, PHP, mutta mitä se on tarkoitus tehdä
on antaa meille web-pohjainen käyttöliittymä tietokantaan.
Koska MySQL on tyypillisesti jotain, historiallisesti, te
olisi vuorovaikutuksessa vain jossa komentoriviltä.
Ja olisi erittäin ärsyttävää ja vaikeaselkoisten on
kirjoittaa tekstisisältöä komentoja valita tiedot, lisätä tietoja, ja poistaa tietoja.
Joten jotkut ihmiset Internetissä kirjoitti web-pohjainen ohjelma
että vain meille hallita tiedot tietokantaamme.
Se on kuin tuplaklikkaamalla Excel, ja käynnissä web-pohjainen versio sen.
>> Ja mitä aiot käyttää tätä lopulta ensi viikolla, ei p-set kuusi,
mutta on rakentaa jotain nimeltään CS50 Finance, joka
tulee olemaan tietokanta käyttäjille, joilla käyttäjätunnuksia ja salasanoja,
dollaria määriä, että ne ovat niiden pankkitileille.
Se tulee olemaan jotain käytät tallentaa
symbolit ja määrät varastojen että käyttäjät
ostanut virtuaalisen dollareita, että voit antaa heille.
Ja se tulee sallia käyttäjille rekisteröityä sivuston,
niin että jopa ystäväsi Voit virittää sivustoosi
ja todella rekisteröidä, kirjaudu sisään, ja leikkiä
ja yrittää löytää vikaa koodissa, ja yrittää löytää virheitä sivuston.
Ja he yksinkertaisesti ilmoittautua lisäämällä itse, tehokkaasti,
kautta koodin kirjoittaa tietokantaan.
>> Esimerkiksi, tämä lyhyesti kuvakaappaus mitä tietokanta voisi näyttää.
Tämä oli yksi viime vuoden solutions--
tämä on kuin mini Excel tiedosto, tallennetaan tietokantaan,
tallennettu tämän ohjelmiston nimeltään MySQL.
Vasemmalla puolella, olen ilmeisesti annetaan jokaiselle käyttäjälle yksilöllinen numero.
Toisessa sarakkeessa, olen antanut jokainen käyttäjä name-- oma
heidän joukossa.
Ja oikealla puolella, Olen antanut heille hash.
>> Nyt tämä on todella salasana, mutta se ei ole pelkkää tekstiä salasana.
Se on salattu salasanan, jos haluatte, tai hash salasana.
Joka me palata ennen pitkää.
>> Mutta jos olet koskaan lukenut artikkeli siitä, miten
salasana jossain pankki tai joissakin sivusto on saattanut vaarantua,
se voidaan yleensä tarkoittaa kahta asiaa.
Joten tämä on vain ote kuusi käyttäjää.
Kaikki te nyt voi selvittää out kautta hakkerointi tai halkeilua
mitä kuusi ihmistä salasanoja ovat.
Mutta jos olet joskus saanut hälytys tai anteeksipyyntö
yritykseltä tai verkkosivuilla sanomalla, pahoillani, hakkeri murtautui meidän tietokantaan,
sinun pitäisi luultavasti muuttaa salasana, mikä voisi tarkoittaa?
>> No, yksi, voi tarkoittaa Yhtiö on ollut enemmän moronic,
ja on tallentamiseen salasana sarakkeen näin, salaamaton.
Mikä tarkoittaa vastustaja, joka varasti tietokanta,
kirjaimellisesti tuntee käyttäjätunnus ja salasana.
Se on pahin mahdollinen skenaario.
Ja kuten näet p-sarja seitsemän, joten helppo välttää.
Ei ole mitään tekosyytä, että muodossa tyhmyys nykypäivän Internet.
Two-- ja me löytää joitakin artikkeleita todistamaan, että tämä edelleen
tapahtuu, nonetheless-- kaksi, ehkä vastustaja
oli tämä versio tietokannan.
Joka on edelleen sellainen huono, koska nyt he tietävät, että minulla on kuusi asiakasta,
Tiedän käyttäjätunnukset näistä kuusi asiakkaita,
ja tiedän salattu versioita tai hajauttamat versiot,
näistä kuusi asiakkaiden salasanoja.
Mutta joku teistä jotka ehkä tehty [? Hakkeri 2?]
jossa säröillä salasanoja, tai otti katso tuota versio ongelma
sarja, miksi se vielä hieman huolestuttava jos vastustaja tuntee hash
salasanat?
>> Yleisö: koska ne voivat kirjoita koko sanakirja
osaksi tiivistefunktio.
Ja jos salasana on sanakirja sana, [? he voivat vain match--?]
>> DAVID MALAN: Aivan, vastustaja voi vain kirjoittaa koodia, kuten jotkut teistä
teki [? Hakkeri?] 2, jolloin voit kerrata yli
kaikki sanat sanakirjasta, tai kaikki mahdolliset yhdistelmät
Z ja yksi kautta nine-- joka kuulostaa paljon, ja se on.
Mutta tietokone, se on tosi nopea.
Ja itse asiassa, että oli piste [? Hakkeri 2,?] Oli
ottaa tavaraa, joka kirjaimellisesti näyttää tältä,
ja purkaa mitä se todellisuudessa oli.
>> Joten me tarkastelemme, miten voimme Tallenna tämä tehokkaammin.
Osoittautuu, onneksi MySQL, siellä aiotaan tietotyyppejä.
Ja yksi hauska osista noin tietokannan suunnittelu, ollakseni rehellinen,
oikeastaan ​​tekee päätökset itse miten sinun pitäisi edustaa tietoja?
Jos edustavat puhelinnumeron int, kuin iso numero, tai pitkä?
Vai oletteko todella tehdä sen sarjana merkkiä?
Ja siellä voi olla hyvin ei-triviaali vaikutuksia tämän.
>> Itse asiassa, yksi aikaisintaan hauskaa Germane tarinoita
on, kun Mark Zuckerberg rakensi Facebook, se oli kirjoitettu alunperin,
ja vielä on pitkälti kirjoitettu PHP.
Ja yksi suurimmista haasteista he kohtasivat varhain oli skaalaus.
Kun he pitivät lisäämällä koulun jälkeen koulu koulun jälkeen, tietääkseni,
yksi alkuperäisistä ratkaisujen oli lähinnä kopioida ja liittää
Osa tietokannoista ja joitakin koodi,
niin että Harvardin oli käynnissä omasta palvelimelle,
ja MIT oli käynnissä omasta palvelimelle.
Ja juuri sen vuoksi, joidenkin teistä, jotka ehkä muistaa,
et voisi olla ystäviä muissa verkoissa.
>> Et todennäköisesti ole ystäviä MIT tai Harvardin 10 tai niin vuotta sitten,
mutta ei voinut span verkkojen sillä osittain tästä syystä.
Ja yksi suurimmista haasteista Mark ja yrityksille kuten Facebook
on todella käsittely sadoilta ja tuhansien ja miljoonien
Pyyntöjen sekunnissa.
Joten mitä me aloitamme puhumme tällä viikolla
ovat todella olemaan germane kirjallisesti hyvä ohjelmisto, ja kansan keskuudessa
onnistunut työkaluja, pystyy käsittelemään paljon käyttäjiä.
>> Joten me puhumme asioista kuten indeksointi ja haku,
mutta että se on tänään.
Tulemme näkemään sinua lisää keskiviikkona.
>> [MUSIC - "SEINFELD" teema]
DAVID MALAN: voit se, ja vähentävät sitä.
Ja sinun ei tarvitse pitäytyä Joissakin ennalta määrätyn määrän muistia.
No, mitä se aikoo kutsua?
>> SPEAKER 1: No, mitä on tekeillä?
SPEAKER 2: Mitä tarkoitat?
Hän luennoi.
DAVID MALAN: Ja voimme käyttää toiminto nimeltään malloc on memory--
>> SPEAKER 1: Miksi ei hänen aseita liikkuvat?
>> SPEAKER 2: No that's-- tiedätte, se on normaalia.
Se on aivan kuin hän on juuri iso makkarat roikkuu siellä.
>> SPEAKER 1: Se on normaalia?
>> SPEAKER 2: Joo, mielestäni vain olettaa hän vahingossa
korvataan hänen deodorantti pikaliimalla.