1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Muzika] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> DAVID Malan: Kjo është CS50, dhe ky është fillimi i javës së tetë. 5 00:00:13,350 --> 00:00:17,510 Dhe ne jemi të ngacmuar kështu për të mirëpritur prapa, surprizë e madhe, Ramon vetë CS50-së 6 00:00:17,510 --> 00:00:22,160 Galvan, një zyrtar i lartë i cili ka qenë në rritje shpenzimet e disa muajve të fundit 7 00:00:22,160 --> 00:00:26,190 që nga korriku në LA, në Hollywood, fjalë për fjalë duke punuar në një TV të re 8 00:00:26,190 --> 00:00:31,930 shfaqje të quajtur Colony, krijuesi i cili është në fakt një shap vetë Harvardit. 9 00:00:31,930 --> 00:00:36,610 Dhe kështu që ne jemi shumë të ngazëllyer për të parë këtë Debutimi në rrjet SHBA këtë janar. 10 00:00:36,610 --> 00:00:40,370 Pra, të qëndrojnë tuned për atë, dhe për më shumë Ramon për javët që do të vijnë. 11 00:00:40,370 --> 00:00:42,550 >> E di tani se fundi është afër. 12 00:00:42,550 --> 00:00:47,400 Dhe çfarë kjo do të thotë është se nuk ka gjithçka që la shumë prej CS50, i trishtuar për të thënë. 13 00:00:47,400 --> 00:00:49,400 Ne kemi vetëm tre probleme vendos left-- ka 14 00:00:49,400 --> 00:00:52,510 Problemi vendosur six-- e cila është në duart tuaja tani ose së shpejti do të jetë, 15 00:00:52,510 --> 00:00:56,080 për shkak më vonë këtë week-- ka për qëllim për të kapërcyer botëve tona të vija e komandës, ku 16 00:00:56,080 --> 00:00:59,450 ne kemi kaluar shumicën e kohës sonë përdorimit C, dhe bota e programimit web. 17 00:00:59,450 --> 00:01:02,350 E pra, ju do të shihni shumë ide huazuar nga puna command line, 18 00:01:02,350 --> 00:01:04,560 por edhe shumë i ri dhe ide interesante 19 00:01:04,560 --> 00:01:07,929 që gjithashtu do të jetë i lidhur ngushtë për aplikacioneve mobile dhe për teknologji, 20 00:01:07,929 --> 00:01:10,470 më përgjithësisht, me të cilën ju djema janë të gjithë të njohur në ditët e sotme 21 00:01:10,470 --> 00:01:12,090 në laptopët dhe telefonat dhe si. 22 00:01:12,090 --> 00:01:15,220 >> Pra, ju do nuk të zbatojë një faqe web, ose një faqe interneti 23 00:01:15,220 --> 00:01:17,620 në vetvete, por një web server aktual. 24 00:01:17,620 --> 00:01:21,590 Ju do të shkruajë pjesën tjetër të një web server i shkruar në C, qëllimi i të cilit në jetë 25 00:01:21,590 --> 00:01:25,410 është për të marrë HTTP kërkesa, ato zarf virtuale ne vazhdojmë të flasim 26 00:01:25,410 --> 00:01:29,780 në lidhje me, dhe në fakt të përgjigjet ose me disa content-- statike si një dot HTML 27 00:01:29,780 --> 00:01:32,310 file, ose një pikë JPEG ose ndonjë numër tjetër të dosjeve, 28 00:01:32,310 --> 00:01:37,070 apo edhe një skedar PHP ku web tuaj server do të interpretojë atë PHP 29 00:01:37,070 --> 00:01:38,332 Kodi dhe nxjerr nga goja e rezultateve. 30 00:01:38,332 --> 00:01:40,540 Tani, ne kemi dhënë me mjaft i kuadrit 31 00:01:40,540 --> 00:01:43,100 për it-- vërtetë Kodi i Shpërndarjes për problemin 32 00:01:43,100 --> 00:01:47,496 vendosur gjashtë është mbi 1000 rreshta të gjatë, një shumë e cila është e komente, të jetë fair-- 33 00:01:47,496 --> 00:01:49,370 por kjo është për qëllim me të vërtetë të jetë një mundësi 34 00:01:49,370 --> 00:01:52,570 për të marrë në duart tuaja të pista zhytjeje në një projekt mjaft të madhe 35 00:01:52,570 --> 00:01:55,570 se ne kemi shumë specifike gdhendur nga copa e për ju, 36 00:01:55,570 --> 00:01:59,046 në mënyrë që me të vërtetë kur ju dilni CS50 dhe hyrë në botën e vërtetë të programimit 37 00:01:59,046 --> 00:02:00,920 dhe duan të ujit në çdo numër të projekteve, 38 00:02:00,920 --> 00:02:03,253 ju do të keni shumë më e madhe rehati shkarkimit disa burim 39 00:02:03,253 --> 00:02:05,020 kod, disa burim të hapur projektit në web, 40 00:02:05,020 --> 00:02:08,174 dhe zhytjen në dhe duke e bërë Ndryshimet që shihni të arsyeshme. 41 00:02:08,174 --> 00:02:11,340 Problemi vendosur shtatë do të jetë për duke e bërë vet web-bazuar kërkesën tuaj 42 00:02:11,340 --> 00:02:14,140 që merr të dhëna dhe dinamike prodhon dalje dinamike në formë 43 00:02:14,140 --> 00:02:16,920 e një faqe interneti etrade.com-si. 44 00:02:16,920 --> 00:02:20,800 Dhe problemi vendosur tetë do të fokusohet në ende një gjuhë tjetër të njohur si JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Ndërkohë, në finale Projekti është në horizont. 46 00:02:24,170 --> 00:02:26,800 I ashtuquajturi para-propozim është për shkak një javë nga sot. 47 00:02:26,800 --> 00:02:29,930 Para-proposal-- sipas specifikimit, e cila është në website-- CS50 e 48 00:02:29,930 --> 00:02:33,260 është një mundësi mjaft rastësor për që ju të dërgoni një email mjaft të ngjeshur 49 00:02:33,260 --> 00:02:35,170 për shokët tuaj të mësimdhënies vetëm për të informoj atë 50 00:02:35,170 --> 00:02:38,250 ose të saj të asaj që ju jeni duke menduar për të përdorni atë si një bord. 51 00:02:38,250 --> 00:02:40,980 Dhe kanë një mendje e shëndoshë check-- nëse ju jeni duke menduar 52 00:02:40,980 --> 00:02:43,210 për thumbues off too shumë ose ndoshta shumë pak, 53 00:02:43,210 --> 00:02:46,480 ose ndoshta ju nuk keni ide whatsoever dhe duan të angazhohen në një bisedë. 54 00:02:46,480 --> 00:02:48,480 >> Pas kësaj është një propozim dhe raportin e statusit, 55 00:02:48,480 --> 00:02:51,860 e ashtuquajtura hackathon CS50 këtu në Cambridge për Harvardit dhe Yale nxënësve 56 00:02:51,860 --> 00:02:52,362 njësoj. 57 00:02:52,362 --> 00:02:54,320 Projekti përfundimtar të zbatimi është pastaj për shkak. 58 00:02:54,320 --> 00:02:59,290 Dhe pastaj një panair CS50 këtu, në Kembrixh, si dhe një tjetër në New Haven. 59 00:02:59,290 --> 00:03:02,500 Pra propozimin, hidhini një sy në Faqja e internetit për këto veçoritë. 60 00:03:02,500 --> 00:03:06,530 >> Por më excitingly, gjithashtu, është një mundësi për të marrë në duart tuaja të pista, 61 00:03:06,530 --> 00:03:09,350 dhe mendjet tuaja të hapur në një tërësi bandë e temave dhe mjetet 62 00:03:09,350 --> 00:03:12,920 dhe teknika që janë ndihmëse për bazë planin mësimor të kursit, 63 00:03:12,920 --> 00:03:14,810 por megjithatë të lidhura. 64 00:03:14,810 --> 00:03:18,400 Dhe gjithashtu Shkallaret e mrekullueshme për të duke bërë projekte të vërtetë cool përfundimtare që 65 00:03:18,400 --> 00:03:22,020 shkojnë përtej materiale ne kemi mbuluar zyrtarisht në problemin e vendos ose në leksion. 66 00:03:22,020 --> 00:03:24,446 Pra shkoni në faqen e internetit CS50 e për tërë regjistri i seminareve. 67 00:03:24,446 --> 00:03:26,070 Nëse ju nuk regjistroheni ende, kjo është në rregull. 68 00:03:26,070 --> 00:03:29,860 Shkoni përpara dhe të nënshkruajë ende dhe ne do të ndiqni me një lidhje të jetojnë streaming, 69 00:03:29,860 --> 00:03:31,844 dita dhe koha është në faqen e internetit. 70 00:03:31,844 --> 00:03:33,760 Dhe çdo gjë do të jetë regjistruar dhe të vënë në internet 71 00:03:33,760 --> 00:03:35,800 në qoftë se ju nuk mund të bëjë ditë të veçanta dhe herë. 72 00:03:35,800 --> 00:03:39,380 >> Sa për çfarë shtrihet përpara thereafter-- mirë, Sigurisht, nuk është hackathon CS50. 73 00:03:39,380 --> 00:03:43,560 Kjo foto, kujtojnë, që nga java e zero marra rreth 04:00 një mbrëmje në vitet e kaluara. 74 00:03:43,560 --> 00:03:46,900 CS50 Panairi, i cili përsëri do të zhvillohet në të dy qytetet. 75 00:03:46,900 --> 00:03:49,760 Dhe pastaj, vetëm për të mbjellë farë, edhe pse ne ende 76 00:03:49,760 --> 00:03:54,080 kanë një muaj plus la të semestrit, në qoftë se ju dëshironi të bashkohet me mësimin e vet CS50-së 77 00:03:54,080 --> 00:03:56,770 stafi, dhe ju doni të filloni duke menduar për t'u bërë një AK, 78 00:03:56,770 --> 00:03:59,550 ose shokët mësim, e di se ne do të fillojmë të flasim më shumë për këtë 79 00:03:59,550 --> 00:04:00,630 më vonë këtë semestër. 80 00:04:00,630 --> 00:04:03,470 Por foto këtu është shumica e ekipit të këtij viti. 81 00:04:03,470 --> 00:04:06,950 >> Dhe kështu, PHP-- dhe unë ishte aq i trishtuar javën e kaluar se [? Allyse?] Me mirësi 82 00:04:06,950 --> 00:04:09,370 shkoi në përpjekjen e gjetjes ne këto props mrekullueshme 83 00:04:09,370 --> 00:04:11,720 se nuk e kam të përfundojë duke përdorur, kështu që ajo vërtetë vetëm dukej si kal i trashë 84 00:04:11,720 --> 00:04:15,160 që kemi pasur një lopatë ulur këtu gjithë të mërkurën e kaluar ditë, dhe një lugë të vogël. 85 00:04:15,160 --> 00:04:17,709 Por kjo ishte metaforike e mia Mënyra e duke u përpjekur për të pikturuar 86 00:04:17,709 --> 00:04:21,600 fotografia e pse ne jemi në tranzicion nga C në një gjuhë si PHP. 87 00:04:21,600 --> 00:04:25,480 Dhe e njëjta gjë mund të thuhet edhe për ndonjë Numri i languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 ose bunches e others-- por ndërsa në C, për shembull, duke shkruar një program në C 89 00:04:31,270 --> 00:04:34,050 mund zakonisht të jetë si duke marrë një lugë si kjo 90 00:04:34,050 --> 00:04:36,770 dhe gërmimi një vrimë në terren, në rërë apo të fëlliqur. 91 00:04:36,770 --> 00:04:39,770 PHP ju lejon të marrin shumë kafshon më të mëdha nga e problemit, 92 00:04:39,770 --> 00:04:42,842 shkruar shumë më pak kodin duke përdorur një mjet shumë më të vogël, 93 00:04:42,842 --> 00:04:45,050 sepse nuk ka aq shumë më shumë funksionalitetin pieced në. 94 00:04:45,050 --> 00:04:47,633 >> Tani, në qoftë se ne ishim vërtet dramatike, ne do të kemi diçka për të lopatë 95 00:04:47,633 --> 00:04:48,760 këtu, por kështu të jetë ajo. 96 00:04:48,760 --> 00:04:51,370 Ndërkohë, të tjera metaforë kemi ardhur me 97 00:04:51,370 --> 00:04:53,770 është, natyrisht, ju mund të përdorin diçka si një pikëllim 98 00:04:53,770 --> 00:04:56,610 për të arritur në diçka si një gozhdë. 99 00:04:56,610 --> 00:04:58,980 Por sigurisht, të drejtën mjet për përdorim po ndodh 100 00:04:58,980 --> 00:05:01,360 të jetë jo aq shumë Gjuha e quajtur C-- 101 00:05:01,360 --> 00:05:03,590 dhe tani unë vetëm i mërzitur [? Sanders,?] Ndoshta, 102 00:05:03,590 --> 00:05:07,890 ne do të rregullojmë se later-- kështu mjet i duhur për të përdorur shpesh 103 00:05:07,890 --> 00:05:09,640 nuk do të jetë ky mjet niveli më i ulët. 104 00:05:09,640 --> 00:05:13,720 Dhe me të vërtetë, C nuk është një gjuhë që shumica prej jush jeni ndonjëherë do të përdorë, 105 00:05:13,720 --> 00:05:15,590 ose duhet patjetër të përdorin përsëri. 106 00:05:15,590 --> 00:05:18,350 >> Dhe në fakt, pak secret-- E vetmja kohë 107 00:05:18,350 --> 00:05:23,160 I use C vetë është shumë e shumë në mes Shtator dhe dhjetor të çdo rënies 108 00:05:23,160 --> 00:05:23,870 semestër. 109 00:05:23,870 --> 00:05:25,790 Dhe kjo është për shkak se ne e përdorin atë si një mundësi 110 00:05:25,790 --> 00:05:27,852 për të mësuar bazat e programimit, 111 00:05:27,852 --> 00:05:29,810 dhe me atë kompjuter bazat shkencore, të dhënat e 112 00:05:29,810 --> 00:05:32,435 strukturat, algoritme dhe like-- por shumë shpejt do të ju 113 00:05:32,435 --> 00:05:35,010 shohim tani se sintaksë dhe idetë themelor C 114 00:05:35,010 --> 00:05:37,530 janë aq mrekullisht transferueshme në më moderne 115 00:05:37,530 --> 00:05:41,130 Gjuhë të nivelit të lartë, si PHP dhe Python dhe Perl dhe Java 116 00:05:41,130 --> 00:05:46,750 dhe Objektivi-C-- në fakt, jo aq shumë Objektivi-C-- por Swift, këto të reja 117 00:05:46,750 --> 00:05:50,010 gjuhë që shumë prej jush do të pastaj njom me ju projektin përfundimtar. 118 00:05:50,010 --> 00:05:55,070 >> Pra, pa zhurmë më tej, le të vërtetë përdorur PHP për të zgjidhur disa probleme. 119 00:05:55,070 --> 00:06:00,230 Kujtojnë se në fillim, e fundit javë, ne kemi përdorur vetëm CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 kemi shkruar një program të hollë të vogël që vetëm ka thënë: "Përshëndetje Të Gjithëve". 121 00:06:02,990 --> 00:06:05,680 Dhe pastaj kam ruajtur atë në një file i quajtur hello.php. 122 00:06:05,680 --> 00:06:07,280 Dhe atëherë unë u zhvillua këtë komandë. 123 00:06:07,280 --> 00:06:08,080 >> Dhe pse? 124 00:06:08,080 --> 00:06:09,900 Në anglisht, çfarë po ndodh këtu? 125 00:06:09,900 --> 00:06:12,760 Çfarë po bëj kur Unë u zhvillua këtë urdhër? 126 00:06:12,760 --> 00:06:13,405 >> Po? 127 00:06:13,405 --> 00:06:16,572 >> Audienca: Ka disa PHP funksion që lexon atë që in-- kupton se. 128 00:06:16,572 --> 00:06:19,696 DAVID Malan: Mirë, ka disa funksion PHP-- dhe më lejoni të jem më specifik, 129 00:06:19,696 --> 00:06:21,810 ka një program të quajtur PHP, alias 130 00:06:21,810 --> 00:06:25,872 Një përkthyes, i cili e kupton përmbajtja e hello.php, 131 00:06:25,872 --> 00:06:27,830 dhe e interpreton atë të lartë për të fund, majta në të djathtë, 132 00:06:27,830 --> 00:06:29,590 dhe bën çfarë ato komandat thonë. 133 00:06:29,590 --> 00:06:33,320 Komandat në hello.php, natyrisht, është vetëm burim code-- funksione 134 00:06:33,320 --> 00:06:35,750 dhe variablave dhe sythe dhe si, që ne vetë 135 00:06:35,750 --> 00:06:37,460 kanë filluar shkruar në PHP. 136 00:06:37,460 --> 00:06:40,240 >> Por ndryshe nga C, e cila është një gjuhë hartuar, 137 00:06:40,240 --> 00:06:42,810 PHP ju shkruani vetëm atë, dhe drejtuar atë. 138 00:06:42,810 --> 00:06:46,420 Ju kaloni këtë hap ndërmjetës i konvertimin atë në zero dhe ato, 139 00:06:46,420 --> 00:06:47,790 dhe pastaj drejtimin e tij. 140 00:06:47,790 --> 00:06:50,510 Dhe kështu ajo që është një kokë kjo? 141 00:06:50,510 --> 00:06:52,690 Pse jemi duke lënë mënjanë hapin? 142 00:06:52,690 --> 00:06:55,238 Pse gjuhë më moderne kanë tendencë për të kaloni këtë hap? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Cili ishte përfitimi? 145 00:07:01,220 --> 00:07:02,080 >> Apo thjesht intuitive? 146 00:07:02,080 --> 00:07:04,200 Edhe në qoftë se ne nuk e kemi shkruar shumë PHP më parë, 147 00:07:04,200 --> 00:07:07,210 çfarë është e dobishme për të mos hartimin kodin tuaj mendoni ju? 148 00:07:07,210 --> 00:07:08,520 Nuk ka? 149 00:07:08,520 --> 00:07:09,610 Jo kryerjen? 150 00:07:09,610 --> 00:07:11,350 Kruarje kokën tuaj? 151 00:07:11,350 --> 00:07:12,614 Po. 152 00:07:12,614 --> 00:07:13,600 >> Audienca: Më shumë dinamike. 153 00:07:13,600 --> 00:07:14,683 >> DAVID Malan: Më shumë dinamik? 154 00:07:14,683 --> 00:07:16,032 Çfarë doni të thoni? 155 00:07:16,032 --> 00:07:17,000 >> Audienca: [padëgjueshme] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID Malan: OK, mirë, kështu që në varësi të dhëna, 158 00:07:22,390 --> 00:07:23,470 ju nuk keni për të përpilojnë atë çdo herë. 159 00:07:23,470 --> 00:07:24,990 Dhe me të vërtetë është si thjeshtë si that-- çfarë 160 00:07:24,990 --> 00:07:26,990 është pika e vazhdueshëm të përpilojnë kodin tuaj? 161 00:07:26,990 --> 00:07:29,480 Kjo është vetëm një hap që është making-- kjo kërkon, 162 00:07:29,480 --> 00:07:31,900 për të kaluarën disa javë, dy herë më shumë hapa 163 00:07:31,900 --> 00:07:33,820 si vetëm running programin tuaj. 164 00:07:33,820 --> 00:07:36,940 Ka qenë e dobishme në duke parë se ti të shihni disa mesazhet e gabimit dhe kështu me radhë, 165 00:07:36,940 --> 00:07:38,720 por kjo është ende vetëm një hap i bezdisshëm. 166 00:07:38,720 --> 00:07:41,810 >> Dhe kështu programuesit realizuar me kalimin e kohës, pse nuk e bëjmë ne 167 00:07:41,810 --> 00:07:45,327 filloni të shkruani gjuhë që nuk bëjnë nevojë për këtë hap mjaft mekanike, 168 00:07:45,327 --> 00:07:47,160 kështu që mund të shkruani vetëm kodin tuaj dhe drejtuar atë. 169 00:07:47,160 --> 00:07:48,920 Por ajo që ishte çmimi që pamë kemi paguar 170 00:07:48,920 --> 00:07:50,910 javën e kaluar, me një shembull të veçantë? 171 00:07:50,910 --> 00:07:51,650 Po? 172 00:07:51,650 --> 00:07:52,370 >> Shpejtësi. 173 00:07:52,370 --> 00:07:54,690 Kështu që [? çfarë është] përkthyesit? pak më ngadalë, 174 00:07:54,690 --> 00:07:57,330 në se zero dhe ato janë bukur dhe të shpejtë për një kompjuter 175 00:07:57,330 --> 00:08:00,070 për të kuptuar, për shkak se Intel CPU, ose çfarëdo qoftë ajo është, 176 00:08:00,070 --> 00:08:03,070 vetëm e kupton se çfarë po ndodh më me ato modelet e bit. 177 00:08:03,070 --> 00:08:05,370 Ndërsa një përkthyesi është një program që me të vërtetë 178 00:08:05,370 --> 00:08:07,980 ka për të lexuar burimin ascii Kodi që ju keni shkruar, 179 00:08:07,980 --> 00:08:12,700 dhe kthyer atë, kështu që të flasin, ose kuptoj se si ajo konverton në fund të fundit 180 00:08:12,700 --> 00:08:13,525 në zero dhe ato. 181 00:08:13,525 --> 00:08:15,650 Pra, ajo merr vetëm pak pak e një hit të performancës. 182 00:08:15,650 --> 00:08:16,858 Pra, kjo është pak e një trade-off. 183 00:08:16,858 --> 00:08:21,570 Tani në qoftë se ne bëjmë këtë gjatë këtu, le të më të shkojnë përpara dhe të bëjë një shembull si më poshtë. 184 00:08:21,570 --> 00:08:26,610 Nëse unë shkoj në këtu, skedë të re, unë jam duke shkuar për të shpëtuar këtë përsëri është hello.php. 185 00:08:26,610 --> 00:08:31,450 Dhe tani unë jam duke shkuar për të shkuar përpara dhe thonë: "print Përshëndetje Të Gjithëve" - 186 00:08:31,450 --> 00:08:35,130 dhe kujtojnë se unë mund të përdorni të shtypura, unë nuk e bëj duhet të përdorni print-F. Dhe tani këtu poshtë, 187 00:08:35,130 --> 00:08:42,039 në qoftë se unë bëj PHP e hello.php, unë huh-- nuk duket se kanë interpretuar atë. 188 00:08:42,039 --> 00:08:43,412 Çfarë të bëj gabim? 189 00:08:43,412 --> 00:08:44,710 >> Audienca: Rrathë angled. 190 00:08:44,710 --> 00:08:47,015 >> DAVID Malan: Po, ju keni nevojë për se lartë kënd kllapa lart. 191 00:08:47,015 --> 00:08:49,390 Pra, kjo është lloj i bezdisshëm, por ju të mësohen me të shpejt. 192 00:08:49,390 --> 00:08:53,500 Në qoftë se unë duhet të shkruani kodin PHP, unë në përgjithësi duhet të tregoni programin, 193 00:08:53,500 --> 00:08:56,950 ose tregoni përkthyes, hej PHP, këtu vjen një kod PHP. 194 00:08:56,950 --> 00:09:00,440 Dhe pastaj për masë të mirë, unë do të mbyllet kjo nuk me këtë, por më tepër 195 00:09:00,440 --> 00:09:03,740 me vetëm pyetje kënd mark kllapa, kështu që tani këtu poshtë, 196 00:09:03,740 --> 00:09:06,840 në qoftë se unë të drejtuar këtë përsëri, tani Kam marrë rezultatin e dëshiruar. 197 00:09:06,840 --> 00:09:09,820 >> Tani le të bëjmë një optimization të lehtë, vetëm kështu që ju kam parë atë më parë. 198 00:09:09,820 --> 00:09:14,040 Kjo është lloj i bezdisshëm që I keni për të kandiduar hapësirë ​​PHP hello.php, 199 00:09:14,040 --> 00:09:16,060 sepse në I kaluarën mund vetëm të shkruani dot plagë 200 00:09:16,060 --> 00:09:17,560 Emri program, që është lloj i bukur. 201 00:09:17,560 --> 00:09:19,420 Kjo është lloj i një përvojë përdorues të mirë. 202 00:09:19,420 --> 00:09:24,160 >> Pra, ajo rezulton nga ju mund ta bëni këtë në PHP me I following-- 203 00:09:24,160 --> 00:09:28,780 mund të përdorni këtë mjaft i fshehtë yshtje në krye këtu, 204 00:09:28,780 --> 00:09:31,740 e cila është quajtur përgjithësisht një mesele, ku kjo është një simbol të mprehtë, 205 00:09:31,740 --> 00:09:34,270 kështu që të flasin, kjo është një zhurmë ose një pikë thirrje. 206 00:09:34,270 --> 00:09:38,490 Dhe kjo tani është rruga për një program të në një sistem tipik Linux që 207 00:09:38,490 --> 00:09:41,500 quhet mjedisin, ose env. 208 00:09:41,500 --> 00:09:43,920 Dhe kjo line-- histori të gjatë një linjë short-- vetëm 209 00:09:43,920 --> 00:09:48,710 thotë, hej kompjuter, gjeni PHP përkthyes për mua në mjedis, 210 00:09:48,710 --> 00:09:50,610 gjeni atë në kujtesën tuaj, kështu që të flasin. 211 00:09:50,610 --> 00:09:54,130 >> Dhe çfarë është e bukur tani, është se nëse unë shkoj poshtë këtu, 212 00:09:54,130 --> 00:09:57,750 Unë mund të bëj dot plagë përshëndetje dot php, or-- hmm. 213 00:09:57,750 --> 00:09:59,000 Leja e mohoi. 214 00:09:59,000 --> 00:10:02,350 E pra, ju do të shihni edhe më shumë nga kjo me problemin e vuri mënjanë shtatë, në qoftë se ju 215 00:10:02,350 --> 00:10:04,060 nuk e keni tashmë, me leje. 216 00:10:04,060 --> 00:10:06,510 Ajo rezulton se kam nevojë për për të ekzekutuar këtë komandë 217 00:10:06,510 --> 00:10:10,779 quajtur [? chamod?] për ndryshim mode-- një plus x hello.php. 218 00:10:10,779 --> 00:10:13,820 Unë kam nevojë për [e padëgjueshme] kjo shtesë hap e cila është thënë kompjuterin tim, 219 00:10:13,820 --> 00:10:16,400 bëjnë ekzekutues hello.php. 220 00:10:16,400 --> 00:10:21,310 Dhe tani të shikojnë atë që happens-- dot çaj hello.php, ajo vetëm shkon. 221 00:10:21,310 --> 00:10:23,310 Unë nuk kam nevojë të specifikojë përkthyesi më. 222 00:10:23,310 --> 00:10:26,680 Dhe unë mund të bëjë atë edhe prettier, akoma, në qoftë se unë të riemërtoni këtë gjë. 223 00:10:26,680 --> 00:10:30,570 Nëse unë të lëvizin hello.php të vetëm Hello-- kështu njoftim të majtë të lartë, 224 00:10:30,570 --> 00:10:32,860 emri i programit është në të vërtetë tani vetëm Përshëndetje. 225 00:10:32,860 --> 00:10:37,300 Tani unë mund të bëjë atë të duket si një program C, edhe pse është e shkruar në PHP-- 226 00:10:37,300 --> 00:10:39,210 ose sinqerisht ndonjë numër e gjuhëve të tjera. 227 00:10:39,210 --> 00:10:41,480 >> Pra zgjerimin margjinale, asnjë ndryshim funksionale. 228 00:10:41,480 --> 00:10:44,460 Por kjo është vetëm një kuriozitet të vogël tani, kështu që ju mund të shkruani programe 229 00:10:44,460 --> 00:10:48,989 në çdo gjuhë, dhe përdoruesi nuk duhet të dinë se ose intereson se çfarë ata janë. 230 00:10:48,989 --> 00:10:51,030 E pra, le të shohim në një më shembull imponues tani 231 00:10:51,030 --> 00:10:52,850 që unë whipped deri më parë. 232 00:10:52,850 --> 00:10:54,955 Dhe kjo quhet quote.php. 233 00:10:54,955 --> 00:10:56,740 Dhe kjo është në dispozicion online. 234 00:10:56,740 --> 00:11:00,299 Dhe vini re se kjo është goxha short-- por kjo është një linjë komande program që është 235 00:11:00,299 --> 00:11:02,840 do të shikojmë lart çmimet e aksioneve për mua, e cila është në të vërtetë ndodh 236 00:11:02,840 --> 00:11:04,230 të jetë i përshtatshëm për problem i vuri mënjanë shtatë. 237 00:11:04,230 --> 00:11:05,396 >> Pra, le të shohim se çfarë unë jam duke bërë. 238 00:11:05,396 --> 00:11:08,640 Në krye Unë kam marrë grupim i hapur pikëpyetje PHP. 239 00:11:08,640 --> 00:11:13,372 Pastaj unë kam marrë këtë linjë, ku unë jam kërkon një skedar të quajtur functions.php-- 240 00:11:13,372 --> 00:11:15,080 ne jemi duke shkuar për të parë më shumë për këtë në një grimë, 241 00:11:15,080 --> 00:11:17,340 por kjo është si C-së version i mprehtë përfshijnë, 242 00:11:17,340 --> 00:11:19,090 ku ju doni të shkoni përfshijnë një tjetër fotografi. 243 00:11:19,090 --> 00:11:23,720 PHP quan ajo të kërkojë, edhe pse ajo gjithashtu ka një funksion të përfshijë. 244 00:11:23,720 --> 00:11:26,861 Dhe kjo rezulton se function.php është vetëm diçka kam shkruar para klasës. 245 00:11:26,861 --> 00:11:29,860 I vënë atë në të njëjtën directory, sepse Unë të kërkuar për faktor jashtë disa kodin 246 00:11:29,860 --> 00:11:31,800 që ne të mund të dëshironi të përdorni diku tjetër. 247 00:11:31,800 --> 00:11:34,560 >> Ndërkohë, ju mund ndoshta konkludoj se çfarë po ndodh këtu. 248 00:11:34,560 --> 00:11:39,200 Kjo është pak më ndryshe nga C-- por çfarë dua të them me të siguruar përdorimin e duhur? 249 00:11:39,200 --> 00:11:41,180 Translate kjo më teknikisht. 250 00:11:41,180 --> 00:11:45,950 Në çfarë rrethanash jam unë ndalohet pirja e duhanit e programit, apo dalja? 251 00:11:45,950 --> 00:11:47,074 Po? 252 00:11:47,074 --> 00:11:47,990 >> Audienca: Kur ju nuk keni dy argumente command line. 253 00:11:47,990 --> 00:11:49,480 >> DAVID Malan: Kur unë nuk kam për të komanduar argumente linjës. 254 00:11:49,480 --> 00:11:52,396 Dhe mos harroni se një nga ata argumentet është emri i programit në vetvete. 255 00:11:52,396 --> 00:11:55,340 Dhe e dyta do të jetë një fjalë tjetër unë lloji pas ftim. 256 00:11:55,340 --> 00:11:57,460 Pra, ashtu si C, ky është mënyra ime e të kontrolluar, 257 00:11:57,460 --> 00:12:00,022 ka bashkëpunuar përdoruesi dhe drejtuar programin si kam menduar? 258 00:12:00,022 --> 00:12:01,730 Tani, ka diçka pak më ndryshe 259 00:12:01,730 --> 00:12:04,020 me C-- para së gjithash ne kanë këtë shenjë dollar, 260 00:12:04,020 --> 00:12:07,710 dhe çfarë e bën një dollar nënshkruajë treguar në PHP? 261 00:12:07,710 --> 00:12:08,440 Vetëm një variabël. 262 00:12:08,440 --> 00:12:11,731 Kjo është all-- vetëm një variabël e ndjekur nga çdo gjë që ju doni të vërtetë të telefononi atë. 263 00:12:11,731 --> 00:12:14,000 Njoftim ka diçka mungon nga programi im PHP, 264 00:12:14,000 --> 00:12:18,210 ashtu si ajo ishte zhdukur fundit javë, kundrejt C, e cila është ajo? 265 00:12:18,210 --> 00:12:21,620 >> Një llojeve, por edhe diçka tjetër. 266 00:12:21,620 --> 00:12:26,409 Nuk ka diçka function-- funksionin kryesor. 267 00:12:26,409 --> 00:12:27,450 Nuk ka funksion kryesor. 268 00:12:27,450 --> 00:12:29,680 Ju vetëm të filloni të shkruani Kodi tuaj pa pasur nevojë 269 00:12:29,680 --> 00:12:32,790 për t'u shqetësuar rreth një mjaft arbitrare Konventa e emërtimit disa parazgjedhje 270 00:12:32,790 --> 00:12:33,880 Funksioni kryesor. 271 00:12:33,880 --> 00:12:36,720 Pra, ARG C është vetëm me të vërtetë një ndryshore globale 272 00:12:36,720 --> 00:12:39,049 se përkthyesit vë në dispozicion për mua. 273 00:12:39,049 --> 00:12:40,090 Tani, kjo është interesante. 274 00:12:40,090 --> 00:12:41,140 Pra, kërkoni gjëra. 275 00:12:41,140 --> 00:12:43,370 Aksioneve shenjë dollari është mbi majtas, kjo është e ndryshueshme ime. 276 00:12:43,370 --> 00:12:45,120 Në anën e djathtë, nuk ka me sa duket 277 00:12:45,120 --> 00:12:50,270 një funksion në PHP quajtur lookup që Unë jam duke kaluar vijën time të fundit command 278 00:12:50,270 --> 00:12:51,902 Argumenti to-- çfarëdo fjala është. 279 00:12:51,902 --> 00:12:53,610 Dhe ne do të shohim se si kjo punon në një moment. 280 00:12:53,610 --> 00:12:55,380 >> Dhe pastaj në fund unë jam raportimin çmimin. 281 00:12:55,380 --> 00:12:58,650 Unë jam shtypje nga një Pjesa e tilla dhe të tilla. 282 00:12:58,650 --> 00:13:02,082 Dhe mbani mend, kjo është Mënyra në PHP-- një mënyrë në PHP-- 283 00:13:02,082 --> 00:13:04,290 ku ju nuk keni për të bërë shenja e dollarit S më. 284 00:13:04,290 --> 00:13:06,782 Ju mund të përdorni vetëm formatimin e teksteve kaçurrel dhe plug në disa ndryshore. 285 00:13:06,782 --> 00:13:09,240 Ju nuk duhet të shqetësohen për duke përdorur printf në të njëjtën mënyrë. 286 00:13:09,240 --> 00:13:13,530 >> Dhe si një mënjanë, kur ju vënë një ndryshore brenda kuotat e dyfishtë si kjo, 287 00:13:13,530 --> 00:13:17,370 ju jeni duke përdorur një teknikë të dashuroj quajtur interpolation ndryshueshme. 288 00:13:17,370 --> 00:13:20,380 Kjo thjesht do të thotë plug ndryshueshme këtu. 289 00:13:20,380 --> 00:13:23,760 Dhe si një mënjanë, disa prej jush që vijnë me prejardhje të tjera programore, 290 00:13:23,760 --> 00:13:26,960 ju nuk mund të përdorni kuotat e vetme rreth strings për të bërë këtë. 291 00:13:26,960 --> 00:13:30,290 Ju duhet të përdorni kuotat e dyfishtë për interpolation ndryshueshme për të punuar. 292 00:13:30,290 --> 00:13:32,740 Përndryshe ju do të fjalë për fjalë shohin ato formatimin e teksteve kaçurrel. 293 00:13:32,740 --> 00:13:34,500 >> Pra së fundi, le të shkojnë përpara dhe të drejtuar këtë. 294 00:13:34,500 --> 00:13:36,690 Më lejoni të bëj terminal ime më e madhe pak. 295 00:13:36,690 --> 00:13:41,940 Më lejoni të shkoj përpara dhe të drejtuar brenda directory tim kuotë. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AM?] [? quote?] PHP quote dot PHP, 297 00:13:46,950 --> 00:13:50,290 dhe unë jam duke shkuar për të kërkuar për diçka si GOOG, i cili është simboli i saj Tiker, 298 00:13:50,290 --> 00:13:55,510 dhe një pjesa e emrit të saj të ri, Alfabeti Inc, të kushtojë 717 $, që nga sot. 299 00:13:55,510 --> 00:13:58,680 Të gjithë të drejtë, në qoftë se ne duam të drejtuar këtë përsëri, dikush 300 00:13:58,680 --> 00:14:02,600 kanë një tjetër stock ticker ata duan të shikoni? 301 00:14:02,600 --> 00:14:06,770 >> Microsoft unë mendoj se është kjo, MSFT-- 53 $. 302 00:14:06,770 --> 00:14:09,720 Unë mendoj se Yahoo është ndoshta se. 303 00:14:09,720 --> 00:14:12,130 Dhe Facebook është ai. 304 00:14:12,130 --> 00:14:13,740 >> Pra, çfarë është ky program duke bërë? 305 00:14:13,740 --> 00:14:16,306 Magjia duket të jetë ngulitur në atë lookup funksion. 306 00:14:16,306 --> 00:14:17,430 Pra, le të marrin një vështrim të shpejtë. 307 00:14:17,430 --> 00:14:21,815 >> Ajo rezulton se nuk ka ardhur me PHP, kjo është në functions.php. 308 00:14:21,815 --> 00:14:23,690 Dhe ne nuk do të kalojnë nëpër këtë në hollësi të madhe, 309 00:14:23,690 --> 00:14:28,040 por vini re fjalën operativ këtu është që në përputhje gjashtë e functions.php-- 310 00:14:28,040 --> 00:14:29,440 Unë fjalë për fjalë them funksion. 311 00:14:29,440 --> 00:14:31,050 Unë specifikoni emrin e funksionit tim. 312 00:14:31,050 --> 00:14:34,330 Unë pastaj specifikoni ndonjë argumente, apo parametra, 313 00:14:34,330 --> 00:14:36,480 Unë dua që funksioni të take-- asnjë lloje. 314 00:14:36,480 --> 00:14:37,580 Dhe pastaj kam zbatuar atë. 315 00:14:37,580 --> 00:14:39,240 >> Dhe unë do të tundë dorën time në zbatim, 316 00:14:39,240 --> 00:14:42,115 pasi kjo është e drejtë mjaft e avancuar tani, por ne do të shohim atë përsëri në fakt 317 00:14:42,115 --> 00:14:44,700 në një javë në problemin vendosur shtatë. 318 00:14:44,700 --> 00:14:47,490 Por unë mund të pastër këtë ide, too. 319 00:14:47,490 --> 00:14:49,590 Unë gjithashtu të përfshira në Kodi sotme një version 320 00:14:49,590 --> 00:14:52,340 i citatit, e cila nuk ka fotografi dot PHP. 321 00:14:52,340 --> 00:14:57,270 Sepse ajo që është me sa duket më së krye të programit të quajtur vetëm të japin kuotën? 322 00:14:57,270 --> 00:15:00,140 Se ashtu-quajtur shebang-- yshtje mjaft i fshehtë 323 00:15:00,140 --> 00:15:04,590 që thotë se gjeni PHP dhe pastaj drejtuar atë në kodin tim këtu. 324 00:15:04,590 --> 00:15:07,360 >> Të gjithë të drejtë, kështu që sjell ne për të ku ne u ndërpre 325 00:15:07,360 --> 00:15:09,560 time-- fundit megjithëse me Disa shembuj më të avancuara. 326 00:15:09,560 --> 00:15:13,980 Çdo pyetje deri më tani në lidhje me PHP apo atë që ne jemi duke bërë? 327 00:15:13,980 --> 00:15:15,570 No-- të gjithë të drejtë. 328 00:15:15,570 --> 00:15:16,180 Po? 329 00:15:16,180 --> 00:15:19,610 >> Audienca: Brenda Fotografi HTML, bëni ju, duke filluar 330 00:15:19,610 --> 00:15:22,226 [? bëni ju?] [? vetëm e quajti atë?] një [e padëgjueshme] PHP skedar? 331 00:15:22,226 --> 00:15:23,350 DAVID Malan: Pyetje e mirë. 332 00:15:23,350 --> 00:15:26,070 Në një kontekst web, të cilin ne jemi fjalë për fjalë gati të kalojnë në, 333 00:15:26,070 --> 00:15:28,028 ju nuk e përdorni të ashtuquajturat mesele në krye, 334 00:15:28,028 --> 00:15:31,980 sepse web server-- shpesh një Programi i quajtur Apache ose Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server, ose çdo numër të tjera të software web server, 336 00:15:37,470 --> 00:15:40,636 e di se kur ajo e sheh një skedar PHP dot, se ajo 337 00:15:40,636 --> 00:15:42,010 duhet të kandidojë përkthyes mbi të. 338 00:15:42,010 --> 00:15:43,468 Ajo nuk duket në atë rreshtin e parë. 339 00:15:43,468 --> 00:15:45,580 Pra, këtë mashtrim të parë linjë është vetëm kur ju jeni 340 00:15:45,580 --> 00:15:48,330 shkrim command line programs-- të cilat ne nuk do të bëjmë super shpesh, 341 00:15:48,330 --> 00:15:52,510 por kjo është mënyra jonë për të tejkalimit shembuj për ne C tani PHP tonë. 342 00:15:52,510 --> 00:16:00,680 >> Pra, le të vërtetë të mbushur këtë botë nga bota command line në internet 343 00:16:00,680 --> 00:16:02,230 duke bërë në vijim. 344 00:16:02,230 --> 00:16:05,090 Më lejoni të shkoj përpara dhe të tërheqë këtu për vetëm një moment. 345 00:16:05,090 --> 00:16:09,940 Pra, në qoftë se ne kemi një web server, ose më mirë në qoftë se ne kemi laptop tim gjatë këtu, 346 00:16:09,940 --> 00:16:11,280 të cilat unë do të tërheqë si kjo. 347 00:16:11,280 --> 00:16:14,250 Dhe këtu ne kemi internet në një formë. 348 00:16:14,250 --> 00:16:18,210 Dhe pastaj mbi këtu, ne kemi një server në një building-- 349 00:16:18,210 --> 00:16:20,760 kjo është se si interneti works-- dhe në këtu 350 00:16:20,760 --> 00:16:23,120 është një server me disa dritat ndoshta. 351 00:16:23,120 --> 00:16:27,530 Çfarë po ndodh në të vërtetë në mes të këtyre dy lidhjeve? 352 00:16:27,530 --> 00:16:29,240 >> Pra, në këtë ndërtesë është një web server. 353 00:16:29,240 --> 00:16:31,420 Kjo është vetëm një kompjuter kjo është drejtimin disa operative 354 00:16:31,420 --> 00:16:34,561 system-- ndoshta software i lirë të quajtur Apache, e cila CS50 IDE po kandidon. 355 00:16:34,561 --> 00:16:36,310 Kështu që ju mund të vërtetë mendoj e kësaj ndërtese 356 00:16:36,310 --> 00:16:38,579 si ndërtesa në cila CSt0 IDE është ruajtur. 357 00:16:38,579 --> 00:16:40,870 Kjo është ku të gjithë ju kanë llogaritë, ku të gjithë ju 358 00:16:40,870 --> 00:16:43,130 keni vet web serverin tuaj drejtimin, të gjithë ju 359 00:16:43,130 --> 00:16:45,730 kanë URL tuaj unik, si kemi filluar për të diskutuar, 360 00:16:45,730 --> 00:16:47,280 dhe ju do të shihni më shumë në P. vendosur gjashtë. 361 00:16:47,280 --> 00:16:49,450 >> Këtu është laptop tim diku tjetër në internet. 362 00:16:49,450 --> 00:16:54,550 Dhe kështu kur kam vizituar një URL që i përket për mua, se trafiku në internet është duke shkuar 363 00:16:54,550 --> 00:16:58,360 mbi në server, server-së marrjen e një HTTP request-- 364 00:16:58,360 --> 00:17:02,900 si një të marrë index.html dhe kjo është duke iu përgjigjur kësaj web faqe. 365 00:17:02,900 --> 00:17:04,280 Pra, kjo është paradigma e përgjithshme. 366 00:17:04,280 --> 00:17:07,089 Ndërsa çdo gjë lart deri tani Sot, çdo gjë 367 00:17:07,089 --> 00:17:09,660 po ndodhte vetëm në kufitë e kësaj ndërtese. 368 00:17:09,660 --> 00:17:12,910 Unë kam qenë duke përdorur laptop tim, por Unë kam qenë i lidhur me CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 kështu që të gjithë e këtyre programeve unë ishte duke ecur ishte brenda atë server, vetë. 370 00:17:17,369 --> 00:17:22,660 >> Por tani, le të fillojë ripërdorimit PHP për të shkruar disa programe aktuale që 371 00:17:22,660 --> 00:17:24,230 janë shërbyer nga një web server. 372 00:17:24,230 --> 00:17:30,320 Dhe për të bërë këtë, unë jam duke shkuar për të shkuar në një bandë e tërë e shembujve 373 00:17:30,320 --> 00:17:33,710 që të prezantoj këtë ide këtu. 374 00:17:33,710 --> 00:17:38,500 Pra, kjo është lloj i një mënyrë e sofistikuar të përshkruar një paradigmë programimit. 375 00:17:38,500 --> 00:17:41,540 >> Dhe në fakt, ashtu si ju dalje CS50 ose të punojnë në projekte finale, 376 00:17:41,540 --> 00:17:43,520 ose të marrë disa të ndjekë në klasë, ju do të fillojnë 377 00:17:43,520 --> 00:17:45,740 për të parë se world-- veçanërisht ka rritur deri 378 00:17:45,740 --> 00:17:48,300 me gjuhë si C që janë level-- super të ulët 379 00:17:48,300 --> 00:17:51,290 të kuptojë se nuk është më mirë mënyra e shkrimit software. 380 00:17:51,290 --> 00:17:53,290 Nuk janë të sigurt modele ju mund të ndiqni, 381 00:17:53,290 --> 00:17:57,640 mënyra të caktuara të organizimit fotografi tuaj dhe mënyrat e emërtimin e funksioneve tuaja, 382 00:17:57,640 --> 00:18:00,300 në mënyrë që histori të gjatë të shkurtër, bota ka dalë 383 00:18:00,300 --> 00:18:04,340 me një bandë e tërë e akronimeve dhe emra për mënyrat e programimit. 384 00:18:04,340 --> 00:18:06,260 Këto janë vetëm teknika që ju mund të përdorni. 385 00:18:06,260 --> 00:18:09,660 >> Dhe një prej tyre është quajtur MVC, për Model Shiko Controller. 386 00:18:09,660 --> 00:18:12,270 Dhe kjo është vetëm, për tani, një komplikuar tepër 387 00:18:12,270 --> 00:18:18,960 mënyrë për të thënë se si ju duhet të nxjerr një faqe interneti PHP-bazuar, në rastin tonë. 388 00:18:18,960 --> 00:18:22,140 Si mund të organizojnë fotografi tuaj, si do të organizojnë logjikën tuaj, 389 00:18:22,140 --> 00:18:26,220 në një mënyrë që e bën më të lehtë për shkruaj faqet e internetit më të komplikuara? 390 00:18:26,220 --> 00:18:28,550 Dhe me të vërtetë, ne do të shpejt merrni atje me p-vendosur shtatë. 391 00:18:28,550 --> 00:18:32,020 >> Pra, në botën e MVC, ju do të jeni për të parë se kodi ynë mund në përgjithësi 392 00:18:32,020 --> 00:18:38,290 të karakterizohet si ose kod model, ose kod kontrollues, ose kod pamje. 393 00:18:38,290 --> 00:18:40,200 Dhe unë jam duke shkuar për thjeshtëzoj atë si follows-- 394 00:18:40,200 --> 00:18:42,074 kontrollues është trurin e programit tuaj, 395 00:18:42,074 --> 00:18:44,100 kjo është ku të gjithë e logjikë interesante ndodh. 396 00:18:44,100 --> 00:18:46,110 Pra, çdo gjë që ne kemi qenë shkruar deri më tani në klasë, 397 00:18:46,110 --> 00:18:48,210 është lloj i si kontrollues code-- ajo kontrollon 398 00:18:48,210 --> 00:18:50,585 programi juaj, sythe e tua, tuaj kushtet, funksionet tuaja 399 00:18:50,585 --> 00:18:52,100 dhe variablave dhe të gjitha këto. 400 00:18:52,100 --> 00:18:56,160 >> Views, tani, do të jetë pak më e qartë në botën e web. 401 00:18:56,160 --> 00:18:59,360 Një pikëpamje është estetikë e faqen tuaj te internetit. 402 00:18:59,360 --> 00:19:04,080 Kjo është ajo që përdoruesi sees-- imazhet, tavolina HTML, tags HTML, dhe të gjitha 403 00:19:04,080 --> 00:19:08,220 e që, të gjithë e estetike me gëzof sende që nuk është se e vështirë për të shkruar, 404 00:19:08,220 --> 00:19:11,380 por është vetëm ajo që ju jeni duke gjeneruar, është e ashtuquajtura pikëpamje, estetikë. 405 00:19:11,380 --> 00:19:13,880 Dhe model, në fund të fundit, po shkon të jetë stuff-- bazës së të dhënave që 406 00:19:13,880 --> 00:19:16,510 ne do të fillojmë zhyten në të gjitha aq më shumë këtë të mërkurë. 407 00:19:16,510 --> 00:19:19,740 Pra, kontrollues është logjika, pikëpamje është një temë estetike, 408 00:19:19,740 --> 00:19:23,500 dhe modeli do të jetë aty ku ne të ruajtur të dhënat tona aktuale. 409 00:19:23,500 --> 00:19:26,410 >> Pra, le të shohim në këtë më konkretisht me shembullin e mëposhtëm. 410 00:19:26,410 --> 00:19:34,700 Unë jam duke shkuar për të shkuar në directory time këtu i burimit sotme code-- të cilat 411 00:19:34,700 --> 00:19:35,770 është në dispozicion online. 412 00:19:35,770 --> 00:19:37,800 Dhe unë jam duke shkuar për të shkuar në versionin zero. 413 00:19:37,800 --> 00:19:41,500 Dhe këtu is-- le ta quajmë të Versioni zero e internetit CS50 e. 414 00:19:41,500 --> 00:19:43,010 Nuk ka shumë këtu në të gjitha. 415 00:19:43,010 --> 00:19:46,810 Kjo është një faqe shumë e thjeshtë web që është ndoshta duke përdorur atë që HTML tags-- vetëm 416 00:19:46,810 --> 00:19:48,970 guess nga shembujt e kaluara? 417 00:19:48,970 --> 00:19:49,890 >> Cfare eshte kjo? 418 00:19:49,890 --> 00:19:53,920 H1-- ndoshta për atë i madh guximshme titulli, kjo logo deri të lartë, CS50. 419 00:19:53,920 --> 00:19:55,080 Dhe çfarë tjetër është në lojë? 420 00:19:55,080 --> 00:19:55,799 Po? 421 00:19:55,799 --> 00:19:56,840 Audienca: Listë e paorganizuar. 422 00:19:56,840 --> 00:19:59,990 DAVID Malan: list-- paorganizuar kështu Tag UL dhe ndoshta disa tags Li. 423 00:19:59,990 --> 00:20:01,840 Dhe nëse ju nuk e mbani mend këto, kjo sinqerisht nuk ka rëndësi. 424 00:20:01,840 --> 00:20:04,170 Këto janë lloj gëzof të Detajet e zbatimit të HTML 425 00:20:04,170 --> 00:20:06,378 që ju të shpejt shikoni lart dhe ju jeni kthyer në rrugën tuaj. 426 00:20:06,378 --> 00:20:10,040 Ne do të përqëndrohet më shumë në programimin Idetë që janë copa Fatura. 427 00:20:10,040 --> 00:20:12,890 >> Pra, le të vetëm të marrin një shpejtë shikoni në HTML-- dhe në të vërtetë 428 00:20:12,890 --> 00:20:16,880 në qoftë se unë të hapur view burimin këtu, Yup, Kjo është pikërisht ajo që po ndodh këtu. 429 00:20:16,880 --> 00:20:18,440 Ka një tag UL. 430 00:20:18,440 --> 00:20:20,630 Mbivendosur brenda që është për tags Li. 431 00:20:20,630 --> 00:20:24,470 Dhe pastaj kam huazuar URL i syllabus aktuale këtu. 432 00:20:24,470 --> 00:20:27,570 >> Dhe pastaj në lectures.php është me sa duket 433 00:20:27,570 --> 00:20:31,640 një tjetër faqe të gjeneruara dinamike që do të ketë, le të see-- ah, 434 00:20:31,640 --> 00:20:33,170 dy javët e para të ligjëratës. 435 00:20:33,170 --> 00:20:36,600 Pra javë zero dhe një javë, le të shikoni në this-- në qoftë se unë të parë faqe burim, 436 00:20:36,600 --> 00:20:38,120 gjithashtu super të thjeshtë. 437 00:20:38,120 --> 00:20:42,430 Këto janë çuar në dy faqe quajtur week0.php, dhe week1.php. 438 00:20:42,430 --> 00:20:44,040 Kështu që e konsiderojnë tani çfarë po ndodh. 439 00:20:44,040 --> 00:20:50,630 >> Kur unë klikoni mbi week0.php, laptop tim është duke bërë një kërkesë për week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Web server, alias, CS50 IDE, po merr atë zarf virtuale. 442 00:20:58,110 --> 00:21:01,040 Është parë një mesazh si, të merrni week0.php. 443 00:21:01,040 --> 00:21:05,060 Është pastaj interpreton fotografi, e lartë e deri në fund, e majta në të right-- file 444 00:21:05,060 --> 00:21:07,720 quajtur week0.php-- dhe pështyrë nga rezultatet. 445 00:21:07,720 --> 00:21:10,510 Pra, brenda kësaj skede, week0.php, duhet të jetë 446 00:21:10,510 --> 00:21:15,410 kontrollues logjikë që është gjeneruar kjo HTML, dhe ne do të shpejt të shihni se. 447 00:21:15,410 --> 00:21:19,340 >> Por tani për tani, më lejoni të klikoni në javë zero, dhe tani ne kemi mërkurën dhe të premten, 448 00:21:19,340 --> 00:21:25,260 dhe tani ne kemi slides ngadalë nga javë zero. 449 00:21:25,260 --> 00:21:27,400 Dhe ju mund të kujtojnë këtë nga mënyrë mbrapa kur. 450 00:21:27,400 --> 00:21:29,340 Pra, kjo është e gjitha ky website është duke bërë. 451 00:21:29,340 --> 00:21:31,120 >> Pra, le të shqyrtojmë se si ajo e bën këtë. 452 00:21:31,120 --> 00:21:34,290 Unë jam duke shkuar për të shkuar mbrapa në të kod burim këtu, në CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 dhe unë jam duke shkuar për të hapur index.php. 454 00:21:36,660 --> 00:21:38,910 Në krye të këtij file është një bandë e komenteve. 455 00:21:38,910 --> 00:21:43,000 Dhe pastaj në mes të këtij file, atë rezulton, asnjë kod PHP whatsoever. 456 00:21:43,000 --> 00:21:47,380 Sepse në qoftë se ju nuk keni ndonjë nga Bracket hapur tags pikëpyetje PHP, 457 00:21:47,380 --> 00:21:49,180 ju jeni të lirë për të vënë vetëm HTML. 458 00:21:49,180 --> 00:21:51,480 >> Sepse çfarë PHP përkthyes është menduar për të bërë, 459 00:21:51,480 --> 00:21:53,938 është kur ai lexon këtë file-- lart poshtë, e majta në të right-- 460 00:21:53,938 --> 00:21:59,100 ajo vetëm interpreton kodin që sheh në mes këto kllapa kënd pikëpyetje. 461 00:21:59,100 --> 00:22:02,380 Dhe çdo gjë tjetër që nuk ka njohin si PHP, ajo vetëm pështyn nga. 462 00:22:02,380 --> 00:22:05,080 Dhe HTML është ndër më të gjëra ajo vetëm do të nxjerr nga goja. 463 00:22:05,080 --> 00:22:09,090 >> Pra kjo skedë mund të ketë është quajtur index.html, 464 00:22:09,090 --> 00:22:11,690 por unë jam emërtimin gjithçka dot PHP si një gur rrit. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- ngjashme underwhelming, kjo është vetëm disa HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php, në mënyrë të ngjashme vetëm disa HTML. 467 00:22:19,840 --> 00:22:22,300 >> Por tani le të vënë mbi proverbial hat inxhinieri, 468 00:22:22,300 --> 00:22:24,400 dhe konsiderojnë se si ne mund të përmirësojmë këtë. 469 00:22:24,400 --> 00:22:28,541 Nuk është e vështirë për të bërë këtë, por unë lloj i transferuar në të kopjoni dhe ngjisni. 470 00:22:28,541 --> 00:22:31,540 Dhe në fakt, në qoftë se unë bëj javë dy, ju e di se çfarë unë jam ndoshta do të bëni? 471 00:22:31,540 --> 00:22:34,940 Unë jam duke shkuar për të shkuar në week1.php, unë jam do të nxjerrë në pah gjithçka. 472 00:22:34,940 --> 00:22:39,110 Unë jam duke shkuar për të kopje atë, ngjitur në një skedë të re të quajtur week2.php, 473 00:22:39,110 --> 00:22:42,440 shkulje disa URL, dhe të jetë në rrugën time. 474 00:22:42,440 --> 00:22:45,240 >> Pra, bazuar në atë që ne kemi parë në C tashmë, 475 00:22:45,240 --> 00:22:46,860 kjo nuk do të ndjehen të drejtë, me shpresë. 476 00:22:46,860 --> 00:22:49,610 Kopje, paste rrallë zgjidhja e drejtë. 477 00:22:49,610 --> 00:22:51,429 Pra, çfarë mund të fillojmë për të bërë për të përmirësuar këtë? 478 00:22:51,429 --> 00:22:53,345 Ku janë mundësitë për dizajn të mirë? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> Deri në kohën që unë të shkoj në Javën e tetë, ajo do 481 00:22:58,760 --> 00:23:00,910 të jetë me të vërtetë i bezdisshëm në qoftë se unë dua të ndryshojë 482 00:23:00,910 --> 00:23:03,930 font i secilit prej faqet e mia, ose në qoftë se unë dua 483 00:23:03,930 --> 00:23:06,522 për të ndryshuar strukturën e layout. 484 00:23:06,522 --> 00:23:08,396 Pra, ku është mundësi për dizajn të mirë? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 E pra, le të konsiderojmë se çfarë është përbashkët nëpër të gjitha këto fotografi. 487 00:23:15,160 --> 00:23:21,696 >> Këtu është një javë, këtu është javë zero, këtu është lectures.php, 488 00:23:21,696 --> 00:23:25,790 këtu është index.php-- ajo që është e njëjtë dhe çfarë është e ndryshme, me përafërsi, 489 00:23:25,790 --> 00:23:26,760 në secilën nga këto dosjeve? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Po? 492 00:23:32,060 --> 00:23:34,560 >> Audienca: [padëgjueshme] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID Malan: OK, mirë. 495 00:23:42,160 --> 00:23:46,115 Pra, ka një model, me siguri, ku çdo herë që unë zgjedh leksion I, 496 00:23:46,115 --> 00:23:48,250 Unë duhet të gjeneruar një shumë të ngjashme faqe kërkim. 497 00:23:48,250 --> 00:23:50,375 Dhe kështu që ndoshta unë mund të levave fakti se me të vërtetë, 498 00:23:50,375 --> 00:23:53,060 ne qëllimisht numerikisht indeksuar lectures-- tonë 499 00:23:53,060 --> 00:23:55,290 në qoftë se unë mund të vënë edhe më shumë Fjalët në përgjigjen tuaj. 500 00:23:55,290 --> 00:23:59,984 Dhe çfarë është gjëja e vetme, me të vërtetë, kjo po ndryshon në mes të javës one-- 501 00:23:59,984 --> 00:24:02,400 dhe më lejoni të lëvizni poshtë kështu që është afërsisht në të njëjtin place-- 502 00:24:02,400 --> 00:24:05,480 kështu që këtu është java zero, afërsisht në krye. 503 00:24:05,480 --> 00:24:12,370 Këtu është një javë, java zero, një javë, java zero. 504 00:24:12,370 --> 00:24:14,370 OK, fjalë për fjalë në qoftë se ju e dini nuk ka program çfarëdo, 505 00:24:14,370 --> 00:24:16,286 kjo tani është vetëm si një model përputhen lojë. 506 00:24:16,286 --> 00:24:17,200 Pra, çfarë është e ndryshme? 507 00:24:17,200 --> 00:24:18,765 Po? 508 00:24:18,765 --> 00:24:19,777 >> Audienca: [padëgjueshme] 509 00:24:19,777 --> 00:24:22,360 DAVID Malan: Mirë, kështu titullin po ndryshon, ndonjëherë në mënyrë pak. 510 00:24:22,360 --> 00:24:24,010 Zero po ndodh, natyrisht, në një. 511 00:24:24,010 --> 00:24:25,570 E njëjta gjë po ndodh në tag H1. 512 00:24:25,570 --> 00:24:28,790 Dhe ne nuk e shohim fare atë aq lehtë, për shkak se URLs janë pak të gjatë. 513 00:24:28,790 --> 00:24:30,670 Por ato URL po ndryshojnë pak. 514 00:24:30,670 --> 00:24:34,490 >> Por ajo që nuk është ndryshuar është, guxoj thonë se, shumica e përmbajtjes së page-- 515 00:24:34,490 --> 00:24:38,530 HTML tag është e njëjtë, koka është njëjtë, titulli është pothuajse e njëjtë, 516 00:24:38,530 --> 00:24:40,659 trupi është i njëjtë, dhe pothuajse çdo gjë tjetër 517 00:24:40,659 --> 00:24:42,450 është e njëjtë me përjashtim këto tweaks pak. 518 00:24:42,450 --> 00:24:45,310 Pra, si mund të shkoni në lidhje me factoring disa nga këtë gjë? 519 00:24:45,310 --> 00:24:48,740 >> E pra më lejoni të propozojë saktësisht që në versionin e ardhshëm. 520 00:24:48,740 --> 00:24:53,890 Kështu që këtu në versionin e parë, unë kam saktë fotografi të njëjta, plus disa të tjerëve. 521 00:24:53,890 --> 00:24:59,730 Ja index.php-- dhe madje edhe në qoftë se ju kurrë nuk kam parë më parë PHP, 522 00:24:59,730 --> 00:25:05,511 çfarë jam unë ndoshta duke bërë për të zgjidhur këtë problem-- bazuar në atë që ju shihni këtu? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Po, është se një angazhim të vogël? 525 00:25:12,760 --> 00:25:13,450 Nuk ka? 526 00:25:13,450 --> 00:25:16,020 Po, shkojnë në. 527 00:25:16,020 --> 00:25:17,380 >> Audienca: [padëgjueshme] 528 00:25:17,380 --> 00:25:18,380 >> DAVID Malan: Po. 529 00:25:18,380 --> 00:25:20,380 >> Audienca: [padëgjueshme] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID Malan: Kam nevojë për ju për të flasin vetëm një Louder pak. 532 00:25:28,669 --> 00:25:31,084 >> Audienca: [padëgjueshme] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID Malan: OK, mirë. 535 00:25:36,660 --> 00:25:38,620 Dhe unë think-- ishte vështirë për të dëgjuar ju, duke filluar, por unë 536 00:25:38,620 --> 00:25:42,690 mendoj se ajo që ju jeni duke marrë në është se tags që ishin të zakonshme deri krye, 537 00:25:42,690 --> 00:25:47,710 dhe tags që ishin të zakonshme në fund, tani janë faktorë jashtë, 538 00:25:47,710 --> 00:25:51,140 ose të zbresë në atë fotografi? 539 00:25:51,140 --> 00:25:53,476 Header.php dhe footer.php-- dhe ne jemi duke shkuar 540 00:25:53,476 --> 00:25:55,600 për të bërë disa tweaks të adresuar shqetësimin ju vetëm 541 00:25:55,600 --> 00:25:59,370 ngritur mbi numrat ndryshimin, për shembull, në qoftë se unë të dëgjova saktë. 542 00:25:59,370 --> 00:26:02,060 >> Por kjo duket të jetë thelbi i saj. 543 00:26:02,060 --> 00:26:04,820 Nëse ka pasur një sasi të madhe të tepricë në majë të faqes, 544 00:26:04,820 --> 00:26:06,736 dhe një sasi e madhe e tepricë në fund, 545 00:26:06,736 --> 00:26:09,280 le të fjalë për fjalë vetëm pah dhe prerë atë përmbajtje jashtë, 546 00:26:09,280 --> 00:26:13,270 vënë atë në një file-- të veçantë vetëm si ideja e CSS, ku ne faktorizohen jashtë 547 00:26:13,270 --> 00:26:16,710 estetikë shumë të ngjashme, vënë atë në një skedar të veçantë dot PHP, 548 00:26:16,710 --> 00:26:20,340 përdorni kërkojnë mechanism-- që është si C include-- mprehtë që 549 00:26:20,340 --> 00:26:23,570 është në thelb si duke thënë se të shkoni kap përmbajtjen e header.php, 550 00:26:23,570 --> 00:26:25,370 dhe kopjoni dhe ngjisni ato këtu. 551 00:26:25,370 --> 00:26:29,490 >> Por çfarë kjo do të thotë është se tani në index.php, unë kam këto dy linja. 552 00:26:29,490 --> 00:26:32,130 Në lectures.php, edhe unë kanë këto dy linja. 553 00:26:32,130 --> 00:26:35,230 Në week0.php, edhe unë kanë këto dy linja. 554 00:26:35,230 --> 00:26:38,380 >> Deri tani, në qoftë se unë dua të ndryshojë titulli i të gjitha faqet e mia, 555 00:26:38,380 --> 00:26:40,530 ose unë dua të ndryshojë Struktura themelore, 556 00:26:40,530 --> 00:26:44,380 Unë mund të ndryshojë atë tani në vetëm një vend, ose dy kokë places-- dhe futboll, 557 00:26:44,380 --> 00:26:45,429 përkatësisht. 558 00:26:45,429 --> 00:26:47,970 Tani kodit të filluar të duken pak më i fshehtë, e drejtë? 559 00:26:47,970 --> 00:26:53,590 Por në qoftë se ju mendoni se çka faqja është doing-- në qoftë se unë jam duke kërkuar week0.php, 560 00:26:53,590 --> 00:26:59,880 ashtu si në hartimin mbi here-- kur week0.php kërkohet, 561 00:26:59,880 --> 00:27:00,960 cfare do te thote ajo? 562 00:27:00,960 --> 00:27:04,410 >> Fjalë për fjalë, kjo skedë është kërkohet nga shfletuesi. 563 00:27:04,410 --> 00:27:06,240 Web server-- alias 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- grabs kjo file, week0.php, dhe lexon 565 00:27:09,250 --> 00:27:10,780 kjo lart poshtë, majta në të djathtë. 566 00:27:10,780 --> 00:27:15,400 On line njëra, ajo menjëherë ballafaqohet pikëpyetje kllapa e hapur PHP, kërkojnë 567 00:27:15,400 --> 00:27:17,872 header dot PHP, dhe kështu çfarë PHP përkthyesi 568 00:27:17,872 --> 00:27:20,580 does-- që është ndërtuar në web server, sepse ne preconfigured 569 00:27:20,580 --> 00:27:24,580 kjo për ju, duke filluar ajo automatikisht shkon në header.php, kopjet e përmbajtjes, 570 00:27:24,580 --> 00:27:25,640 xhel ato këtu. 571 00:27:25,640 --> 00:27:28,790 >> Por pastaj takimeve përkthyes pikëpyetje kllapa të ngushtë, 572 00:27:28,790 --> 00:27:30,320 kështu që është bërë të gjithë të menduarit. 573 00:27:30,320 --> 00:27:33,400 Tani ajo vetëm verbërisht pështyn jashtë vijave dy deri në shtatë, 574 00:27:33,400 --> 00:27:35,240 sepse kjo është vetëm HTML papërpunuara. 575 00:27:35,240 --> 00:27:38,470 Merr të vijë tetë, dhe e bën atë njëjtën magji again-- hapjen e file, 576 00:27:38,470 --> 00:27:41,460 grabbing përmbajtjen, dhe duke kërkuar që ato apo pasting ato 577 00:27:41,460 --> 00:27:42,480 të drejtë atëherë ose atje. 578 00:27:42,480 --> 00:27:44,210 >> Por unë vetëm aludoi për një bug. 579 00:27:44,210 --> 00:27:48,610 Ky është një hap i pjesshëm prapa, sepse nëse ne shikojmë në header.php, 580 00:27:48,610 --> 00:27:50,850 Unë e kam lloj i prerë një qoshe. 581 00:27:50,850 --> 00:27:56,250 Çfarë tipar kam dhënë në mënyrë për të fituar këtë dizajn të argumentueshëm më të mirë? 582 00:27:56,250 --> 00:27:57,305 Po? 583 00:27:57,305 --> 00:27:58,180 Audienca: [padëgjueshme] 584 00:27:58,180 --> 00:28:00,570 DAVID Malan: Yeah, unë lloj i prerë një qoshe nontrivial. 585 00:28:00,570 --> 00:28:04,489 Ju theksoi se ajo që po ndryshonte ishte titulli, numri në titull, 586 00:28:04,489 --> 00:28:05,530 dhe numri në H1. 587 00:28:05,530 --> 00:28:08,170 Pra, zgjidhja ime ishte, në rregull, le të vetëm të riemërtoni faqe, 588 00:28:08,170 --> 00:28:10,080 dhe nuk merren me atë Problemi whatsoever. 589 00:28:10,080 --> 00:28:12,130 Pra, kjo është një pjesshme hap prapa për sigurt. 590 00:28:12,130 --> 00:28:14,300 >> Por ajo që vlen të përmendet këtu është se atë që kam bërë 591 00:28:14,300 --> 00:28:17,200 është faktorë ndryshe nga të gjitha gjëra të përbashkët. 592 00:28:17,200 --> 00:28:21,520 Dhe në footer.php, vini re unë faktorë nga të gjithë se, megjithëse më të vogël, 593 00:28:21,520 --> 00:28:22,790 gjëra të përbashkëta. 594 00:28:22,790 --> 00:28:26,070 Kështu që unë duhet të disi tani jetë në gjendje të të marrë një tjetër hap përpara, dhe të rregulluar 595 00:28:26,070 --> 00:28:27,160 që çështjet e titullit. 596 00:28:27,160 --> 00:28:28,180 Pra, le ta bëjmë atë. 597 00:28:28,180 --> 00:28:35,060 >> Më lejoni të shkoj në versionin tim të dytë këtu, e cila, përsëri, ka të njëjtat fotografi 598 00:28:35,060 --> 00:28:36,825 me përjashtim për një shtesë e re. 599 00:28:36,825 --> 00:28:38,950 Dhe kjo është një pak më shumë fjalëshumë, por le të shohim nëse ne 600 00:28:38,950 --> 00:28:40,550 mund të vë në lojë përveç se çfarë po ndodh këtu. 601 00:28:40,550 --> 00:28:45,370 Pra, në vend të kërkojnë header.php, dhe footer.php, 602 00:28:45,370 --> 00:28:50,180 I duket të jetë vetëm kërkojnë një file-- quajtur, natyrisht, helpers.php. 603 00:28:50,180 --> 00:28:52,560 Dhe më lejoni të përcaktojnë tani, çfarë është brenda helpers.php 604 00:28:52,560 --> 00:28:55,330 është vetëm një bandë e funksioneve të që kam shkruar, ashtu si më parë. 605 00:28:55,330 --> 00:28:57,550 Por unë e quajti atë helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Tani me sa duket, në Linja tre dhe 10, unë jam 607 00:29:00,370 --> 00:29:02,840 thirrje dy functions-- bëjnë header, footer bëjnë. 608 00:29:02,840 --> 00:29:05,040 Ata nuk vijnë me PHP, kam shkruar ato veten. 609 00:29:05,040 --> 00:29:07,880 Dhe kam vënë ato në helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Tani, ne kemi parë vetëm këtë sintaksë një herë, dhe kjo ishte super i shkurtër. 611 00:29:11,210 --> 00:29:15,330 Por kjo është me sa duket një argument që të merr header, funksioni. 612 00:29:15,330 --> 00:29:16,450 Pse unë e di se? 613 00:29:16,450 --> 00:29:18,522 E pra këtu është një ngushtë paren, këtu është një paren hapur. 614 00:29:18,522 --> 00:29:21,230 Dhe sigurisht, ashtu si në C, çdo gjë në mes këtyre kllapa 615 00:29:21,230 --> 00:29:23,350 është një input-- ose një Argumenti për funksionin. 616 00:29:23,350 --> 00:29:26,710 >> Çfarë është lloji dhënat e këtij argumenti, bazuar në atë që unë e kam theksuar? 617 00:29:26,710 --> 00:29:30,820 Çfarë bëjnë këto kllapa katrore tregojnë, bazuar në javën e kaluar? 618 00:29:30,820 --> 00:29:33,390 Po, kjo është një array-- veçanërisht një koleksion asociative. 619 00:29:33,390 --> 00:29:35,700 Dhe kjo sintaksë pa dyshim është një shokuar pak, 620 00:29:35,700 --> 00:29:38,860 por kjo është vetëm duke kaluar në një palë e vlerës kryesore. 621 00:29:38,860 --> 00:29:43,530 Çështja kryesore është, të japin kuotën e mbyll thonjëzat titullin, dhe vlera është CS50. 622 00:29:43,530 --> 00:29:46,220 >> Nëse do të kishte bërë këtë në C, ajo mund në vend 623 00:29:46,220 --> 00:29:49,400 duken më shumë si kjo, vetëm quote mbyll thonjëzat CS50-- 624 00:29:49,400 --> 00:29:52,460 ose në të vërtetë do të ishte dredhur formatimin e teksteve, ose diçka të tillë në C, 625 00:29:52,460 --> 00:29:55,580 ku çelësi është zero, dhe vlera është CS50. 626 00:29:55,580 --> 00:29:59,840 Por përsëri, në PHP, edhe pse Sintaksa është, përsëri, pak i çuditshëm, 627 00:29:59,840 --> 00:30:02,860 kjo ju mundëson për të kaluar në fjalë në vend të numrave 628 00:30:02,860 --> 00:30:05,120 që të lidhen çelësat me vlera. 629 00:30:05,120 --> 00:30:06,390 >> Pra, çfarë do thotë e gjithë kjo? 630 00:30:06,390 --> 00:30:09,750 Nëse unë shkoj në helpers.php, le të shohim në këtë funksion. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, në vend renderHeader është funksioni im, 632 00:30:13,620 --> 00:30:16,220 dhe unë e di se për shkak se unë shoh fjalen funksion këtu. 633 00:30:16,220 --> 00:30:19,450 Kjo është e re nga C-- atë me sa duket merr një argument të quajtur data-- 634 00:30:19,450 --> 00:30:22,400 por unë mund të ketë quajtur këtë asgjë, por unë e quajti atë të dhënave, 635 00:30:22,400 --> 00:30:25,090 vetëm të jetë një clean-- pak dhe vetëm të marrë me mend, sidomos 636 00:30:25,090 --> 00:30:28,173 në qoftë se ju keni programuar në disa të tjera gjuha më i lartë niveli i parë, diçka 637 00:30:28,173 --> 00:30:29,820 sipër C, konceptualisht. 638 00:30:29,820 --> 00:30:33,820 >> Çfarë e bën të barabartë parantezë të hapur kllapa katrore ndoshta do të thotë? 639 00:30:33,820 --> 00:30:35,540 Ose çfarë mund të thotë? 640 00:30:35,540 --> 00:30:39,660 Ne nuk e kemi parë këtë në C. Po? 641 00:30:39,660 --> 00:30:40,480 >> Një grup bosh. 642 00:30:40,480 --> 00:30:45,440 Në mënyrë të veçantë, kjo do të thotë se në qoftë se përdoruesi nuk e quan renderHeader 643 00:30:45,440 --> 00:30:49,340 me argument, unë jam ende duke shkuar të ketë një argument të quajtur të dhënave, 644 00:30:49,340 --> 00:30:52,327 por vlera e saj e parazgjedhur është do të jetë një grup i zbrazët. 645 00:30:52,327 --> 00:30:53,660 Pra, kjo është vetëm një lehtësi e bukur. 646 00:30:53,660 --> 00:30:56,493 Unë nuk duhet të çirrem në përdoruesit, ose thonë se ju përdorur funksionin tim gabuar. 647 00:30:56,493 --> 00:30:59,849 Unë vetëm mund të jep përdoruesit një default Vlera e, në qoftë se unë nuk e veçanërisht të kujdesit. 648 00:30:59,849 --> 00:31:01,890 Tani ky funksion, unë jam do të valë duart e mia në. 649 00:31:01,890 --> 00:31:07,620 Por ky funksion lejon ekstrakt na për të kaluar këto variabla në të dhëna 650 00:31:07,620 --> 00:31:10,360 në header.php në mënyrën e mëposhtme. 651 00:31:10,360 --> 00:31:13,100 Dhe kjo është pjesa e fundit, Unë mendoj se, të sintaksës shokuar. 652 00:31:13,100 --> 00:31:15,860 Këtu është versioni im i ri i header.php-- atë 653 00:31:15,860 --> 00:31:20,140 thoshte, fjalë për fjalë, të hapur kllapa titullin CS50, dhe se ishte ajo. 654 00:31:20,140 --> 00:31:21,766 Dhe e njëjta gjë për H1. 655 00:31:21,766 --> 00:31:24,310 >> Tani ajo duket thotë diçka goxha i shokuar. 656 00:31:24,310 --> 00:31:28,030 Dhe më lejoni të lehtësuar këtë për një moment si më poshtë. 657 00:31:28,030 --> 00:31:31,020 Kjo është ajo që unë kam ndryshuar titullin tim që të jetë. 658 00:31:31,020 --> 00:31:35,140 Megjithatë, ajo është duke marrë një pak i shëmtuar në kllapa vazhdimisht të hapura me PHP, 659 00:31:35,140 --> 00:31:36,610 dhe pastaj të përdorin funksionin e shtypura. 660 00:31:36,610 --> 00:31:40,810 Ajo rezulton se PHP ka një stenografi simbol për këtë, e cila është vetëm 661 00:31:40,810 --> 00:31:45,050 një shenjë të barabartë, i cili është teknikisht një Funksioni i quajtur echo në vend të shtypura, 662 00:31:45,050 --> 00:31:46,800 por kjo është e njëjta gjë, në mënyrë efektive. 663 00:31:46,800 --> 00:31:48,440 >> Që vetëm duket më mirë. 664 00:31:48,440 --> 00:31:50,510 Është vetëm një sintaktik sheqer, në qoftë se ju do të, 665 00:31:50,510 --> 00:31:52,260 që e bën kodi im duken pak më të mirë. 666 00:31:52,260 --> 00:31:54,010 Por kjo rezulton, dhe ne do të shohim këtë përsëri 667 00:31:54,010 --> 00:31:57,420 para se të gjatë, ne kemi për të thirrur këtë annoyingly funksion të gjatë të quajtur 668 00:31:57,420 --> 00:32:00,582 Gërma të veçanta HTML në PHP, sepse kjo rezulton 669 00:32:00,582 --> 00:32:02,790 ka inputeve të caktuara që përdoruesi mund të na japin, 670 00:32:02,790 --> 00:32:05,160 ose që përdoruesit mund të na japin, që do të thyejnë faqen tonë. 671 00:32:05,160 --> 00:32:07,035 Por ne do të shohim se ardhshme javë me JavaScript. 672 00:32:07,035 --> 00:32:10,740 Por tani për tani, vetëm e di se këtë fotografi, headers.php, thjesht 673 00:32:10,740 --> 00:32:13,040 merr titullin që Kam kaluar në, ajo të bëjë 674 00:32:13,040 --> 00:32:17,380 i sigurt se është e sigurt që të injektohet në një web faqe, dhe ajo pështyn atë si titull e mia 675 00:32:17,380 --> 00:32:18,640 dhe si H1 tim. 676 00:32:18,640 --> 00:32:24,440 Pra, nëse unë shkoj në këtë version tani, vini re se leksionet e ka titullin e saj prapa, 677 00:32:24,440 --> 00:32:28,630 Javën e zero ka titullin e saj prapa, dhe Në të vërtetë, HTML unë jam gjenerimin 678 00:32:28,630 --> 00:32:32,110 është identike me atë versionin tim të parë was-- përveç whitespace tim, 679 00:32:32,110 --> 00:32:35,150 sepse unë kam filluar formatimit kodi im pak ndryshe. 680 00:32:35,150 --> 00:32:38,082 Por unë e kam gjeneruar tërë kodi më intereson. 681 00:32:38,082 --> 00:32:39,790 Pra më lejoni të bëj një pauzë për vetëm një moment dhe të shohim 682 00:32:39,790 --> 00:32:42,200 në qoftë se ka ndonjë pyetje ose konfuzion unë kam krijuar. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Të gjithë të drejtë, kështu që le të kthesë pak e vështirë këtu 685 00:32:48,150 --> 00:32:51,500 për të parë nëse ka një mundësi për përmirësim. 686 00:32:51,500 --> 00:32:56,130 Helpers.php gjithashtu kishte kjo funksion, i quajtur renderFooter. 687 00:32:56,130 --> 00:32:59,652 Dhe çfarë është i rëndësishëm për renderHeader dhe renderFooter? 688 00:32:59,652 --> 00:33:02,610 Dhe përsëri, për qëllime të sotme, e di se funksioni ekstrakt është vetëm 689 00:33:02,610 --> 00:33:08,280 mënyra ime e argumenteve kalimin në header.php dhe footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Na vjen keq? 692 00:33:11,780 --> 00:33:13,056 >> Audienca: [padëgjueshme] 693 00:33:13,056 --> 00:33:15,180 DAVID Malan: Yeah, unë vetëm ndryshuar kërkojë linjë. 694 00:33:15,180 --> 00:33:19,410 Kështu që fjalë për fjalë, unë kam kryer mëkatin i kopjimi dhe pasting, përsëri. 695 00:33:19,410 --> 00:33:21,920 Kjo nuk është një numër i madh e linjave, por të vijnë on-- 696 00:33:21,920 --> 00:33:25,220 në qoftë se unë jam kopjimi dhe pasting gjithçka vetëm për të ndryshuar një fjalë të vogël, 697 00:33:25,220 --> 00:33:28,610 dhe një fjalë e vogël që tregon Alan jashtë është titulli këtu, kundrejt header këtu. 698 00:33:28,610 --> 00:33:30,670 Përndryshe, çdo gjë është identik, me përjashtim të: 699 00:33:30,670 --> 00:33:32,180 natyrisht, emrat funksioni së. 700 00:33:32,180 --> 00:33:33,690 Pra, çfarë mund të bëjmë më mirë? 701 00:33:33,690 --> 00:33:39,810 >> E pra më lejoni të hapur këtë version këtu, ku në helpers.php, 702 00:33:39,810 --> 00:33:42,300 pse nuk kam vetëm të marrë një pak më të zgjuar në lidhje me këtë? 703 00:33:42,300 --> 00:33:46,410 Shkruaj pak më e komplikuar Kodi, por e quajti atë e bëjnë? 704 00:33:46,410 --> 00:33:48,470 Pra, çfarë kam ndryshuar rrënjësisht? 705 00:33:48,470 --> 00:33:51,770 >> Ajo merr një argument now-- dy argumente, të dhënat ende. 706 00:33:51,770 --> 00:33:54,444 Dhe pastaj çfarë është e para Emri ndoshta duke u përdorur për të, 707 00:33:54,444 --> 00:33:55,860 bazuar në atë që ju jeni duke lexuar këtu? 708 00:33:55,860 --> 00:33:58,452 Edhe në qoftë se një pjesë e sintaksës është ende i ri. 709 00:33:58,452 --> 00:33:59,660 Çfarë është dollar shenjë template? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Na vjen keq? 712 00:34:03,016 --> 00:34:03,710 >> Audienca: Header apo futboll. 713 00:34:03,710 --> 00:34:04,510 >> DAVID Malan: Header apo futboll. 714 00:34:04,510 --> 00:34:07,134 Pra me sa duket, unë vendosa se në qoftë se e vetmja gjë që po ndryshon 715 00:34:07,134 --> 00:34:10,159 është ajo që unë dua template të print-- dhe nga template 716 00:34:10,159 --> 00:34:13,100 Unë do të thotë kjo është plan për Kodi që unë dua të prodhimit, 717 00:34:13,100 --> 00:34:16,350 por unë dua të plug në disa values-- kështu që në qoftë se është vetëm header 718 00:34:16,350 --> 00:34:20,440 ose futboll, pse nuk e kam parameterize që e quajnë shenjën e dollarit argumenti 719 00:34:20,440 --> 00:34:21,409 template? 720 00:34:21,409 --> 00:34:26,250 Dhe pastaj kjo sintaksë shokuar lejon mua për të krijuar një rrugë në një variabël këtu. 721 00:34:26,250 --> 00:34:28,030 >> Pra, rruga shenja e dollarit është një variabël. 722 00:34:28,030 --> 00:34:31,120 Çfarë e bën këtë sintaksë bëni, në qoftë se ju jeni të njohur? 723 00:34:31,120 --> 00:34:32,512 Po? 724 00:34:32,512 --> 00:34:34,065 >> Audienca: [padëgjueshme] 725 00:34:34,065 --> 00:34:34,940 DAVID Malan: Pikërisht. 726 00:34:34,940 --> 00:34:37,600 Nëse template është, të japin kuotën e mbyll thonjëzat, header, ose nëse template është, 727 00:34:37,600 --> 00:34:41,170 quote mbyll thonjëzat, futboll, se linja atje që unë e kam theksuar, linjë tetë, 728 00:34:41,170 --> 00:34:46,330 thjesht duke marrë këtë emër, si kokë, dhe concatenating me dot PHP. 729 00:34:46,330 --> 00:34:49,750 Pra, ne nuk kemi këtë operator në C. Kjo operator dot është 730 00:34:49,750 --> 00:34:54,520 një gjë e mahnitshme në PHP-- nëse ju jeni njohur me JavaScript ose Java, 731 00:34:54,520 --> 00:34:56,949 ju mund të përdorni plus nënshkruajë për të bërë varg. 732 00:34:56,949 --> 00:34:59,974 >> Në C, ajo është një dhimbje në neck-- dhe unë jam aq i keq, në p-set gjashtë, 733 00:34:59,974 --> 00:35:02,390 ju jeni do të duhet të bëni this-- është një dhimbje në qafës 734 00:35:02,390 --> 00:35:03,930 të lidh vargje. 735 00:35:03,930 --> 00:35:04,670 Përse? 736 00:35:04,670 --> 00:35:06,580 E pra, sepse në qoftë se ju keni marrë një varg që është kjo e gjatë, 737 00:35:06,580 --> 00:35:09,538 dhe një tjetër varg që është kjo e gjatë, ju nuk mund vetëm të plug ato së bashku. 738 00:35:09,538 --> 00:35:11,070 Çfarë bëni ju në vend të kësaj duhet të bëni në C? 739 00:35:11,070 --> 00:35:11,680 Po? 740 00:35:11,680 --> 00:35:12,380 >> Audienca: [padëgjueshme] 741 00:35:12,380 --> 00:35:15,090 >> DAVID Malan: Ju duhet të malloc kujtesës, ose përdorni një rrjet në rafte. 742 00:35:15,090 --> 00:35:17,214 Dhe në të vërtetë ju keni për të bëjnë që array mjaft e madhe 743 00:35:17,214 --> 00:35:20,940 të përshtaten kësaj plus kësaj, plus backslash zero. 744 00:35:20,940 --> 00:35:24,994 Pastaj lidh ata së bashku duke përdorur llokoçis mace apo me dorë me një për lak, 745 00:35:24,994 --> 00:35:26,160 ose ndonjë numër të teknikave. 746 00:35:26,160 --> 00:35:27,760 Dhe ne t'ju tregojë një çift në p-vendosur gjashtë. 747 00:35:27,760 --> 00:35:29,080 >> Kjo është një dhimbje në qafë. 748 00:35:29,080 --> 00:35:34,190 Dhe kjo është me të vërtetë ajo që dua të them në lidhje me kjo kundrejt this-- si C kundrejt PHP. 749 00:35:34,190 --> 00:35:36,870 Ju vetëm merr shumë më shumë funksionalitetin për të lira, 750 00:35:36,870 --> 00:35:39,030 kështu që ju mund të përqëndrohen, në mënyrë ideale, në fun 751 00:35:39,030 --> 00:35:41,190 pjesë e kodim, The projekt ju doni të zgjidhur, 752 00:35:41,190 --> 00:35:43,190 në vend se të nivelit të imtësira të ulët. 753 00:35:43,190 --> 00:35:49,840 >> Pra, kjo vetëm gjeneron header.php ose footer.php bazuar të cilën e kam thirrur. 754 00:35:49,840 --> 00:35:52,280 Dhe me të vërtetë në qoftë se unë shkoj në index.php, njoftimi 755 00:35:52,280 --> 00:35:56,230 të gjithë që e changed-- vend të thirrje bëjnë header ose bëjnë futboll, 756 00:35:56,230 --> 00:36:00,230 Unë jam duke e quajtur bëjë, e ndjekur nga emrin e template që unë dua të bëj. 757 00:36:00,230 --> 00:36:02,370 Dhe ju do të shihni këtë, gjithashtu, në problemin vendosur shtatë, 758 00:36:02,370 --> 00:36:05,530 ku ne të ju lejojnë të përdorni njëjtin funksion për të bërë bunches 759 00:36:05,530 --> 00:36:07,550 dhe bunches e faqeve të internetit të ndryshme. 760 00:36:07,550 --> 00:36:10,570 >> Pra, në vend se të banojë shumë shumë më tepër në ato details-- 761 00:36:10,570 --> 00:36:13,210 që ju do të shihni përsëri në grup Problemi seven-- le të shohim 762 00:36:13,210 --> 00:36:16,850 në tani fillimin e një zgjidhjeje të një problemi më interesante. 763 00:36:16,850 --> 00:36:19,310 Deri tani, asgjë ne kemi bërë ka të dhëna të ruajtura. 764 00:36:19,310 --> 00:36:22,920 Në fakt, e vetmja kohë që ne kemi ruajtur ndonjëherë diçka që ne kemi bërë në këtë klasë 765 00:36:22,920 --> 00:36:31,030 është kur ne kishim një demo shumë të thjeshtë pak kohë prapa, ku kemi përdorur skedarin IO në C, 766 00:36:31,030 --> 00:36:34,520 dhe unë mendoj se unë shtypur në emrin tim, dhe Emri i Hanës, dhe emri Maria, 767 00:36:34,520 --> 00:36:37,610 ose ndoshta emri i Andy, dhe atëherë ne shpëtuam një file-- CSV 768 00:36:37,610 --> 00:36:39,430 nda me presje vlerat file. 769 00:36:39,430 --> 00:36:43,530 >> Dhe kemi qenë fopen-- unë mendoj kemi përdorur fprintf si unë kujtoj, 770 00:36:43,530 --> 00:36:44,910 dhe ne shpëtuam një fotografi. 771 00:36:44,910 --> 00:36:46,920 Tani, kjo është më e thjeshtë Forma e një bazë të dhënash. 772 00:36:46,920 --> 00:36:50,230 Nëse ju doni të bëni një faqe interneti për Programit Frosh IMs, ku freshmen 773 00:36:50,230 --> 00:36:53,390 mund të regjistrohen për një sport, ju në mënyrë ideale doni të bëni diçka me këto të dhëna. 774 00:36:53,390 --> 00:36:55,370 Javën e kaluar, ne e bëmë asgjë me data-- ne vetëm i tha, 775 00:36:55,370 --> 00:36:56,661 ju jeni të regjistruar, jo të vërtetë. 776 00:36:56,661 --> 00:36:58,950 Apo ndoshta unë emailed Proctor, dhe se ishte ajo. 777 00:36:58,950 --> 00:37:02,110 >> Por do të ishte mirë nëse unë mund të jep që Proctor një CSV, 778 00:37:02,110 --> 00:37:03,340 si një file Excel. 779 00:37:03,340 --> 00:37:05,090 Ose më mirë akoma, ajo do të të jetë mirë në qoftë se unë mund të 780 00:37:05,090 --> 00:37:08,830 vënë emrat e këtyre përdoruesve dhe fjetore emrat dhe të gjithë që 781 00:37:08,830 --> 00:37:11,740 në një bazë të dhënash që vetëm jeton përgjithmonë, 782 00:37:11,740 --> 00:37:13,530 derisa unë zgjedh për të fshirë të dhënat. 783 00:37:13,530 --> 00:37:15,645 Një bazë të dhënash që ju lejon më të query informacion. 784 00:37:15,645 --> 00:37:18,070 Dhe me të vërtetë, kjo është ajo që është një bazë të dhënash. 785 00:37:18,070 --> 00:37:20,470 >> Ne kemi prezantuar sot, dhe javën e ardhshme, gjithashtu, një teknologji 786 00:37:20,470 --> 00:37:25,020 quajtur SQL-- një Query strukturuar Gjuha, e cila është një gjuhë tjetër. 787 00:37:25,020 --> 00:37:28,750 Kjo është në thelb një programimit gjuhës, por për bazat e të dhënave. 788 00:37:28,750 --> 00:37:31,760 Dhe një bazë të dhënash për tani, vetëm e mendojmë si një version super dashuroj 789 00:37:31,760 --> 00:37:35,710 e Microsoft Excel, apo Google Spreadsheets, ose numrat Apple. 790 00:37:35,710 --> 00:37:39,950 Kjo është zakonisht një program që lejon ju për të ruajtur një bandë e tërë e të dhënave 791 00:37:39,950 --> 00:37:43,960 në rreshta dhe kolona, ​​mjaft si ju mund të në Excel. 792 00:37:43,960 --> 00:37:47,100 >> Por ajo që është e bukur, veçanërisht në qoftë se ne nuk jemi super të njohur me Excel, 793 00:37:47,100 --> 00:37:52,040 çfarë SQL ju lejon të bëni është query këtë informacion duke shkruar rreshta të kodit 794 00:37:52,040 --> 00:37:55,220 ku ju mund të, edhe nëse tuaj bazës së të dhënave ka një milion rreshtave në të, 795 00:37:55,220 --> 00:37:57,190 ju mund të gjeni gjëra të super të shpejtë. 796 00:37:57,190 --> 00:37:59,950 Në fakt, Excel është veçanërisht keq në të dhënat grupe të mëdha. 797 00:37:59,950 --> 00:38:02,460 Dhe në fakt, deri në disa vjet më parë, doli 798 00:38:02,460 --> 00:38:08,890 Excel vetëm do të ju lejojnë të ruajtur deri në 65,535 rreshtat e data-- cilat 799 00:38:08,890 --> 00:38:12,020 tingëllon si një shumë, por në të kohë isha student grad, 800 00:38:12,020 --> 00:38:14,920 dhe Mbaj mend fikje mbi kjo sepse unë u gjeneruar 801 00:38:14,920 --> 00:38:17,900 Fotografi CSV për hulumtimet e mia dhe unë donte për të analizuar ato shpejt 802 00:38:17,900 --> 00:38:19,530 nga vetëm duke hapur në Excel. 803 00:38:19,530 --> 00:38:23,730 Sigurisht, kompjuteri im sapo u rrëzua, sepse kam pasur më shumë se 65.000 rreshtave. 804 00:38:23,730 --> 00:38:27,210 >> Po ku e gjeti 65535 ardhur nga? 805 00:38:27,210 --> 00:38:29,670 Çfarë po bënte Microsoft, me sa duket? 806 00:38:29,670 --> 00:38:32,430 Në qoftë se ju jeni të mirë me fuqitë tuaja të dy? 807 00:38:32,430 --> 00:38:37,160 Po, ata ishin duke përdorur një 16-bit Vlera të përfaqësojnë numrin rresht. 808 00:38:37,160 --> 00:38:41,310 Dhe dy të 16 është 65,536-- një minus, sepse në qoftë se ju 809 00:38:41,310 --> 00:38:45,414 Indeksi zero do të thotë se ishte Numri më i rreshtave unë mund të ketë. 810 00:38:45,414 --> 00:38:46,830 Dhe kjo ishte vetëm një vendim të projektimit. 811 00:38:46,830 --> 00:38:52,760 Duke kursyer 16 bit, ata më të kufizuara për 16.000 rreshtave, në vend të 4 miliardë, 812 00:38:52,760 --> 00:38:54,322 që unë mund të ketë pasur në mënyrë ideale. 813 00:38:54,322 --> 00:38:57,030 Por tani për tani, ne jemi duke shkuar për futur këtë më shumë në një kontekst web. 814 00:38:57,030 --> 00:39:00,390 Dhe çfarë është e bukur për SQL është se edhe edhe pse kjo është goxha i fuqishëm dhe mjaft 815 00:39:00,390 --> 00:39:04,050 sofistikuar, me të vërtetë vlon poshtë për të katër operacionet kryesore, katër 816 00:39:04,050 --> 00:39:08,060 funksionet kryesore, në qoftë se ju zgjidhni will--, për retrieving të dhënave, në kërkim 817 00:39:08,060 --> 00:39:12,510 për të dhënat; fshijë ose fshirje të të dhënave; futur për të shtuar rreshta për bazën e të dhënave; 818 00:39:12,510 --> 00:39:13,410 dhe përditësimin. 819 00:39:13,410 --> 00:39:17,010 Pra, nëse ju keni përdorur ndonjëherë Google Spreadsheets, Numrat Apple, Microsoft 820 00:39:17,010 --> 00:39:19,310 Excel, ju kanë ekzekutuar, ka shumë të ngjarë, gjithë 821 00:39:19,310 --> 00:39:22,530 e këtyre operacioneve, si një njeri nga vetëm duke përdorur tastierën tuaj dhe mouse-- 822 00:39:22,530 --> 00:39:26,050 futjen e të dhënave, duke përdorur sytë tuaj për të zgjedhur ose të kërkuar për të dhëna, 823 00:39:26,050 --> 00:39:28,360 ose të dhënat e rinovuar, ose fshini të dhënat. 824 00:39:28,360 --> 00:39:29,870 >> Pra, çfarë do të thotë kjo? 825 00:39:29,870 --> 00:39:34,300 E pra, para-instaluar në CS50 IDE është një program i quajtur MySQL. 826 00:39:34,300 --> 00:39:37,050 Kjo është një lirë, me burim të hapur bazë të dhënash që është super popullor. 827 00:39:37,050 --> 00:39:40,590 Facebook, për shembull, e përdor atë për këtë ditë, në mesin e mjete të tjera që ata përdorin. 828 00:39:40,590 --> 00:39:44,300 Dhe një shumë e faqeve shumë popullor përdorur në pjesën më të madhe, sepse është e shpejtë, 829 00:39:44,300 --> 00:39:45,230 dhe për shkak se është e lirë. 830 00:39:45,230 --> 00:39:46,820 Edhe pse sigurisht alternativa ekzistojnë. 831 00:39:46,820 --> 00:39:49,580 Dhe disa prej jush mund të njom me alternativa për projekte finale. 832 00:39:49,580 --> 00:39:55,330 >> Kjo është një screenshot, ndërkohë, i një mjet i web-bazuar quajtur phpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 Kjo është një rastësi që ky mjet i web-based është gjithashtu 834 00:39:58,260 --> 00:40:01,720 shkruar në një gjuhë, PHP, por ajo që është menduar për të bërë 835 00:40:01,720 --> 00:40:04,620 po na jep një web-bazuar ndërfaqe në një bazë të dhënash. 836 00:40:04,620 --> 00:40:07,180 Sepse MySQL zakonisht është diçka, historikisht, ju 837 00:40:07,180 --> 00:40:08,770 do të ndërveprojnë me vetëm me një command line. 838 00:40:08,770 --> 00:40:10,811 Dhe kjo do të jetë super i bezdisshëm dhe të errët që të ketë 839 00:40:10,811 --> 00:40:14,487 të tipit komandat tekstuale për të zgjedhur të dhënave, të futur të dhënat, dhe fshirjen e të dhënave. 840 00:40:14,487 --> 00:40:16,820 Pra, disa njerëz në internet shkroi një program web-bazuar 841 00:40:16,820 --> 00:40:18,900 që vetëm le të menaxhuar të dhënat në database tonë. 842 00:40:18,900 --> 00:40:23,040 Është si klikuar dyfishtë mbi Excel, dhe drejtimin e një version web-bazuar tij. 843 00:40:23,040 --> 00:40:26,370 >> Dhe çfarë ju jeni do të përdorni këtë për në fund të fundit javën e ardhshme, jo në p-set gjashtë, 844 00:40:26,370 --> 00:40:28,680 por është për të ndërtuar diçka quajtur CS50 Financave, e cila 845 00:40:28,680 --> 00:40:32,630 do të ketë një bazë të dhënash të përdoruesit, me emrat e përdoruesit dhe fjalëkalimet, 846 00:40:32,630 --> 00:40:34,860 dollar shumat që ata kanë në llogaritë e tyre bankare. 847 00:40:34,860 --> 00:40:37,280 Ajo do të jetë diçka që ju përdorni për të ruajtur 848 00:40:37,280 --> 00:40:39,910 simbolet dhe sasitë e stoqeve që përdoruesit 849 00:40:39,910 --> 00:40:42,567 kanë blerë duke përdorur virtuale dollarë që ju do të jepni atyre. 850 00:40:42,567 --> 00:40:44,900 Dhe ajo do të lejojë përdoruesit të regjistroheni për faqen tuaj, 851 00:40:44,900 --> 00:40:47,190 kështu që edhe miqtë tuaj mund të akorduar në për faqen tuaj te internetit 852 00:40:47,190 --> 00:40:49,360 dhe në fakt të regjistruar, hyni në, dhe luajnë rreth 853 00:40:49,360 --> 00:40:52,807 dhe të përpiqen për të gjetur fajin në kodin tuaj, dhe të përpiqen për të gjetur mete në faqen tuaj te internetit. 854 00:40:52,807 --> 00:40:55,390 Dhe ata thjesht do të regjistrohen nga duke shtuar veten e tyre, në mënyrë efektive, 855 00:40:55,390 --> 00:40:58,120 nëpërmjet kodit të ju shkruani në bazën e të dhënave tuaja. 856 00:40:58,120 --> 00:41:02,470 >> Për shembull, kjo është një screenshot i shpejtë e asaj që një bazë të dhënash mund të duket si. 857 00:41:02,470 --> 00:41:05,190 Ky ishte nga një prej solutions-- vitit të kaluar 858 00:41:05,190 --> 00:41:07,760 kjo është si një mini Excel fotografi, ruhen në database tonë, 859 00:41:07,760 --> 00:41:09,950 ruhet në këtë softuer të quajtur MySQL. 860 00:41:09,950 --> 00:41:13,260 Në anën e majtë, unë kam me sa duket jepet çdo përdorues një numër unik. 861 00:41:13,260 --> 00:41:16,200 Në kolonën e dytë, unë kam dhënë të gjithë një përdorues name-- timen 862 00:41:16,200 --> 00:41:16,880 midis tyre. 863 00:41:16,880 --> 00:41:21,430 Dhe në anën e djathtë, Unë e kam dhënë atyre një hash. 864 00:41:21,430 --> 00:41:26,760 >> Tani kjo është në fakt një fjalëkalim, por kjo nuk është një fjalëkalim në formë teksti. 865 00:41:26,760 --> 00:41:30,160 Kjo është një fjalëkalim Encrypted, në qoftë se ju do të, apo një fjalëkalim hash. 866 00:41:30,160 --> 00:41:32,000 Të cilat ne do të kthehen në para se të gjatë. 867 00:41:32,000 --> 00:41:34,340 >> Por në qoftë se ju keni lexuar ndonjëherë një artikull në lidhje se si 868 00:41:34,340 --> 00:41:37,950 fjalëkalimin tuaj në një bankë ose disa Faqja e internetit mund të ketë qenë i komprometuar, 869 00:41:37,950 --> 00:41:39,630 kjo në përgjithësi mund të thotë një nga dy gjëra. 870 00:41:39,630 --> 00:41:42,780 Pra, kjo është vetëm një fragment i gjashtë përdoruesve. 871 00:41:42,780 --> 00:41:45,460 Të gjithë ju tani mund ta kuptoj jashtë nëpërmjet thatë ose plasaritje 872 00:41:45,460 --> 00:41:47,690 çfarë fjalëkalime gjashtë persona tanë janë. 873 00:41:47,690 --> 00:41:49,720 Por në qoftë se ju keni marrë ndonjëherë një alarm apo një apologji 874 00:41:49,720 --> 00:41:52,803 nga një kompani ose faqen e internetit duke thënë, keq, një hacker hyri në database tonë, 875 00:41:52,803 --> 00:41:56,360 ju ndoshta duhet të ndryshojë tuaj fjalëkalimin, çfarë mund të thotë kjo? 876 00:41:56,360 --> 00:41:59,670 >> E pra, një, do të thotë Kompania ka qenë më moronic, 877 00:41:59,670 --> 00:42:03,630 dhe ka qenë ruajtjen fjalëkalimin tuaj në një kolonë si kjo, unencrypted. 878 00:42:03,630 --> 00:42:05,840 Që do të thotë kundërshtar, që vodhi bazën e të dhënave, 879 00:42:05,840 --> 00:42:07,440 fjalë për fjalë e di tuaj username dhe password. 880 00:42:07,440 --> 00:42:08,960 Ky është skenari më i keq i mundshëm. 881 00:42:08,960 --> 00:42:11,710 Dhe si ju do të shihni në p-grup shtatë, në mënyrë të lehtë për të shmangur. 882 00:42:11,710 --> 00:42:15,624 Nuk ka absolutisht asnjë justifikim për këtë formë e marrëzi në internet e sotme. 883 00:42:15,624 --> 00:42:18,540 Two-- dhe ne do të gjeni disa artikuj për të dëshmuar faktin që kjo ende 884 00:42:18,540 --> 00:42:21,710 ndodh, nonetheless-- dy, ndoshta kundërshtari 885 00:42:21,710 --> 00:42:23,840 vodhi këtë version të dhënave. 886 00:42:23,840 --> 00:42:27,110 E cila është ende lloj i keq, sepse tani ata e dinë se unë kam gjashtë konsumatorët, 887 00:42:27,110 --> 00:42:29,270 Unë e di emrat e përdoruesit nga këto gjashtë konsumatorë, 888 00:42:29,270 --> 00:42:32,910 dhe unë e di Encrypted versione, apo versionet sheshuar, 889 00:42:32,910 --> 00:42:34,340 i fjalëkalimeve këtyre gjashtë klientëve. 890 00:42:34,340 --> 00:42:37,010 Por ndonjë prej jush që mund të kam bërë [? Hacker 2?] 891 00:42:37,010 --> 00:42:41,150 ku ju plasaritur fjalëkalime, ose mori një vështrim në atë version të problemit 892 00:42:41,150 --> 00:42:46,280 vendosur, pse është ende një pak shqetësuese nëse kundërshtari e di hash tuaj 893 00:42:46,280 --> 00:42:47,435 fjalëkalimet? 894 00:42:47,435 --> 00:42:49,732 >> Audienca: Për shkak se ata mund të hyjnë të gjithë fjalorin 895 00:42:49,732 --> 00:42:50,690 në funksion hash. 896 00:42:50,690 --> 00:42:54,520 Dhe nëse fjalëkalimi juaj është një fjalor fjalë, [? ata vetëm mund të match--?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID Malan: Pikërisht, kundërshtari vetëm mund të shkruani kodin, si disa prej jush 898 00:42:57,640 --> 00:43:00,526 bëri për [? Hacker?] 2, ku ju iterate mbi 899 00:43:00,526 --> 00:43:03,400 të gjitha fjalët në fjalor, ose të gjitha kombinimet e mundshme të një 900 00:43:03,400 --> 00:43:06,610 përmes Z dhe një anë nine-- që tingëllon si një shumë, dhe kjo është. 901 00:43:06,610 --> 00:43:08,361 Por, për një kompjuter, kjo është goxha i mallkuar shpejt. 902 00:43:08,361 --> 00:43:10,610 Dhe në fakt, se ishte pika e [? Hacker 2,?] Ishte 903 00:43:10,610 --> 00:43:12,540 për të marrë gjëra që fjalë për fjalë duket si ky, 904 00:43:12,540 --> 00:43:14,900 dhe inxhinier kundërt atë që në fakt ishte. 905 00:43:14,900 --> 00:43:17,270 >> Pra, ne do të shohim se si ne mund të ruajë këtë mënyrë më efikase. 906 00:43:17,270 --> 00:43:20,210 Rezulton se, fatmirësisht në MySQL, aty do të jenë lloje të të dhënave. 907 00:43:20,210 --> 00:43:22,800 Dhe një nga pjesët zbavitëse në lidhje dizajn bazës së të dhënave, të jetë i sinqertë, 908 00:43:22,800 --> 00:43:25,810 është në të vërtetë të vendosë për veten tuaj si duhet të përfaqësojë të dhënat? 909 00:43:25,810 --> 00:43:29,630 Nëse ju përfaqësojnë një numër telefoni si një int, si një numër i madh, ose një kohë të gjatë? 910 00:43:29,630 --> 00:43:31,630 Apo ju në të vërtetë të bëjë atë si një sekuencë e karaktere? 911 00:43:31,630 --> 00:43:33,780 Dhe nuk mund të jetë shumë Ndikimet jo të parëndësishme të kësaj. 912 00:43:33,780 --> 00:43:36,714 >> Në të vërtetë, një nga të hershme, tregime fun destruktiv 913 00:43:36,714 --> 00:43:39,880 është kur Mark Zuckerberg u ndërtuar Facebook, ajo ishte shkruar fillimisht në, 914 00:43:39,880 --> 00:43:42,300 dhe ende është kryesisht shkruar në PHP. 915 00:43:42,300 --> 00:43:45,400 Dhe një nga sfidat më të mëdha ata u përballën me herët është shkallë. 916 00:43:45,400 --> 00:43:48,820 Kur ata mbahen duke shtuar shkollën pas shkollë pas shkollës, për të njohuri tim, 917 00:43:48,820 --> 00:43:51,639 një nga zgjidhjet origjinale ishte në thelb të kopjoni dhe ngjisni 918 00:43:51,639 --> 00:43:53,430 disa nga bazat e të dhënave dhe disa të kodit, 919 00:43:53,430 --> 00:43:55,346 në mënyrë që të Harvardit ishte kandidon në serverin e vet, 920 00:43:55,346 --> 00:43:56,995 dhe MIT ishte duke ecur në serverin e vet. 921 00:43:56,995 --> 00:43:59,120 Dhe për këtë arsye, për disa prej jush që mund të kujtojnë, 922 00:43:59,120 --> 00:44:01,510 ju nuk mund të ketë miq në rrjetet e tjera. 923 00:44:01,510 --> 00:44:05,050 >> Ju ndoshta nuk keni miq në MIT ose Harvardit 10 apo më shumë vjet më parë, 924 00:44:05,050 --> 00:44:07,467 por ju nuk mund të përfshijnë rrjete për këtë arsye pjesërisht. 925 00:44:07,467 --> 00:44:10,550 Dhe një nga sfidat më të mëdha për Mark dhe për kompanitë si Facebook 926 00:44:10,550 --> 00:44:13,460 është në të vërtetë trajtimi qindra dhe mijëra dhe miliona 927 00:44:13,460 --> 00:44:14,460 e kërkesave për sekondë. 928 00:44:14,460 --> 00:44:16,501 Pra, gjërat ne do të fillojmë duke folur për këtë javë 929 00:44:16,501 --> 00:44:19,860 janë me të vërtetë do të jetë i përshtatshëm për shkrim software të mirë, dhe gjerësisht 930 00:44:19,860 --> 00:44:23,040 mjete të suksesshme që mund të trajtojë shumë të përdoruesve. 931 00:44:23,040 --> 00:44:25,460 >> Pra, ne do të flasim për gjëra të si indeksimit dhe kërkim, 932 00:44:25,460 --> 00:44:26,910 por kjo është ajo për sot. 933 00:44:26,910 --> 00:44:28,780 Ne do të ju shohim për më shumë të mërkurën. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [MUSIC - "Seinfeld" TEMA] 936 00:44:33,902 --> 00:44:35,943 DAVID Malan: Ju mund të ajo, dhe zbres nga ajo. 937 00:44:35,943 --> 00:44:38,859 Dhe ju nuk duhet të rrinë me disa sasi të paracaktuara të kujtesës. 938 00:44:38,859 --> 00:44:40,580 E pra, çfarë po që do të quhet? 939 00:44:40,580 --> 00:44:42,369 >> SPEAKER 1: E pra, çfarë po ndodh? 940 00:44:42,369 --> 00:44:43,535 SPEAKER 2: Çfarë doni të thoni? 941 00:44:43,535 --> 00:44:44,451 Ai është duke i dhënë një leksion. 942 00:44:44,451 --> 00:44:47,650 DAVID Malan: Dhe ne mund të përdorim një Funksioni thirrje malloc për memory-- 943 00:44:47,650 --> 00:44:50,050 >> SPEAKER 1: Pse nuk janë duke lëvizur krahët e tij? 944 00:44:50,050 --> 00:44:52,450 >> SPEAKER 2: E pra that's-- ju e dini, kjo është normale. 945 00:44:52,450 --> 00:44:57,162 Është vetëm si ai e ka vetëm salcice mëdha varur atje. 946 00:44:57,162 --> 00:44:59,040 >> SPEAKER 1: Kjo është normale? 947 00:44:59,040 --> 00:45:03,096 >> SPEAKER 2: Po, unë mendoj se ne vetëm të supozojmë ai aksidentalisht 948 00:45:03,096 --> 00:45:06,840 zëvendësoi deodorant tij me superglue. 949 00:45:06,840 --> 00:45:07,608