>> [Zenelejátszási]
>> DAVID MALAN: Ez CS50, és ez az a hét elején nyolc.
És nem vagyunk annyira izgatott, hogy üdvözlöm vissza, nagy meglepetés, CS50 saját Ramon
Galván, a növekvő vezető, aki már kiadások az elmúlt néhány hónapban
július óta Los Angelesben, Hollywoodban, Szó dolgozik egy vadonatúj TV
műsorban Colony, alkotója, amely valójában egy Harvard timsó magát.
És így nagyon izgatottak vagyunk, hogy ezt debütált az USA-hálózat idén januárban.
Szóval, stay tuned, hogy és Több Ramon számára az elkövetkezendő hetek.
>> Tudom, hogy most, hogy közel a vég.
És ez mit jelent az, hogy nincs hogy sok minden maradt a CS50, szomorú.
Már csak három probléma készletek left-- van
probléma meghatározott six-- amely kezedben most vagy hamarosan az lesz,
miatt még ebben week-- célja, hogy áthidalja világunkba a parancssorban, ahol
töltöttünk a legtöbb időt C, és a világ a webes programozás.
Nos, akkor megjelenik egy csomó ötletet kölcsönzött a parancssori munkát,
hanem egy csomó új és érdekes ötletek
hogy is lesz illenek a mobil alkalmazások és a technológia,
általánosabban, mellyel srácok mindannyian ismerik ma
A laptopok és mobiltelefonok és hasonlók.
>> Szóval akkor végre nem egy weboldalt, vagy egy honlap
önmagában, hanem egy tényleges webszerver.
Meg fogja írni a többi egy webszerver C-ben írt, amelynek célja az életben
abból áll, hogy a HTTP kérések, azoknak virtuális borítékok mi arról beszélünk
kb, és valóban reagálni akár néhány statikus content--, mint egy pont HTML
fájlt, vagy egy pont JPEG vagy egyéb fájlok száma,
vagy akár egy PHP fájlt, amellyel a web szerver fog értelmezni, hogy a PHP
kódot, és köpje ki az eredményeket.
Most már megkapta a egy kicsit a keret
A it-- valóban a forgalmazás kódot probléma
meg hat több mint 1000 sor hosszú, egy Sok amely megjegyzéseket, hogy fair--
de ez valójában azt jelentette, hogy lehetőséget
hogy a kezét piszkos búvárkodás egy meglehetősen nagy projekt
hogy már nagyon specifikusan kifaragott darabokat az Ön számára,
így igazán, amikor kilép CS50 és adja meg a valós világban a programozási
és szeretné pancsolás tetszőleges számú projekt,
akkor meg sokkal nagyobb Kényelem letöltő néhány forrás
kód, néhány nyílt forráskódú vetíteni az interneten,
és búvárkodás, és így változásokat, hogy jónak látod.
Probléma beállítani hét lesz kb hogy a saját web-alapú alkalmazás
vevő dinamikus adatbevitel és termel dinamikus kimenetet formájában
Egy etrade.com-szerű honlapján.
És a probléma beállított nyolc fog összpontosítani még ismert más nyelvet, mint a JavaScript.
>> Eközben a végső projekt a láthatáron.
Az úgynevezett pre-javaslat esedékes egy hét múlva.
Pre-proposal-- per a specifikáció, amely a CS50 a website--
egy szép alkalmi lehetőség hogy küldjön egy elég szűkszavú e-mail
a tanítási fickó csak azért, hogy megismerje őt
vagy ő az, amire gondolsz, hogy használja őt, mint meghallgatja.
És van egy józan check-- hogy te gondolsz
mintegy leharapta is sok vagy talán túl kevés,
Vagy lehet, hogy fogalma sincs, egyáltalán és azt szeretnék, hogy vegyenek részt a beszélgetésben.
>> Ezt követően egy javaslatot és állapotáról szóló jelentést,
az úgynevezett CS50 hackathon itt Cambridge Harvard és a Yale diákok
egyaránt.
A végleges projekt végrehajtás azután.
És akkor egy CS50 tisztességes itt, Cambridge-ben, valamint egy másik New Havenben.
Így a javaslat, vessen egy pillantást A honlap mindazokat az adatokat.
>> De még ennél is izgalmasan is, egy lehetőséget kap a keze piszkos,
és gondolataitokat nyitva egész csomó témák és eszközök
és technikák, amelyek kapcsolatban vannak A kurzus alapvető tananyag,
de mégis kapcsolatos.
És azt is csodálatos ugródeszkaként Ennek nagyon klassz végső projektek
jóval túlmutatnak anyagból már lefedett formálisan probléma határozza illetve előadás.
Így megy CS50 honlapján az egész naptárban szemináriumok.
Ha nem regisztrálja mégis, ez rendben van.
Menj előre, és iratkozzon fel még, és mi utána pedig egy élő streaming linket,
A nap és az idő a honlapon.
És minden rendben lesz rögzített, és tegye az online
ha nem tudja, hogy a Különösen napokon és időpontokban.
>> Ami a mi vár ránk thereafter-- is, Persze, ott van a CS50 hackathon.
Ezt a fényképet, emlékszem, hétről nulla venni körül 04:00 egyik este az elmúlt években.
A CS50 tisztességes, ami ismét kerül sor a két városban.
És akkor, csak, hogy elvessük a vetőmag, bár még mindig
egy hónap, plusz maradt a félév, ha szeretnél csatlakozni CS50 saját tanítási
személyzet és meg szeretné kezdeni gondolkodni válás CA,
vagy oktatási fickó, tudja, hogy Kezdjük beszél erről többet
még ebben a félévben.
De láthatunk itt van leginkább az idei csapat.
>> És így, PHP-- és én annyira szomorú a múlt héten, hogy [? Allyse?] Kedvesen
elment a fáradságot a szerzés nekünk ezeket a csodálatos kellékek
hogy nem a végén segítségével, így Tényleg csak nézett hülyén
hogy mi volt egy lapáttal ül itt minden nap múlt szerdán, és egy kis kanál.
De ez volt a metaforikus módja próbál festeni
A kép miért is áttéréskor C-ből a nyelv, mint a PHP.
És ugyanaz mondható el minden számú languages-- Java, Python, Ruby
vagy csokor others--, de míg C, például, az írás egy programot C
akkor például, mint hogy egy kanál, mint ez
és ásni egy lyukat a földre, a homokban vagy a szennyeződést.
PHP lehetővé teszi, hogy sokkal nagyobb harap ki a probléma,
írásban sokkal kevésbé kód egy sokkal kisebb szerszám,
mert ott sokkal több funkcionalitást rakott a.
>> Ha most valóban drámai, mi volna valamit lapátolni
itt, de hát legyen.
Eközben a másik metafora jöttünk fel
Természetesen, amit lehetett Használja olyasmi, mint egy kulcs
a kalapács olyasmi, mint egy köröm.
De természetesen, a jobb eszköz használatát megy
hogy nem annyira a nyelv úgynevezett C--
és most csak bosszús [? Sanders,?] Valószínűleg,
megjavítjuk, hogy later-- így a megfelelő eszköz a gyakran használt
Nem lesz ez a legalacsonyabb szintű eszköz.
És valóban, a C nem egy nyelvet a legtöbben valaha is használni,
vagy kell feltétlenül használja újra.
>> És valóban, egy kicsit secret-- az egyetlen alkalom,
Én a C magam nagyjából között Szeptember és december minden ősszel
félévben.
És ez azért van, mert használja a lehetőséget
tanítani az alapokat programozás,
és vele együtt a számítógép tudomány alapjait, adatok
struktúrák, az algoritmusok és a általam elvártnál, de nagyon gyorsan fogsz
most látni, hogy a szintaxis és elgondolások C
oly csodálatosan átruházható modernebb
magasabb szintű nyelvek, mint a PHP és Python és Perl és Java
és Objective-C-- valójában nem annyira Objective-C-- de Swift, ezek az újabb
nyelveken, hogy sokan közületek Ezután pancsolás veled végleges projekt.
>> Tehát minden további nélkül, nézzük ténylegesen PHP megoldani bizonyos problémákat.
Emlékezzünk vissza, hogy korán, az utolsó héten, mi csak használjuk CS50 IDE,
írtunk egy takaros kis programot hogy csak azt mondta: "Hello world."
És akkor én elmentette nevű fájlt hello.php.
És akkor futottam ezt a parancsot.
>> És miért?
Az angol, mi folyik itt?
Mit csinálok, ha Futottam ezt a parancsot?
>> Igen?
>> Közönség: Van valami funkciója PHP amely így szól: mi in-- megérti, hogy.
DAVID MALAN: Jó, van valami funkciója PHP-- és hadd legyek konkrétabb,
van egy program neve PHP, más néven
Egy tolmács, amely megérti tartalmát hello.php,
és úgy értelmezi, hogy fentről lefelé, balról jobbra,
és azt teszi, amit a parancsokat mondani.
A parancsok hello.php, persze, csak forrás code-- funkciók
és változók és hurkok és hasonlók, hogy mi magunk
már elkezdtem írni a PHP.
>> De ellentétben a C, ami lefordított nyelven,
PHP csak írd meg, és futtatni.
Kihagyod, hogy közvetítő lépése átkonvertálja nullák,
majd fut.
És akkor mi van egy fejjel e?
Miért kihagyom a lépést?
Miért modernebb nyelvek inkább kihagyja ezt a lépést?
Mi volt az előny?
>> Vagy csak ösztönösen?
Még ha mi már nem írásos sokkal korábban a PHP,
mi előnyös, hogy nem összeállítása a kódot gondolsz?
Nem?
Nem elkövető?
Vakarja a fejét?
Igen.
>> Közönség: Dinamikusabb.
>> DAVID MALAN: Dinamikusabb?
Amire gondolsz?
>> Közönség: [hallható]
DAVID MALAN: OK, jó, így függően a bemeneti,
Önnek nem kell lefordítani minden egyes alkalommal.
És ez tényleg olyan egyszerű hogy-- mi
az a pont, folyamatos hogy fordítsa le a kódot?
Ez csak egy lépés, hogy az making-- ezt igénylő,
az elmúlt néhány hét, kétszer annyi lépést
mint most fut a program.
Ez hasznos volt látni, hogy lásd néhány hibaüzenetet és így tovább,
de ez még mindig csak egy bosszantó lépés.
>> És így a programozók rájött idővel, miért nem
írásához nyelvek, amelyek nem kell, hogy meglehetősen mechanikus lépést,
úgy, hogy csak írni a kódot, és futtatni.
De mi volt az ár hogy láttunk már kifizetett
A múlt héten, egy konkrét példát?
Igen?
>> Speed.
Na [? mi?] tolmácsok egy kicsit lassabban,
abban nullák vagyunk szép és gyors a számítógép
megérteni, mert a Intel CPU, vagy bármi legyen is az,
Csak megérti, mi folyik A azokkal minták bitek.
Mivel tolmács egy olyan program, ami igazán
el kell olvasni az ASCII forrás kódot, amit írtam,
és átalakítani, hogy úgy mondjam, vagy kitalálni, hogyan alakítja végső soron
a nullák.
Tehát ez csak úgy egy kis Kicsit teljesítménycsökkenést okoz.
Szóval ez egy kicsit kompromisszum.
Most, ha ezt ide, hadd megy előre, és nem egy példa az alábbiak szerint.
Ha megyek itt, új fájlt, megyek menteni ezt megint hello.php.
És most megyek, hogy menjen előre és azt mondják, "print hello world" -
és emlékszem, hogy tudom használni a nyomtatási, én nem kell használni a nyomtatási-F. És most itt lent,
ha megteszem PHP a hello.php, huh-- I úgy tűnik, nem is értelmezték.
Mit csináltam rosszul?
>> Közönség: A hajlított karkötő.
>> DAVID MALAN: Igen, meg kell hogy hegyes zárójel fel tetején.
Szóval ez a fajta idegesítő, de Ön szokni gyorsan.
Ha azt kell írni a PHP kódot, I Általában kell mondani a programot,
vagy mondd el a tolmács, hé PHP, itt jön néhány PHP kódot.
És akkor a jó intézkedés, megtenném zárni ezt nem ezzel, hanem
csak kérdőjel szög konzol, így most itt lent,
Ha futok ezt újra, most Azt, hogy a kívánt eredményt.
>> Most ismét egy enyhe optimalizálás, Csak úgy, hogy már láttam.
Ez a fajta idegesítő, hogy én meg kell futtatni a PHP helyet hello.php,
mert az elmúlt I. Lehet, hogy csak levelet dot perjel
program neve, ami elég szép.
Ez a fajta a jobb felhasználói élményt.
>> Így kiderül, akkor ezt PHP a following-- I
Használhatja ezt a meglehetősen rejtélyes ráolvasás tetején van,
amely általában úgynevezett shebang, miáltal ez egy éles szimbólum,
hogy úgy mondjam, ez egy bumm vagy egy felkiáltójel.
És ezt most az út a program Egy tipikus Linux rendszert
nevezzük környezetben, vagy az ENV.
És ez line-- hosszú történet short-- vonalon csak
mondja, hé számítógépet, meg a PHP tolmács számomra a környezetben,
megtalálja azt a memóriát, hogy úgy mondjam.
>> És mi a szép most, hogy ha lemegyek itt,
Meg tudom csinálni dot perjel Hello dot php, or-- hmm.
Hozzáférés megtagadva.
Nos, akkor még többet látni ezt A probléma beállítva hét, ha
még nem tette meg, az engedélyeket.
Kiderül, hogy szükségem van hogy ezt a parancsot
nevű [? chamod?] a változás mode-- egy plusz x hello.php.
Szükségem [hallhatatlan] ez egy további lépés, amely azt mondja a számítógépet,
hogy hello.php futtatható.
És most nézzük, mi happens-- dot perjel hello.php, csak fut.
Nem kell megadni A tolmács többé.
És tudom, hogy még szebb, Mégis, ha nevezhetem át ezt a dolgot.
Ha mozgok hello.php, hogy csak Hello-- így észre a bal felső,
A program neve Valóban már csak Helló.
Most már tudom, hogy úgy tűnjön, mint egy C program, bár ez írva PHP--
vagy őszintén akárhány Más nyelven.
>> Szóval marginális javítása, nincs funkcionális különbség.
De ez csak egy kis érdekesség Most, így programokat írni
bármilyen nyelven, és a felhasználó nem Tudnunk kell, vagy érdekel, mik ezek.
Nos, nézzük meg egy kényszerítő például most
hogy én felkorbácsolta előre.
És ezt nevezik quote.php.
És ez elérhető online.
És észre, hogy ez elég short-- de ez egy parancssori program, ami
fog felnézni tőzsdei árfolyamok Nekem, ami valójában megy
hogy valaminek megfelelő probléma beállítani hét.
>> Nézzük, mit csinálok.
Legtetején Megvan a nyitó zárójel kérdőjel PHP.
Aztán itt van ez a vonal, ahol vagyok igénylő nevű fájlt functions.php--
fogunk látni erről bővebben egy kicsit,
de ez, mint a C adatbankjában változata éles közé,
hova akarsz menni többek között egy másik fájlt.
PHP nevezi igényel, bár is van egy tartalmaznak funkciót.
És kiderül, hogy function.php van csak valami írtam osztály előtt.
Tettem azt ugyanabban a könyvtárban, mert Azt akartam, hogy figyelembe néhány kód
hogy érdemes használni máshol.
>> Közben, akkor talán következtetni, hogy mi folyik itt.
Ez egy kicsit más, mint C-- de mit gondolok a helyes használat?
Fordítsd ezt technikailag.
Milyen körülmények között vagyok én kilépés az, vagy kilépéskor?
Igen?
>> Közönség: Ha nincs Két parancssori paramétereket.
>> DAVID MALAN: Amikor nincs a parancssori paramétereket.
És ne feledjük, hogy egy ilyen érvek az a program neve is.
És a második lesz Egy szót gépelek után azonnal.
Tehát, mint a C, ez az én utam ellenőrzése,
nem a felhasználó együttműködnek és a program futtatásához, mint szerettem volna?
Most, hogy van valami Egy kicsit más
A C-- először is ezt dollár jel,
és mit jelent a dollár jelentkezzen jelöli PHP-ben?
Csak egy változó.
Ez all-- csak egy változót, majd amit csak akarsz, hogy ténylegesen nevezni.
Figyeljük van valami hiányoznak a PHP program,
mint ez hiányzott az utolsó héten, szemben a C, ami mi?
>> A fajta, hanem valami más.
Nincs valami function-- fő funkciója.
Nincs fő funkciója.
Te csak írásához A kód nélkül
aggódnia a meglehetősen önkényes egyezmény elnevezési néhány alapértelmezett
funkciót fő.
Tehát arg C csak nagyon egy globális változót
hogy a tolmács elérhetővé teszi számomra.
Nos, ez érdekes.
Így néz ki a cucc.
Dollárjel állomány a hagyta, hogy az én változó.
A jobb oldali, ott nyilvánvalóan
függvény a PHP nevű keresési hogy Én halad az utolsó parancssori
érv az alábbiakra: bármilyen szó.
És majd meglátjuk, hogy ez a működik egy pillanatra.
>> És akkor végül én jelentési árát.
Én kinyomtatásával egy részesedése ilyen és ilyen.
És ne feledd, ez a módon PHP-- módon a PHP--
ahol nem kell tennie, A dollár jel S többé.
Csak használata kapcsoszárójele és dugja néhány változó.
Nem kell aggódnia használva printf ugyanúgy.
>> És ahogy Mellesleg, ha tesz egy változót belső idézőjel, mint ez,
használ egy díszes technika nevű változó interpoláció.
Ez csak azt jelenti dugja a változó itt.
És mint félre, néhányan közületek, akik jönnek más programozási háttérrel,
lehet, hogy nem egyszerű idézőjeleket körül húrok erre.
Ki kell használni a kettős idézeteket változó interpoláció dolgozni.
Egyébként akkor szó látni ezeket a zárójelek segítségével.
>> Így végül, menjünk előre, és futtatni ezt.
Hadd tegyem terminál egy kicsit nagyobb.
Hadd menjen előre és fuss belső én idézet könyvtár.
[? CDsource?] [? AM?] [? quote] PHP idézet dot PHP,
és fogok keresni valamit mint GOOG, amely a rövidítést,
és egy részvény az új nevet, Alphabet Inc, ára $ 717, mint a mai.
Rendben, ha azt akarjuk, hogy futtatni ezt újra, bárki
Van egy másik árfolyamkijelző akarják, hogy néz ki?
>> A Microsoft azt hiszem, ez, MSFT-- 53 $.
Azt hiszem, a Yahoo talán.
És a Facebook, hogy.
>> Szóval mi ez a program csinál?
A varázslat úgy tűnik, hogy a beágyazott abban a keresési funkciót.
Szóval vessünk egy gyors pillantást.
>> Kiderül, hogy nem jön PHP, ez a functions.php.
És nem megyünk át ez nagy részletességgel,
de észre az operatív szó itt hogy on-line hat functions.php--
Szó szerint azt mondják funkciót.
Azt adja meg a nevét én funkciót.
Aztán meg semmilyen érveket, vagy paraméterek,
Azt akarom, hogy a funkció a take-- nincs típusok.
És akkor hajtják végre.
>> És én hullám kezem a végrehajtás,
mivel ez viszonylag fejlett joga most, de majd meglátjuk, hogy ismét ténylegesen
Egy hét alatt a probléma beállítva hét.
De én tiszta ez akár is.
Azt is szerepel mai kódot verzió
Az idézet, amelynek nincs dot PHP fájlt.
Mert ami feltehetően a tetején a program neve csak idézni?
Ez az úgynevezett shebang-- a meglehetősen rejtélyes ráolvasás
hogy azt mondja találni PHP majd futtatni a kódomat itt.
>> Rendben, hogy hozza minket, ahol abbahagytuk
Utolsó time-- bár néhány fejlettebb példát.
Bármilyen kérdése eddig mintegy PHP vagy mit csinálunk?
No-- minden rendben.
Igen?
>> Közönség: Bent a HTML fájlok, nem you--
[? te ?] [? Csak hívják?] Egy [hallhatatlan] PHP fájlt?
DAVID MALAN: Jó kérdés.
A web összefüggésben, ami mi vagyunk Szó szerint mintegy átmenet,
Ön nem használja az úgynevezett kocsma tetején,
mert az internetes server-- gyakran nevű program Apache vagy a Microsoft
IIS, az Internet Information Server, vagy számos más web szerver szoftver,
tudja, hogy ha látja egy pont PHP fájlt, hogy
kell futtatni a tolmács rajta.
Nem úgy néz ki, hogy az első sorban.
Tehát ez első sorban trükk csak ha éppen
írásban parancssori programs-- amely nem teszünk szuper gyakran,
de ez mi módon áthidaló a C példa, hogy most mi a PHP.
>> Úgyhogy valóban áthidalja ezt a világot a parancssorból világon a web
az alábbiak végrehajtásával.
Hadd menjen előre, és felhívni ide csak egy pillanatra.
Tehát ha van egy webszerver, vagy inkább ha van laptopom ide,
amit majd felhívni, mint ez.
És itt van a internet valamilyen formában.
És akkor itt, van szerveren egy building--
ez hogyan az interneten works-- és itt
egy szerver néhány fények talán.
Mi történt valójában E két kapcsolatok?
>> Tehát ebben az épületben van egy webszerver.
Ez csak egy számítógép hogy fut valamilyen működési
system-- talán az ingyenes szoftver hívott Apache, amely CS50 IDE fut.
Így tulajdonképpen gondolom az épület
mint az épület amely CSt0 IDE tárolják.
Ez az, ahol minden van számlák, ahol mindannyian
Van saját webszerver futás, mindannyian
van saját egyedi URL, Amint elkezdtük megvitatni,
és látni fogod többet P. meg hat.
>> Itt az én laptop valahol máshol az interneten.
És így amikor meglátogat egy URL-t, hogy tartozik nekem, hogy az internet forgalma megy
át a szerver, a szerver részesülő HTTP request--
mint egy kap index.html és ez válaszolt arra a weboldalra.
Szóval ez az általános paradigma.
Mivel mindent Eddig ma, mindent
történik csak a étkeztetést ez az épület.
Én is használtam a laptop, de Én csatlakozik CS50 IDE,
így minden, az e programok futottam volt benne az, hogy szerver, maga.
>> De most, kezdjük újrahasznosítása PHP hogy írjon néhány aktuális programok
szolgálnak fel a web szerver.
És hogy ezt, én megyek egy csomó példát
hogy vezessenek be ezt az ötletet itt.
Tehát ez a fajta divatos módja leíró programozási paradigma.
>> És valóban, ahogy kilép CS50 vagy dolgozni végleges projekteket,
vagy hogy néhány követni osztályú, kezdesz
látja, hogy a world-- különösen miután nőtt fel
a nyelvek, mint a C- hogy szuper alacsony level--
rájönnek, hogy van jobb, módjait író szoftver.
Vannak bizonyos minták tudod követni,
Bizonyos szempontból a szervező a fájlokat és módjait elnevezése a funkciók,
úgy, hogy rövidre fogjam, A világ jön
egy csomó betűszavak és nevek módon a programozás.
Ezek csak technikákat lehet használni.
>> És egyikük az úgynevezett MVC, A MVC.
És ez még csak, a Most, túlbonyolított
szóval hogyan kellene meghatároznia azokat PHP-alapú honlap, a mi esetünkben.
Hogyan fájlok szervezéséhez, hogyan szervezi a logika,
oly módon, hogy megkönnyíti a levelet bonyolultabb weboldalak?
És valóban, akkor gyorsan odaér a p-set hét.
>> Így a világ MVC, fogsz törekedtünk, hogy a kód általában
jellemezhető mindkét modellt kódot, vagy a vezérlő kód, vagy kilátás kódot.
És fogok leegyszerűsítik azt follows--
A vezérlő a Brains program
ez az, ahol az összes Érdekes logika történik.
Szóval, amin írásban eddig az osztályban,
olyan, mint adatkezelő code-- ez kontrolling
a programunkban, a hurkok, a feltételeket, a funkciók
és változók, és minden.
>> Nézetek, most is lesz egy kicsit sokkal nyilvánvalóbb a világon az interneten.
A kilátás az esztétika az Ön honlapján.
Ez az, amit a felhasználó sees-- a képeket, A HTML táblázatok, a HTML, és minden
Az, hogy minden a bolyhos esztétikai cucc, ami nem is olyan nehéz írni,
de csak amit generál, az úgynevezett véli, az esztétika.
És a modell végső soron folyik hogy adatbázis stuff-- amely
kezdjük búvárkodás minden A több szerdán.
Tehát vezérlő logikáját, Tekintettel az esztétikai dolgokat,
és a modell lesz, ahol tároljuk a tényleges adatokat.
>> Tehát nézzük meg ezt konkrétabban a következő példa.
Én megyek az én könyvtárban van A mai forrása code-- amelyek mindegyike
online elérhető.
És fogok belemenni változata nulla.
És itt is-- nevezzük az változata a nulla a CS50 honlapján.
Nincs sok itt egyáltalán.
Ez egy nagyon egyszerű internetes oldalt, hogy az valószínűleg a mi HTML tags-- csak
Szerintem a korábbi példák?
>> Az mi?
H1-- valószínűleg, hogy nagy vastag cím, hogy logót fel tetején, CS50.
És mi van még a játék?
Igen?
Közönség: Rendezetlen lista.
DAVID MALAN: Rendezetlen list-- így a UL tag és talán egy-két LI címkék.
És ha nem emlékeznek ezekre, őszintén nem számít.
Ezek bolyhos fajta végrehajtásának részleteit a HTML
hogy gyorsan felnéznek és te vissza az utat.
Majd inkább a programozási ötletek, hogy a szaftosabb darab.
>> Úgyhogy csak egy gyors nézd meg a HTML-- sőt
ha megnyitja a kép forrását itt, aha, Pontosan ez az, mi folyik itt.
Van egy UL tag.
Beágyazott belsejében, ami a LI címkék.
És akkor vettem kölcsön az URL- Az aktuális tananyag itt.
>> És akkor a lectures.php láthatóan
Egy másik dinamikusan generált oldal hogy megy, hogy, mondjuk see-- ah,
Az első két hét előadás.
Így a héten a nulla és a héten az egyik, hadd nézd meg this-- ha Oldal forrásának megtekintése,
is szuper egyszerű.
Ezeket ami a két oldalt nevű week0.php, és week1.php.
Tehát úgy most mi történik.
>> Amikor rákattintok week0.php, a laptopom teszi a kérelmet week0.php.
A web szerver, más néven, CS50 IDE, kap, hogy a virtuális borítékot.
Ez látta az üzenetet mint, hogy week0.php.
Ezután értelmezése a fájlt, felső lefelé, balról right-- fájl
nevű week0.php-- és kiköpte az eredményeket.
Szóval belsejében ez a fájl, week0.php, kell lennie
A vezérlő logika amely generálja Ezzel a HTML, és mi hamarosan látni, hogy.
>> De most, hadd kattintson héten nulla, és most már szerdán és pénteken,
és most már a diák Lassan hétről nulla.
És lehet, hogy emlékszem ez nagyon régről, amikor.
Annak érdekében, hogy ez az egész weboldalt csinál.
>> Tehát nézzük meg, hogyan csinálja ezt.
Én megyek vissza a forráskódot itt, CS50 IDE,
és fogok nyitni index.php.
A tetején a fájl egy csomó hozzászólás.
És akkor a közepén ez a fájl, akkor Kiderül, nem PHP kód nélkül.
Mert ha nincs a nyitó zárójel kérdőjel PHP címkék,
Ön szabadon imént HTML.
>> Mert amit a PHP tolmács kéne csinálni,
van, amikor kimondja ezt file-- felülről lefelé, balról right--
csak úgy értelmezi kódot látja között azok csúcsos zárójelben kérdőjel.
És bármi más, ez nem felismerni a PHP, csak kiköpi.
És HTML között van a cucc akkor csak kiköp.
>> Így sikerült a fájl van nevezték index.html,
de én elnevezési mindent dot PHP, mint egy lépcsőfok.
Lectures.php-- hasonlóan underwhelming, ez csak néhány a HTML.
Week0.php hasonlóan csak néhány HTML.
>> De most tegyük a közmondásos mérnöki kalap,
és megvizsgálja, hogyan lehetne javítani ezen.
Ez nem nehéz csinálni, de azt a fajta A decentralizált be a másolás és beillesztés.
És valóban, ha én heti két, akkor Tudom, mit valószínűleg fog csinálni?
Én megyek, hogy week1.php vagyok majd jelölje ki mindent.
Megyek másolja, illessze egy új nevű fájlt week2.php,
csípés néhány URL, és legyen útban.
>> Tehát annak alapján, amit mi már látott C már,
ez nem érezheti magát, reménykedve.
Másolás, beillesztés ritkán jó megoldás.
Szóval mit tudunk majd tenni, hogy javítsák ezt?
Hol vannak a lehetőségek a jobb tervezés?
>> Mire eljut heti nyolc, ez lesz
hogy igazán bosszantó ha meg akarom változtatni
a betűtípus minden egy oldalaimon, vagy ha azt akarom,
szerkezetének megváltoztatása az elrendezés.
Szóval hol van a lehetőséget, a jobb tervezés?
Nos, nézzük meg, mi van megoszthatók az összes ezeket a fájlokat.
>> Itt van egy héten, itt héten nulla, itt lectures.php,
itt index.php-- ami ugyanaz, és Mi a különbség, durván szólva,
minden ilyen fájlokat?
Igen?
>> Közönség: [hallható]
DAVID MALAN: OK, jó.
Szóval van egy minta, biztosan, ahol minden alkalommal, amikor választani Előadásomban,
Azt kell termelni nagyon hasonló kinézetű oldal.
És így talán képes kihasználni Az a tény, hogy nagyon,
mi szándékosan számszerűen indexelt mi elõadások
ha tudok még több szavakat a választ.
És mi az az egyetlen dolog, tényleg, amely megváltoztatja hét között one--
és hadd lépjünk le, így ez nagyjából ugyanabban place--
ezért itt a héten nulla, durván a tetején.
Itt héten egy, a héten nulla, heti egy, a héten nulla.
OK, szó szerint, ha tudod, nincs program egyáltalán,
ez most olyan, mint egy minta megfelelő játékot.
Szóval mi más?
Igen?
>> Közönség: [hallható]
DAVID MALAN: Jó, így a cím változik, alig észrevehetően.
Zero lesz, persze, hogy az egyik.
Ugyanaz történik a H1 tag.
És nem elég látni, mint könnyen, mert az URL-ek egy kicsit hosszú.
De ezek az URL-ek változik egy kicsit.
>> De mi nem változik van, merem mondjuk, a legtöbb a tartalmát a page--
A HTML tag ugyanaz, a fej az azonos, a cím majdnem ugyanaz,
a test ugyanaz, és szinte minden mást
jelentése ugyanaz, kivéve azok a kis csíp.
Tehát hogyan tudjuk járni faktoring néhány ezt ki?
>> Hát hadd javaslatot pontosan hogy a következő verzió.
Tehát itt verzióban egy, már a pontos ugyanazokat a fájlokat, plusz egy pár mások.
Itt van index.php-- és akkor is, ha még sosem láttam korábban a PHP,
én mit csinálok valószínűleg megoldani ezt problem-- alapján, amit itt látsz?
Igen, az, hogy egy kis elkötelezettség?
Nem?
Igen, folytassa.
>> Közönség: [hallható]
>> DAVID MALAN: Ja.
>> Közönség: [hallható]
>> DAVID MALAN: Azt akarom, hogy beszélnek, csak egy kicsit hangosabban.
>> Közönség: [hallható]
DAVID MALAN: OK, jó.
És én think-- volt nehezen hallható you-- de
úgy gondolja, hogy mit akarsz kilyukadni, hogy A címkék, amelyek közös fel tetején,
valamint a címkék, amelyek gyakori a alján, most komoly tényező ki,
vagy kárhoztatva, hogy milyen fájlokat?
Header.php és footer.php-- és megyünk
hogy néhány csíp aggodalom csak
felemelte a szám változó, az Például, ha azt hallottam, hogy helyesen.
>> De úgy tűnik, hogy a lényegét.
Ha volt egy hatalmas redundancia a lap tetején,
és egy hatalmas mennyiségű redundancia az alján,
nézzük szó szerint csak fénypontja és vágja, hogy a tartalom el,
tedd egy külön file-- akárcsak Az ötlet a CSS, ahol tényezőként ki
nagyon hasonló az esztétika, tedd ez egy külön dot PHP fájlt,
Használja a igényelnek mechanism-- amely olyan, mint a C éles foglalják magukba, amelyek
Lényegében mintha azt mondanánk menni en- nek a tartalmát header.php
és másolja őket ide.
>> De ez mit jelent az, hogy most index.php, van e két sort.
Ebben lectures.php, én is Van két sor.
Ebben week0.php, én is Van két sor.
>> Tehát most, ha meg akarom változtatni A cím minden az én oldalak,
vagy meg akarom változtatni a alapvető szerkezetét,
Meg tudom változtatni most csak egy helyen, vagy két places-- fejléc és a lábléc,
volt.
Most a kódot kezdő nézni egy kicsit rejtélyes, nem igaz?
De ha úgy gondolja, hogy mi az oldal A doing-- ha én kérő week0.php,
csakúgy, mint a rajz fölött here-- ha week0.php kérik,
az mit jelent?
>> Szó szerint, ez a fájl kérte a böngésző.
A web server-- a.k.a.
CS50 ID-- megragadja ezt fájlt, week0.php, és olvas
ez felülről lefelé, balról jobbra.
Az egyes vonalon, akkor azonnal találkozik nyitó zárójel kérdőjel PHP, szükségessé
header dot PHP, és így amit a PHP értelmező
does--, ami beépül a web szerver, mert előre konfigurált
azt you-- akkor automatikusan a header.php, másolja a tartalmát,
illeszti őket ide.
>> De aztán a tolmács találkozások kérdőjel záró zárójel,
így mind kész gondolkodik.
Most csak vakon kiköpi sorokat, két hét keresztül,
mert ez csak a nyers HTML.
Gets sorban nyolc, és nem, hogy ugyanaz a varázslat again-- a fájl megnyitása,
megragadta a tartalmát, és felszólítja őket, vagy beillesztés őket
Akkor jó, vagy ott.
>> De én csak utaltam a hibát.
Ez egy részleges lépés hátra, mert ha megnézzük a header.php
Már fajta vágott egy sarokban.
Mi jellemző adtam fel annak érdekében, nyerni ezt a vitatható jobb tervezés?
Igen?
Közönség: [hallható]
DAVID MALAN: Igen, valahogy A vágott nemtriviális sarokban.
Ön rámutatott arra, hogy mi változik volt a címe, a szám a címben,
és a szám a H1.
Szóval a megoldás az volt, OK, nézzük csak nevezd át a lapot,
és nem foglalkozik, hogy probléma nélkül.
Szóval ez egy részleges visszalépés az biztos.
>> De mi is figyelemre méltó itt Ez az, amit tettem
egyébként tényezőként ki az összes közös dolgokat.
És footer.php, észre azt tényezőként ki minden, hogy, bár kisebb,
közös dolgokat.
Szóval kell valahogy most képes Egy lépést előre, és rögzíti
ezt a címet kérdéseket.
Tehát lássuk, hogy.
>> Hadd menjen be a második verzió Itt, amely ismét ugyanaz a fájlokat
kivéve egy új mellett.
És ez egy kicsit bőbeszédű, de lássuk, ha
lehet ugratni egymástól, mi folyik itt.
Tehát ahelyett igénylő header.php, és footer.php,
Úgy látszik, hogy csak előírja egy file-- nevű, természetesen helpers.php.
És hadd kikötik most, mi van benne a helpers.php
csak egy csomó funkciók hogy én írtam, csak úgy, mint korábban.
De én nevezte helpers.php.
>> Most úgy tűnik, a sorban három és 10 vagyok
hív két functions-- render fejléc, lábléc tehetik.
Azok nem jönnek PHP, írtam ezeket magam.
És tettem őket helpers.php.
>> Most még csak láttam ezt a szintaxist egyszer, és ez volt szuper rövid.
De ez nyilvánvalóan egy érv tétele fejléc, a funkció.
Miért tudom?
Hát itt van egy közeli zárójel, Itt van egy nyitott zárójel.
És persze, mint C, semmit azok között, zárójelben
egy input-- vagy egy érv, hogy a funkció.
>> Mi az adatok típusát ezt az érvelést, annak alapján, amit én már rávilágított?
Mit jelentenek ezek az szögletes zárójelben jelzik, az elmúlt egy héten?
Igen, ez egy array-- konkrétan egy asszociatív tömb.
És ez a szintaxis ugyan egy kicsit funky,
de ez csak múló egy kulcs-érték párt.
A legfontosabb az, idézet idézet vége cím, és ez az érték CS50.
>> Ha ezt megtette C, talán inkább
nézel ki, mint ez, Csak idézet idézet vége CS50--
vagy tényleg nem lenne göndör nadrágtartó, vagy valami ilyesmi a C,
hol a kulcs nulla, és ez az érték CS50.
De ismét, PHP, bár a szintaxis, megint egy kicsit furcsa,
ez lehetővé teszi, hogy adja át a szóval a számok helyett
társítani kulcsok értékeit.
>> Szóval mit is jelent ez?
Ha bemegyek helpers.php, nézzük meg ezt a funkciót.
renderHeader.php, hanem renderHeader az én funkciót,
és tudom, hogy azért, mert látom A funkció kulcsszó itt.
Ez az új-re C-- ez nyilvánvalóan vesz egy érv az úgynevezett data--
de nem tudtam volna nevezte ezt semmit, de én nevezte adatok,
Csak hogy egy kicsit clean-- és Csak egy tipp, különösen
ha már beprogramozott valamilyen más magasabb szintű nyelvet, mielőtt valami
AC feletti koncepcionálisan.
>> Mit jelent az egyenlő nyitva tartó szögletes zárójel valószínűleg azt jelenti?
Vagy mi lehet ez?
Már nem láttam ezt a C. Igen?
>> Egy üres tömböt.
Konkrétan ez azt jelenti, hogy ha a a felhasználó nem hívja renderHeader
egy érv, én még mindig megy hogy egy függvényben adatok,
de alapértéke lesz egy üres tömböt.
Tehát ez csak egy szép kényelmét.
Nem kell kiabálni a felhasználó, vagy mondjuk használtam a funkciót rossz.
Én is csak hogy a felhasználó egy alapértelmezett értéket, ha én nem igazán érdekel.
Most ezt a funkciót, én vagyok fog integetni a kezem meg.
De ez a kivonat a funkció lehetővé teszi számunkra, hogy adja át ezeket a változókat adatok
figyelembe header.php a következő módon.
És ez az utolsó darab, Azt hiszem, a funky szintaxis.
Itt az új verzió A header.php-- meg
szokta mondani, a szó szoros értelmében, nyitott konzol cím CS50, és ennyi volt.
És ugyanezt a H1.
>> Most nyilván azt mondja, valami nagyon pörgős.
És hadd egyszerűsítése egy pillanatra a következő.
Ez az, amit Megváltoztattam a címet, hogy legyen.
Azonban ez már egy kicsit csúnya hogy folyamatosan nyitott zárójelet a PHP,
majd a nyomtatási funkció.
Kiderül, hogy a PHP egy rövidített jelölés erre, amely mindössze
egyenlőségjel, ami technikailag egy nevű függvény echo helyett print,
de ez ugyanaz a dolog, hatékonyan.
>> Hogy csak jobban néz ki.
Ez csak egy szintaktikai cukor, ha úgy tetszik,
ami a kódomat meg egy kicsit jobban.
De kiderült, és majd meglátjuk ezt újra
Nemsokára meg kell hívni ezt idegesítően hosszú nevű függvény
HTML speciális jelek közé PHP, mert kiderül,
vannak bizonyos bemenetek hogy a felhasználó esetleg nekünk,
vagy hogy a felhasználók adhat nekünk, hogy fognak törni a honlapunkon.
De majd meglátjuk, hogy a következő héten a JavaScript.
De most, csak tudom, hogy ezt a fájlt, headers.php, egyszerűen
veszi a cím, hogy Átmentem a, ez teszi
arról, hogy biztonságos kell beadni a webes oldal, és kiköpi a címemet
és ahogy a H1.
Szóval, ha bemegy a verziót, észre, hogy előadásokat megvan a cím vissza,
heti nulla megvan a cím vissza, és Valóban, a HTML én generáló
megegyezik azzal, amit az első verzió was-- kivéve Saját szóköz,
mert én már elkezdtem formázás kódomat egy kicsit másképp.
De én keletkezett összes A kód érdekel.
Szóval hadd szünet Csak egy pillanatra, és látni
ha van olyan kérdés vagy zavartság hoztam létre.
Rendben, szóval csavarja egy kicsit nehezebb itt
hogy ha van egy lehetőséget a fejlődésre.
Helpers.php is volt ez a funkció, az úgynevezett renderFooter.
És mi a méltó mintegy renderHeader, és renderFooter?
És ismét, a mai célra, tudom, hogy a kivonat funkció csak
az én utam az elhaladó érvek a header.php és footer.php.
>> Bocsánat?
>> Közönség: [hallható]
DAVID MALAN: Igen, én csak megváltoztatta a igényelnek sorban.
Tehát szó szerint, amit elkövetett bűn A másolás és beillesztés, ismét.
Ez nem egy nagy szám sorok, de jön on--
ha én másolás és beillesztés mindent csak megváltoztatni egy kis szó,
és az egy kis szó, hogy Alan rámutat végzésének láblécet itt, szemben a fejléc itt.
Ellenkező esetben, minden azonos, kivéve,
Természetesen a függvény nevét.
Szóval mit lehetne jobban csinálni?
>> Hát hadd nyissa meg ezt a verziót Itt, ahol a helpers.php,
miért nem csak kap egy kicsit okosabb erről?
Írja kissé bonyolultabb kódot, de hívják tehetik?
Szóval mit értem alapjaiban változott meg?
>> Beletelik egy érv now-- két érv, adatok még.
És akkor mi van az első név valószínűleg használják,
annak alapján, amit olvasol itt?
Még ha néhány, a szintaxis mindig új.
Mi dollár jel sablon?
>> Bocsánat?
>> Közönség: fejléc vagy lábléc.
>> DAVID MALAN: fejléc vagy lábléc.
Tehát úgy tűnik, úgy döntöttem, hogy ha Az egyetlen dolog, amely megváltoztatja
az, amit akarok sablon hogy print-- és sablon
Úgy értem, ez tervezet kódot, amit szeretnénk kiírni,
de azt akarom, hogy csatlakoztassa a néhány values-- így ha ez csak fejléc
vagy lábléc, miért nem paraméterezni hogy és hívja az érv dollár jel
sablon?
És akkor ez a funky szintaxis lehetővé teszi számomra, hogy hozzon létre egy utat egy változó itt.
>> Tehát dollár jel útját egy változó.
Mit jelent ez a szintaxis csinálni, ha ismeri?
Igen?
>> Közönség: [hallható]
DAVID MALAN: Pontosan.
Ha sablon, idézet idézőjel bezárva, header, vagy ha sablon,
idézet idézet vége, lábléc, hogy a sorban van hogy amit kiemelt, vonal nyolc,
egyszerűen figyelembe ezt a nevet, mint a fejléc, és összefűzése azt dot PHP.
Tehát nem volt ez a szolgáltató C. Ez a pont operátor
egy csodálatos dolog PHP-- ha ismerik a JavaScript vagy Java,
akkor a plusz aláírja csinálni összefűzés.
>> A C-ben, ez a fájdalom a neck-- és nagyon sajnálom, a p-set hat,
fogsz kell tennie, this-- ez a fájdalom a nyak
összefûzését szálakat.
Miért?
Nos, azért, mert ha van Egy karaktersorozat, ez a hosszú,
és egy másik szöveg, hogy ez a hosszú, nem lehet csak dugja össze őket.
Mit helyett kell tennie a C?
Igen?
>> Közönség: [hallható]
>> DAVID MALAN: Meg kell malloc memória, vagy használjon egy tömböt a verem.
És valóban meg kell hogy a tömbben elég nagy
amely ebbe a plusz ez, valamint a backslash nulla.
Aztán összefűzni őket használó keverjük macska vagy kézzel egy for ciklus,
vagy tetszőleges számú technikákat.
És megmutatjuk neked egy pár p-set hat.
>> Ez egy fájdalom a nyak.
És ez valóban mit gondolok arról ennek függvényében this--, mint a C versus PHP.
Csak azt, hogy sokkal több funkcionalitást ingyen,
így nyugodtan koncentrálhat, Ideális esetben a móka
részét kódoló, az projekt szeretné megoldani,
inkább, mint az alacsony szintű aprólékos.
>> Tehát ez csak generál header.php vagy footer.php alapján melyik hívom.
És valóban, ha elmegyek figyelembe index.php, értesítés
minden, ami changed-- Ahelyett hív render fejléc vagy lábléc render,
Hívom render, majd a sablon nevét, amit akarok.
És látni fogod, ez is A probléma állítva hét,
amely által lehetővé teszi, hogy a ugyanazt a funkciót, hogy a fürtök
és csokor különböző weboldalakat.
>> Tehát ahelyett lakik túl sokkal azokon details--
amely látni fogod újra probléma szett seven-- nézzük
a most az elején egy oldat hogy egy érdekes probléma.
Eddig semmi mi már kész van a mentett adatok.
Tény, hogy az egyetlen alkalom, amit valaha is mentett valamit tettünk ebbe az osztályba
az, amikor volt egy nagyon egyszerű demo egy darabig vissza, ami által használt fájlok IO C,
és azt hiszem, beírtam a nevem, és Hannah nevét, és Maria nevet,
vagy talán Andy nevét, és akkor mentett CSV file--
vesszővel elválasztott fájlt.
>> És szoktuk fopen-- Azt hiszem, szoktuk fprintf ha jól emlékszem,
és mi mentett egy fájlt.
Most, hogy a legegyszerűbb adatbázis formájában.
Ha azt szeretnénk, hogy a honlapon a Frosh IMS-program, amelynek során gólya
lehet regisztrálni a sport, akkor ideális esetben akar valamit csinálni, hogy az adatokat.
A múlt héten csináltunk semmit A data-- mi csak azt mondta,
Ön regisztrált, nem igazán.
Vagy talán én e-mailben a Proctor, és ennyi volt.
>> De jó lenne, ha tudnám adni, hogy a Proctor CSV fájlba,
mint egy Excel fájl.
Vagy még jobb, amilyet akkor jó lenne, ha tehetném
tesz azok a felhasználók nevét és kollégiumi nevét, és minden adott
egy adatbázis, amely Csak él örökké,
amíg nem törli az adatokat.
Egy adatbázis, amely lehetővé engem információk lekérdezésére.
És valóban, ez az, amit az adatbázis.
>> Bemutatjuk ma, és jövő héten is, a technológia
nevű SQL-- a Structured Query Nyelvet, amely egy másik nyelvre.
Ez lényegében a programozási nyelvet, de az adatbázisok.
És egy adatbázist most, csak gondolni, mint egy szuper divatos verzió
A Microsoft Excel vagy Google Táblázatok, vagy az Apple számok.
Ez általában egy olyan program, amely lehetővé teszi hogy tárolja egy csomó adat
A sorok és oszlopok, egészen mint lehet az Excel.
>> De mi a szép, különösen, ha nem vagyunk szuper ismeri Excel,
mit SQL lehetővé teszi, hogy nem is keresett ez információt írásban sornyi kódot
ahol csak lehet, még akkor is, ha a adatbázisszervered millió sorok benne,
megtalálja a dolgok szuper gyors.
Tény, hogy az Excel különösen rossz nagy adathalmazok.
És valóban, akár egy pár évvel ezelőtt, kiderült,
Excel csak lehetővé teszi, hogy tárolja akár 65.535 sorok data-- amely
soknak hangzik, de a időben voltam grad diák,
és emlékszem, megbotlás mert én voltam generáló
CSV fájlokat kutatáshoz és én akarta elemezni őket gyorsan
mindössze megnyitása az Excel.
Természetesen, a számítógép csak összeomlott, mert nem volt több, mint 65.000 sor.
>> De ha nem a 65.535 származik?
Mit csinál a Microsoft, feltehetően?
Ha jó a hatáskörét kettő?
Igen, voltak használva egy 16 bites értéket képviselnek a sor számát.
És két 16 65,536-- mínusz egy, mert ha
nulla index azt jelenti, hogy volt leginkább a sorok számát tudtam volna.
És ez csak egy tervezési döntést.
Megtakarításával 16 bit, akkor korlátozott nekem 16.000 sorok helyett 4 milliárd,
amit lehetett volna ideális.
De most, megyünk bevezetni ezt inkább egy webes környezetben.
És mi a szép SQL, hogy még bár ez elég erős és elég
kifinomult, ez tényleg csapódik ki, amely négy legfontosabb műveleteket, négy
funkciói, ha will-- válassza, letöltésére vonatkozó adatok, keres
az adatok; törölni vagy törlése adatok; betét hozzátéve sorok az adatbázisba;
és frissítése.
Tehát, ha valaha is használt Google Táblázatok, az Apple számok, a Microsoft
Excel, akkor végre, legvalószínűbb, valamennyi
Ezeknek a műveleteknek, mint egy emberi által Csak a billentyűzet használatával és mouse--
adatbevitel használja a szemét kiválasztásához, vagy Adatkereséshez
vagy frissíteni az adatokat, vagy törölje az adatokat.
>> Tehát mit jelent ez?
Nos, előre telepített CS50 Az IDE egy program neve MySQL.
Ez egy ingyenes, nyílt forráskódú adatbázis, hogy a szuper népszerű.
Facebook, például arra használja, hogy ezt a nap, többek között olyan eszközökkel, amelyekkel használni.
És egy csomó nagyon népszerű weboldalak használata ez nagyrészt azért, mert ez gyors,
és azért, mert ingyenes.
Bár minden bizonnyal léteznek alternatívák.
És néhányan talán pancsolás a alternatívák végső projektek.
>> Ez egy screenshot, eközben a egy web-alapú eszközt, az phpMyAdmin.
Ez egy véletlen egybeesés, hogy ez a web-alapú eszköz is
nyelven írt, PHP, de mi ez azt jelentette, hogy nem
van nekünk egy web-alapú interfész egy adatbázishoz.
Mivel a MySQL jellemzően valamit, történelmileg, akkor
lenne kölcsönhatásba csak a parancssor.
És ez lenne a szuper bosszantó és misztikus, hogy
hogy írja szöveges parancsok kiválasztásához adatok, helyezze adatok, és az adatok törlése.
Szóval néhány ember az interneten írt egy web-alapú program
hogy csak hadd kezelni Az adatok az adatbázisunkban.
Ez olyan, mint dupla kattintással Excel és fut egy web-alapú változata tartalmazza.
>> És mit fogsz használni ezt a végső soron a jövő héten, nem p-set hat,
de az, hogy létrejöjjön valami nevű CS50 Pénzügy, amely
megy, hogy egy adatbázis a felhasználók, a felhasználói neveket és jelszavakat,
dollár összegeket, hogy azok már a saját bankszámlák.
Ez lesz amit használni tárolására
A szimbólumok és mennyiségek állományok, hogy a felhasználók
vásárolt virtuális dollárt, hogy akkor adjon nekik.
És ez megy, hogy a felhasználók hogy regisztráljon a webhely,
így még a barátok lehet ráhangolódni a honlapon
és ténylegesen regisztrálni, Jelentkezz be, és a játék körül
és próbálja megtalálni a hiba a kódban, és próbálja megtalálni hiba az Ön honlapján.
És akkor csak regisztrálni által hozzátéve magukat, hatékonyan,
via kódot írsz az adatbázisba.
>> Például, ez egy gyors képernyőkép amit egy adatbázis nézhet.
Ez volt az egyik a tavalyi solutions--
ez olyan, mint egy mini Excel fájlt, adatbázisban tárolt,
alatt az nevű szoftvert MySQL.
A bal oldali, én már láthatóan mivel minden felhasználó egy egyedi szám.
A második oszlopban, adtam mindenki egy felhasználó name-- saját
köztük.
És a jobb oldali, Adtam nekik egy hash.
>> Most ez valójában egy jelszót, de ez nem egy egyszerű szöveges jelszóval.
Ez egy titkosított jelszó, ha úgy tetszik, vagy hash jelszót.
Melyik jövünk vissza hamarosan.
>> De ha valaha is olvasni egy cikket arról, hogyan
jelszó valamikor bank vagy valamilyen honlap veszélyben lehet,
ez általában azt jelenti, egy két dolgot.
Tehát ez csak egy részlet hat felhasználók.
Minden most is a szám keresztül történik hacker vagy repedés
mi hat embert a jelszavak.
De ha valaha is ütött riasztás vagy a bocsánatkérés
egy cég vagy website mondás, bocs, egy hacker betört adatbázisunkban,
akkor valószínűleg változtatni a jelszót, mi lehet ez?
>> Nos, az egyik, azt jelenti, a cég már több hülye,
és már tárolása jelszavát egy oszlopban, mint ez, nem titkosított.
Ami azt jelenti, az ellenség, aki ellopta az adatbázis,
Szó szerint tudja a felhasználónevét és jelszavát.
Ez a lehető legrosszabb forgatókönyv.
És mint látni fogod a p-set hét, így könnyen elkerülhető.
Egyáltalán nincs mentség forma butaság a mai internet.
Two-- és mi megtaláljuk néhány cikk tanúskodni, hogy ez még mindig
történik, nonetheless-- két, esetleg az ellenféltől
ellopta ezt a verziót az adatbázis.
Amely még mindig egyfajta rossz, mert most tudják, hogy már hat ügyfelek,
Tudom, hogy a felhasználói nevek a hat ügyfelek,
és tudom, hogy a titkosított változat, vagy a kivonatos változatát,
e hat ügyfelek jelszavait.
De valakinek, aki talán csinálta [? Hacker 2]
ahol repedt jelszavak, vagy került Egy pillantás, hogy változata a problémát
set, miért van még mindig egy kicsit aggasztó ha az ellenség tudja, a hash
jelszavakat?
>> Közönség: mert azok adja meg az egész szótár
a hash függvény.
És ha a jelszó egy szótárban szót, [? akkor csak match--?]
>> DAVID MALAN: Pontosan, az ellenség csak írni kódot, mint néhányan közületek
tett [? Hacker?] 2, amely akkor végighaladni
Minden a szavait a szótárban, vagy az összes lehetséges kombinációját Egy
tól Z-ig, és az egyik a nine-- ami soknak hangzik, és az is.
De egy számítógép, ez elég rohadt gyors.
És valóban, ez volt a pont [? Hacker 2,?] Volt
hogy a cucc, hogy Szó szerint úgy néz ki, mint ez,
és fejtheti amit valójában volt.
>> Szóval megnézzük, hogyan tudjuk tárolja ezt hatékonyabban.
Kiderült, szerencsére a MySQL, ott lesznek adattípusok.
És az egyik szórakoztató-zsal adatbázis tervezés, hogy őszinte legyek,
valójában döntenek magad hogyan érdemes képviseli az adatokat?
Amennyiben Ön képviseli a telefonszámot int, mint egy nagy szám, vagy egy hosszú?
Vagy azt tényleg csinálni mint egy szekvencia karaktereinek?
És ott is nagyon nem triviális hatásait ezt.
>> Sőt, az egyik a legkorábbi, szórakoztató illenek történetek
amikor Mark Zuckerberg építette Facebook, eredetileg íródott,
és még mindig nagyrészt PHP-ben íródott.
És az egyik legnagyobb kihívás szembesültek korán került méretezés.
Amikor tartani hozzátéve iskola után iskola iskola után, hogy tudomásom szerint
az egyik az eredeti megoldások lényegében a másolás és beillesztés
néhány, a adatbázisok és néhány, a kódot,
úgy, hogy a Harvard volt futó saját szerver,
és a MIT-ben futó saját szerver.
És ez volt az oka, valamilyen , akik esetleg emlékeznek rá,
akkor nem lehetett barátok más hálózatok.
>> Valószínűleg nincs barátai MIT vagy Harvard 10 évvel ezelőtt a,
de nem lehetett span hálózatok A részben emiatt.
És az egyik legnagyobb kihívás Mark és a vállalatok számára, mint a Facebook
valójában kezelése több száz és több ezer és több millió
A kérelmek másodpercenként.
Tehát a dolgokat fogjuk kezdeni beszélünk a héten
valóban lesz valaminek megfelelő jó programot írni, és a nép
Sikeres eszközök tudja kezelni sok felhasználó.
>> Így fogunk beszélni a dolgokat mint indexelés és keresés,
de ez van ma.
Látni fogjuk, hogy több szerdán.
>> [ZENE - "Seinfeld" TÉMA]
DAVID MALAN: Tudod, hogy ez, és vonjuk belőle.
És akkor nem kell ragaszkodni néhány előre meghatározott mennyiségű memóriát.
Nos, ez mit fog hívni?
>> 1. Előadó: Nos, mi folyik itt?
Hangszóró 2: Mit értesz?
Ő előadást.
DAVID MALAN: És tudjuk használni a nevezett funkció malloc hogy memory--
>> 1. Előadó: Miért nem a karját mozog?
>> Hangszóró 2: Nos that's-- Tudod, ez normális.
Olyan ez, mint ő, csak nagy kolbász lóg ott.
>> 1. Előadó: Ez normális?
>> Hangszóró 2: Igen, azt hiszem, Csak feltételezem, hogy véletlenül
cserélni a dezodor pillanatragasztóval.