HANNAH BLUMBERG: Hi tout moun. Nou pral jwenn te kòmanse jis yon koup la minit byen bonè depi nou gen yon lot antye nan materyèl yo ka resevwa nan. Mwen se Ana. Mwen se yon TF. Maria yo pral rantre nan nou nan jis yon minit koup. Li anseye seksyon dwat devan. Mwen anseye seksyon dwat apre, se konsa nou ap ale kenbe li nan lè a ak yon mwatye. Se konsa, kòm ou pral wè moute isit la, nou gen byen yon sijè kèk nou bezwen jwenn nan, se konsa nou pral dwe ale yon ti jan vit. Men, si nan nenpòt ki pwen nou di yon bagay twò vit oswa ou pa konprann, santi yo lib yo entèwonp ak kesyon. Nou vle pou kapab fè sa-a yon revize sesyon kòm itil nan tout nan nou ke posib. Pè. Se konsa nou so dwa nan ak kèk sijè ke nou aktyèlman trè, trè yon ti tan kouvri pou la egzamen 0 nan sesyon-an revizyon egzamen 0. Se konsa, kòmanse avèk lis lye. Se konsa, jis asire w ke ou gen kèk konesans debaz sou lis lye epi yo konfòtab fè kèk nan operasyon yo de baz yo. Se konsa, jis yo revize, lye lis yo pi bon pase ranje paske yo ka grandi dynamique. Se konsa, nou gen sa avantaj gwo. Nou te wè yo itilize nan tab regle lè nou pa konnen egzakteman ki jan anpil bagay sa yo nou ap ale nan vle insert nan estrikti done nou an. Malerezman, nou gen moso nan lis la lye tout lòt peyi sou memwa, se konsa nou pa pral nesesèman gen kapab fè aksè tan konstan nan nenpòt eleman nan lis la lye. Yo nan lòd yo jwenn yon eleman patikilye, nou gen repekte nan tout fason depi nan konmansman an. Se konsa, kenbe nan tèt ou ke pi fò nan la operasyon debaz yo Omega nan 1. Se konsa, insert se jis pral pran 1. Debarase m de se pral pran n depi nou gen yo ale jwenn li nan lis la. Ak rechèch te kapab pran, nan pi move, n. Nou pa ka fè yon bagay tankou rechèch binè sou yon lis lye depi nou pa ka jis owaza Ale nan mitan yo. Fre. Pè. Yon ti kras nan pil. Sa a, ankò, li moute soti deyò sou egzamen 0, kidonk, ou yo ta dwe super konfòtab ak li. Men, pou pil, nou mande w sonje yon pil nan plato. Epi, se k ap pase yo dwe premye a, dire soti. Se konsa, nou pile bagay yo nan chemine a, ak Lè sa si nou ap eseye pran yon bagay off-- ki nou rele eklate nan stack-- a nou vin koupe tèt la. Men, si nou vle mete yon bagay nan chemine a, nou rele l 'pouse. Se konsa, li la toujou ale nan dwe ap grandi anba nan fon an tankou yon pil nan plato. Pè. Nou te wè pil aplike ak tou de lis lye ak ranje. Si w ap mete ann aplikasyon ak ranje, ou vle a asire w nan kenbe tras nan tou de gwosè a ak kapasite la. Se konsa, gwosè a pwal aktyèl la kantite bagay sa yo nan chemine ou, Lè nou konsidere ke kapasite se nimewo a total de bagay sa yo ou ka magazen nan chemine ou yo. Fre. Trè Menm jan an tou, nou gen ke moun kap kriye. Nan ka sa a, olye pou yo panse sou yon pil nan plato, panse a yon liy. Sa a se pral yo dwe an premye nan, premye deyò. Se konsa, si w ap doubli pou yon bagay nan magazen an, nou espere ke moun nan premye nan liy yo pral ede premye. Olye pou yo di pouse ak pòp tankou nou fè pou chemine, nou jis di enqueue ak dequeue. Epi ankò, si ou se mete ann aplikasyon sa a ak yon etalaj, nou bezwen kenbe tras nan pa sèlman gwosè a ak kapasite, men tou, tèt la, ki a pwal devan nan keu nou an. Fre. Nenpòt kesyon sou nenpòt nan sa? Pè. Botwe dwa ansanm. OK, tab regle. Isit la nan kote li kòmanse jwenn vrèman enteresan. Se konsa, yon tab regle se youn aplikasyon nan yon etalaj asosyatif. Se konsa, fondamantalman sa ki te pase se nou gen tout opinyon sa a, epi nou bay li nan yon regle fonksyon ki di, OK, sa a se kote nan la tab regle li fè pati. Se konsa, fonksyon an regle pi senp ke nou te wè se jis di: OK, ta kwè nou vle mete strings nan tablo regle nou an. Apre sa, yon lide vrèman senp ta kapab vle di, OK, kite yo jis sòt pa nan premye lèt nan mo a. Se konsa, ou ka wè isit la, nou pran fig, nou mete l 'nan yon fonksyon regle, epi li di, hey, ki ta dwe ale nan endèks 1. Se konsa, nou ka esansyèlman panse a yon regle tab kòm yon pakèt moun sou bokit diferan. Epitou, chak nan sa yo bokit ki pral yo kenbe tèt la nan yon lis lye. Ak nan ke lis lye se kote nou kapab aktyèlman mete moso diferan nan done. Se konsa, plonje yon ti jan plis nan yon fonksyon regle, isit la nan egzanp lan mwen jis dekri kote nou jis di, OK, pran lèt la premye nan pawòl Bondye a ak nou ap ale nan sòt l 'nan bokit yo. Se konsa, prezimableman, gen pral 26 bokit, yonn pou chak lèt ​​nan alfabè a. Poukisa se pa sa a yon fonksyon regle gwo? Ki sa ki fè sa a ki pa Peye-ideyal? Yeah. ODYANS: W ap ale gen kolizyon. HANNAH BLUMBERG: Yeah, egzakteman. W ap ale nan gen kolizyon. Se konsa, sa a, se yon sèl bagay. Epitou, n ap pale sou fason nou kapab ranje kolizyon nan jis yon dezyèm fwa. Yon lòt pwoblèm ak sa a fonksyon regle patikilye se ke diferan nou an bokit yo pral yo dwe gwosè nan bèl byen wo diferan. Nou konnen ke gen nan yon anpil tout plis mo ki kòmanse ak A pase X, se konsa nou ap ale nan gen anpil bokit dezekilib nan tablo regle nou an. Fre. Se konsa, yeah, se pou yo jwenn tounen nan pwen an nan kolizyon. Ki sa nou fè si gen nan yon kolizyon? Nou gen yon koup opsyon diferan. Se konsa, yon sèl, se konsa ta kwè nou ap eseye yo mete Berry nan tab regle nou yo. Apre sa, nou wè, oh, nou vle yo mete l 'nan endèks 1, men bannann deja ap viv la. Ki sa yo nou pral fè? Nou gen de opsyon prensipal la. Nimewo se yon sèl nou ka di, OK, gen nan pa gen chanm nan endèks 1, men kite a jis kenbe kap nan jiskaske nou ka jwenn yon lòt plas louvri. Se konsa, nou pral di, OK, se pou yo mete l 'nan plas 3. Sa a yon sèl opsyon. Sa yo rele lineyè sonde. Epi se yon dezyèm opsyon li di, OK, byen, kite yo jis fè chak nan sa yo bokit gen tèt nan lis lye. Lè li nan OK si gen nan plis pase yon bagay nan yon bokit. Nou ap jis ale nan kole li sou devan an. Se konsa, isit ou ka wè, OK, lè nou antre Berry, nou jis te pran fig, kalite pouse li sou yon ti jan , yo jete yon Berry nan la. Epi sa a, tou totalman amann. Se sa yo rele Anchènman ki apa a. Ou ka panse a sa a kòm kalite tankou yon etalaj de tèt nan lis lye. Nenpòt kesyon sou regle tab, fonksyon regle? Pè. Pye bwa ak ap eseye. Se konsa, yon pyebwa se nenpòt ki sòt nan estrikti a done nan ki gen nan kèk sòt nan yerachi oswa kèk sòt a plase nan objè diferan ou yo. Lè sa a yo ap vin super klè lè nou wè yon egzanp. Apre sa, nou te wè ap eseye, ansanm ak tab regle, nan pset5-- ki, ankò, jwèt totalman jis pou sa a kòm yon lòt done quiz-- estrikti ki nou kapab magazen bagay diferan. Nan ka a nan diksyonè, nou estoke yon pakèt moun sou mo yo. Se konsa, kite a pran yon gade nan kèk pye bwa. Se konsa, sa a se yon egzanp yon pye bwa. Li te gen yon kalite estrikti, ke estrikti yerarchize, kote ou ka wè ke sa a ne 1 nan tèt la gen kèk sòt de sou pi wo a 2 ak 3, ki se pi wo a 4, 5, ak 6 ak 7, ki se pi wo a 8 ak 9. Se konsa, sa a, se tout sa nou vle di pa yon pye bwa, pou ou kapab jis kalite nan foto sa a nan tèt ou. Koulye a, nou gen yon koup nan pye bwa plis espesyalize yo. Se konsa, yon egzanp se yon pye bwa binè. Apre sa, yon pye bwa binè se, ankò, jis ale nan gen yon estrikti done ak kèk sòt de yerachi, men chak nan nœuds yo ka gen nan pifò de timoun yo. Sa a kote mo binè a soti nan. Se konsa, sa a se yon egzanp nan yon pye bwa binè. Se konsa, sa a, se yon kategori ki pi piti nan pye bwa. Koulye a, kite a jwenn menm plis espesifik ak pale sou binè trees-- rechèch binè pye bwa, olye. Se konsa, isit lide nan se pa sèlman fè sa ki chak ne gen nan pi de timoun, men tout nan timoun yo nan la gòch yo pral yo dwe pi piti ak tout pitit yo nan la dwat yo pral yo dwe pi gran. Se konsa, remake nan jis nou an binè pyebwa, gen nan pa gen okenn relasyon ant nimewo yo. Men, nan rechèch binè nou an pye bwa, nou wè, OK, isit la nan 44. Tout nimewo nan kite nan 44 se pi piti ak tout bagay sa yo dwa pou se pi gwo. Apre sa, ki kenbe nan chak nivo nan pyebwa sa a. Se konsa, isit, sa a se pi piti pase 22 ak sa a se pi gwo pase 22. Epi sa a, pye bwa rechèch binè. Poukisa nou panse sa yo rele yon pye bwa rechèch binè? Ki sa ki algorithm li ou sonje nan? ODYANS: binè rechèch. HANNAH BLUMBERG: binè rechèch. Paske si ou ap chèche pou yon Nimewo patikilye nan pye bwa sa a, nan chak pwen, ou ka jis frape koupe mwatye nan pye bwa a, ki se gwo. Se konsa, ki k ap pase yo ban nou yon bagay ki sanble yon sanble anpil ak rechèch binè. Nenpòt kesyon? Tout dwa, fre. Tout dwa, ap. Pi renmen tout moun. Se konsa, sa a se egzanp lan ki nou te wè yon pakèt moun nan klas la. Epi ankò, sa a se jis yon lòt fason ke nou ka magazen done. Nan ka a nan diksyonè, ankò, sa a se jis pral yo dwe strings. Se konsa, kite a wè ki sa sa a aktyèlman sanble nan yon nivo yon ti kras pi ba yo. Se konsa, kite a pran yon gade nan yon sèl ne nan yon trye. Apre sa, nou wè, OK, gen k ap pase yo dwe yon Boolean ak yon ne, yon konsèy nan yon ne. Apre sa, nou wè ke nan Boolean yo rele is_word. Se konsa, esansyèlman, sa a, se ale nan koresponn sa yo triyang ti kras ki di, si ou te vinn isit la, ou te jwenn yon mo konplè. Nou konnen ke "Turing" sou isit la se yon mo konplè, Lè nou konsidere ke jis T-U-R se pa yon mo paske nou pa wè ke ti kras delta. Epi sa ti kras delta, ankò, koresponn ak is_word sa a, is_word Boolean sa a. Lè sa a, nou gen yon etalaj de timoun yo. Se konsa, nan chak nivo, ou gen yon ne patikilye, e ke pwen ne nan yon etalaj nan alfabè a tout antye. Se konsa, ou ka wè, ankò, nan picture-- sa a mwen se ale nan kenbe sote retounen lakay yo epi forth-- ke ki etalaj nan tèt la gen yon pakèt moun sou diferan nœuds vini sou nan li. Li te gen 26, oswa 27 si ou vle genyen ladan yo yon karaktè siplemantè. Lè sa a ba nou yon fason nan magazen done nou an nan yon fason ki ka gade sou ke ou ka gade moute super vit. Ki sa ki se tan a Passage pou yon trye? ODYANS: [fèbl]. HANNAH BLUMBERG: Yeah. Nan teyori, li lè konstan. Li nan sèlman pral yo dwe gwosè a nan pawòl Bondye a ke ou vle yo gade jiska. Menm si nou ajoute yon ta plis mo yo trye nou an, li pa pral pran nou ankò nan detèmine si yon mo bay se nan trye la. Se konsa, sa ki nan vrèman bèl. ODYANS: Èske ou jis inisyalize ki etalaj? Ou te manke yon pwen oswa de. Èske ou ka jis pale sou ke pou yon dezyèm? HANNAH BLUMBERG: Asire w, absoliman. Bon kesyon. Kesyon an te, nou gen yon etalaj sa a, se ale nan gen zetwal ne kòm opoze a jis ne, dwa? Fre. Se konsa, isit sa nou ap di se etalaj nou an, se jis pral fè endikasyon nan lòt ranje. Se konsa, li la esansyèlman li kalite santi l tankou yon lis lye nan fason sa a kote chak nan timoun sa yo jis lonje dwèt sou ne kap vini an. Ak wout la ke nou aktyèlman detèmine, hey, OK, nou te iteratif nan yon tout antye mo, se pawòl Bondye sa a nan diksyonè a, nou jis tcheke is_word sa a. Great kesyon. Yeah. ODYANS: OK. Se konsa, sa ki te ègzekutabl a pou trye a? HANNAH BLUMBERG: Asire w. Se konsa, ègzekutabl an pou yon trye pou Passage a pwal tan konstan. Se konsa, li nan jis pral fè a kantite lèt nan mo a. Li pa depann sou la gwosè nan diksyonè a oswa gwosè a nan estrikti a done. Se konsa, isit la nan yon egzanp yon ti kras ki pi senp. Nan ka sa a, ou ka wè ke mo baton an se nan diksyonè a epi ou gen rale, men ou pa gen yon bagay tankou zou. Ki jan nou ta fè zou? Ki jan nou ajoute zou nan nou diksyonè, nan trye nou an? Yeah. ODYANS: Fè is_word vre pou [fèbl a]. HANNAH BLUMBERG: Bon. Se konsa, nou ta di Z-O-O, ak Lè sa a nou ta vle tcheke nan ti bwat ki kòm byen. Great. Se pou nou konpare trè yon ti tan ap kont tab regle. Ap eseye yo se reyèlman gwo paske, jan nou te di, yo bay konstan nan tan Passage. Men, dezavantaj nan gwo se yo ap humongous. Ou ka jwenn sans nan, menm pa gade nan li, ke li nan pral pran yon kantite lajan gwo memwa. Se konsa, yo ap ale nan dwe pi pi gwo pase tab regle, men yo ap pral bay nou anpil pi vit fwa Passage. Se konsa, sa a, se kalite ou arbitraj, ki sa ou pran swen sou, si li nan vitès oswa memwa. Nenpòt kesyon sou nenpòt nan sa, tout nan estrikti yo C done. Bèl. OK. Nou pral deplase sou li nan yon ti kras ti jan nan devlopman entènèt ak Maria. MARIA ZLATKOVA: Lovely. OK. HANNAH BLUMBERG: Ou kapab sèvi ak laptop mwen. MARIA ZLATKOVA: Nice. OK, fre. Kòm nou deplase kounye a sou sit devlopman, nou te pale yon ti kras chanje autorisations sou nan dosye ak repèrtwar pou yo ka kapab genyen aksè nan lòt itilizatè yo, nan mond lan, ak pou nou ka wè ki jan fondamantalman nou ka transmèt yo lè nou devlope bagay sa yo tankou sit ke nou te sitou te fè. Se konsa, nou te wè yo lòd, ki chmod, ki se chanjman mòd, fondamantalman. Sa se yon lòd Linux ak li chanje autorisations aksè nan sistèm dosye objè yo. Ak yon sistèm dosye objè se jis yon anyè, yon dosye, nenpòt ki bagay ki ou kapab chanje autorisations yo a. Se konsa, yo wè autorisations yo ranpli, nou tape ls lòd, lis, -l la. Lè nou tape sa, nou anjeneral wè kèk autorisations ki gade sòt de tankou sa a nan devan yon non anyè. Se konsa, d refere a anyè. Lè sa a, nou gen twa Aux ki fondamantalman al gade nan autorisations yo nan swa yon itilizatè, yon gwoup, oswa mond lan. Ki kalite autorisations ke nou kapab gen pou gwoup sa yo twa nan moun ki yo se swa r pou lecture, w pou ekri, ak x pou egzekite. Apre sa, nou ka gen sa yo pou gwoup la ak mond kòm byen. Bagay la difisil se ke pafwa lè nou tape yo lòd, ki chmod, nou ta tape kèk nimewo ki fèt nan twa miyèt moso. Se konsa, nou ta ka fè tankou 777 e ke fondamantalman refere yo bay valè a te ajoute nan chak nan sa yo Aux paske r ta refere a 4, w ta al gade nan 2, ak x ta refere a 1, Se konsa, lè te ajoute moute, chak nan nimewo ki t 'vle vini desann nan yon nimewo kimilatif nan yon valè kimilatif ant 0 ak 7. Se konsa, nou te kapab gen 0 tou pou pa gen okenn autorisations nan tout. Apre sa, ki ta fondamantalman ban nou autorisations yo pou swa itilizatè a, gwoup la, oswa mond lan. Nenpòt kesyon sou sa a byen lwen tèlman? ODYANS: Ou te di li te 4? MARIA ZLATKOVA: Wi. ODYANS: [fèbl]. HANNAH BLUMBERG: Wi. ODYANS: Lè sa a, lè yo ajoute tout moun sa yo lòt moun ta kapab endike nimewo ou. MARIA ZLATKOVA: Yeah. Yeah. Sa yo se kesyon gwo. Bèl. Apre sa, nou vole nan HTML ak yon ti jan pi plis sou devlopman entènèt. Se konsa, HTML jis vle di Ipèrtèkst markeup lang. E ke se markeup a lang ki se yon estanda ke li nan itilize yo kreye paj wèb. Yo rele li yon lang markeup paske li pa la aktyèlman konpile. Li pa di ki jan kèk kòd ta dwe dwe egzekite oswa yon bagay tankou sa. Li jis defini ak dekri kijan yon rezo paj yo ta dwe mete kanpe ak chak nan eleman li yo ak ki jan yo ta dwe gade nan itilizatè a. Gen kèk nan HTML Tags sa yo ke nou janbe lòt yo sa ki annapre yo. Tout moun nan dokiman HTML nou an te kòmanse avèk html nan Doktip. Apre sa, nou toujou gen tag nan HTML. Nou gen yon tèt ak yon kò. Apre sa, li enpòtan ke HTML gen sa a sòt de estrikti enbrike paske li nan trè klè. Lè sa a, li vin trè klè lè nou bezwen louvri ak aktyèlman Tags fèmen. Apre sa, nou toujou bezwen yo fèmen Tags ke nou te louvri. Ak isit la nou gen kèk nan ki kalite de bagay sa yo devan yo ke nou vle genyen. Se konsa, nou gen, pou egzanp, tit la nan CS50. Lè sa a, nou aktyèlman ka lyen yon fèy style ki defini ki jan nou style sit entènèt nou an. Sa se CSS. Nou pral ale sou li nan la koup pwochen nan glisad kòm byen. Nan kò a, nou mete kèk klas ak idantite. Apre sa, kòm yon rapèl, ankò, Idantite yo se inik ak klas ka kapab asiyen li nan atik miltip. Epi sa jis vle di ke nou ka sèvi ak ak idantite klas nan lòt structures-- Se konsa, pou egzanp, ki nan dosye CSS oswa style sheets--, al gade nan eleman espesifik ak fondamantalman di ke nou vle style oswa konsepsyon kèk eleman nan kèk fason patikilye. Apre sa, nou al gade nan yo pa idantite yo epi yo klas yo. Apre sa, nou ka al gade tou yo bagay sa yo diferan pa Tags kòm byen, men idantite ak klas jis bay nou kèk adaptabilite ak sa nou espesyalman vle al gade nan. Se konsa, jis yon egzanp. Nou kapab, ankò, nan yon dosye CSS kote nou vle defini kèk style-- konsa koulè, polis, ak lòt bagay tankou that-- nou kapab defini style la pou yon kò. Se konsa, ki ta defini li pou tag nan kò antye. Men, lè sa a nou kapab tou defini yon style pou yon #title. Epi ankò, hashtag a refere a nou an ID ak dot a refere a klas nou an. Lè sa a, pou .info yo, nou kapab tou mete kèk atribi. Epi ankò, lè nou tounen, nou te gen nou an klas rele enfòmasyon ak tit ID nou an. Apre sa, nou ka wè ke nou al gade ba yo nan non #title ak .info. ODYANS: Èske ou ta di hashtag [? adopte m 'konsa? ?] MARIA ZLATKOVA: Padon? ODYANS: Èske ou ta di hashtag [? adopte m 'konsa? ?] MARIA ZLATKOVA: Hashtag vle di ID, se konsa #title refere a tou sa eleman gen ID sa a yo rele tit. Lè sa a, dot a refere a yon klas la. Se konsa, .info refere a sa a eleman paske li gen enfòmasyon sou a klas la. Wi. ODYANS: Poukisa ou distenksyon ant yo nan HTML a? Poukisa ou di sèten bagay sa yo yo Idantite ak sèten bagay sa yo yo klas la? MARIA ZLATKOVA: Se jis jiska you-- HANNAH BLUMBERG: Repete kesyon an. MARIA ZLATKOVA: Oh, regrèt. Poukisa nou fè distenksyon ant sèten eleman kòm idantite ak lòt eleman kòm klas? Se jis paske li nan reyèlman souvan yon chwa konsepsyon. Li ba ou yon anpil nan adaptabilite nan yo te kapab di mwen vle sa a atik espesifik gen ID sa a paske yo vle fè yon bann bagay sa yo ak li, ak mwen sèlman vle defini yon style, style sèten oswa koulè tou sa pou sa atik. Ak wout la fè sa se jis bay li yon ID. Lè sa a, si mwen vle gen yon koup la atik diferan gen ki, olye pou yo ale ak anviwònman their-- olye pou yo fè li pa tag paske tag a ta mete selil la pou tag a tout antye pou chak fwa se ke tag itilize, ou ka mete yon klas nan atik miltip. Lè sa a, jis jwenn aksè nan ki klas epi di Mwen vle style klas sa a ki fason. Epi ankò, klas la kapab gen plizyè atik diferan ak ID a gen yo dwe inik. Great kesyon. Nenpòt lòt kesyon? OK, pè. Yon fwa ankò, sa a se ki jan sa yo seleksyon gen referans nan CSS, ak hashtag, ak dot, oswa san anyen pou plase style la nan kèk tag, tankou kò. Ak isit la nou gen jeneral la sentaks pou konnen kijan sa a se fè. Repete kèk pi bon pratik pou HTML ak CSS, nou bezwen, ankò, fèmen tout etikèt yo HTML ke nou louvri. Ak sa ki nou rekòmande ou fè pou final pwojè ou a, menm jan tou pou CS50 Finans, se fè asire w ke tout nan HTML ou validation. Epi sa a, fè ak W3 validation la. Lè sa a, ki sa nou te fè ak ki sa nou rekòmande fè se separe style, se konsa CSS soti nan markeup HTML. Se konsa, nenpòt ki bagay ki gen rapò ak ki jan paj ou a pral nan vizyèlman gade ak kijan li k ap pase yo dwe modifye ta dwe ale nan yon dokiman CSS. Lè sa a, markeup ou di ki jan bagay se nan relasyon ak yon youn ak lòt se HTML, e ke ta dwe ale andedan nan dokiman HTML ou yo. Nenpòt kesyon? MHM. ODYANS: Ki sa egzakteman ki pral sou ak paj validation nan lè nou ap validation nan HTML ki [fèbl] kreye? MARIA ZLATKOVA: Se konsa, what-- panse ou. Se konsa, ki sa egzakteman ki pral sou ak paj validation e poukisa nou bezwen fè sa? Fondamantalman, nou bezwen fè sa paske yon anpil nan fwa, navigatè ou a, si ou pa fèmen yon tag oswa yon bagay tankou sa yo, navigatè ou a se toujou ale nan rann yon paj ak ta ka toujou travay, men li la pi bon pratik a asire w ke ou te, ankò, fèmen tout Tags ou, ki tout eleman ou yo fason nan yo ke yo ta dwe, ak fondamantalman ke li nan pa nan konvansyon ki prereglaj. Li nan, ankò, jis yon bagay ki ou ta dwe dwe aprann yo dwe fè, kòm opoze a gen sloppier Kòd ak lòt bagay tankou sa. Yeah. Oh, regrèt. Mwen te panse ou te ogmante men ou. ODYANS: Non, mwen te jis [fèbl]. MARIA ZLATKOVA: OK. ODYANS: Mèsi poutèt ou. MARIA ZLATKOVA: Natirèlman, di ou mèsi. Se konsa, ankò, ale sou nan ki jan se enfòmasyon transfere ak modèl kominikasyon yo transfere enfòmasyon. Tchp / IP. Tchp jis vle di Transmisyon Kontwòl Pwotokòl ak IP refere a pwotokòl entènèt. Apre sa, ki jis vle di se done nan fason sove. Si nou gen kèk done ki bezwen yo lage nan you-- konsa ou fè yon demand pou yon sèvè sèten. Pou egzanp, lè nou eseye jwenn aksè nan cs50.net, nou fè yon demann yo voye sèvè a CS50 ak nou wè ke nou vle jwenn sa a sòt de enfòmasyon. Lè sa a, ki baze sou pwotokòl sa a pou ki jan se enfòmasyon sa a delivre, sèvè a bay enfòmasyon tounen nan nou, kliyan an. Lè sa a, nou ap kapab wè enfòmasyon an pou paj la ak Lè sa a sèvi ak li. Se sak fè Pwotokòl Transfè Ipèrtèks se jis yon lòt pwotokòl oswa mete a konvansyon ki defini ki jan navigatè wèb la ak sèvè wèb la ta dwe kominike. Apre sa, mete sa a tout ansanm, HTTP, ankò, jis defini ki jan ipèrtèks sa a defini pa HTML a ke nou te ap travay li, li montre kouman li ta dwe lage nan ou menm ak ki jan ke done ki delivre bay ou vin ba ou. Epi sa a, poukisa, si ou nèg sonje ki sòti nan yon klas, nou te gen yon anpil nan demann epi nou te gen yon anpil nan sentaks pou demann sa yo ke nou ap ale nan ale sou kounye a. Se konsa, ankò, lè nou voye yon demann yo voye yon sèvè, nou dwe defini yon koup nan bagay sa yo. Se konsa, nou bezwen jwenn kalite a nan demann ke nou ap mete. Epi ankò, nou gen, pou egzanp, Jwenn se yon kalite metòd ke nou gen nan demann nou an. Lè sa a, HTTP / 1.1 se jis nan pwotokòl ke nou ap lè l sèvi avèk kounye a. Pifò nan tan an, ki k ap pase pwotokòl la ke nou ap lè l sèvi avèk. Se konsa, si ou gen yon kesyon tankou sa sou egzamen ou yo. Sa a konvansyon ki ke nou gen byen lwen tèlman. Antislach refere a sa ki sòt de bagay sa yo nou ap mande. Lè sa a, lame nou an, se, pou egzanp, nan ka sa ka, nou ap eseye pou yo ale nan google.com. Se konsa, sa a se valè a pou yon lame. Sa a se yon di ki kalite demann ki te kapab voye. Lè sa a, yon kalite repons ki te kapab dwe voye, ankò, ki baze sou pwotokòl sa a, se ankò, HTTP / 1.1. Se konsa, sa a, se vèsyon an HTTP ankò. 200 OK se jis kòd la estati. Epi sa OK se jis yon fraz baze sou ki Kòd estati. Lè sa a, Content-Type nan refere a kalite a ki tounen tounen yo ou se sa ki pou sa paj entènèt ke ou resevwa e ke navigatè ou a ka rann apre sa. E ke se tèks / html. ODYANS: Ki sa ki 1.1 vle di? MARIA ZLATKOVA: Se jis nan vèsyon de- oh, ki sa 1.1 vle di? Sa se jis vèsyon an, HTTP la vèsyon nan yon pwotokòl ke nou ap lè l sèvi avèk. Great kesyon. Lòt kesyon? ODYANS: Èske ou ta kapab sòm moute Content-Type reyèl rapid? MARIA ZLATKOVA: Se konsa, ki se sa ki sèvè a. ki kalite information-- ki sa ki kontni kalite te kesyon yo. Se konsa, sa ki te kalite a nan enfòmasyon ke ou jwenn tounen soti nan sèvè a, ki kalite done ki navigatè a kapab Lè sa a, rann ke w ap lè l sèvi avèk. ODYANS: Eske se sa ke ki sa sa a pwotokòl ap di ou fè? MARIA ZLATKOVA: Padon? ODYANS: Eske se sa ke sa pwotokòl la di nou fè? MARIA ZLATKOVA: Pwotokòl la ODYANS: --what nan Content-Type se oswa what-- MARIA ZLATKOVA: se pwotokòl la ki baze on-- ki sa ki pwotokòl la di ou? Se jis wout la ke enfòmasyon sa a te delivre bay ou baze sou sa ki sòt de pwotokòl te enfòmasyon sa a te resevwa lage tounen ba ou. Èske sa fè sans sòt de? HANNAH BLUMBERG: Ou ka panse a pwotokòl kòm a-- Mwen panse ke Pwofesè Malan dekri li nan klas kòm kalite tankou a-- li a tankou ekivalan a nan andchèykin imen. Di, tankou, hey, mwen se yon demann ak mwen konnen ki jan okipe HTTP nan vèsyon 1.1. Lè sa a, sèvè a di, oh, OK, I-- epi toude, ni egziste. Mwen menm mwen te konnen ki jan fè fas ak HTTP / 1.1. Apre sa, mwen pral bay ou tounen kèk kontni. Nan ka sa a, li k ap pase yo dwe nan kalite tèks / html. Se konsa, li nan kalite jis yon fason nan yo pou communicating-- MARIA ZLATKOVA: Se jis e ki konfime ke ou se tou de yo menm bagay la tou pwotokòl ak ke tou de kliyan an ak server-- a pou navigatè ou a ak server-- nan sòt de konnen ki sa w ap ap pale de epi yo gen konvansyon an pou pase nan done. ODYANS: Se konsa, Content-Type part-- nan tèks la Content-Type / html-- sa a, se yon pati separe nan mesaj la menm? Oubyen èske se yon pati nan kite a di, 200? 200 di yo ke oswa is-- MARIA ZLATKOVA: 200 di ke li tout te ale OK. Lè sa a, kontni di ki kalite se sòt de yon separe yon pati nan mesaj la menm, yo t'ap di konsa bagay la ke mwen Retounen gen sa a ki kalite tèks / html. Li nan jis bay plis enfòmasyon. Gen anyen yo ajoute? OK. Nenpòt lòt kesyon sou sa a? Pè. Se konsa, kèk lòt statuts HTTP ki nou te ka jwenn nan adisyon a 200 OK, yo menm ke nou te wè petèt pètèt yon anpil yo se 403 ak 404. Se konsa, 404, si ou t ap eseye aksè yon bagay ki pa egziste. Se konsa, pou egzanp, nan ou Psets CS50 Finans, si ou te rann quote.html epi ou pa t 'gen ke dosye, men olye ou te gen quote.php, ki ta lakòz yon 404 pa jwenn paske dosye a pa ta ka egziste. Pou yon 403 entèdi, ki refere a autorisations yo. Se konsa, si kèk dosye se pa lizib pa nan mond, ou ta ka jwenn yon 403 retounen. Gen kèk lòt moun ki ou ta ka get-- 301, Deplase anpèmanans; 302, Twouve; 304, modifye; 400, Move Demann; ak Lè sa a Entèn Erè sèvè pou 500 ak 503, Sèvis Disponib. Wi. ODYANS: Èske nou espere memorize tout moun sa yo statuts? MARIA ZLATKOVA: Mwen ta gen yo sou fèy twonpe ou yo. [Ri] ODYANS: Eske nou kwè nou espere konnen ki sa deklannche chak moun? MARIA ZLATKOVA: Èske yo? HANNAH BLUMBERG: Pou yo menm ke nou te kouri into-- konsa kesyon an was-- MARIA ZLATKOVA: Eske yo se moun espere konnen ki sa chak moun de estati sa yo kòd ta ka deklanche nan yon? Se konsa, pou yo menm sa yo ke nou te itilize , li kouri al nan, mwen ta ka di, wi. Se konsa, nou te definitivman wè 200 OK ak konferans l 'nan psets. Nou te wè 403, 404. Pou lòt yo menm? HANNAH BLUMBERG: Mwen ta di 500 sanble jis jwèt. MARIA ZLATKOVA: 500, yeah. HANNAH BLUMBERG: Yeah. Jis gen yon sans jeneral nan sa ki lakòz yo. Epi tou jis pa sa yo non, ou kapab kalite tankou fè yon devine edike kòm nan sa ki te koze aktyèlman yo. Pou egzanp, deplase pou tout tan, pwobableman dosye a te demenaje ale rete nèt. ODYANS: Men, sou yon premye egzamen, te gen yon sa ki jan w ap atann nou reponn sa? HANNAH BLUMBERG: Sa te vo zewo pwen. Kesyon an sou 418 sou teyèr a se teknikman yon estati HTTP, men li te vo zewo pwen. Li evidan, ou pa ap espere konnen yo. ODYANS: Èske se yon yon sèl reyèl? HANNAH BLUMBERG: Li se yon reyèl yon sèl, men li pa vle di anyen. Se jis yon blag. Moun Entènèt se amizan. MARIA ZLATKOVA: Gwo kesyon, guys. Nenpòt lòt kesyon? ODYANS: Ki sa ki se entèn erè sèvè? MARIA ZLATKOVA: Entèn erè sèvè jis vle di ke ou yo te kapab kominike ak sèvè a pou kèk rezon ki fè. Se konsa, li pa nesesèman yon bagay ki te fè ak kliyan an oswa yon bagay tankou sa. Mwen pa konnen nan nenpòt ki egzanp espesifik ke nou te ale sou yo eksplike, men wi. HANNAH BLUMBERG: Asire w. Se konsa, pou egzanp, tankou se pou yo di ou te ap travay sou macheup ak yon sèvè Google desann pou kèk rezon ki fè, yon pàn kouran elektrik, se pou yo di. Ki ta ka yon sèvè entèn erè oswa kèk sòt de- renmen ou pa t 'vle jwenn yon repons tounen. MARIA ZLATKOVA: Yeah. Se jis lè w ap kapab kominike ak sèvè a pou kèk rezon paske nan li pral desann oswa kèk lòt rezon. Se konsa, sote nan PHP. PHP, kontrèman ak HTML, se yon lang programmation. Apre sa, nou te kòmanse lè l sèvi avèk li paske li nan trè itil pou devlopman entènèt. Nou premye te itilize li nan CS50 Finans. Epi, se fondamantalman ede nou pote ansanm markeup sa a, konsepsyon an, ak ki jan nou aktyèlman sèvi ak enfòmasyon yo montre bagay sa yo sou yon paj entènèt. Se konsa, PHP tèt li vle di PHP Ipèrtèks Preprocessor, se konsa li nan yon backnorym repetitif pou kont li. Apre sa, louvri Tags pou PHP nou bò gòch la ak kèk flèch dwa ak mak yo kesyon ak php. Se konsa, nou te deja wè yon pakèt moun sou li. Koulye a, nou ap jis ale nan ale sou kèk nan bagay sa yo debaz sou li. Se konsa, avèk PHP, varyab la non kòmanse ak siy dola. Nou pa presize, ankò, yon varyab tape ankò. Jis tankou nou te fè ak C, nou pa bezwen fè sa. Nou ka fè yon pakèt moun sou diferan bagay ak varyab. Nou ka mete yo ansanm pa konkatenan yo ak notasyon an dot, ki nou pa t 'kapab fè nan C ankò. Yon fwa ankò, nou gen yon ti jan pi plis adaptabilite ak PHP an tèm de varyab. Yon fwa ankò, nou pa gen yon fonksyon prensipal la. Apre sa, PHP se entèprete kòm opoze a konpile, Se konsa, jis ki jan nou t 'fè pou C dosye, nou pa gen fè sa pou PHP. Men pito, fason ke lang nan se kouri pou kont li, li se entèprete. Lè sa a, blesi tape jis vle di ke nou pa gen ou presize yon varyab kalite ak kalite mouvman yo varyab yo konprann nan ègzekutabl. ODYANS: Men, sa ki te fè ou vle di pa dot Anchènman? MARIA ZLATKOVA: Asire w. Lè nou vle mete bagay sa yo together-- Se konsa, si nou te gen kèk varyab ki te gen valè a nan 3 epi nou te gen yon lòt varyab ki te gen valè a nan fisèl, nou te ka mete varyab yo ansanm pa mete yon dot nan ant yo ak konkatenan yo. Ou nou te kapab kreye yon varyab Non rele li mete l 'ansanm pa konkatenan de strings. Se konsa, si nou te gen yon fisèl nan doub quotes epi nou mete yon dot apre li fin, ak Lè sa a nou te gen yon lòt fisèl, ki ta kreye yon fisèl tout ansanm. ODYANS: OK. MARIA Letoni: te ke klè? ODYANS: Yeah. MARIA ZLATKOVA: OK. Wi. ODYANS: Lè ou di entèprete olye ke konpile, ou menm ki pale sou ou pa fè sa bezwen yo dwe kòm espesifik lè li rive PHP kont C? MARIA ZLATKOVA: Lè nou di entèprete kòm opoze a konpile, ki sa nou vle di? Se konsa, ki vle di ke nou pa bezwen dosye ègzèkutabl nan kouri PHP. Sa vle di ke li kouri kòm li ale. Ki fè sans? Yon ti jan plis. HANNAH BLUMBERG: Se konsa, ou ka panse a yon entèprèt kòm yon lòt pwogram ki ki responsab pou ale liy pa liy nan PHP ak aktyèlman egzekite li, tankou yo te opoze konpile li tout desann nan binè. Li pa aktyèlman vle di anyen sou ki jan nou bezwen espesifik yo dwe. Nou toujou bezwen yo dwe egzak, epi yo pa bliye virgules ou, ak asire w ou gen siy dola ou, ak bagay sa yo tankou sa. Bon kesyon. MARIA ZLATKOVA: Yeah. Se konsa, liy pa liy, kòm opoze a ak C dosye, nou gen fè final la tout antye anvan nou ka aktyèlman kouri li. Sa a diferans ki genyen prensipal la. Men, ankò, nou pa kapab reyèlman gen mwens espesifik. Se konsa, ranje nan PHP reprezante aktyèlman yon kat jeyografik bay lòd la. Se konsa, valè ranje asosye nan kle. De fason yo nan deklare yon etalaj, ki baze sou sentaks sa a, nou ka gen plis eksplisit nan ki di nou gen yon etalaj e nou gen sa a key1 ki kat value1 sa a, key2 ki kat value2. Oubyen nou ka jis kreye yon etalaj ki gen valè yo tèt li ak Lè sa a kle yo se konprann nan yon fason. Nenpòt kesyon sou sa a? ODYANS: Ki sa ki ta kle yo gen nan dezyèm egzanp lan? 0, 1, 2, 3? MARIA ZLATKOVA: Pou egzanp, li nan jis kle yo nan sa a fè pa nesesèman fè yon diferans. Yo senpleman defini ki jan ou kapab itilize valè yo andedan nan li. Se konsa, si nou te gen yon fortch bouk nan PHP ki ta pèmèt nou yo ale nan tout valè yo, nou ka ale nan tout valè yo, menm si nou te gen oswa pa t 'defini yon kle espesifik nan sit la nan sentaks anvan yo. Se konsa, menm avèk sa a sòt nan etalaj, nou te kapab toujou gen yon riban fortch ki ale nan chak nan valè yo nan kle a nan etalaj la. Se konsa, sentaks la nan yon fortch riban, nou kòmanse ak yon etalaj. Sa a varyab $ ArR se etalaj aktyèl nou an ke nou defini nan glise anvan an kòm valè ki literalman ale nan chak nan valè yo, kèlkeswa si nou te gen yon kle oswa ou pa. Lè sa a, nou ka fè yon bagay ki gen valè a andedan nan riban an fortch. Se konsa, ankò, si nou te gen yon etalaj tankou sa a isit la created-- konsa nou gen kle a nan foo ak valè de ba, kle a nan baz ak valè de qux-- nou ka gen yon riban fortch ki ale nan etalaj kòm valè kle Lè sa a, fè yon bagay ak ak kle a ak / oswa valè. Men, nou pa fè sa nesesèman toujou gen gen yon fortch pasan ki ale nan etalaj kòm kat jeyografik kle nan valè. Nou ka ale nan nan fortch etalaj bouk kòm valè. HANNAH BLUMBERG: E mwen panse ke te to-- kesyon ou a, ki sa se endèks la enplisit? ODYANS: Yon jan. MARIA ZLATKOVA: Oh. HANNAH BLUMBERG: Yeah, yeah. Se konsa, fondamantalman, si ou pa presize yon kle, li k ap pase yo dwe 01. MARIA ZLATKOVA: Yeah. Jis tankou ak C, li nan zewo Catalogue si ou pa presize yon kle. ODYANS: Padon. Èske ou ta kapab eseye pale yon ti jan pi fò? Mwen gen yon ti kras nan pwoblèm tande tout bagay. MARIA ZLATKOVA: Mwen se konsa regrèt. Yeah, nan kou. Se konsa, ou vle m ' ale sou sa a ankò? Oubyen èske sa a men ODYANS: Se konsa, sou slide-- anvan an si ou ta ka jis ale tounen pou yon dezyèm fwa. MARIA ZLATKOVA: Natirèlman, regrèt. ODYANS: Se konsa, dezyèm nan etalaj isit la pa fè sa sanble yo gen yon valè nan kle yo, sòt de [? kozalite. ?] MARIA ZLATKOVA: Dwa, dwa. ODYANS: Se konsa, kouman fè ke travay lè ou di li nan tout oswa anyen menm. Pou mwen, ki sanble ak yon [? foo?] deja. MARIA ZLATKOVA: Yeah, yeah. Se konsa, ankò, sa a se yon kat jeyografik te bay lòd nan sans sa a ke gen yo konprann, pou egzanp, endis yo isit la yo ka konprann tankou 0, 1, 2, 3. Yon fwa ankò, sa a, se li te gen moun endis ki ekivalan nou an ki gen kle trase sou valè. Se konsa, si kle nou an te 0-- regrèt. HANNAH BLUMBERG: Non, gen nan lakre moute isit la. Li nan aktyèlman reyèlman bon. MARIA ZLATKOVA: Sa a gwo. OK. Se konsa, ankò, $ ArR 0 ta dwe kle a pou valè a 1. 0 ta dwe kle nan pou valè a 1. ODYANS: Mwen regrèt. Li nan envizib. HANNAH BLUMBERG: Tout dwa, Nvèrmend. Lakre te yon lide move. Mwen pran l 'tounen. Ou ka panse a kle yo kòm 0 kat nan valè a 1. MARIA ZLATKOVA: Yeah. Se konsa, sa a se 0, sa a se 1, 2, 3. Sa yo ka kle ou yo. Ou ka panse a yo as-- yeah. Se konsa, olye pou yo gen kle eksplisit, yo ap sòt de konprann ke yo te endis yo kòmanse nan 0. Lakre a pa t 'ede ou. Yeah. ODYANS: Pou bouk la fortch, si nou te vle wè nan kòm valè, li ta jis otomatikman endèks a 0? MARIA ZLATKOVA: Yeah. Li ta ale nan chak nan valè yo. ODYANS: [fèbl] kòm 0 oswa ou ta ki jis fè 0? MARIA ZLATKOVA: Ou ta gen yo di kòm siy dola ak Lè sa a kèk non varyab, valè. ODYANS: [fèbl]. MARIA ZLATKOVA: Padon? ODYANS: Padon, mwen se jis ap eseye sonje. Ki jan ou ta ke si ou ka fè li otomatikman Indexing se jis 0 de? MARIA ZLATKOVA: Se konsa, ki jan ou ta fè sa si ou pa t 'gen non kle espesifik yo? ODYANS: Yeah. MARIA ZLATKOVA: Ou ta jis define-- jis di tèt ou ke kèk non. Se konsa, nan psets ou a, ou ta ka nèg sonje $ ranje fortch ke $ ranje, nou te kreye ourself $ sa a ranje li di nou vle yo ale nan ranje ke $ ranje. Menm si nou pa t 'gen sa a $ eksplisit ranje defini, nou te ka jis ale epi di sa a kapab kle nou an, ak jis ale nan chak nan valè yo. ODYANS: Se konsa, se valè yon varyab nouvo nou ap kreye nan magazen [fèbl]? MARIA ZLATKOVA: Se konsa, li pa natirèlman yon varyab nouvo. Li se yon varyab ki refere a nan andedan nan etalaj la nan chak nan yo. HANNAH BLUMBERG: Se yon nouvo non varyab. MARIA ZLATKOVA: Yeah, li nan yon nouvo non varyab, men li pa nan inherently-- yeah. Se jis yon varyab nouvo ke ou ka fè sa. Se konsa, jis ki jan nou te fè sa $ ranje ke $ ranje, ranje te yon lòt non varyab ke nou te kapab kreye nan bouk fortch nou an. Li pa gen yo preexist anvan sa. ODYANS: Èske ou ta kapab ale nan nan lojik pou chak, w ap itilize egzanp lan la? MARIA ZLATKOVA: Mhm. Oh, regrèt. Isit la nan egzanp lan. Asire w. Se konsa, pou chak array-- konsa sa vle di ale nan sa a etalaj kòm kle value-- ki k ap pase yo ale nan sa a etalaj ak premye ale epi pou yo jwenn foo, nan foo kle ak bar nan valè. Lè sa a, sou dezyèm lan iterasyon nan la pou riban, li pral yo ale nan ak pran baz la kle yo ak qux nan valè. Lè sa a, ou ka fè yon bagay ki gen swa nan yo oswa toude nan yo. ODYANS: Se konsa, lide nan dèyè li te gen yon pwen kle nan valè a, sa ou fini aksè? MARIA ZLATKOVA: Ki sa ki lide a ki gen yon pwente kle nan valè? Li nan jis yon lòt konvansyon, yon lòt fason pou ale atravè tout etalaj la epi yo te kapab jwenn aksè nan la swa kle oswa valè a oswa toude epi itilize yo. ODYANS: Ki sa ki nan wòl la pou la lòd ki fortch a kouri nan? Se konsa, si nou te ajoute eleman yo etalaj la pita, ta moun yo menm yo an premye rele nan etalaj la fortch, oswa ou ta li ka pita sou? MARIA ZLATKOVA: Se konsa, ki sa ki lòd la ki fortch a bouk ale nan yon etalaj nan? Li ale nan premye a eleman nan eleman ki sot pase a, nan dènye eleman an te ajoute. Si ou ajoute eleman pita sou yo, yo ta dwe accessed-- eleman yo an premye ta jwenn aksè kòm premye a eleman nan etalaj la, ak Lè sa a ou ta ale nan chak nan eleman yo kòm sòt de yon ordered-- pa yon te bay lòd, men wout la ki yo te mete nan etalaj la. ODYANS: Se konsa, nouvo eleman yo te ajoute pita sou? Se konsa, yo ap added-- yo pral nan yo menm sot pase a nan [a? iterasyon. ?] MARIA ZLATKOVA: New eleman can-- fondamantalman, lè nouvo eleman yo te ajoute, nou jwenn te ajoute nan fen a nan etalaj la? ODYANS: Yeah. MARIA ZLATKOVA: Mwen kwè sa. Wi. Lè sa a, ak bouk fortch ou, apre ou te te ajoute nouvo eleman epi ou ale nan yo, eleman yo nouvo ta gen accessed-- eleman nan nouvo, si li nan te ajoute dènye a, li ta jwenn aksè pase. ODYANS: Èske ou ka jis bay yon egzanp nan yon bagay ki ta [fèbl] ak yon bagay ki gen valè tankou [fèbl] oswa valè, tankou ki jan ou ta fòma sa? MARIA ZLATKOVA: Asire w. Èske mwen ka bay yon egzanp nan sa ki nou ta fè ak valè a? Se konsa, sa ou nèg ta ka dwe abitye avèk se ke nou te ale nan yon etalaj ak fondamantalman enprime chak nan eleman yo, pou egzanp, kòm yon pati nan yon lis te bay lòd oswa yon bagay sa. Ki fè sans oswa fè nou vle to-- ODYANS: Èske nou ka enprime valè sa yo soti? MARIA ZLATKOVA: Yeah, nou te ka enprime ak Lè sa a fondamantalman $ valè paske nan ke valè espesifik, nou ta dwe enprime valè nan andedan nan li. Se konsa, si nou te nan premye iterasyon nou an nan li e nou enprime $ valè, nou ta dwe enprime ba. ODYANS: Èske gen tou pou pasan nan PHP oswa jis pasan fortch? MARIA ZLATKOVA: Genyen tou pou pasan nan PHP. Ak lojik yo se sitou nan menm jan ak sa ou ve yo te itilize yo. ODYANS: Se konsa, valè li yo se nil. MARIA ZLATKOVA: Se tankou menm bagay la. Yeah. ODYANS: Mwen jis pral mande. Se konsa, lè ou deklare yon etalaj, ou pa bezwen di sa ki gwosè li pral dwe, ki vle di ke ou ka jis ajoute ak pran eleman [fèbl]. MARIA ZLATKOVA: Wi. Wi. Egzakteman. Lè nou deklare yon etalaj, nou pa bezwen di sa gwosè li ye, pou nou ka jis ajoute eleman sou li pita kòm byen. Plis kesyon? Se konsa, yo pote PHP ak HTML ansanm, ki sa nou te seen-- byen, pou egzanp, nan egzanp sa a, nou gen yon fòm HTML ki gen yon jaden opinyon. Apre sa, jaden an opinyon se jis Non ak Lè sa a li gen yon bouton soumèt. Men, lè ou peze soumèt nan bouton, nan dosye hello.php nou an, paske metòd la pou fòm nan se jwenn, nou ka jwenn aksè tou sa se nan Non pa sa a jwenn plase varyab ki is-- sentaks la pou li se $ _GET. Lè sa a, nou kapab jwenn aksè nan tou sa opinyon itilizatè andedan nan ke fòm pou non pa ki espesifye non an nan ki jaden. Nenpòt lòt kesyon oswa nenpòt kesyon sou sa a egzanp espesifik yo? ODYANS: Ki kote se PHP a? MARIA ZLATKOVA: Isit la. Se konsa, sa a se tag ouvèti nou an pou PHP a. ODYANS: Oh, dwa. MARIA ZLATKOVA: Wi. HANNAH BLUMBERG: a = se steno pou sa a se PHP ak jis eko. ODYANS: Oh. MARIA ZLATKOVA: Yeah, regrèt. Mwen ta dwe te fè ki klè. HANNAH BLUMBERG: Enprime. MARIA ZLATKOVA: Se jis fonksyon an ki pèmèt nou ekri ak lèt ​​detache yon bagay. Great kesyon. Se konsa, going-- wi. ODYANS: Èske gen ale nan dwe byen yon ti jan nan men kodaj nan PHP ak HTML sou egzamen 1? MARIA ZLATKOVA: Gen kapab yon kantite lajan ki jis nan entèpretasyon nan PHP ak HTML, pa nesesèman tankou yon kantite lajan gwo kodaj, menm si ou ta ka genyen yo ekri yon fortch bouk, menm si, yon pou riban. Nenpòt nan pasan yo ke nou kouvri isit la se jis jwèt. Epi sa a, sitou li. HANNAH BLUMBERG: Mwen ta dwe prepare. Nan menm fason an ke nou mande ou a ekri yon pakèt moun sou fonksyon C sou egzamen 0, Mwen ta dwe prepare yo fè nan menm nan PHP ak JavaScript. MARIA ZLATKOVA: Yeah. HANNAH BLUMBERG: mwen ta ka di yon little-- tankou nou ap pa pral fè ou ekri yon gwo HTML paj jis paske sa a, se yon ti jan fatigan, men ou ta ka genyen pati. Sa a totalman jis jwèt. Fè tankou paj HTML piti, totalman san patipri. ODYANS: OK. Kouman sou nan JavaScript kòm byen? HANNAH BLUMBERG: Yeah. Jis jwèt JavaScript nan. MARIA ZLATKOVA: Yeah. Sa a konplètman ki jis jwèt. HANNAH BLUMBERG: Nou pral jwenn ak sa yo ki nan tankou 10 minit. MARIA ZLATKOVA: SQL, ankò, Estriktire rekèt Lang. Li fondamantalman pèmèt nou jere done nan yon baz done relasyon jesyon sistèm. Sa jis fondamantalman vle di ke nou gen yon kote nan magazen kèk done ke nou ta ka vle itilize nan yon sit entènèt oswa nan kèk lòt fòm. Lè sa a, nou gen yo ka resevwa demann enfòmasyon ki soti nan baz done nou an, oswa insert enfòmasyon nan yo. Yon anpil nan MIZAJOU an komen ones--, INSERT, chwazi, ak efase. Se konsa, pou MIZAJOU, sa a se sentaks la pou à done nan yon baz done. Mete ajou tab sa a yo rele tab lè li di SET, nou ka mete kèk valè nan tout ranje egal yon lòt bagay. Se konsa, nou kapab tou presize kèk espesifik antre ke nou vle li modifye ak ki ka lè l sèvi avèk KI KOTE. Apre sa, nou ka presize ke nou sèlman vle modifye kèk ranje kote kay la pou li a, si nou te gen yon tab elèv epi tout elèv yo te gen kay, se konsa nou ta sèlman modifye kèk valè kote yon kay egal Currier, pa egzanp. Pou INSERT, nou ka insert sèten valè nan yon tab. Se konsa, INSERT INTO tab, ak Lè sa a valè yo, ak Lè sa a nan parantèz, nou presize ki valè ou vle insert. Se konsa, INSERT INTO tab, col1 ak col2, valè a se val1 ak val2. Se konsa, sa foure fondamantalman yon nouvo ranje nan yon tab ki gen valè yo 1 ak 2 anba kolòn yo 1 ak 2. Lè sa a, nou ap ale nan ale sou yon egzanp rapid nan ki jan sa a sanble tankou nan baz done nou an yon ti kras. Men, sijè rechèch final sa a ke mwen panse ke nou ap ale nan ale sou, Chwazi, li jis pèmèt nou yo ka chwazi done ki sòti nan yon tab pètèt sèvi ak li apre sa. Apre sa, fason nou fè sa se nou jis magazen li nan kèk varyab. Lè sa a, nou ka pètèt sèvi ak li ankò. Se konsa, chwazi zetwal vle di chwazi tout. Se jis yon steno pou chwazi tout. Nan tablo KI KOTE, nou ap chèche pou kèk kondisyon espesifik, Se konsa, kote kolòn egal yon bagay, pou egzanp. Si nou jis te vle chwazi tout nan tablo, sa a jis chwazi tout kolòn ak tout ranje ki sòti nan yon tab. Lè sa a, efase nan tablo KI KOTE col egal yon bagay, sa a jis supresyon kèk ranje nan tablo nou an kote nou gen kèk kondisyon espesifik. Nan ka sa a, kondisyon sa yo se kolòn egal yon bagay. Se konsa, jis yon egzanp rapid nan sa a. Si nou gen tablo sa a dwa isit la e nou insert l 'nan yon tab, valè sa yo, ki ta insert yon nouvo ranje. Men, si nou te gen oto-enkreman, sa a ta jis kantite ID nou an ki ant 0 a 1 a 2. Si nou chwazi tout nan men elèv, li jis retounen tout jaden ak tout ranje. Ki kote ane gen plis pouvwa pase oswa egal a 2016, ki ta jis retounen Hannah ak tèt mwen. Lè sa a, si nou jis chwazi id ane ak ane nan men elèv kote kay la se Cabot Kay, ki ta, ankò, retounen Hannah ak tèt mwen. Lè sa a, si nou efase soti nan elèv yo kote non ki egal a Rob, ki ta efase tout ranje a. Lè sa a, si nou mete nan Non, elèv MIZAJOU SET Non egal Daven KI KOTE kay ki egal Cabot Kay, ki k ap pase pou yo ale nan moun ranje ak Lè sa a mete ajou non an. Ak kalite done SQL lè sa a yon kèk yo se CHAR, Varchar, INT, ak flote. Sa yo se jis jwèt. Mwen ta ale lòt peyi sou ankò , epi fè sèten ou konnen epi fè yo sou fèy twonpe ou, ki sa chak nan karaktè moun yo te itilize pou, ki sa ou te itilize yo sou psets ou, , epi fè sèten w ap abitye ak konfòtab ak li te gen yo chwazi soti nan kalite done diferan nan pset ou yo. Wi. ODYANS: Ki sa ki te ki estoke tab? Yeah, ki kote sa a ki estoke tab? MARIA ZLATKOVA: Bon, kounye a, li pa nan estoke. De tout fason, ki kote sa a ki estoke tab? Men, li kapab dwe estoke nan yon baz done SQL. ODYANS: Ak ki kote se baz done a SQL? Nan òdinatè a, sou entènèt yon kote, sèvè a? MARIA ZLATKOVA: Li kapab yon kantite bagay diferan. HANNAH BLUMBERG: Nou te entèfas ak Tab SQL sitou ak fpmyadmen. Se konsa, nou ka mande yon sèvè nan magazen yo pou nou. Nou te kapab sere yo sou òdinatè pwòp nou yo. MARIA ZLATKOVA: Li jis depann sou ki jan ou vle fè l 'pou tèt ou. Men, nou yo te estoke yo, menm jan Ana mansyone, sou fpmyadmen, ki se sou entènèt. Lè sa a, wout la nou itilize PHP ak SQL, nou magazen li nan kèk varyab sa nou te kontexte pou. Se konsa, si nou chwazi tout nan istwa kote user_id egal id la sesyon, ki ta chwazi tout ranje yo pou moun nan espesifik ki ki louvri sesyon an nan istwa a tab ak sòt yo nan ranje. Yon bagay fre yo konnen se ki fonksyon query CS50 nan pwoteje kont Tags piki SQL. Sa jis vle di ke li fè asire w D 'sa a, ki te antre nan se kòrèk e ke moun ki te ap rantre nan D 'a se pa ap eseye D 'kèk move Kòd swa gout tab nou an ou efase tout bagay andedan nan baz done nou an. Yon BECA rapid nan la Ki gen konpòtman egzanplè Gade Kontwolè modèl, li nan jis yon fason pou òganize ak panse sou kòd. Li nan ankò, yon paradigm konsepsyon. Ki sa sa vle di se ke nou can-- ak li nan bon pratik separe diferan pati nan kòd nou yo ak sa yo kontwole nan twa modèles sa yo. Se konsa, nou wè se pi souvan nou an modèl, Layout nou an, wout la ke nou mete ki jan Kòd nou an sanble. Sa a sitou dosye CSS nou yo ak wout la ke nou defini desen an nan Kòd nou an, fondamantalman. Kontwolè nou an se sitou sa nou ve yo te fè ak PHP dosye. Se konsa, ankò, ap travay ak nan enfòmasyon ke nou gen ak defini ki jan ki se itilize enfòmasyon, ak Lè sa a pase enfòmasyon ki swa sou gade nan oswa modèl la. Ak modèl la, wout la ke nou te lè l sèvi avèk se te baz done nou an, Se konsa, kote enfòmasyon nou an, se ki estoke se konsa li gen yon kote ap viv nan, ak nenpòt nan la kòd ki gen rapò ak wout la ke nou jwenn enfòmasyon an ki oswa fason ke nou mete ajou enfòmasyon sa. Se konsa, nan modèl la mv, HTTP demann yo voye nan yon sèvè sit entènèt. Lè sa a, entèprete yo kontwolè demann lan soti nan itilizatè a ak Lè sa a validation D 'a itilizatè. Li nan si ou vle ke nou gen kontwolè a kominike ak yon modèl, se konsa yon bagay tankou baz done nou an oswa kèk lòt fonctionnalités ki rle enfòmasyon. Lè sa a, finalman, kontwolè a pase enfòmasyon sou gade nan se konsa ke li kapab rann e ke li kapab vin vizib nan nenpòt ki moun aksè paj wèb la. Nenpòt kesyon? Pè. Se konsa, ankò, modèl la, fonksyon li, ankò, se depo ki pèsistan nan enfòmasyon, jere ak òganize done. Ak sa ki nou te wè konsa lwen se baz done a miskl ak nenpòt dosye done ki ka itilize. View, prezantasyon nan enfòmasyon yo itilizatè a, UI a, oswa koòdone itilizatè. Apre sa, egzanp lan nan sa a se HTML. Lè sa a, nou ta ka gen PHP minimal. Se konsa, yon pou riban ki iterates sou done ki yo enprime soti se yon pati nan gade nan, kòm opoze a kontwolè a. Lè sa a, yon anpil nan dosye PHP nou an tonbe nan kategori a kontwolè. Li jis manch demann itilizatè yo ak vin enfòmasyon ki soti nan modèl la. Sote nan Dokiman an Ki gen konpòtman egzanplè objè, sa a jis refere a wout la HTML dokiman ki òganize. Apre sa, yo ap òganize nan yon pye bwa estrikti ki gen yon yerachi. Se konsa, si nou gen aksè a [fèbl] reprezantasyon nan dokiman an, nou ka travay avèk dokiman an, tankou nou manipile objè fondamantalman. Men, fè sa a yon ti kras pi klè ti jan, lè nou gen yon anpil nan nou an diferan Tags reponn nan wout diferan nan pye bwa nou yo. Lè sa a, pou egzanp sa a, nou gen kòmanse dokiman ne la. Nou gen, lè sa a, ne HTML nou an ki fractionne nan tèt ansanm ak tout kò. Head gen tit ak Lè sa a Tit gen hello, nan lemonn. Ansanm ak tout kò nou jis gen hello, mond kòm byen. Se konsa, nenpòt kesyon sou nenpòt nan la bagay sa yo ke nou kouvri byen lwen tèlman? Men, si se pa sa, Ana pral pran sou ak JavaScript. Pè. HANNAH BLUMBERG: OK, fre. Si anyen vini avèk PHP oswa HTML, oswa nenpòt nan bagay la Maria kouvri, nou ka toujou pran yon poz. Nou ap fè pi bon sou tan ankò, se konsa pè. Epi jis ale tounen vrèman byen vit nan sa a, si ou gade nan chak egzamen ane ki sot pase a, sa a vini leve either-- isit la se kèk HTML, fè dyagram sa a. Ou isit la nan dyagram sa a, fè kèk HTML, se konsa definitivman pratike sa. Lè sa a, sa a, se yon sèl garanti kesyon ke ou kapab jwenn dwa. Fre. Se konsa, kite nan pale sou JavaScript ak ki jan li nan yon ti jan diferan de lang tankou PHP ak C, de lang yo nou te wè davans. Se konsa, nimewo yon sèl, li nan blesi tape. Sa se tankou PHP, men kontrèman ak C. Se yon lang entèprete. Yon fwa ankò, sa a, se tankou PHP, kontrèman ak C. Lè sa a ki pral pèmèt nou use-- li travay vrèman joliman ak paj wèb. Li k ap pase yo pèmèt nou manipile kontni ak ki jan li sanble epi ki sa li fè. Nou pral wè yon ti kras nan Ajax. Li pèmèt nou kominike asenkron ak serveurs diferan epi pou yo jwenn enfòmasyon. Lè sa a se bagay la ki vrèman separe JavaScript soti nan PHP ak C se ke li se kliyan-kòt. Tou de PHP ak C yo tipikman sèvè-bò. Pou pati ki pi ak prèske antyèman ki sa nou te wè, omwen nan klas sa a, JavaScript aji sou kliyan-kòt, ki vle di ki navigatè a se aktyèlman responsab pou kouri li. Lè sa vle di ke nou pa fè sa bezwen kominike avèk sèvè a. Se konsa, sa vle di li kapab yon anpil pi vit paske li nan aktyèlman jis li nan Chrome, li nan Safari, li nan Firefox, tou sa ou itilize aktyèlman kouri JavaScript ou yo. ODYANS: Ki sa ki asenkron vle di? HANNAH BLUMBERG: Ah, ki sa asenkron vle di? Great kesyon. Asenkron means-- byen, sa ki ekri nan ki nou itilize li ye, OK, nou ap kreye yon paj entènèt epi nou bezwen jwenn kèk enfòmasyon. Se konsa, avèk egzanp lan nan macheup, kèk enfòmasyon ke nou ta ka vle se tit atik. Koulye a, nou could-- yon sèl opsyon se fè li senkronize ak sa vle di kite a sispann, ale jwenn atik la, jwenn tounen nan atik, ak Lè sa a rann, men sa ta dwe vrèman dousman. Ki ta ka yon eksperyans itilizatè move paske ou ta jis dwe chita gen ap tann pou yon bagay yo reponn. Asenkron vle di nou pral kontinye ale sou biznis nou an, rann paj la, ak nou pral voye sou yon demann ki nan kalite pral rive nan background nan. Mwen panse ke nou itilize egzanp lan nan konferans pou rezidan yo rele Rob ak li di: hey, ka ou gade sa a moute pou m 'epi pou yo jwenn tounen nan m', kòm opoze a jis m ' ap tann sou telefòn la. Se konsa, asenkron vle di bagay sa yo rive nan background nan lwen nou nan paralèl. Great kesyon. Nenpòt bagay lòt bagay? Great. Nou pral sote yon anpil plis nan demann asenkron ak Ajax. ODYANS: Èske JavaScript kote fè l 'tonbe ak modèl-view-kontwolè? HANNAH BLUMBERG: Gwo kesyon. Ki kapab JavaScript tonbe ak modèl-view-kontwolè? Hm. Mwen devine li ka fall-- se konsa nou pa fè sa anjeneral renmen l 'nan ki gargouyi paradigm, men mwen devine mwen ta ka di, OK, se konsa JavaScript aktyèlman ki pral yo ki pèmèt nou ranmase done, entèprete done, aktyèlman fè bagay ki gen sans ak done yo. Nan fason sa a, li trè kontwòl-renmen. Men, li la tou ale nan pèmèt nou montre bagay sa yo ak ekri an lèt detache bagay sa yo. Nan fason sa a, li trè View-renmen. Yeah. Se konsa, li kalite tankou PHP nan kote li ka kalite tou de. Bon kesyon. Nenpòt bagay lòt bagay? Tout dwa, pè. Botwe dwa ansanm. Se konsa, kite a wè yon egzanp nan ki jan nou ka sèvi ak JavaScript nan youn nan pwogram wèb nou an. Se konsa, mwen pral konsidere sa a index.html ak yon pakèt moun sou HTML. Epi bagay la mwen vle nou konsantre sou se sa a tag script. Lè sa a di, OK, mwen vle kouri kèk JavaScript ak isit la se kote li ap viv. Li ap viv nan hello.js. Apre sa, anpil tankou CSS, nou te kapab mete JavaScript nan HTML a. Poukisa nou ta ka vle separe li soti? Yeah. ODYANS: Pi fasil reyekri? HANNAH BLUMBERG: Yeah. Li pi fasil yo sèvi ak nan tout diferan paj wèb. Li kenbe bagay cleaner. Se jis pratik bon. Pè. Bon repons. Se konsa, bon, se konsa sa a ki pral yo dwe index.html nou an. Lè sa a, desann isit la se nou an ti ti kras JavaScript dosye-a. Apre sa, tout li di se alèt Hello, nan lemonn. Se konsa, sa k ap pase se lè paj sa a renders-- Se konsa, si ou ale nan tou sa sit entènèt sa a is-- tou sa ki pwal pase se li k ap pase yo di, OK, mwen se ale nan kouri sa a Kòd JavaScript. Lè sa a Kòd JavaScript jis di alèt Hello, nan lemonn. Se konsa, mwen pral jwenn sa a zanmitay ti kras pop-up. Cool? Sa a kalite tankou nou an trè premye JavaScript pwogram, Alo nou an, nan lemonn. Se pou yo gade yon ti jan ti kras pi plis sou sa ki sentaks la nan JavaScript sanble. Ak espesifikman, se pou yo li konpare l ak C ak PHP, nou te wè anvan. Nan JavaScript, nou ap ale nan gen var, non an nan varyab la, ak Lè sa valè aktyèl li yo. Apre sa, nou pa presize yon kalite, jis tankou nan PHP, men trè kontrèman ak nan C. Se konsa, pou egzanp, si nou te vle nan magazen valè a 50, nan C, nou ta gen yo di, hey, C, mwen vle yon nonb antye relatif, Mwen pral rele li m, ak valè li yo se 50. Nan PHP, li nan yon ti jan pi fasil. Nou di, hey, mwen vle yon varyab rele mwen ak valè li yo se 50. Trè Menm jan an tou, nan JavaScript, nou di hey, mwen vle yon varyab rele mwen, valè li yo se 50. Chak fwa ki vin apre ke mwen itilize mwen, mwen pa bezwen ekri var. Se jis mwen soti nan pwen sa a sou. Nan menm fason an, nan C, kote yon fwa nou di Int mwen, nou jis itilize mwen. Cool? Tout dwa. Deplase sou pasan, Chans pou, sa yo prèske gade exactly-- Mwen panse ke yo ap ekzakteman menm bagay la kòm sa pasan yo ale nan gade tankou nan yon bagay tankou C kote ou pou riban ki pral gen twa parts-- yon inisyalizasyon, yon kondisyon, ak yon ajou. Yon riban pandan y ap, li sanble menm bagay la tou egzak. Nou jis bay li yon kondisyon. Apre sa, yon fè pandan y ap riban, ankò, ekzakteman menm bagay la. Nou bay li yon kondisyon. Se pou nou di mwen te vle repekte over-- Mwen te vle fè yon bagay senk fwa. Nan C, nou ta ka ekri pou ini m egal 0. mwen se mwens pase 5, m ++. Sèl diferans, nan JavaScript, olye pou yo li di Int mwen egal 0, nou di var mwen egal 0. Bèl. Sa a diferans la sèlman. Nenpòt kesyon sou nenpòt nan sa? Wi. ODYANS: Se konsa, nan PHP, li nan menm bagay la tou bagay, eksepte men tankou yon varyab? Ou te ke yon egzanp var? HANNAH BLUMBERG: Yeah. Se konsa, nan PHP, li pral yo dwe yon siy dola. Se konsa, li k ap pase nan $ mwen egal 0, $ mwen se mwens pase 5, $ mwen ++. Great kesyon. Koulye a, kite nan pale sou deklarasyon fonksyon. Nan C, lè nou te deklare yon fonksyon, nou te bay li yon non epi nou te bay li kèk paramèt. Apre sa, nan kòmansman an, nou te ekri kalite a. Nan JavaScript, tout sa nou ou dwe fè se ekri fonksyon an mo kle ki di, hey, JavaScript, Mwen se sou yo defini yon fonksyon. Nan ka sa a, li gen non sòm. Apre sa, li pran de agiman, x ak y. Remake nou pa pran swen sou ki kalite x ak y. Epi jis tankou C, nou gen sa a retounen mo kle, pou nou ka fè yon bagay tankou retounen x ak y. Epi, koulye a yon fwa nou te ekri sa a premye fonksyon, nou ka sèvi ak sòm nenpòt kote. Epi sa a, totalman amann. Youn nan bagay vrèman fre sou JavaScript se sa ki trè kontrèman C se ke fonksyon kapab dwe trete tankou valè. Se konsa, nou kapab fè yon bagay tankou isit la kote mwen ta kwè mwen kouvri sa a leve- Mwen kouvri moute sòm total la var part-- epi nou jis di xy fonksyon egal retounen x plis y. Se pou sa ke ta ka rele yon fonksyon anonim. Li se yon fonksyon san yo pa yon non. Lè nou konsidere ke sa a di fonksyon sòm, bla, bla, bla, sa a ta jis di fonksyon. Men koulye a, menm si mwen gen fonksyon sa a anonim, ki fonksyon se reyèlman jis yon valè. Nou ka trete li tankou yon valè. Se konsa, nou ka sove l 'nan yon varyab menm bagay la tou fason nou te ka magazen 50 nan yon varyab. Se konsa, nou ka di, OK, mwen vle yon varyab, sa yo rele sòm, epi li se fonksyon sa a. Se konsa, de bagay sa yo yo aktyèlman pral fè menm bagay la egzak, men sentaks la se yon ti kras diferan ak kalite yon nòt plezi. Yeah. ODYANS: Se konsa, ou te kapab rele yon fonksyon ki te anonim lè li di, sòm parantèz 2, 5? HANNAH BLUMBERG: Yeah. Ou ka rele sa a anonim fonksyon nan menm fason an. Ou ta fè sòm (2, 5) ;. Ki ta ka totalman amann. Si m 'pa t' fè var sòm egal fonksyon, si mwen jis efase sa a men mwen konnen li nan sou men m 'yo, men pretann mwen efase sa a men lè sa a ki fonksyon se kalite jis ale. Ou pa janm ka sèvi ak li ankò paske ou pa gen yon non pou li. Li difisil yo, al gade nan yon bagay ou pa konnen ki sa yo rele. Bon kesyon. Yeah. ODYANS: Èske ou ka referans sòm nan lòt kote ak valè a nan x plis y? HANNAH BLUMBERG: Èske ou ka sòm referans nan lòt kote ak x an valè plis y? Mwen se pa totalman asire w sa ou vle di. ODYANS: Se konsa, sot pase ou semi-anonim fonksyon se sòm total ki egal a sa a anonim fonksyon, se konsa sòm se kounye a yon varyab ke ou can-- HANNAH BLUMBERG: Dwa. Se konsa, sòm se varyab la, men li la aktyèlman se konsa sòm se yon varyab ki gen valè fonksyon an. Se konsa, li se yon fonksyon, ki se kalite yon bagay etranj yo vlope tèt ou otou depi nou ve yo te jwe ak C ak ou pa kapab fè sa nan C. Men koulye a, nou ka rele sòm la menm jan nou te ka rele sòm isit la. ODYANS: OK. HANNAH BLUMBERG: Yeah. Bon kesyon. Yeah. ODYANS: Se konsa, nou pa sèvi ak nan prototip nan PHP oswa JavaScript? HANNAH BLUMBERG: Non, nou pa bezwen sèvi ak prototip, espesyalman nan JavaScript. Se konsa, yon sèl move bagay pratik ke mwen se pral di ke ou pa ta dwe fè se ou pa gen yo ekri var mwen = 50. Ou ta ka jis kòmanse fè m = 50. E yo ta jis fè m yon varyab mondyal la. Li trè move pratik yo pa janm di èksplisitman var mwen, men li la yon bagay ou ka fè. Entèprèt la pa ale nan rele nan ou. JavaScript se trè tankou, ou ka fè sa ou vle. Oh, regrèt. Genyen de. Nan pantalon yo zoranj. Ale pi devan. ODYANS: Non, ou ale an premye. ODYANS: Non, mwen te jis di Mwen pa t 'gen m' yo moute men yo. OK. Se konsa, si ou te yo rele ki premye fwa, kounye a sòm, nou rele li menm jan an, x, y, tankou chak fwa yon sèl? HANNAH BLUMBERG: Yeah. Se konsa, sa yo de esansyèlman fè menm bagay la. ODYANS: Ak sa ki nan avantaj nan pou yo sèvi ak youn oswa lòt la? HANNAH BLUMBERG: Non avantaj pou yo sèvi ak youn oswa lòt la. Mwen jis te vle montre ou de moso diferan nan sentaks. Yon anpil nan fwa kote anonim fonksyon fè gen yon rezon se si agiman an nan yon lòt fonksyon ta dwe gen yon fonksyon. Epitou, n ap wè ke nan jis yon dezyèm ak Ajax. Se konsa, si ki pa t 'fè okenn sans, magazen li nan do a nan tèt ou. Sa a kote yon anonim fonksyon kapab itil paske li pa vrèman vo bay li yon non depi nou ap jis ale nan sèvi ak li yon fwa. Yeah. ODYANS: Si x ak y chanjman pita sou li a, ap sòm chanje kòm byen? HANNAH BLUMBERG: Si x ak y chanjman pita sou, yo pral sòm chanje kòm byen? Se konsa, sa a se aktyèlman mwen panse yon bagay sa a, se, ankò, li jis santi l trè diferan soti nan C. Sa se pa yon valè. Li pa 5. Se jis fonksyon nan tèt li. Se konsa, le pli vit ke ou ba li paramèt, Lè sa a, ou pral aktyèlman kalkile yon valè. MARIA ZLATKOVA: Lè sa a, ou ka rele fonksyon an epi sèvi ak li jwenn kèk valè. HANNAH BLUMBERG: Dwa. Egzakteman. Yeah. ODYANS: Se konsa, si ou jis magazen li nan varyab la, tankou var x egal sòm nan de values-- HANNAH BLUMBERG: Yeah. Se konsa, ou te kapab jis fè var sòm egal sòm nan de valè. Yeah. Nenpòt lòt kesyon? Yeah. ODYANS: Men, ta ki konfonn sòm ak sòm total? Fè tankou si ou rele sòm varyab ou a, ta ou rele sòm total la fonksyon? HANNAH BLUMBERG: mm. Mm. Si ou te fè yon bagay tankou, sòm egal sòm 2, 5? ODYANS: Yeah. HANNAH BLUMBERG: Mwen kwè ke ta recouvrir valè a nan sòm total. Se konsa, yon lòt enteresan bagay sou JavaScript se ke yon varyab sèl ka pran sou yon pakèt moun sou diferan. Move pratik. Ou pa ta dwe fè yon bagay tankou sa ou jis te di. Men, nan C, si mwen se mete egal a yon nonb antye relatif, nou konnen ke li nan pa janm ale nan vin yon fisèl. Sa a se pa ka a nan JavaScript. Yeah, bon kesyon. Nenpòt bagay lòt bagay? Tout dwa. Lè w fè tout dwa sou tan. Kenbe prale. Tout dwa. Si nou gade nan yon etalaj nan JavaScript, isit la nan yon egzanp rapid nan yon etalaj de strings. Apre sa, ranje ka grandi dynamique. Yo pa gen yon gwosè fiks menm jan an yo ke yo fè nan C. Nou kapab jwenn aksè nan eleman ak jis parantèz yo kare. Ki sanble yon sanble anpil ak PHP ak yon anpil tankou C, kote nou ka di, nan ka sa a, si mwen te pawòl Bondye a JavaScript, mwen ta vizitè ki s parantèz kare ak yon 0, 1, 2. Lè sa a, si ou sonje nan C lè nou te vle jwenn longè a nan yon etalaj, li te vrèman anmèdan. Men, nan JavaScript, super fasil. Tout sa nou fè, .Longè. Bay li longè yo. Sa a li. ODYANS: Sa a ki senp. HANNAH BLUMBERG: Yeah, fè lavi ou yon anpil pi fasil. OK, object-- pa la. Objè ki nan JavaScript santi yon sanble anpil ak strukt nan C ak ranje asosyatif nan PHP. Se konsa, sa nou te wè yon anpil nan se JSON, ki kanpe pou JavaScript Notasyon objè. Lè li nan fondamantalman yon fason a structuration done nou an. Se konsa, kite a wè yon egzanp, pwobableman pi fasil la. Se konsa, isit la nan yon egzanp sou yon objè ki magazen klas la, CS50. Apre sa, lè m 'di klas, mwen vle di kou, pa like-- yeah, kou a, CS50. Men, ou pral wè ke tout bagay nan objè a yo pral genyen nan aparèy òtopedik Curly. Epi nou kòmanse asosye non jaden oswa kle ak valè yo diferan. Se konsa, ou ka kòmanse yo wè ki jan sa a kalite santi l tankou yon etalaj asosyatif nan PHP. Se konsa, nou ap ale nan asosye jaden an oswa kle non, kou a, ak fisèl la, CS50. Nou ap ale nan gen yon enstriktè. Nou ap ale nan gen TFs. Nou ap ale nan gen kantite psets epi nou ap ale nan gen anrejistre. Apre sa, yon sèl bagay fre sonje se tout nan bagay sa yo gen diferan kalite, e ke sa a totalman amann. Li nan amann pou yon objè, an reyalite, li la pwobableman espere pou yon objè gen yon konbinezon de strings ak nimewo ak Booleans ak ranje ak tou sa lòt bagay ou ta ka vle gen andedan objè ou yo. Apre sa, sonje ke sa yo yo pral yo dwe non yo oswa kle yo, ak Lè sa nou jis mete l 'egal ak yon ti kras kolon. ODYANS: Ki sa egzakteman JSON vle di? HANNAH BLUMBERG: Ki sa ki egzakteman JSON vle di? JSON jis kanpe pou JavaScript Notasyon objè. Se jis yon fason pou fòma. Yeah. Li se yon fason pou fòma done nou an. Nan C, li nan strukt. Nan PHP, li nan ranje asosyatif. Nan JavaScript, nou gen objè yo. ODYANS: Se konsa, CS50 nan yon objè? HANNAH BLUMBERG: CS50 se objè a nan ka sa a. Koulye a, ki jan nou fè aktyèlman aksè moun jaden yo oswa chanje moun jaden yo. Pou egzanp, ann sipoze nou deside ke ou te vle yon sèl mwens pset semès sa a. Olye pou yo nèf, nou ap jis ale nan gen uit. Ki jan nou ta ka chanje sa? Oh, sa ki mal fason. Gen de fason ke nou ka fè sa. Nimewo yon sèl se ak dot la notasyon ak nimewo de se ak notasyon a bracket kare. Se konsa, pou egzanp, si mwen te vle chanje oswa aksè jaden an psets nan CS50 nou an objè, ki sa mwen ta fè se CS50.psets, se konsa non an nan dot la objè non an nan jaden an oswa kle a. Trè Menm jan an tou, li nan egzakteman ekivalan a fè CS50, ak Lè sa a nan aparèy òtopedik kare, psets. Cool? Yeah. ODYANS: Se konsa, se JSON teknikman JavaScript toujou, menm si nan psets yo nou separe li soti [fèbl]? HANNAH BLUMBERG: Asire w. Se konsa, kesyon an se, se JavaScript ak JSON ekivalan? Se konsa, JSON se notasyon, fondamantalman fason a ke nou ekri soti yon objè soti nan JavaScript. Se konsa, yo ap pa egzakteman menm bagay la. Mwen ta ka di JavaScript, gen se objè ki nan JavaScript. JSON pran moun ki objè ak simagri yo epi montre yo oswa estoke yo nan yon fason bèl. Se konsa, JSON se pa yon pwogram lang fason ke JavaScript se. Se jis notasyon a pou objè nou yo nan JavaScript. Yeah. ODYANS: Se konsa, ki sa egzakteman [Fèbl] ranpli? HANNAH BLUMBERG: Asire w. Se konsa, sa a aktyèlman fè anyen. Sa a se jis yon fason jwenn aksè nan. Se konsa nou di nou te vle chanje ki kantite ansanm pwoblèm de nèf a uit. Ki sa nou fè se fè yon bagay tankou CS50.psets = 8 ;. Yeah, gwo kesyon an. Sa a se jis montre w sentaks. Pa aktyèlman fè anyen itil. Nenpòt kesyon? Botwe dwa ansanm. Se konsa, kite pou yo gade nan yon egzanp rapid nan ki jan JavaScript ap travay paske mwen te di nou li fè tout bagay sa yo fre ak pèmèt nou li modifye paj wèb. Se pou nou aktyèlman wè li nan aksyon. Se konsa, pran, pou egzanp, sa a ranpli HTML. Epi bagay la mwen vle nou konsantre sou se sa a tag patikilye, ki se yon bouton, ak id search_button. Se jis sou paj la. Se konsa, kounye a kite a wè sa ki nou ka aktyèlman fè. Oke, ann sipoze lè ou klike sou ki bouton, nou vle fè yon alert-- ou klike bouton an. Ann wè ki jan nou ka fè sa. Se konsa, sa a window.onload-- se pa yon bagay ke ou te wè nan klas, Se poutèt sa pa pral bezwen konnen li pou egzamen an. Men, sa a fondamantalman di, OK, rele fonksyon sa a lè charj yo fenèt. Se konsa, sa se sèlman kalite Kòd konfigirasyon. Pa enkyete anpil sou sa. Ki sa mwen vle ou yo konsantre sou se an isit la. Nou di var searchButton egal document.getElementByID search_button. Se konsa, kòm ou ta ka devine, ki sa sa a fè se li di, OK, ale jwenn eleman nan ak search_button ID. Epi, koulye a nou gen ki aktyèl eleman ak mwen se ale nan magazen l 'nan yon varyab searchButton. Epi, koulye a nou ka aktyèlman sèvi ak sa eleman ak chanje li, oswa aksè nan valè li yo, bagay sa yo tankou sa. Nou ka aktyèlman kòmanse angaje ak paj wèb la. Se konsa, isit m'ap di, OK, kounye a ke mwen gen ki bouton, lè li se klike, rele fonksyon sa a anonim. Se konsa, sa a se kote anonim fonksyon vin itil. Ak sa ki fonksyon an fè? Oke, li jis rele sa a alèt fonksyon ak li di, ou klike sou bouton an Search. Se konsa, sa ki pral rive si mwen ale nan tout kote HTML sa a ap viv ak mwen klike sou bouton an, Mwen pral jwenn yon alèt ti kras anpenpan ki di ou klike bouton an. Se konsa, bagay sa yo yo konsantre sou isit lan-- document.getElementByID vin yon HTML patikilye eleman ak ID a bay yo. Epi, koulye a nou ka mete sa ki ta rive lè se ke eleman patikilye klike. ODYANS: Nou gen yo mete nan tout sa nan? HANNAH BLUMBERG: Padon? ODYANS: Èske nou dwe fizikman kode nan tout sa? HANNAH BLUMBERG: nou dwe fizikman kode nan tout sa? Wi. Se pa sa a kalite anmèdan? Sa a se yon anpil nan kòd. ODYANS: Ou te kapab enpòte yon bagay. HANNAH BLUMBERG: Dwa. Nou ka sèvi ak yon bagay. Ak nan particular-- oh, li la di m 'mwen gen yo anseye seksyon. An patikilye, se pou yo itilize bibliyotèk la jQuery, paske sa te vrèman long ak reyèlman anmèdan e mwen vle pou kapab senplifye li , epi fè li pi kout ak pi fasil yo ekri. Se konsa, jQuery se yon bibliyotèk JavaScript. Se konsa, JavaScript se pwogram lang; jQuery se yon bibliyotèk. Apre sa, li fè yon pakèt moun sou bagay sa yo pi fasil. Li fè chanje ak ale atravè yon dokiman HTML pi fasil. Li fè evènman manyen pi fasil. Li fè animasyon pi fasil epi li fè Ajax pi fasil. Se konsa nou vole nan de nan bagay sa yo kounye a. Eskize m. Anvan nou fè, gen kèk sentaks de baz yo. Sa a se sa ki pi rele nan zòrèy bibliyotèk la jQuery sanble. Nou itilize sa a dola sign-- okenn siy koneksyon sou PHP, jis inconvenient-- non an nan yon seleksyon, dot, ak Lè sa yon aksyon. Se konsa nou wè kèk egzanp konkrè nan sa. Se konsa, sa a aktyèlman se menm bagay la Kòd soti nan glise nan evènman. Se konsa, sa a depi lontan, lèd bagay vin sa a anpil joli, ki pi piti bagay. Se konsa nou eseye kraze sa a desann. Sa a di, OK, sa a dola jQuery-- sign-- jQuery, jwenn mwen fenèt la. Se konsa, sa a, se seleksyon an. Lè li charj, rele fonksyon sa a. Se konsa, sa a, se tout bagay anndan an. OK. Se konsa, lwen, se konsa sa ki bon? Tout dwa. Koulye a, jQuery, jwenn mwen nan bagay ak search_button ID. Ak sa ki li se klike, rele fonksyon sa a. Lè sa a, nan fonksyon sa a egzakteman menm bagay la. Ou menm, fè yon ti kras nan alèt, ou klike sou bouton an Search. Se konsa, li vrèman bèl. Li reyèlman kondans ak senplifye Kòd nou an. Ki jan mwen konnen ke li nan search_button ID epi yo pa renmen search_button klas la? ODYANS: Hashtag? HANNAH BLUMBERG: Yeah. Senbòl regle sa a, li nan jis tankou CSS. Se konsa, sonje, ak CSS, lè nou te vle chwazi yon bagay pa ID, nou itilize siy ki liv. Lè nou te vle chwazi yon bagay pa klas, nou itilize dot la. Great. Fè sans? Se konsa, jQuery se ta sipoze jis fè lavi nou pi fasil. Yeah. ODYANS: Se konsa, mwen se yon ti kras konfonn kòm di kòman fonksyon an anonim travay. Ou non sa a Anonymouse fonksyon, fonksyone? Kouman se li rele? HANNAH BLUMBERG: Asire w. Se konsa, fonksyon se jis yon mo kle ki di, mwen se sou yo defini yon fonksyon. ODYANS: Oh, OK. HANNAH BLUMBERG: OK? Lè sa a, nou pase li kòm yon agiman to-- kite a pran sa a yonn-enteryè nan fonksyon an klike sou. Se konsa, yeah, se konsa ke fonksyon, fonksyon sa a anonim, vin yon diskisyon vrè. Se konsa, sonje nan JavaScript, nou ka trete fonksyon kòm valè. ODYANS: Oh, OK. HANNAH BLUMBERG: Yeah. Mwen renmen ke "oh." Nice. Lòt kesyon? Tan? MARIA ZLATKOVA: Bon. Bon. HANNAH BLUMBERG: Awesome. Gen kèk rapid jQuery itil. Mwen pa pwal ale nan tout nan sa yo. Glisad sa yo pral sou entènèt yon ti jan pita, kidonk, ou ka tcheke li soti yon ti jan pita. Men, fondamantalman, jeneral la modèl kenbe kote nou di, OK, hey, jQuery, isit la nan mwen seleksyon ak Lè sa a, isit la nan yon aksyon. Epi ou ka fè bagay sa yo tankou aksè a valè de yon fòm, aksè kèk HTML, kontwòl sa ki pase lè itilizatè a soumèt yon fòm, bagay sa yo tankou sa. Wi. ODYANS: Se konsa, nan la egzamen, nou ap ale nan bezwen konnen byen yon anpil soti nan dokiman an jQuery. Se konsa, bay yo ke nou kopi / keratin jQuery nan dokiman nan fèy twonpe nou an, kote nan liy lan trase? Fè tankou konbyen nou bezwen konnen? HANNAH BLUMBERG: Gwo kesyon. Kesyon an se esansyèlman bay sa ou pa ka jwenn aksè nan jQuery dokiman pandan tès la, konbyen lajan ou ta dwe konnen? Nou pa ta atann ou vini ak kèk fonksyon o aza ke nou ta atann ou sou Google. Bagay ki jis jwèt yo mwen ta di jis kalite sentaks la an jeneral, ke yo te kapab chwazi pa ID ak pa class-- Se konsa, jis tankou CSS. Lè sa a, fonksyon yo reyèl themself, nou pral gen anpil chans di ou. Yeah. ODYANS: Se konsa, lè ou chwazi pa klas ta vle di dot. HANNAH BLUMBERG: Wi, egzakteman. Bon. Lè ou chwazi pa klas, li pral yo dwe dot olye pou yo siy ki liv. Wi. ODYANS: Èske ou ta ale sou diferans ki genyen ant chwazi pa ID ak pa klas la? HANNAH BLUMBERG: Asire w. Diferans ki genyen ant chwazi ID ak chwazi pa klas la. Se konsa, kòm Maria di yon ti jan ti kras pi bonè, gen kapab fèt sèlman yon sèl eleman HTML ak yon ID bay yo, Lè nou konsidere ke klas, li pèmèt nou nan gwoup yon pakèt moun nan diferan eleman ansanm, se konsa bagay sa yo ki gen relasyon, men se pa egzakteman menm bagay la. Ki reponn kesyon an? Pè. Wi. ODYANS: E si ou gen plizyè bagay ki nan klas la menm? HANNAH BLUMBERG: Kisa k ap pase si ou gen plizyè bagay ki yo klas la menm? Se konsa, pou egzanp, si nou ap jis lè l sèvi avèk pi bon kalite JavaScript, nou ta fè yon bagay tankou document.getElementsByClass. Lè sa a, ki sa ki aktyèlman fè se retounen yon etalaj de eleman. Epi ou gen swa repekte sou yo oswa jwenn ki youn ou vle. Li nan pa pral bay ou yon eleman sèl. Li nan ale nan ba ou yon etalaj de eleman. Great kesyon. Nenpòt bagay lòt bagay? Pè. Se konsa, mwen panse ke si w ap abitye ak nenpòt jQuery ou te wè nan pset a, ou ta dwe bon yo ale. Kesyon? Oh, pa gen okenn. Mwen vrèman gen yo anseye. Rilaks. Li pral amann. Mwen pral rive la. Se pou nou pale sou Ajax. Se konsa, Ajax a pwal a-- byen, kite la kòmanse ak sa li vle di pou. Se yon akwonim. Li kanpe pou Asynchrone JavaScript ak XML. Apre sa, XML se fondamantalman a pwal [Fèbl] ak yon di ki kalite done nou an. Men, nou pa gen aktyèlman itilize XML. Olye de sa, nou jis itilize JSON. Se konsa, fondamantalman, li nan kèk data-- asenkron, JavaScript, ak done, nan ka sa a, JSON. Ak objektif nou an, jan nou mansyone yon ti kras pi bonè, se pou kapab fè yon demann, te ke demann fè bagay li yo nan la jan nou koumanse, men kontinye fè tou sa nou te lide fè. Lè sa a, lè enfòmasyon ki pare, Lè sa a, nou pral enkòpore li. Se konsa, kite a wè ki sa sa a aktyèlman sanble. Lè sa a, ou ta dwe yon ti jan yo konnen yo soti nan pset8, yon sèl la ou jis vire nan. Se konsa, isit la nan yon jQuery valab fonksyon ke nou ta ka vle konnen sou- siy dola sa a. Se konsa, li di jQuery fonksyon, .getJson. Ak sa ki fonksyon sa a fè se li pran yon URL ak kèk parameters-- Se konsa, mwen panse ke nan ka a a pset8, li te tankou, URL la te articles.php ak nan paramèt te ale = kèk kòd lapòs. Apre sa, li di, OK, fè yon demann yo voye URL sa a ak paramèt yo bay yo. Apre sa, ki jis k ap pase. Lè li fini, li nan swa ale nan konplete avèk siksè oswa li k ap pase yo febli. Se konsa, sa a se ekivalan a nan apèl Rob, epi mande li fè yon bagay. Lè sa a, lè li te rele tounen, li se swa pral di mwen fè oswa mwen echwe. Se konsa, nan ka a kote w ap fè, ou di, OK, mwen se fè. Lè sa a, ou rele fonksyon sa a. Nan ka sa a, li k ap pase yo dwe yon fonksyon ki pran kèk enfòmasyon. Yon sèl nan anjeneral nou pran swen sou se done, done yo ki nou te aktyèlman tounen kòm yon rezilta pou rezidan yo rele .getJSON. Epi ou ka fè yon bagay ak li. Se konsa, nan ka a nan pset8, nou parèt li kòm yon lis. Echèk a pwal yon fonksyon yo rele si demann lan echwe pou kèlkeswa rezon. Ak nan ka a nan pset8, nou jis console.log li. Nenpòt kesyon sou sa? Yeah. ODYANS: Èske nou ka jis itilize Theta fonksyon olye pou yo fonksyon, textStatus, jqHXR. HANNAH BLUMBERG: Asire w. Se konsa, yeah, Mwen panse ke nan pset a, nou jis te wè done fonksyon. Se konsa, li nan jis the-- wi, OK. Sa a ki sa nou te wè nan pset la. Sa a totalman amann. Sa yo se sèlman si ou te rale mete deyò plis enfòmasyon, sa yo, se bagay sa yo ke ou ta ka pran soti nan .getJSON. Bon kesyon. Nenpòt bagay lòt bagay? Yeah. ODYANS: Se konsa, .getJSON se Ajax? HANNAH BLUMBERG: OK. Se konsa, sa a se kalite a nan pati difisil. Li se yon fonksyon jQuery ki pèmèt ou fè apèl asenkron. Ak moun ki apèl asenkron, sa se ki sa nou ve yo te refere li a kòm Ajax. Yeah. Sa te pran m 'yon moman vrèman long yo rale apa lè m 'te yon elèv. ODYANS: Èske ou ka di ke ankò? HANNAH BLUMBERG: Yeah. Èske mwen ka di ke ankò? Fonksyon .getJSON sa a, li se yon fonksyon jQuery. Apre sa, li la pral fè yon apèl asenkron. Ak sa yo apèl asenkron, nou te te refere li a sa yo kòm Ajax. Nenpòt lòt kesyon? Nou gen jis yon minit koup kite. Ak Maria a ale nan vlope moute ak sekirite ak Lè sa a nou ap ale yo dwe jis sou fè. MARIA ZLATKOVA: Awesome, OK. Se konsa, sa is-- jis pran yon koup nan segonn fè yon gade sou sa a. Lè sa a se pa yon bagay reyèlman gwo. Epi yo ka yon moun di m 'poukisa? Ki sa ki ap pase nan foo ak pouvwa te kapab potansyèlman lakòz nan yon move bagay, ak sa ki yo rele? Yeah. ODYANS: Si agiman an sa a, se te pase nan se pi plis pase 12 karaktè, li te kapab debòde. MARIA ZLATKOVA: Dwa. Pafè. Ki sa ki li rele? Ou jis mansyone li. ODYANS: tanpon debòde. MARIA ZLATKOVA: Wi, pezib debòde. Se konsa, sa a se yon bagay ke nou al gade nan kòm tanpon debòde. Apre sa, nou wè ke andedan nan foo, nou te defini zòn de defans nou an, c, ak yon gwosè nan 12. Sepandan, nan prensipal yo, nou pa fè sa tcheke nan nenpòt fason nan tout si wi ou non argv1-- a pou ke te agiman, dezyèm lan. Nou pa tcheke si nan gwosè nan li se ki apwopriye yo. Se konsa, si nou te gen yon espesyalman move itilizatè ki te mete nan kèk agiman ki te pi lontan pase 12, ak Lè sa a potansyèlman pi lwen pase limit ki te la yo agiman, te gen kèk kòd ègzèkutabl ke li te ap eseye fè yon move bagay ak li; Lè sa a, sa a, sa ki ta rive, ta pase sou desizyon retounen nan adrès nan fonksyon an foo, sa ki lakòz fonksyon an nan lè retounen al touye ki kòd. Lè sa a, move bagay te ka rive. Sa a fè sans a tout moun? Ak ki jan nou ka pwoteje tèt ou kont sa a? Nenpòt sijesyon? Fondamantalman, andedan nan potansyèlman foo, ki jan nou ka tcheke a asire w ki ki pa ka rive? ODYANS: Si yo gwosè a 12 depase, ou ta asiyen adisyonèl memwa? MARIA ZLATKOVA: Sijesyon se, asiyen plis memwa nan gwosè a depase. Aktyèlman, nou ka fè yon bagay yon anpil ki pi senp pase sa tou. Nou ka jis jwenn longè a fisèl nan agiman sa a, ki te antre nan, tcheke si ki se mwens pase oswa egal a 12-- ki se sa ki nou vle li yo dwe paske nou pa vle li dwe depase limit yo nan zòn de defans nou an. Lè sa a, si li fè sa pa, nou ka travay avèk agiman an. Lè sa a, si li fè sa, nou aktyèlman vle Yello potansyèlman nan itilizatè a. Men, sa a se ki jan nou ta fè sa. Wi. ODYANS: ou Te kapab eksplike alafen, manki rapid reyèl? MARIA ZLATKOVA: Oh, regrèt. Wi. Alafen, manki pran tou sa regrèt is--, OK. Alafen, manki pran tou sa ki nan ba, tou sa se pase sou foo kòm agiman an liy lòd. Se konsa, li nan pral pran argv1. Argv1 yo rele ba isit la. Se konsa, li nan pral pran bar ak li pral a kapab bay kopi l 'nan c. ODYANS: OK. MARIA ZLATKOVA: Epi, se k ap pase yo copy-- twazyèm agiman a jis refere nan kantite lajan li pral a kapab bay kopi nan c. ODYANS: Ah. Se konsa, yon sèl sa a nan kopye tout nan li lè sa a. MARIA ZLATKOVA: Yeah, li nan kopye tout nan li. Oui. Premyèman, nou asire w ba a se pa egal a nil paske li nan yon konsèy. Lè sa a, nou jwenn longè a afè de ba. Nou asire w ke li nan mwens pase oswa egal a 12. Lè sa a, paske nou te te fè asire w, nou ka aktyèlman alafen, manki yo epi yo dwe asire w ke sa a, se OK. Nenpòt kesyon? Great. Mwen gen de kesyon vre oubyen fo. Èske nenpòt moun kapab di m 'touswit si sa yo, se vre oubyen fo? Wi, li nan fo. Egzakteman. Tou de nan yo se fo. Se konsa, lè l sèvi avèk yon sèl modpas se pa janm reyèlman bon lide paske si yon moun konnen modpas ou, yo ka jis aksè nan tout lòt kont ou yo. Lè sa a, pa gen anyen ikon fè asire sekirite. Nou ta dwe anjeneral gade pou t olye pou yo HTTP ak URL la. Se konsa, kèk lòt kalite atak ke nou te mansyone, jan David te mansyone nan konferans, atak piki SQL. Nou deja wè ke si nou don't-- nan Fonksyon query CS50 fè asire w ke SQL atak piki pa ka rive. Men, si nou pa te lè l sèvi avèk CS50, quote, unquote "nan sijè rechèch," nou ta gen a asire w ke nan opinyon itilizatè se pa aktyèlman kèk SQL query ki pral lakòz tout tab nou an yo dwe tonbe oswa yon bagay move yo rive ak baz done nou an. Eskanmòte Sesyon se yon lòt kalite atak ki k ap pase lè kèk move moun sèvi ak sesyon kèk viktim nan ID jwenn aksè nan enfòmasyon an login. Se konsa, yon egzanp trè trivial nan se sa ki tankou si nou gen yon òdinatè piblik, Lè sa a, moun nan move journaux nan ak Lè sa a yo gen bonbon ke yo sove. Ak bonbon pa chanje pou sesyon. Lè sa a, nou te viktim nan ale nan ak Lè sa a ale nan sit entènèt la. Bonbon yo pa chanje pou yon sesyon sèten. Lè sa a, viktim nan journaux nan sit entènèt la ak Lè sa a kite. Lè sa a, moun ki te ale tounen Lè sa a, toujou itilize ka ID sesyon yo jwenn aksè nan enfòmasyon yo. Se konsa, sa a, se yon egzanp sou ki jan ki ta ka rive. Lè sa a, mwen pa ta enkyete twòp sou Kòd espesifik oswa yon lòt bagay tankou sa ki ta kapab lakòz sa a, men li te gen kèk sòt de lide ki sa varyab yo patisipe nan sa a yo se. Lè sa a, manipile header done a se yon lòt di ki kalite atak ki gen David te konn pale sou yo. Apre sa, li jis vle di sa ki ka rive lè repons lan, HTTP la repons andedan nan header nou an se pa sa sanitanize byen. Apre sa, nenpòt nan fields-- a pou egzanp, si yon moun ranplas youn nan header a valè a ki genyen anyen pi plis pase sa yo ta dwe contain-- ak aktyèlman gen, pou egzanp, yon 200 OK Kòd estati, lè sa a yo te kapab potansyèlman fè move bagay lè yo pa ap sipoze. Men, mwen pa ta enkyete twò anpil sou kòd la espesifik ki ta kapab lakòz sa a, jis sòt de konpreyansyon bagay wo nivo tankou sa. Mwen panse ke sa a se tout ke nou gen yo kouvri. Dwòl. Nenpòt moun ki gen nenpòt kesyon sou nenpòt nan bagay sa yo ke nou kouvri? Wi. ODYANS: Se konsa, yon sèl sòt de plis lojistik kesyon. Èske kontni an sitou konsantre sou bagay sa yo apre egzamen 1? MARIA ZLATKOVA: Se konsa, kesyon se, se kontni an konsantre sitou sou bagay apre egzamen 1? Se konsa, se la se sou apre egzamen 1, ak eksepsyon ke nou bezwen yo konsantre sou bagay sa yo nan PSET5 ak yon anpil nan estrikti yo done ke nou kouvri. Apre sa, nou pa ka di ke nou ka inyore anyen anvan ke paske li bati sou li kòm byen. Se konsa, konsantre sou sa, plis materyèl PSET5 tankou ki gen ladan lye lis, pil, ke moun kap kriye, ak tout bagay ki Hannah te ale sou. HANNAH BLUMBERG: Dwa. Yeah, nou te ale sou tout bagay la C nan la trè kòmanse trè vit. Men, asire w ke w revize sa. Ale dèyè yo epi gade egzamen 0 revizyon an. Yon koup nòt plis lojistik, jis pandan ke nou gen atansyon ou. Nou ap ale nan gen lè biwo tou de sou Lendi ak Madi swa. Yo ap ale nan dwe nan MD 119. Sa a se tout sou sit entènèt la, se konsa si ou pa tande l ', pa gen okenn enkyetid. MARIA ZLATKOVA: 8:30 11:00. HANNAH BLUMBERG: Yeah, 8:30 11:00. Nou pral dwe la. Nou pral dwe la reponn kesyon. Li trè fredi ak plezi. Ou nèg ka mande nenpòt kesyon ki di ou gen sou egzamen 1. Apre sa, egzamen 1 se sou Mèkredi, se konsa bòn chans. Si w gen nenpòt kesyon, petèt vini pale ak nou moute isit la yon sèl-on-yon sèl. Fre. Mèsi anpil. MARIA ZLATKOVA: Mèsi anpil, guys. ODYANS: Yay. [Aplodisman]