>> [TÓNLIST spila]
>> DAVID Malan: Þetta er CS50, og þetta er upphaf viku átta.
Og við erum svo spennt að fagna aftur, stór koma á óvart, eigin Ramon CS50 er
Galvan, hækkandi háttsettur sem hefur verið eyða undanfarna mánuði
frá því í júlí í Los Angeles, í Hollywood, bókstaflega vinna á a vörumerki nýr TV
Þátturinn kallast Colony, höfundur sem er í raun Harvard alum sjálfur.
Og svo við erum mjög spennt að sjá þetta Frumraun á USA net í janúar.
Svo dvöl lag fyrir það, og til meira Ramon fyrir næstu vikur.
>> Veit nú að enda er í nánd.
Og hvað þýðir þetta er að það er ekki allt sem mikið eftir af CS50, sorglegt að segja.
Við höfum bara þrjá vandamál setur left-- það er
Heimadæmi six-- sem er í hendur nú eða fljótlega verður,
vegna síðar á þessu week-- er ætlað að brúa heimar okkar um stjórn lína, þar
við höfum eytt mestum tíma okkar með C, og heimurinn forritun á vefnum.
Jæja, þú munt sjá mikið af hugmyndum láni frá stjórn lína vinnu,
en einnig mikið af nýju og áhugaverðar hugmyndir
sem eru líka að fara að vera germane fyrir hreyfanlegur umsókn og fyrir tækni,
almennt, sem þú krakkar eru kunnugir nú á dögum
á fartölvur og síma og þess háttar.
>> Svo þú munt framkvæma ekki a vefur blaðsíða, eða a website
í sjálfu sér, en í raun vefur framreiðslumaður.
Þú verður að skrifa restina af vefþjóni skrifað í C, en tilgangur í lífinu
er að fá HTTP beiðnir, þá raunverulegur umslag við halda að tala
um, og í raun bregðast annaðhvort með sumir truflanir content-- eins punktur HTML
skrá, eða punktur JPEG eða önnur fjöldi skráa,
eða jafnvel PHP skrá þar vefur Miðlarinn er að fara að túlka þessi PHP
kóða og spýta út niðurstöður.
Nú höfum við veitt þér töluvert af ramma
fyrir it-- örugglega dreifingu póstnúmer fyrir vandamál
setja sex er yfir 1000 línur lengi, einhver sem er athugasemdir, til að vera fair--
en þetta er í raun ætlað að vera tækifæri
að fá þinn snertið ekki óhrein köfun í nokkuð stóru verkefni
sem við höfum mjög sérstaklega skorið út stykki af fyrir þig,
þannig að í raun þegar þú hættir CS50 og inn í raunverulega heimi forritun
og vilja til að notaði í allir tala um verkefni,
þú munt hafa miklu meiri þægindi sækja sumir uppspretta
númer, sumir opinn uppspretta verkefni á vefnum,
og köfun í og ​​gera breytingar sem þú sérð vel á sig kominn.
Heimadæmi sjö er að fara að vera um gera eigin vefur-undirstaða umsókn þína
sem tekur dynamic inntak og framleiðir dynamic framleiðsla á formi
af etrade.com eins website.
Og vandamál setja átta mun leggja áherslu á enn annað tungumál þekkt sem JavaScript.
>> Á meðan, the það sem kemur síðas Verkefnið er á sjóndeildarhringnum.
Svonefnd pre-tillögu er vegna viku frá í dag.
Pre-proposal-- á forskrift, sem er á website-- CS50 er
er nokkuð frjálslegur tækifæri fyrir þú þarft að senda nokkuð gagnorðar tölvupóst
til kennslu náungi þinn bara að apprise honum
eða henni um hvað þú ert að hugsa, að nota hann eða hana sem hljómandi borð.
Og hafa geðheilsu check-- hvort sem þú ert að hugsa
um að ætla líka mikið eða kannski of lítið,
eða kannski þú hefur ekki hugmynd hvað og vilja til að taka þátt í samræðum.
>> Síðan er tillaga og stöðuskýrsla,
svokölluð CS50 Hackathon hér í Cambridge fyrir Harvard og Yale nemenda
eins.
Lokaverkefni er framkvæmd er þá vegna.
Og þá CS50 sanngjarnt hér í Cambridge, sem og annað í New Haven.
Svo tillögu, taka a líta á the website fyrir þá upplýsingar.
>> En meira excitingly líka, er tækifæri til að fá þinn snertið ekki óhrein,
og hugsanir yðar opnast heild fullt af efni og verkfæri
og aðferðir sem eru viðbót kjarnastarfsemi kennsluáætlun námskeiðsins er,
en engu að síður tengjast.
Og einnig dásamlegt stepping steinum til gera mjög flott lokaverkefni sem
fara vel út efni sem við höfum fjallað formlega í vandamál setur eða í fyrirlestri.
Svo fara á heimasíðu CS50 er fyrir allt verkefnaskrá á málstofum.
Ef þú skráir ekki enn, það er fínt.
Fara á undan og skrá sig enn og við munum fylgja með lifandi straumspilun,
dagurinn og tíminn er á heimasíðu.
Og allt verður skráð og setja á netinu
ef þú getur ekki gert sérstaklega dögum og tímum.
>> Um hvað er framundan thereafter-- vel, auðvitað, það er CS50 Hackathon.
Þessi mynd, muna, frá viku núll tekin um 4:00 eitt kvöld í ár fortíð.
CS50 sanngjörn, sem aftur mun fara fram í báðum borgum.
Og þá bara að planta fræ, jafnvel þótt við enn
hafa mánuð plús eftir af önninni, ef þú vilt að taka þátt eigin kennslu CS50 er
starfsfólk og þú vilt að byrja hugsa um að verða CA,
eða kennslu náungi, ég veit að Við munum byrja að tala meira um það
síðar á þessari önn.
En á myndinni hér er flest lið á þessu ári.
>> Og svo, PHP-- og ég var svo sorglegt í síðustu viku að [? Allyse?] Vel
fór til vinnu að fá okkur þessar skemmtilegu leikmunir
sem ég gerði ekki enda upp með, svo það í raun bara horfði Hvílík heimska
sem við höfðum moka sitja hér í allan dagur á miðvikudaginn, og smá skeið.
En þetta var metaphoric mín leið til að reyna að mála
mynd af hverju við erum að breyting úr C í tungumáli líkt PHP.
Og sama má segja um hvaða Fjöldi languages-- Java, Python, Ruby
eða bunches af others-- en þar í C, til dæmis, skrifa forrit í C
gæti venjulega vera eins taka skeið svona
og grafa holu í sem jörð, í sandi eða drullu.
PHP er hægt að taka mikið stærri bit út af vandamálinu,
skrifa mun minna kóða með mun minni tól,
vegna þess að það er svo miklu meira virkni púslað í.
>> Nú, ef við vorum í raun mikil, við verðum eitthvað að moka
hér, en svo vera það.
Á sama tíma, hinn samlíking við komum upp með
er, að sjálfsögðu, þú gætir nota eitthvað eins og skiptilykil
að negla í eitthvað eins og nagli.
En auðvitað, rétt tól til að nota er að fara
að vera ekki svo mikið kallað tungumál C--
og nú er ég bara pirruð [? Sanders,?] Líklega,
við munum festa það later-- svo rétt tól til að nota oft
er ekki að fara að vera þetta lægsta tól.
Og reyndar, C er ekki tungumál sem flest ykkar eru alltaf að fara að nota,
eða ætti endilega að nota aftur.
>> Og í raun, lítið secret-- eina tíma
Ég nota C sjálfur er ansi mikið á milli September og desember á hvert haust
önn.
Og það er vegna þess að við nota það sem tækifæri
að kenna undirstöðuatriði forritun,
og með það tölvu vísindi grundvallaratriði, gögn
mannvirki, reiknirit og like-- en mjög fljótt verður þú
sjá nú að setningafræði og hugmyndir að baki C
eru svo frábærlega yfirfæranleg á nútímalegri
Hærra tungumál, eins og PHP og Python og Perl og Java
og Objective-C-- raun, ekki svo mikið Objective-C-- en Swift, þessir nýrri
tungumál sem margir af þú vilja þá notaði með þér lokaverkefni.
>> Svo án frekari fjaðrafok, við skulum í raun nota PHP til að leysa nokkur vandamál.
Muna að snemma, síðustu viku, sem við notuðum bara CS50 IDE,
við skrifaði Dinky lítið forrit sem bara sagt, "Halló heimur".
Og þá er ég spara það í skrá sem heitir hello.php.
Og þá er ég hljóp þessa skipun.
>> Og hvers vegna?
Á ensku, hvað er að gerast hér?
Hvað var ég að gera þegar Ég hljóp þessa skipun?
>> Já?
>> Áhorfendur: Það er einhver virka PHP sem les hvað er in-- skilur að.
DAVID Malan: Gott, það er sumir virka PHP-- og láta mig vera nákvæmari,
það er forrit sem heitir PHP, gengur einnig undir nafninu
Túlk, sem skilur innihald hello.php,
og túlkar hana efst til botn, vinstri til hægri,
og gerir það sem þeir skipanir segja.
Skipanir í hello.php, auðvitað, er bara fengið code-- aðgerðir
og breytur og lykkjur og þess háttar, sem við sjálf
hafa byrjað að skrifa í PHP.
>> En ólíkt C, sem er a safna saman tungumál,
PHP þú skrifar bara það, og keyra það.
Þú sleppa því milliliður skref umbreyta það til núll og sjálfur,
og þá að keyra það.
Og svo er það sem kosti af þessu?
Hvers vegna erum við skipstjóri skref?
Hvers vegna gera meira nútíma tungumál hafa tilhneigingu til að sleppa þessu skrefi?
Hvað var gagn?
>> Eða bara innsæi?
Jafnvel þótt við höfum ekki skrifað mikið PHP áður,
hvað er gagnlegt um ekki gerð númerið þitt finnst þér?
Nei?
Að fremja?
Þú klóra höfuð þitt?
Já.
>> Áhorfendur: Meira dynamic.
>> DAVID Malan: Meira dynamic?
Hvað meinaru?
>> Áhorfendur: [inaudible]
DAVID Malan: Allt í lagi, gott, svo eftir inntak,
þú þarft ekki að þýða það í hvert skipti.
Og það er í raun eins einfalt og that-- hvað
er að benda á að halda áfram að safna saman númerið þitt?
Þetta er bara skref sem er making-- þetta er þurfa,
á undanförnum vikur, tvisvar eins og margir skref
eins og bara að keyra forritið þitt.
Það hefur verið gagnlegt í að sjá um að þú sjá nokkrar villa skilaboð og svo framvegis,
en það er samt bara pirrandi skref.
>> Og svo forritari áttaði yfir tíma, hvers vegna er það ekki
byrja að skrifa tungumál sem gera ekki þurfum að nokkuð vélrænni skref,
svo sem bara skrifa númerið þitt og keyra það.
En hvað var verðið sem við sáum við greitt
í síðustu viku, með einu tilteknu dæmi?
Já?
>> Speed.
Svo [? hvað er?] túlkar svolítið hægar,
í því núll og sjálfur er gott og hratt fyrir tölvu
að skilja, vegna þess að Intel CPU, eða hvað sem það er,
bara skilur hvað er að gerast á með þeim mynstrum af bitum.
En túlk er forrit sem raunverulega
hefur til að lesa ASCII uppspretta kóða sem þú hefur skrifað,
og umbreyta það, svo að segja, eða reikna út hvernig það breytir endanum
að núll og sjálfur.
Þannig að það tekur bara smá hluti af frammistöðu högg.
Svo það er a hluti af a málamiðlun.
Nú ef við gerum þetta hérna, láttu mig fara á undan og gera dæmi sem hér segir.
Ef ég fer í hér, nýja skrá, ég ætla til að spara þetta aftur er hello.php.
Og nú ætla ég að fara á undan og segja, "prenta halló heimur" -
og muna að ég get notað prenta, ég ekki að nota print-F. Og nú hérna,
ef ég geri PHP af hello.php, huh-- I virðast ekki hafa túlkað það.
Hvað gerði ég rangt?
>> Áhorfendur: The horn armbönd.
>> DAVID Malan: Já, þú þarft sem oddklofi upp efst.
Svo það er góður af pirrandi, en þú venst því fljótt.
Ef ég þarf að skrifa PHP kóðann, ég yfirleitt þarf að segja forritinu,
eða segja túlkur, hey PHP, hér kemur smá PHP kóða.
Og þá fyrir gott mál, myndi ég loka þessu ekki með þetta, heldur
með bara spurningarmerki horn krappi, svo að nú hérna,
ef ég keyra þetta aftur, nú Ég fá viðkomandi niðurstöðu.
>> Nú skulum gera lítilsháttar hagræðingu, bara svo að þú hafir séð það áður.
Þetta er góður af pirrandi að ég að keyra PHP rúm hello.php,
vegna þess að í síðasta I gæti bara skrifa punktur rista
Nafnið program, sem er góður af gaman.
Það er góður af a betri reynslu notenda.
>> Svo kemur í ljós að þú getur gert þetta í PHP með following-- I
Hægt er að nota þetta nokkuð dulinn incantation efst hér,
sem er almennt kallað klabbið, þar er mikil tákn,
svo að segja, þetta er Bang eða upphrópunarmerki.
Og þetta er nú leiðin til forrit á dæmigerðum Linux kerfi sem
er kallað umhverfi eða ENV.
Og þetta line-- langa sögu short-- lína einn bara
segir, hey tölva, finna PHP túlkur fyrir mig í umhverfinu,
finna það í minni, svo að segja.
>> Og hvað er gott nú, er að ef ég fer niður hér,
Ég get gert punktur rista halló punktur PHP, or-- hmm.
Aðgangi hafnað.
Jæja, þú munt sjá enn meira af þessu með Heimadæmi sjö, ef þú
hafa ekki nú þegar, með leyfi.
Það kemur í ljós að ég þarf að framkvæma þessa skipun
kallaði [? chamod?] til breytinga mode-- plús x hello.php.
Ég þarf [inaudible] þetta einn til viðbótar skref sem er að segja tölvuna mína,
gera hello.php executable.
Og nú að horfa á það happens-- punktur rista hello.php, keyrir það bara.
Ég þarf ekki að tilgreina túlkurinn lengur.
Og ég get gert það enn fallegri, enn, ef ég endurnefna þetta.
Ef ég flyt hello.php bara Hello-- svo tilkynningar í efst til vinstri,
nafn forritsins er reyndar nú bara Hello.
Nú get ég gert það líta út eins og C program, jafnvel þó að það er skrifað í PHP--
eða hreinskilnislega allir tala af öðrum tungumálum.
>> Svo lélegur aukahluti, enginn hagnýtur munur.
En það er bara smá forvitni nú, þannig að þú getur skrifað forrit
á hvaða tungumáli, og notandinn er ekki að vita eða sjá hvað þeir eru.
Jæja, við skulum líta á fleiri sannfærandi dæmi nú
sem ég þeyttum upp fyrirfram.
Og þetta er kallað quote.php.
Og það er í boði á netinu.
Og eftir að það er nokkuð short-- en það er a stjórn lína program sem er
að fara að horfa upp hlutabréfaverð fyrir mig, sem er í raun að fara
að vera germane að Heimadæmi sjö.
>> Svo skulum sjá hvað ég er að gera.
Á the mjög toppur ég hef fengið að opinn krappi spurningarmerki PHP.
Þá hef ég þessa línu, þar sem ég er þurfa til skrá sem heitir functions.php--
við erum að fara að sjá meira um þetta í smá,
en þetta er eins og C er útgáfa af skarpur eru,
þar sem þú vilt fara eru aðra skrá.
PHP kallar það þurfa, þó það Einnig hefur ma hlutverki.
Og það kemur í ljós að function.php er bara eitthvað sem ég skrifaði áður bekknum.
Ég setti það í sömu möppu, því Mig langaði til að þáttur út nokkur númer
að við might vilja til að nota annars staðar.
>> Á sama tíma, getur þú sennilega álykta hvað er að gerast hér.
Þetta er svolítið öðruvísi frá C-- en hvað ég meina með því að tryggja rétta notkun?
Þýða þessa meira tæknilega.
Undir hvaða kringumstæðum er ég hætta forritið, eða spennandi?
Já?
>> Áhorfendur: Þegar þú ert ekki tveir stjórn lína rifrildi.
>> DAVID Malan: Þegar ég hef ekki að stjórn lína rifrildi.
Og muna að einn af þeim rök er áætlunarinnar nafnið sjálft.
Og annað er að fara að vera annað orð ég gerð eftir hvetja.
Svo bara eins og C, þetta er leið mín að stöðva,
gerði notandinn vinna og hlaupa the program eins og ég ætlaði?
Nú, það er eitthvað svolítið öðruvísi
með C-- fyrst af öllu sem við hafa þetta dollaramerki,
og hvað þýðir dollara undirrita tákna í PHP?
Bara breyta.
Það er all-- bara breyta eftir hvað sem þú vilt í raun og veru kalla það.
Taka það er eitthvað vantar PHP forrit mínu,
bara eins og það vantaði síðast viku, á móti C, sem er hvað?
>> A tegundir, en einnig eitthvað annað.
Það er engin eitthvað function-- meginhlutverki.
Það er engin Helsta hlutverk.
Þú byrjar bara að skrifa númerið þitt án þess að þurfa
að hafa áhyggjur af tiltölulega handahófskennt samningur um nafngiftir sumir sjálfgefið
virka helsta.
Svo er arg C bara virkilega a global breyta
sem túlkur gerir í boði fyrir mig.
Nú, þetta er áhugavert.
Svo líta upp efni.
Dollaramerki lager er á vinstri, það er breyta mín.
Á hægri hönd hlið, það er greinilega
fall í PHP heitir útlit sem Ég er liggur síðasta stjórn lína mín
rök to-- hvað orðið er.
Og við munum sjá hvernig þetta virkar í smá stund.
>> Og þá loks ég tilkynna verðið.
Ég er að prenta út eitt Hlutur svo og svo.
Og muna, þetta er Leiðin PHP-- hátt í PHP--
þar sem þú þarft ekki að gera dollara merki S lengur.
Þú getur bara notað hrokkið axlabönd og stinga í sumum breytu.
Þú þarft ekki að hafa áhyggjur af með því að nota printf á sama hátt.
>> Og eins og til hliðar, þegar þú setur breytu inni gæsalappa eins og þetta,
þú ert að nota fínt tækni heitir breyta innskot.
Það þýðir bara stinga breytu hér.
Og eins og til hliðar, sumir af þú sem koma frá öðrum bakgrunn forritun,
þú getur ekki notað einn quotes um strengi til að gera þetta.
Þú verður að nota gæsalappa fyrir breyta innskot til að vinna.
Annars þarftu bókstaflega sjá þessar hrokkið axlabönd.
>> Svo loksins, við skulum fara á undan og keyra þetta.
Leyfðu mér að gera flugstöðinni minn svolítið stærri.
Leyfðu mér að fara á undan og keyra inni tilvísun skrá minn.
[? CDsource?] [? AM?] [? vitna?] PHP tilvitnun punktur PHP,
og ég ætla að leita að einhverju eins GOOG, sem er auÃ hennar,
og einn hlut af nýju nafni sínu, Alphabet Inc, kosta $ 717, eins og í dag.
Allt í lagi, ef við viljum keyra þetta aftur, einhver
hafa annað hlutabréfaborða þeir vilja til að líta upp?
>> Microsoft ég held er þetta, MSFT-- 53 $.
Ég held Yahoo er kannski það.
Og Facebook er að.
>> Svo er það þetta forrit að gera?
Galdur virðist vera embed in í því útlit virka.
Svo skulum taka a fljótur líta.
>> Það kemur í ljós að ekki koma PHP, er það í functions.php.
Og við munum ekki fara í gegnum þetta í smáatriðum,
en taka aðgerð orð hér er að á línu sex af functions.php--
Ég segi bókstaflega virka.
Ég tilgreina nafn virka mínum.
Ég tilgreina þá hvaða rök, eða breytur,
Ég vil að virka til að take-- engin tegundir.
Og þá er ég að framkvæma það.
>> Og ég ætla að veifa hendi minni á framkvæmd,
þar sem það er nokkuð háþróaður rétt nú, en við munum sjá hann aftur í raun
í viku í Heimadæmi sjö.
En ég get þrífa þetta upp líka.
Ég hef líka í númer í dag útgáfu
af tilvísun, sem hefur enga punktur PHP skrá.
Vegna þess að það er væntanlega á því Efst á forrit sem heitir bara vitna?
Að svokölluð shebang-- á nokkuð dulinn incantation
sem segir að finna PHP og þá keyra það á númerið mitt hér.
>> Allt í lagi, þannig að koma okkur að þar sem við var horfið
Síðast time-- vísu með sumir fleiri háþróaður dæmi.
Einhverjar spurningar svona langt um PHP eða hvað við erum að gera?
No-- allt í lagi.
Já?
>> Áhorfendur: Inni í HTML skrár, gera you--
[? þú?] [? bara kalla það?] a [inaudible] PHP skrá?
DAVID Malan: Góð spurning.
Í a vefur samhengi sem við erum bókstaflega um að umskipti,
þú notar ekki svokölluð klabbið efst,
vegna þess að vefþjóni oft forrit sem heitir Apache eða Microsoft
IIS, Internet Information Server, eða allir tala um aðrar vefur framreiðslumaður hugbúnaður,
veit að þegar það sér punktur PHP skrá, að það
ætti að keyra á túlkur á það.
Það þýðir ekki að líta á þessi fyrstu línu.
Svo þetta fyrstu línu bragð er bara þegar þú ert
skrifa stjórn lína programs-- sem við munum ekki gera frábær oft,
en það er leið okkar að brúa C dæmin til hafa PHP okkar.
>> Svo skulum örugglega brúa þennan heim frá stjórn lína heimi til vefur
með því að gera eftirfarandi.
Leyfðu mér að fara á undan og draga hérna fyrir réttlátur a augnablik.
Svo ef við hafa a vefur framreiðslumaður, eða öllu heldur ef við höfum fartölvuna mína hérna,
sem ég teikna svona.
Og hér höfum við það internet í einhverju formi.
Og þá hérna, við höfum miðlara í building--
þetta er hvernig netið works-- og hér
er miðlara með nokkrum ljósum kannski.
Hvað er raunverulega að gerast milli þessara tveggja tenginga?
>> Svo í þessari byggingu er vefur framreiðslumaður.
Það er bara tölva sem er að keyra eitthvað rekstri
system-- kannski frjáls hugbúnaður heitir Apache, sem CS50 IDE er í gangi.
Svo þú getur raunverulega hugsa um þessa byggingu
eins og að vera bygging í sem CSt0 IDE er geymt.
Það er þar sem allt sem þú þarft reikninga, þar sem allir ykkar
hafa eigin vefþjón þinn gangi, allir þér
hafa eigin einstaka þinn vefslóðir, eins og við byrjuðum að ræða,
og þú munt sjá fleiri í P. setja sex.
>> Hér er minn laptop einhvers staðar annars á internetinu.
Og svo þegar ég fer á vefslóð sem tilheyrir mér, sem internetið umferð er að fara
yfir á miðlara, framreiðslumaður er fengu HTTP request--
eins og að fá index.html og það er svara þeirri vefsíðu.
Svo er það almenn hugmyndafræði.
En allt upp Þangað til nú í dag, allt
var að gerast aðeins í takmörk þessarar byggingar.
Ég var að nota fartölvuna mína, en Ég var tengd við CS50 IDE,
svo öll slík forrit sem ég var að keyra var inni í þjóninum, sjálft.
>> En nú skulum við byrja endurnýta PHP að skrifa nokkrar raunverulegar áætlanir sem
er boðið upp af vefþjóni.
Og til að gera þetta, ég ætla að fara í a heild búnt af dæmum
sem kynna þessa hugmynd hér.
Svo er þetta eins konar fínt leið lýsa forritun fyrirmynd.
>> Og í raun, eins og þú hættir CS50 eða vinna á lokaverkefnum,
eða taka sumir fylgja á bekknum, þú munt byrja
að sjá að við world-- sérstaklega hafa vaxið upp
með tungumálum eins og C sem eru frábær lítil level--
gera sér grein fyrir að það er betra leiðir skriftir hugbúnaður.
Það eru ákveðnar mynstur sem þú getur fylgst með,
ákveðnar leiðir skipuleggja skrár og leiðir til að nafngiftir aðgerðir þínar,
svo að langa sögu stutta, heimurinn hefur komið upp
með a heild búnt af skammstöfunum og nöfn leiðir forritun.
Þetta eru bara aðferðir sem þú gætir notað.
>> Og einn af þeim er kallaður MVC, fyrir Model View Controller.
Og þetta er bara fyrir nú, óhóflega flókið
leið til að segja hvernig þú ættir að leggja út PHP-undirstaða website, í okkar tilviki.
Hvernig heldur þú að skipuleggja skrár, hvernig gera þú skipuleggja rökfræði þinni,
á þann hátt sem gerir það auðveldara að skrifa flóknari vefsíður?
Og reyndar, munum við fljótt þangað með p-setja sjö.
>> Svo í heimi MVC, ætlar þú að fara að sjá að númerið okkar getur almennt
að einkennast eins annaðhvort reglnanna, eða stjórnandi númer, eða skoða númer.
Og ég ætla að málin það sem follows--
stjórnandi er heila program,
það er þar allt í áhugavert rökfræði gerist.
Svo allt sem við höfum verið skrifa svona langt í bekknum,
er góður af eins og stjórnandi code-- það er að stjórna
program, lykkjur þín, þinn skilyrði, virka þinn
og breytur og allt það.
>> Views, nú, eru að fara að vera svolítið meiri í heiminum á vefnum.
Horft er fagurfræði af vefsvæði þínu.
Það er það sem notandinn sees-- myndirnar, HTML töflur, HTML tags, og allt
um það, allar Fluffy fagurfræði efni sem er ekki það erfitt að skrifa,
en er bara það sem þú ert að búa til, er svokölluð útsýni, fagurfræði.
Og líkan, að lokum, er að fara að vera gagnasafn stuff-- sem
munum við byrja köfun í öllum Því meira sem þetta miðvikudagur.
Svo stjórnandi er rökfræði, útsýni er fagurfræði efni,
og fyrirmynd er að fara að vera þar við geyma raunveruleg gögn okkar.
>> Svo skulum líta á þetta meira concretely með eftirfarandi dæmi.
Ég ætla að fara inn í möppuna mína hér af upptökum í dag code-- allt sem
er í boði á netinu.
Og ég ætla að fara í útgáfu núll.
Og hér is-- skulum kalla hann útgáfa núll af heimasíðu CS50 er.
Það er ekki mikið hér yfirleitt.
Það er mjög einfalt vefsíðu sem er sennilega nota það HTML tags-- bara
giska síðustu dæmum?
>> Hvað er þetta?
H1-- sennilega fyrir það stór feitletruð titill, sem logo upp efst, CS50.
Og hvað er að verki?
Já?
Áhorfendur: Óraðaður listi.
DAVID Malan: Óraðaður list-- svo UL tag og kannski par af LI tags.
Og ef þú manst ekki þessir, það heiðarlega skiptir ekki máli.
Þetta eru Fluffy konar framkvæmd upplýsingar um HTML
að þú lítur fljótt upp og þú ert aftur á vegi þínum.
Við munum leggja áherslu meira á forritun hugmyndir sem eru að juicier stykki.
>> Svo skulum við taka bara fljótur líta á HTML-- og örugglega
ef ég opna View Source hér, jamm, Það er einmitt það sem er að gerast hér.
Það er UL tag.
Hreiður inni í því er að lágstyrks- tags.
Og þá er ég að láni slóðina á raunverulegri kennsluáætlun hér.
>> Og síðan í lectures.php er greinilega
annar virk mynda síðu það er að fara að hafa, við skulum see-- Ah,
fyrstu tvær vikurnar í fyrirlestri.
Svo viku núll og viku einn, við skulum líta á this-- ef ég skoða síðu uppspretta,
Einnig frábær einfalt.
Þetta eru leiðir til tvær síður heitir week0.php og week1.php.
Svo íhuga nú hvað er að gerast.
>> Þegar ég smelli á week0.php, laptop minn er að gera beiðni um week0.php.
Vefþjónninn, gengur einnig undir nafninu, CS50 IDE, fær að raunverulegur umslag.
Það er að sjá skilaboð eins, fá week0.php.
Það er síðan túlka skrá, efst til botn, vinstri til right-- skrána
heitir week0.php-- og spúandi niðurstöður.
Svo inni af þessari skrá, week0.php, verður að vera
stjórnandi rökfræði sem er að búa þetta HTML, og við munum fljótlega sjá að.
>> En nú, láttu mig smella á viku núll, og nú höfum við miðvikudag og föstudag,
og nú höfum við glærur hægt af viku núll.
Og þú gætir muna þetta frá leið til baka þegar.
Svo er það allt þetta vefsvæði er að gera.
>> Svo skulum við íhuga hvernig það er að gera þetta.
Ég ætla að fara aftur inn í Kóðinn hér í CS50 IDE,
og ég ætla að opna index.php.
Efst á þessa skrá er fullt af athugasemdum.
Og þá í the miðja af þessari skrá, það kemur í ljós, er ekki PHP kóðann neinu tagi.
Vegna þess að ef þú ert ekki með neina af opinn krappi spurningarmerki PHP tags,
þú ert frjáls til að bara að setja HTML.
>> Vegna þess að það er PHP túlkur er ætlað að gera,
er þegar það les þessa file-- toppur til botn, vinstri til right--
það túlkar aðeins kóðann það sér á milli þessir oddklofar spurningarmerki.
Og allt annað að það er ekki viðurkenna sem PHP, það spits bara út.
Og HTML er meðal efni það verður bara að spýta út.
>> Þannig að þetta skrá gæti hafa verið kallaður index.html,
en ég ætla að nefna allt punktur PHP sem stepping steinn.
Lectures.php-- álíka underwhelming, er það bara sumir HTML.
Week0.php, álíka bara sumir HTML.
>> En nú skulum setja á proverbial verkfræði húfu,
og íhuga hvernig við getum bætt það.
Það er ekki erfitt að gera þetta, en ég góður af dreifstýringu í afrita og líma.
Og í raun, ef ég geri viku tvö, þú veit hvað ég er líklega að fara að gera?
Ég ætla að fara til week1.php, ég er að fara að varpa ljósi allt.
Ég ætla að afrita það, líma það í nýja skrá sem heitir week2.php,
klip nokkrar vefslóðir, og vera á leiðinni.
>> Svo miðað við það sem við höfum séð í C þegar,
þetta virkar ekki finnst rétt, vonandi.
Afrita, líma sjaldan rétt lausn.
Og hvað getum við byrjað að gera til að bæta þetta?
Hvar eru tækifærin fyrir betri hönnun?
>> Þegar ég fá að viku átta, það er að fara
að vera mjög pirrandi ef ég vil breyta
letrið á hver og einn síðurnar, eða ef ég vil
að breyta uppbyggingu skipulag.
Svo hvar er tækifæri fyrir betri hönnun?
Jæja, við skulum íhuga hvað er hluti yfir allar þessar skrár.
>> Hér er viku einn, hér er viku núll, hér er lectures.php,
hér er index.php-- það er sama og Hvað er öðruvísi, bil að tala,
á öllum þessum skrám?
Já?
>> Áhorfendur: [inaudible]
DAVID Malan: Allt í lagi, gott.
Svo er það mynstur, örugglega, þar í hvert skipti sem ég vel fyrirlestrinum,
Ég skal búa til mjög svipuð útlit síðu.
Og svo kannski get ég nýta sú staðreynd að í raun,
við vísvitandi tölulega verðtryggð lectures-- okkar
ef ég get sett enn meira orð í svari þínu.
Og hvað er það eina sem, í raun, sem er að breytast á milli viku one--
og láta mig fletta niður svo það er nokkurn veginn í sama place--
svo hér er viku núll, u.þ.b. efst.
Hér er viku einn, viku núll, viku einn, viku núll.
OK, bókstaflega ef þú veist ekkert forrit af neinu tagi,
þetta er nú bara eins og mynstur samsvörun leikur.
Svo er það öðruvísi?
Já?
>> Áhorfendur: [inaudible]
DAVID Malan: Gott, svo titill er að breytast, alltaf svo lítið.
Zero er að fara, að sjálfsögðu, að einn.
Sami hlutur er að gerast í H1 tag.
Og við gerum ekki alveg að sjá það eins auðveldlega, vegna þess að vefslóðir eru svolítið lengi.
En þeir slóðir eru að breytast lítillega.
>> En hvað er ekki að breytast er, þora ég segja, af innihaldi page--
HTML tag er sama, höfuð er sama, titill er nánast það sama,
líkaminn er sama og nánast allt annað
er það sama nema fyrir þessir litlu klip.
Og hvernig getum við farið um þátta eitthvað af þessu út?
>> Jæja látið mig leggja nákvæmlega að í næstu útgáfu.
Svo hér í útgáfu eitt, ég hef nákvæmlega Sömu skrár, auk a par af öðrum.
Hér er index.php-- og jafnvel ef þú hefur aldrei séð PHP áður,
hvað er ég að gera sennilega að leysa þetta problem-- miðað við það sem þú sérð hér?
Já, er að lítilsháttar skuldbindingu?
Nei?
Já, fara á.
>> Áhorfendur: [inaudible]
>> DAVID Malan: Já.
>> Áhorfendur: [inaudible]
>> DAVID Malan: ég þarf að tala bara smá hávær.
>> Áhorfendur: [inaudible]
DAVID Malan: Allt í lagi, gott.
Og ég think-- það var erfitt að heyra you-- en ég
hugsa hvað þú ert að fá á er að merkin sem voru algeng upp efst,
og merkingar sem voru algeng á botn, hafa nú verið tekið út,
eða relegated að hvaða skrá?
Header.php og footer.php-- og við erum að fara
að gera nokkrar klip til takast á áhyggjum þú bara
hækkað um tölurnar breytast, fyrir dæmi, ef ég heyrði þig rétt.
>> En það virðist vera GIST það.
Ef það var mikið magn af offramboð efst á síðunni,
og a gríðarstór magn af offramboð neðst,
skulum bókstaflega bara hápunktur og skera þessi efni út,
setja það í sér file-- bara eins hugmyndin um CSS, þar sem við reiknað út
mjög svipuð fagurfræði, setja það í sér punktur PHP skrá,
nota þarf mechanism-- sem er eins C Sharp include-- sem
er í meginatriðum eins og að segja að fara grípa innihald header.php,
og afrita og líma þær hér.
>> En hvað þýðir þetta er að nú í index.php, ég þá tvær línur.
Í lectures.php, ég líka hafa þessir tvær línur.
Í week0.php, ég líka hafa þessir tvær línur.
>> Svo nú, ef ég vil breyta titill allar síður mínum,
eða ég vil breyta grundvallaratriði uppbyggingu,
Ég get breytt því núna í aðeins einum stað, eða tveir places-- haus og fót,
í sömu röð.
Nú upphafið kóðann er að líta aðeins meira dulinn, ekki satt?
En ef þú hugsar um það á síðunni er doing-- ef ég biðja week0.php,
bara eins og á teikningu yfir here-- þegar óskað er eftir week0.php,
hvað þýðir það?
>> Bókstaflega, þessi skrá er óskað eftir vafra.
Í vefþjóni gengur einnig undir nafninu
CS50 ID-- grípur þetta skrá, week0.php, og les
það toppur til botn, vinstri til hægri.
Á línu eitt, kynni það strax opinn krappi spurningarmerki PHP, þurfa
haus punktur PHP, og svo hvað PHP túlkur
does-- sem er byggt inn í the vefur miðlara, vegna þess að við forstillt
það fyrir you-- það fer sjálfkrafa í header.php afrit innihald,
Límir þá hér.
>> En þá túlkaþjónustu fundur spurningarmerki nálægt krappi,
svo það er allt gert að hugsa.
Nú spits það bara í blindni út línum tvö með sjö,
vegna þess að það er bara hrár HTML.
Fær að stilla átta, og gerir það Sama galdur again-- opna skrána,
grabbing innihald, og þurfa þá eða líma þær
rétt þá eða þar.
>> En ég benti bara villu.
Þetta er að hluta skref afturábak, vegna þess að ef við lítum í header.php,
Ég hef konar skera horn.
Hvað lögun gerði ég gefa upp til til að öðlast þessa áreiðanlegur betri hönnun?
Já?
Áhorfendur: [inaudible]
DAVID Malan: Já, ég konar af skera nontrivial horn.
Þú benti á að það var að breytast var titill, fjöldi í titlinum,
og fjöldi í H1.
Svo lausnin mín var, OK, við skulum bara endurnefna síðu,
og ekki takast á við það vandamál af neinu tagi.
Svo er það að hluta stíga aftur á bak fyrir viss.
>> En hvað er athyglisvert hér er að það sem ég hef gert
er annars reiknað út öllum sameiginlegum efni.
Og í footer.php, eftir ég reiknað út allt það, að vísu minni,
algengar efni.
Þannig að ég þarf einhvern veginn að nú að vera fær um að taka eitt skref áfram, og festa
þessi titill málefni.
Svo skulum gera það.
>> Leyfðu mér að fara inn í seinni útgáfa minn Hér, sem, aftur, hefur sömu skrár
nema einn nýja viðbót.
Og það er lítið meira fjölorður, en við skulum sjá hvort við
getur stríða í sundur hvað er að gerast hér.
Þannig að í stað þess að þurfa header.php og footer.php,
Ég virðist vera aðeins krefjast þess að einn file-- kallað, að sjálfsögðu, helpers.php.
Og láta mig kveða nú, hvað er inni í helpers.php
er bara fullt af aðgerðum sem ég skrifaði, eins og áður.
En ég kallaði það helpers.php.
>> Nú virðist, í lína þrjú og 10, ég er
kalla tvær functions-- láta haus, bakið fæti.
Þeir koma ekki með PHP, skrifaði ég þær sjálfur.
Og ég setti þá í helpers.php.
>> Nú höfum við aðeins séð þetta setningafræði einu sinni, og það var frábær stutt.
En þetta er greinilega rök að láta haus, sem virka.
Hvers vegna veit ég það?
Jæja hér er náinn paren, hér er opinn paren.
Og auðvitað, rétt eins og í C, nokkuð á milli þessara sviga
er input-- eða rök að virka.
>> Hvað er gögn tegund þessa röksemdafærslu, miðað við það sem ég hef bent?
Hvað gera þessir hornklofum benda, byggt á síðustu viku?
Já, það er array-- sérstaklega tengin array.
Og þetta setningafræði vísu er svolítið angurvær,
en þetta er bara farið í einn lykill gildi par.
Lykilatriðið er, vitna unquote titill, og gildið er CS50.
>> Ef við hefðum gert þetta í C, gæti það í staðinn
líta meira eins og þetta, bara vitna unquote CS50--
eða í raun væri hrokkið axlabönd, eða eitthvað svoleiðis í C,
þar sem lykillinn er núll, og gildi er CS50.
En aftur, í PHP, jafnvel þótt setningafræði er, aftur, svolítið skrítið,
það gerir þér kleift að fara í orð í stað númer
að tengja takka með gildum.
>> Svo hvað þýðir þetta allt þýðir?
Ef ég fer inn helpers.php, við skulum líta á þessa aðgerð.
renderHeader.php, frekar renderHeader er virka minn,
og ég veit að því að ég sé virka leitarorð hér.
Þetta er nýtt frá C-- það virðist tekur rök kallast data--
en ég hefði getað kallað þetta neitt, en ég kallaði það gögn,
bara til að vera svolítið clean-- og bara taka giska, sérstaklega
ef þú hefur forritað í einhverjum öðrum meiri tungumál áður, eitthvað
ofan C, eðli.
>> Hvað gerir jafnan opið krappi ferningur krappi meina sennilega?
Eða hvað gæti það þýtt?
Við höfum ekki séð þetta í C Já?
>> Tómt array.
Sérstaklega, þetta þýðir að ef the notandi hjartarskinn ekki kalla renderHeader
með rifrildi, ég er enn að fara að hafa rök kallast gögn,
en sjálfgefið gildi er að fara að vera tómt array.
Svo það er bara gott þægindi.
Ég þarf ekki að æpa á notanda, eða segja að þú notaðir virka minn rangt.
Ég get bara gefa notandanum sjálfgefið gildi, ef ég er ekki sérstaklega annt.
Nú þetta virka, ég er að fara að veifa höndum mínum á.
En þetta þykkni virka leyfa okkur að fara þessar breytur í gögnum
inn header.php á eftirfarandi hátt.
Og þetta er síðasta stykki, Ég held, að angurvær setningafræði.
Hér er ný útgáfa mín af header.php-- það
notað til að segja, bókstaflega, opinn krappi titill CS50, og það var það.
Og það sama fyrir H1.
>> Nú segir það virðist eitthvað ansi angurvær.
Og láta mig einfalda þetta um stund eins og hér segir.
Þetta er það sem ég hef breytt titil minn til að vera.
Hins vegar er það að fá smá ljót stöðugt opnum sviga með PHP,
og þá nota prenta virka.
Það kemur í ljós að PHP er styttingin merki fyrir þetta, sem er bara
jafnaðarmerki, sem er tæknilega a virka heitir echo stað á prenti,
en það er sama, í raun.
>> Það lítur bara betur.
Það er bara nokkur dæmi um setningarleg sykur, ef þú vilt,
sem gerir númerið mitt líta svolítið betur.
En það kemur í ljós, og við munum sjá þetta aftur
áður en langt, höfum við að kalla þetta óþægilega langur virka heitir
HTML sérstök stafir í PHP, vegna þess að það kemur í ljós
það eru ákveðin inntak að notandinn gæti gefið okkur,
eða að notendur gætu gefið okkur, sem eru að fara að brjóta á síðuna okkar.
En við munum sjá að næsta viku með JavaScript.
En nú, bara vita að þessi skrá, headers.php, einfaldlega
tekur titilinn sem Ég fór í það að gera
viss um að það er óhætt að sprauta inn í a vefur síðu, og það spits það út eins og titill minn
og eins H1 minn.
Svo ef ég fer í þessari útgáfu núna, eftir því að fyrirlestrar eru titil sinn aftur,
viku núll hefur titil sinn aftur, og reyndar HTML ég búa
er eins og hvaða fyrstu útgáfu minni was-- nema bil mitt,
vegna þess að ég hef byrjað að forsníða númerið mitt svolítið öðruvísi.
En ég hef búið allt kóðinn ég hugsa um.
Svo láta mig gera hlé bara smá stund og sjá
ef það er einhverjar spurningar eða rugl sem ég hef búið til.
Allt í lagi, þannig að við skulum snúa svolítið erfiðara hér
til að sjá hvort það er tækifæri til úrbóta.
Helpers.php hafði einnig þetta virka, sem heitir renderFooter.
Og hvað er athyglisvert renderHeader og renderFooter?
Og aftur, vegna í dag, veit að þykkni virka er bara
mín leið brottför rök í header.php og footer.php.
>> Sorry?
>> Áhorfendur: [inaudible]
DAVID Malan: Já, bara ég breytt krefjast línu.
Svo bókstaflega, ég hef framið synd að afrita og líma, enn og aftur.
Það er ekki a gríðarstór tala línum, en koma on--
ef ég er að afrita og líma allt bara að breyta einum smá orð,
og eitt lítið orð sem Alan bendir út er fót hér, á móti haus hér.
Annars, allt er eins nema,
auðvitað, nöfn sem virka er.
Svo hvað getum við gert betur?
>> Jæja látið mig opna þessa útgáfu hér, þar sem í helpers.php,
hvers vegna get ég ekki fá bara lítið betri um þetta?
Skrifa örlítið flóknara kóða, en kalla það bakið?
Svo hvað hef ég breyst í grundvallaratriðum?
>> Það tekur rök now-- tvær breytur, gögn enn.
Og þá er það fyrsta sem Nafnið líklega verið notað,
miðað við það sem þú ert að lesa hér?
Jafnvel þótt sumir af the setningafræði er enn nýr.
Hvað er dollaramerki sniðmát?
>> Sorry?
>> Áhorfendur: haus eða fót.
>> DAVID Malan: haus eða fót.
Svo virðist, ákvað ég að ef það eina sem er að breytast
er það sniðmát sem ég vil að print-- og með sniðmát
Ég meina þetta er Teikning til númer sem ég vil að framleiðsla,
en ég vil tengja í sumum values-- þannig að ef það er bara haus
eða fót, hví ekki ég parameterize sem og kalla rök dollaramerki
sniðmát?
Og þá er þetta angurvær setningafræði leyfir mér til að búa til slóð í breytu hér.
>> Svo dollaramerki leið er breytilegt.
Hvað gerir þessa setningafræði gera, ef þú ert kunnuglegur?
Já?
>> Áhorfendur: [inaudible]
DAVID Malan: Einmitt.
Ef sniðmát er, vitna unquote, haus, eða ef sniðmát er,
vitna unquote, fæti, þessi lína þarna sem ég hef bent, lína átta,
er einfaldlega að taka þetta nafn, eins og haus, og concatenating það með punktur PHP.
Þannig að við hefðum ekki þessa rekstraraðila í C. Þetta punktur rekstraraðila er
furðulegur hlutur í PHP-- ef þú ert þekki JavaScript eða Java,
þú getur notað plús undirrita að gera samtenging.
>> Í C, er það verk í neck-- og ég er svo leitt, í P-setja sex,
þú ert að fara að þurfa að gera this-- það er sársauki í hálsi
til concatenate strengi.
Hvers vegna?
Jæja, vegna þess að ef þú hefur fengið band sem er þetta lengi,
og annar band sem er þetta lengi, þú getur ekki bara stinga þeim saman.
Hvað þarftu staðinn að gera í C?
Já?
>> Áhorfendur: [inaudible]
>> DAVID Malan: Þú þarft að malloc minni, eða nota array á mánudaginn.
Og þú ert í raun að gera það array nógu stór
að passa þetta plús þetta, auk sviga núll.
Þá concatenate þeim saman með hrærið köttur eða handvirkt með for lykkju,
eða allir tala af tækni.
Og við sýna þér nokkra í P-setja sex.
>> Það er sársauki í hálsinum.
Og þetta er sannarlega það sem ég meina um þetta á móti this-- eins og C móti PHP.
Þú færð bara svo miklu meira virkni fyrir frjáls,
svo að þú getir einbeitt, helst á gaman
hluti af erfðaskrá, sem Verkefnið þú vilt leysa,
frekar en lágt minutiae.
>> Þannig að þetta bara býr header.php eða footer.php byggt á sem einn ég kalla.
Og reyndar ef ég fer í index.php tilkynning
allt sem er changed-- stað starf gera haus eða láta fót,
Ég ætla að hringja bakið, í framhaldi af því Heiti sniðmát sem ég vil gera.
Og þú munt sjá þetta líka, í Heimadæmi sjö,
þar sem við leyfa þér að nota Sama virka til að gera bunches
og bunches af mismunandi vefsíðum.
>> Svo frekar en að búa of miklu meira um þá details--
sem þú munt sjá aftur í Heimadæmi seven-- skulum líta
á núna upphafi lausn til fleiri áhugaverður vandamál.
Svona langt, ekkert sem við höfum gert hefur vistað upplýsingarnar.
Í raun, í eina skiptið sem við höfum alltaf vistað eitthvað sem við höfum gert í þessum flokki
er þegar við höfðum mjög einfalt demo hríð aftur, þar sem við notuðum skrá IO í C,
og ég held að ég slóst í mínu nafni, og Nafnið Hönnu, og nafn Maríu,
eða kannski nafn Andy, og þá erum við hólpnir CSV file--
kommu aðskilin gildum skrá.
>> Og við notuðum fopen-- ég held við notuðum fprintf sem ég man,
og við vistað skrá.
Nú, það er einfaldasta form a gagnagrunninum.
Ef þú vilt gera heimasíðu fyrir Frosh Spjallboð program, þar nýnema
getur skráð sig í íþróttum, þú helst langar að gera eitthvað með þeim gögnum.
Í síðustu viku, gerði við ekkert með data-- ég sagði bara,
þú ert skráður, í raun ekki.
Eða kannski ég send í Proctor, og það var það.
>> En það væri gott ef ég gæti gefa því Proctor CSV skrá,
eins og Excel skrá.
Eða enn betra, myndi það gott ef ég gæti
setja nöfn þeirra notenda 'og dorm nöfn og allt það
í gagnagrunn sem bara lifir að eilífu,
þangað til ég valið að eyða gögnum.
A gagnagrunnur sem gerir mér fyrirspurn upplýsingar.
Og reyndar, það er það sem gagnagrunnur.
>> Við kynna í dag, og í næstu viku líka, tækni
kallað SQL-- a Structured Query Tungumál, sem er annað mál.
Það er fyrst og fremst á forritun tungumál, en fyrir gagnagrunna.
Og gagnagrunnur fyrir núna, bara hugsað sem frábær ímynda útgáfu
Microsoft Excel eða Google Tafla, eða Apple Numbers.
Það er yfirleitt forrit sem gerir þér að geyma a heild búnt af gögnum
í raðir og dálka, alveg eins og þú gætir í Excel.
>> En hvað er gott, sérstaklega ef við erum ekki frábær þekki Excel,
hvað SQL leyfir þér að gera er að fyrirspurn þessi Upplýsingar með því að skrifa línur af kóða
þar sem þú getur, jafnvel ef þú Gagnagrunnurinn hefur milljón raðir í það,
þú getur fundið það frábær fljótur.
Í raun, Excel er sérstaklega slæmt á stórum gagnagrunnum.
Og í raun, allt að nokkrar árum síðan, kom í ljós
Excel vildi bara leyfa þér að geyma allt að 65,535 raðir data-- sem
hljómar eins og a einhver fjöldi, en á þegar ég var að Grad nemandi,
og ég man tripping yfir þetta vegna þess að ég var að búa
CSV skrár fyrir rannsóknum mínum og ég langaði til að greina þá fljótt
bara með því að opna upp í Excel.
Auðvitað, tölvan mín hrundi bara, vegna þess að ég hafði meira en 65.000 raðir.
>> En hvar var 65.535 koma frá?
Hvað var Microsoft að gera, væntanlega?
Ef þú ert góður með völd þín í tvo?
Já, þeir voru með 16-bita gildi að tákna röð númer.
Og tveir til 16 er 65,536-- mínus einn, því ef þú
núll Vísitala þýðir að það var mest fjölda lína sem ég gæti hafa.
Og það var bara hönnun ákvörðun.
Með því að vista 16 bita, þeir takmarkast mig að 16.000 raðir í stað 4 milljarða,
sem ég gæti hafa haft fullkomlega.
En nú erum við að fara að kynna þetta meira í a vefur samhengi.
Og hvað er gott um SQL er að jafnvel þó er það nokkuð öflugur og falleg
háþróuð, snýst það í raun niður á fjórar helstu aðgerðir, fjórar
Takkarnir, ef þú will-- velja, til að endurheimta gögn, leita
fyrir gögn; eyða eða eyða gögnum; setja til að bæta raðir í gagnagrunn;
og uppfærslu.
Svo ef þú hefur einhvern tíma notað Google Tafla, Apple Numbers, Microsoft
Excel, hefur þú framkvæma, líklega, allt
þessara aðgerða sem mönnum með bara að nota lyklaborðið og mouse--
innsetning gagna, með augun til að velja eða leita að gögnum,
eða uppfæra gögn eða eyða gögnum.
>> Svo hvað þýðir þetta?
Jæja, pre-setja í embætti í CS50 IDE er forrit sem heitir MySQL.
Það er ókeypis, opinn-uppspretta gagnagrunni sem er frábær vinsæll.
Facebook, til dæmis, notar það til að þetta dag, meðal annars verkfæri sem þeir nota.
Og mikið af mjög vinsæll vefsíður nota það í stórum hluta vegna þess að það er hratt,
og vegna þess að það er ókeypis.
Þó vissulega val til.
Og sumir af þú might notaði við val fyrir lokaverkefni.
>> Þetta er screenshot, á meðan, af a vefur-undirstaða tól sem heitir phpMyAdmin.
Það er tilviljun að Þessi vefur-undirstaða tól er einnig
skrifað á tungumáli, PHP, en hvað það er ætlað að gera
er gefa okkur a vefur-undirstaða tengi við gagnagrunn.
Vegna MySQL venjulega er eitthvað, sögulega, þér
myndi hafa samskipti við aðeins með stjórn lína.
Og það væri frábær pirrandi og yfirnáttúrulegt að hafa
að slá texta skipanir til að velja gögn, setja gögn og eyða gögnum.
Svo sumir á internetinu skrifaði a vefur-undirstaða forrit
sem bara láta okkur stjórna gögnin í gagnagrunninum okkar.
Það er eins og að tvísmella á Excel og keyra vefur-undirstaða útgáfa hennar.
>> Og hvað þú ert að fara að nota þetta fyrir lokum í næstu viku, ekki í P-setja sex,
en er að byggja eitthvað kallað CS50 Fjármál, sem
er að fara að hafa gagnagrunn um notendur, með notendanöfn og lykilorð,
dollara fjárhæðir sem þeir hafa í bankareikninga þeirra.
Það er að fara að vera eitthvað sem þú notar til að geyma
tákn og magn hlutabréf sem notendur
hafa keypt með raunverulegur dollara sem þú munt gefa þeim.
Og það er að fara að leyfa notendum að skrá fyrir síðuna þína,
svo að jafnvel vinum þínum getur stillt á vefsvæðið þitt
og í raun skrá, skrá þig inn og leika í kring
og reyna að finna sök í kóðanum þínum, og reyna að finna galla í vefsvæði þínu.
Og þeir einfaldlega að nýskrá með bæta sig, í raun,
um kóða sem þú skrifar til þinn gagnasafn.
>> Til dæmis, þetta er a fljótur screenshot um hvað gagnagrunnur gæti litið út.
Þetta var frá einum af solutions-- síðasta ári
þetta er eins og lítill Excel skrá eru geymdar í gagnagrunni okkar,
geymd í þessum hugbúnaði sem heitir MySQL.
Á vinstri hönd hlið, ég hef greinilega gefið hverjum notanda einstakt númer.
Í öðrum dálki, hef ég gefið allir notandi name-- mína eigin
meðal þeirra.
Og á hægri hönd hlið, Ég hef gefið þeim kjötkássa.
>> Nú er þetta í raun lykilorð en það er ekki látlaus texti lykilorð.
Það er dulkóðað lykilorð, ef þú verður, eða kjötkássa lykilorð.
Sem við munum koma aftur til áður en langur.
>> En ef þú hefur lesið alltaf grein um hvernig
Lykilorðið þitt á einhverjum banka eða einhver website gæti hafa verið léleg,
það getur yfirleitt þýtt eitt af tvennu.
Svo er þetta bara útdráttur úr sex notendum.
Öll ykkar nú er hægt að reikna út um reiðhestur eða sprunga
hvað lykilorð okkar sex manns eru í.
En ef þú hefur einhvern tíma fengið viðvörun eða afsökunarbeiðni
frá fyrirtæki eða heimasíðu orðatiltæki, Því miður, a tölvusnápur braust inn hjá okkur,
þú ættir sennilega að breyta þinn lykilorð, hvað gæti það þýtt?
>> Jæja, einn, gæti þýtt að Fyrirtækið hefur verið moronic,
og hefur verið að geyma lykilorð í dálki eins og þetta, ódulrituð.
Sem þýðir andstæðing, sem stal gagnagrunninn,
bókstaflega veit þinn notandanafn og lykilorð.
Það er versta mögulega atburðarás.
Og eins og þú munt sjá í p-setja sjö, svo auðvelt að forðast.
Það er engin afsökun fyrir að form af heimsku á internetinu í dag.
Two-- og við munum finna nokkrar greinar að vitna þá staðreynd að þetta enn
gerist, nonetheless-- tvö, kannski andstæðingurinn
stal þessa útgáfu af gagnagrunninum.
Sem er enn góður af slæmt, því nú þeir vita, að ég hef sex viðskiptavini,
Ég veit að notendanöfn þessara sex viðskiptavini,
og ég veit að dulkóðuð útgáfur, eða tætt útgáfur,
lykilorða þeirra sex viðskiptavina.
En einhver ykkar sem gæti hafa gert [? Hacker 2?]
þar sem þú klikkaður lykilorð, eða tók a líta á þessi útgáfa af vandamálinu
sett, hvers vegna er það enn smá áhyggjuefni ef andstæðingurinn veit kjötkássa þitt
lykilorð?
>> Áhorfendur: Vegna þess að þeir gátu inn í heild orðabók
í kjötkássa virka.
Og ef lykilorðið þitt er orðabók orð, [? þeir geta bara match--?]
>> DAVID Malan: Einmitt, andstæðingurinn getur bara að skrifa kóðann, eins og sumir af þú
gerði fyrir [? Hacker?] 2, þar sem þú iterate yfir
öll orð í orðabókinni, eða allar mögulegar samsetningar af A
gegnum Z og einn í gegnum nine-- sem hljómar eins mikið, og það er.
En fyrir tölvu, það er laglegur fjári hratt.
Og í raun, það var benda á [? Hacker 2,?] Var
að taka efni sem bókstaflega lítur út eins og þetta,
og andstæða verkfræðingur hvað það var í raun.
>> Þannig að við munum líta á hvernig við getum geyma þetta á skilvirkari hátt.
Skrúfjárn út, sem betur fer í MySQL, það eru að fara að vera gagnatög.
Og einn af the gaman hluti um gagnasafn hönnun, til að vera heiðarlegur,
er í raun að ákveða fyrir sjálfan þig hvernig ættir þú að tákna gögnin?
Ættir þú að tákna símanúmer sem int, eins og stór númer, eða fyrir löngu?
Eða gerirðu raun það sem röð af stafir?
Og það getur verið mjög ekki léttvæg áhrif af þessu.
>> Í raun, einn af Elstu skemmtilegir germane sögur
er þegar Mark Zuckerberg var að byggja Facebook var það upphaflega skrifað í,
og enn er að mestu skrifað í PHP.
Og eitt af stærstu viðfangsefnum þeir standa frammi snemma var stigstærð.
Þegar þeir héldu að bæta skóla eftir skóli eftir skóla, við þekkingu mína,
einn af upprunalegu lausnir var í raun að afrita og líma
sumir af gagnagrunnum og sumir af the merkjamál,
svo sem Harvard var gangi á eigin miðlara sínum,
og MIT var að keyra á eigin miðlara sínum.
Og þetta var ástæðan fyrir suma ykkar sem gæti muna,
þú gætir ekki hafa vini í önnur net.
>> Þú sennilega ekki vini á MIT eða Harvard 10 eða svo árum,
en þú getur ekki span net fyrir að hluta af þeim sökum.
Og eitt af stærstu viðfangsefnum fyrir Mark og fyrir fyrirtæki eins og Facebook
er í raun meðhöndlun hundruð og þúsundir og milljónir
beiðna á sekúndu.
Svo það sem við munum byrja tala um í þessari viku
eru í raun að fara að vera germane til skrifa góða hugbúnaður, og almennt
vel verkfæri sem ræð fullt af notendum.
>> Þannig að við munum tala um hluti eins flokkun og rannsakandi,
en það er það í dag.
Við munum sjá þig meira á miðvikudag.
>> [TÓNLIST - "Seinfeld" þema]
DAVID Malan: Þú getur til það, og draga úr henni.
Og þú þarft ekki að standa með sumir fyrirfram ákveðinn upphæð af minni.
Jæja, hvað er að fara að vera kölluð?
>> Ræðumaður 1: Jæja, hvað er að gerast?
Ræðumaður 2: Hvað meinarðu?
Hann er að gefa fyrirlestur.
DAVID Malan: Og við getum notað virka kallaði malloc að memory--
>> Ræðumaður 1: Hvers vegna eru ekki vopn hans að flytja?
>> Ræðumaður 2: Jæja that's-- þú veist, það er bara eðlilegt.
Það er bara eins og hann hefur bara stór pylsur hangandi þar.
>> Ræðumaður 1: Það er eðlilegt?
>> Ræðumaður 2: Já, ég held að við bara ráð fyrir að hann óvart
komi deodorant hans með superglue.