1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [CHWARAE CERDDORIAETH] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> DAVID Malan: Mae hwn yn CS50, ac mae hyn yn ddechrau wythnos wyth. 5 00:00:13,350 --> 00:00:17,510 Ac rydym yn edrych ymlaen felly i groesawu yn ôl, syndod mawr, Ramon CS50 ei hun 6 00:00:17,510 --> 00:00:22,160 Galvan, uwch yn codi sydd wedi bod gwario'r sawl mis diwethaf 7 00:00:22,160 --> 00:00:26,190 ers mis Gorffennaf yn LA, yn Hollywood, yn llythrennol yn gweithio ar deledu newydd sbon 8 00:00:26,190 --> 00:00:31,930 sioe o'r enw Colony, y crëwr ohonynt mewn gwirionedd yn alum Harvard ei hun. 9 00:00:31,930 --> 00:00:36,610 Ac felly rydym yn gyffrous iawn i weld hyn ymddangosiad cyntaf ar y rhwydwaith UDA mis Ionawr. 10 00:00:36,610 --> 00:00:40,370 Felly aros diwnio ar gyfer hynny, ac ar gyfer mwy o Ramon ar gyfer yr wythnosau i ddod. 11 00:00:40,370 --> 00:00:42,550 >> Gwybod nawr bod y diwedd yn agos. 12 00:00:42,550 --> 00:00:47,400 A beth mae hyn yn golygu yw nad oes i gyd bod llawer ar ôl o CS50, drist i ddweud. 13 00:00:47,400 --> 00:00:49,400 Rydym wedi dim ond tri broblem setiau left-- mae ' 14 00:00:49,400 --> 00:00:52,510 problem a osodwyd six-- sydd yn eich dwylo yn awr neu yn fuan, 15 00:00:52,510 --> 00:00:56,080 sy'n ddyledus yn ddiweddarach yn y week-- i fod i bontio'r ein bydoedd o'r llinell orchymyn, lle 16 00:00:56,080 --> 00:00:59,450 rydym wedi treulio'r rhan fwyaf o'n hamser yn defnyddio C, a byd rhaglennu we. 17 00:00:59,450 --> 00:01:02,350 Wel, byddwch yn gweld llawer o syniadau fenthycwyd gan y gwaith archa bannod, 18 00:01:02,350 --> 00:01:04,560 ond hefyd llawer o newydd a syniadau diddorol 19 00:01:04,560 --> 00:01:07,929 sydd hefyd yn mynd i fod germane am cymwysiadau symudol ac ar gyfer technoleg, 20 00:01:07,929 --> 00:01:10,470 yn fwy cyffredinol, gyda yr ydych guys i gyd yn gyfarwydd dyddiau hyn 21 00:01:10,470 --> 00:01:12,090 ar gliniaduron a ffonau ac yn y blaen. 22 00:01:12,090 --> 00:01:15,220 >> Felly, byddwch yn rhoi ar waith nad tudalen ar y we, neu wefan 23 00:01:15,220 --> 00:01:17,620 fel y cyfryw, ond yn weinydd y we gwirioneddol. 24 00:01:17,620 --> 00:01:21,590 Byddwch yn ysgrifennu gweddill weinydd y we a ysgrifennwyd yn C, y mae ei bwrpas mewn bywyd 25 00:01:21,590 --> 00:01:25,410 yw derbyn ceisiadau HTTP, y rhai amlenni rhithwir byddwn yn cadw siarad 26 00:01:25,410 --> 00:01:29,780 am, ac mewn gwirionedd yn ymateb naill ai gyda rhai content-- statig fel dot HTML 27 00:01:29,780 --> 00:01:32,310 ffeil, neu JPEG dot neu unrhyw nifer arall o ffeiliau, 28 00:01:32,310 --> 00:01:37,070 neu hyd yn oed ffeil PHP lle eich gwe gweinydd yn mynd i ddehongli bod PHP 29 00:01:37,070 --> 00:01:38,332 cod a boeri allan y canlyniadau. 30 00:01:38,332 --> 00:01:40,540 Nawr, rydym wedi darparu chi gyda cryn dipyn o fframwaith 31 00:01:40,540 --> 00:01:43,100 i iddo-- yn wir y cod dosbarthu ar gyfer problem 32 00:01:43,100 --> 00:01:47,496 osod chwech yn fwy na 1,000 llinellau hir, a llawer o sydd yn sylwadau, i fod yn fair-- 33 00:01:47,496 --> 00:01:49,370 ond mae hyn yn ei olygu mewn gwirionedd i fod yn gyfle 34 00:01:49,370 --> 00:01:52,570 i gael eich dwylo budr deifio yn brosiect eithaf mawr 35 00:01:52,570 --> 00:01:55,570 yr ydym wedi benodol iawn cerfio allan darnau o ar eich rhan, 36 00:01:55,570 --> 00:01:59,046 fel bod yn wir pan fyddwch yn gadael CS50 a mynd i mewn i'r byd go iawn o raglenni 37 00:01:59,046 --> 00:02:00,920 ac yn awyddus i dabble mewn unrhyw nifer o brosiectau, 38 00:02:00,920 --> 00:02:03,253 bydd yn rhaid i llawer mwy i chi cysur lawrlwytho rhywfaint o ffynhonnell 39 00:02:03,253 --> 00:02:05,020 cod, mae rhai ffynhonnell agored prosiect ar y we, 40 00:02:05,020 --> 00:02:08,174 a deifio mewn a gwneud newidiadau yr ydych yn gweld yn dda. 41 00:02:08,174 --> 00:02:11,340 Problem yn gosod saith yn mynd i fod am gwneud eich cais ar y we eich hun 42 00:02:11,340 --> 00:02:14,140 sy'n cymryd mewnbwn deinamig a yn cynhyrchu allbwn deinamig yn y ffurflen 43 00:02:14,140 --> 00:02:16,920 gwefan etrade.com-debyg. 44 00:02:16,920 --> 00:02:20,800 Ac broblem a osodwyd Bydd wyth canolbwyntio ar eto iaith arall a elwir yn JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Yn y cyfamser, y rownd derfynol prosiect ar y gorwel. 46 00:02:24,170 --> 00:02:26,800 Mae'r hyn a elwir yn cyn-cais yn ddyledus wythnos o heddiw ymlaen. 47 00:02:26,800 --> 00:02:29,930 Cyn-proposal-- unol â'r fanyleb, sydd ar website-- CS50 yn 48 00:02:29,930 --> 00:02:33,260 yn gyfle eithaf achlysurol ar gyfer i chi anfon e-bost 'n bert gryno 49 00:02:33,260 --> 00:02:35,170 at eich cyd-addysgu dim ond i roi gwybod iddo 50 00:02:35,170 --> 00:02:38,250 neu hi o'r hyn yr ydych yn meddwl, i defnyddiwch ef neu hi fel seinfwrdd. 51 00:02:38,250 --> 00:02:40,980 Ac mae ganddynt bwyll check-- p'un a ydych yn meddwl 52 00:02:40,980 --> 00:02:43,210 am brathu i ffwrdd yn rhy llawer neu efallai rhy ychydig, 53 00:02:43,210 --> 00:02:46,480 neu efallai nad oes gennych syniad o gwbl ac yn awyddus i gymryd rhan mewn sgwrs. 54 00:02:46,480 --> 00:02:48,480 >> Wedi hynny yn gynnig ac adroddiad statws, 55 00:02:48,480 --> 00:02:51,860 y CS50 hackathon hyn a elwir yma yn Caergrawnt ar gyfer myfyrwyr Harvard a Yale 56 00:02:51,860 --> 00:02:52,362 fel ei gilydd. 57 00:02:52,362 --> 00:02:54,320 Mae'r prosiect terfynol yn gweithredu wedyn ddyledus. 58 00:02:54,320 --> 00:02:59,290 Ac yna ffair CS50 yma, yng Nghaergrawnt, yn ogystal ag un arall yn New Haven. 59 00:02:59,290 --> 00:03:02,500 Felly y cynnig, yn edrych ar y wefan ar gyfer manylion hynny. 60 00:03:02,500 --> 00:03:06,530 >> Ond yn fwy cyffrous, hefyd, yn cyfle i gael eich dwylo budr, 61 00:03:06,530 --> 00:03:09,350 a bod eich meddyliau yn agored i gyfanrwydd criw o bynciau ac offer 62 00:03:09,350 --> 00:03:12,920 a'r technegau sy'n ategol i maes llafur craidd y cwrs, 63 00:03:12,920 --> 00:03:14,810 ond cysylltiedig serch hynny. 64 00:03:14,810 --> 00:03:18,400 A hefyd cerrig camu wych gwneud prosiectau terfynol 'n sylweddol oera sy'n 65 00:03:18,400 --> 00:03:22,020 mynd ymhell y tu hwnt ddeunydd rydym wedi cynnwys yn ffurfiol yn broblem yn gosod neu yn y ddarlith. 66 00:03:22,020 --> 00:03:24,446 Felly ewch at wefan CS50 ar gyfer y roster cyfan o seminarau. 67 00:03:24,446 --> 00:03:26,070 Os nad ydych yn cofrestru eto, mae hynny'n iawn. 68 00:03:26,070 --> 00:03:29,860 Mynd yn ei flaen ac yn ymuno o hyd ac fe fyddwn ni'n dilyn i fyny gyda dolen ffrydio byw, 69 00:03:29,860 --> 00:03:31,844 y dydd a'r amser ar y wefan. 70 00:03:31,844 --> 00:03:33,760 A bydd popeth yn cofnodi a rhoi ar-lein 71 00:03:33,760 --> 00:03:35,800 os na allwch wneud y dyddiau ac amseroedd penodol. 72 00:03:35,800 --> 00:03:39,380 >> O ran yr hyn sydd o'n blaenau thereafter-- dda, wrth gwrs, mae y hackathon CS50. 73 00:03:39,380 --> 00:03:43,560 Mae'r llun, galw i gof, o wythnos sero cymryd tua 4 AC mewn un noson yn ystod y blynyddoedd diwethaf. 74 00:03:43,560 --> 00:03:46,900 Mae'r ffair CS50, sydd unwaith eto yn cael ei gynnal yn y ddwy ddinas. 75 00:03:46,900 --> 00:03:49,760 Ac yna, dim ond i blannu'r hadau, er ein bod yn dal i 76 00:03:49,760 --> 00:03:54,080 cael y mis a mwy ar ôl o semester, os hoffech chi ymuno â dysgu CS50 ei hun 77 00:03:54,080 --> 00:03:56,770 staff, ac rydych am ddechrau meddwl am ddod yn CA, 78 00:03:56,770 --> 00:03:59,550 neu gyd-addysgu, yn gwybod bod byddwn yn dechrau siarad mwy am hynny 79 00:03:59,550 --> 00:04:00,630 yn ddiweddarach semester hwn. 80 00:04:00,630 --> 00:04:03,470 Ond yn y llun yma yw y rhan fwyaf o'r tîm eleni. 81 00:04:03,470 --> 00:04:06,950 >> Ac felly, PHP-- ac roeddwn i mor drist yr wythnos diwethaf fod [? Allyse?] Garedig 82 00:04:06,950 --> 00:04:09,370 mynd i'r ymdrech o gael ni hyn props hyfryd 83 00:04:09,370 --> 00:04:11,720 nad oeddwn yn y pen draw gan ddefnyddio, felly mae'n gwirionedd dim ond yn edrych fath o dwp 84 00:04:11,720 --> 00:04:15,160 ein bod wedi rhaw eistedd yma i gyd Diwrnod ddydd Mercher diwethaf, ac ychydig llwy. 85 00:04:15,160 --> 00:04:17,709 Ond roedd hyn yn fy metaphoric ffordd o geisio paentio 86 00:04:17,709 --> 00:04:21,600 y darlun o pam ein bod yn trawsnewid o C i iaith fel PHP. 87 00:04:21,600 --> 00:04:25,480 A gallai yr un peth yn wir am unrhyw nifer o Java languages--, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 neu tusw o others-- ond tra yn C, er enghraifft, ysgrifennu rhaglen yn C 89 00:04:31,270 --> 00:04:34,050 Efallai fod fel arfer yn cymryd llwy fel hyn 90 00:04:34,050 --> 00:04:36,770 a chloddio twll yn y ddaear, yn y tywod neu'r baw. 91 00:04:36,770 --> 00:04:39,770 PHP yn caniatáu i chi gymryd llawer brathiadau mwy allan o'r broblem, 92 00:04:39,770 --> 00:04:42,842 ysgrifennu llawer llai cod ddefnyddio offeryn llawer llai, 93 00:04:42,842 --> 00:04:45,050 oherwydd mae cymaint mwy ymarferoldeb pieced yn. 94 00:04:45,050 --> 00:04:47,633 >> Yn awr, pe baem yn wir yn ddramatig, byddem yn rywbeth i'w rhaw 95 00:04:47,633 --> 00:04:48,760 yma, ond felly y bo. 96 00:04:48,760 --> 00:04:51,370 Yn y cyfamser, y llall trosiad daethom o hyd i 97 00:04:51,370 --> 00:04:53,770 yw, wrth gwrs, fe allech chi yn defnyddio rhywbeth fel wrench 98 00:04:53,770 --> 00:04:56,610 i morthwyl mewn rhywbeth fel hoelen. 99 00:04:56,610 --> 00:04:58,980 Ond wrth gwrs, yr hawl offeryn i ddefnydd yn mynd 100 00:04:58,980 --> 00:05:01,360 i fod nid yn gymaint y iaith o'r enw C-- 101 00:05:01,360 --> 00:05:03,590 ac yn awr Fi jyst yn flin [? Sanders,?] Yn ôl pob tebyg, 102 00:05:03,590 --> 00:05:07,890 byddwn yn atgyweiria bod later-- felly yr offeryn hawl i ddefnyddio yn aml 103 00:05:07,890 --> 00:05:09,640 Nid yn mynd i fod yr offeryn lefel isaf. 104 00:05:09,640 --> 00:05:13,720 Ac yn wir, nid yw C yn iaith y y rhan fwyaf ohonoch yn mynd erioed i'w defnyddio, 105 00:05:13,720 --> 00:05:15,590 neu a ddylai ddefnyddio reidrwydd eto. 106 00:05:15,590 --> 00:05:18,350 >> Ac yn wir, ychydig secret-- yr unig dro 107 00:05:18,350 --> 00:05:23,160 Rwy'n defnyddio fy hun C 'n bert lawer rhwng Medi a Rhagfyr bob cwymp 108 00:05:23,160 --> 00:05:23,870 semester. 109 00:05:23,870 --> 00:05:25,790 A dyna oherwydd ein ei ddefnyddio fel cyfle 110 00:05:25,790 --> 00:05:27,852 i ddysgu hanfodion o raglennu, 111 00:05:27,852 --> 00:05:29,810 a gydag ef chyfrifiadur hanfodion gwyddoniaeth, data 112 00:05:29,810 --> 00:05:32,435 strwythurau, algorithmau a like-- ond yn gyflym iawn byddwch yn 113 00:05:32,435 --> 00:05:35,010 gweld nawr bod y gystrawen ac mae'r syniadau sy'n sail i C 114 00:05:35,010 --> 00:05:37,530 mor rhyfeddol drosglwyddadwy i mwy modern 115 00:05:37,530 --> 00:05:41,130 ieithoedd lefel uwch, fel PHP a Python a Perl a Java 116 00:05:41,130 --> 00:05:46,750 ac Amcan-C-- mewn gwirionedd, nid yn gymaint Amcan-C-- ond Swift, mae'r rhain yn fwy newydd 117 00:05:46,750 --> 00:05:50,010 ieithoedd y mae llawer ohonoch fydd Yna dabble gyda phrosiect terfynol i chi. 118 00:05:50,010 --> 00:05:55,070 >> Felly, heb ado pellach, gadewch i ni mewn gwirionedd yn defnyddio PHP i ddatrys rhai problemau. 119 00:05:55,070 --> 00:06:00,230 Dwyn i gof bod yn gynnar, olaf wythnos, rydym yn unig a ddefnyddir CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 rydym yn ysgrifennu rhaglen bach Dinky mai dim ond dweud, "Helo byd." 121 00:06:02,990 --> 00:06:05,680 Ac yna yr wyf yn achub mewn ffeil o'r enw hello.php. 122 00:06:05,680 --> 00:06:07,280 Ac yna yr wyf yn rhedeg y gorchymyn yma. 123 00:06:07,280 --> 00:06:08,080 >> A pham? 124 00:06:08,080 --> 00:06:09,900 Yn Saesneg, beth sy'n mynd ymlaen fan hyn? 125 00:06:09,900 --> 00:06:12,760 Beth oedd yr wyf yn ei wneud pan Rhedais gorchymyn hwn? 126 00:06:12,760 --> 00:06:13,405 >> Yeah? 127 00:06:13,405 --> 00:06:16,572 >> GYNULLEIDFA: Mae rhywfaint o PHP swyddogaeth sy'n darllen beth sy'n in-- deall bod. 128 00:06:16,572 --> 00:06:19,696 DAVID Malan: Da, mae rhywfaint o swyddogaeth PHP-- a gadewch i mi fod yn fwy penodol, 129 00:06:19,696 --> 00:06:21,810 mae rhaglen o'r enw PHP, a.k.a. 130 00:06:21,810 --> 00:06:25,872 Cyfieithydd ar y pryd, sy'n deall cynnwys y hello.php, 131 00:06:25,872 --> 00:06:27,830 ac mae'n ei ddehongli top i gwaelod, o'r chwith i'r dde, 132 00:06:27,830 --> 00:06:29,590 ac yn gwneud yr hyn gorchmynion rhai ddweud. 133 00:06:29,590 --> 00:06:33,320 Mae'r gorchmynion yn hello.php, wrth gwrs, yn unig yw ffynhonnell code-- swyddogaethau 134 00:06:33,320 --> 00:06:35,750 a newidynnau a dolenni a yn y blaen, yr ydym ni ein hunain 135 00:06:35,750 --> 00:06:37,460 wedi dechrau ysgrifennu mewn PHP. 136 00:06:37,460 --> 00:06:40,240 >> Ond yn wahanol i C, sef iaith llunio, 137 00:06:40,240 --> 00:06:42,810 PHP 'ch jyst ysgrifennu, a'i redeg. 138 00:06:42,810 --> 00:06:46,420 Allwch chi hepgor y cam middleman o trosi i zeros a rhai, 139 00:06:46,420 --> 00:06:47,790 ac yna rhedeg. 140 00:06:47,790 --> 00:06:50,510 Ac felly beth yw upside o hyn? 141 00:06:50,510 --> 00:06:52,690 Pam yr ydym yn sgipio y cam? 142 00:06:52,690 --> 00:06:55,238 Pam mae ieithoedd mwy modern yn tueddu i hepgor y cam hwn? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Beth oedd y budd-dal? 145 00:07:01,220 --> 00:07:02,080 >> Neu dim ond reddfol? 146 00:07:02,080 --> 00:07:04,200 Hyd yn oed os nad ydym i wedi ysgrifennu llawer PHP o'r blaen, 147 00:07:04,200 --> 00:07:07,210 beth sy'n fuddiol am beidio â llunio eich cod yn eich barn chi? 148 00:07:07,210 --> 00:07:08,520 Na? 149 00:07:08,520 --> 00:07:09,610 Ddim yn ymrwymo? 150 00:07:09,610 --> 00:07:11,350 Crafu eich pen? 151 00:07:11,350 --> 00:07:12,614 Yeah. 152 00:07:12,614 --> 00:07:13,600 >> GYNULLEIDFA: Mwy deinamig. 153 00:07:13,600 --> 00:07:14,683 >> DAVID Malan: Mwy deinamig? 154 00:07:14,683 --> 00:07:16,032 Beth wyt ti'n meddwl? 155 00:07:16,032 --> 00:07:17,000 >> GYNULLEIDFA: [Anghlywadwy] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID Malan: Iawn, da, felly yn dibynnu ar y mewnbwn, 158 00:07:22,390 --> 00:07:23,470 Nid oes rhaid i chi lunio ei bob tro. 159 00:07:23,470 --> 00:07:24,990 Ac y mae mewn gwirionedd fel syml â that-- beth 160 00:07:24,990 --> 00:07:26,990 yw'r pwynt o barhau i lunio eich cod? 161 00:07:26,990 --> 00:07:29,480 Mae hyn yn unig yn gam sy'n making-- mae hyn yn ei gwneud yn ofynnol, 162 00:07:29,480 --> 00:07:31,900 am y gorffennol nifer o wythnosau, dwywaith cymaint o gamau 163 00:07:31,900 --> 00:07:33,820 fel dim ond yn rhedeg eich rhaglen. 164 00:07:33,820 --> 00:07:36,940 Mae wedi bod yn ddefnyddiol o ran gweld bod chi gweld rhai negeseuon gwall ac yn y blaen, 165 00:07:36,940 --> 00:07:38,720 ond mae'n dal i fod yn unig yn gam blino. 166 00:07:38,720 --> 00:07:41,810 >> Ac felly rhaglenwyr gwireddu dros gyfnod o amser, beth am yr ydym yn 167 00:07:41,810 --> 00:07:45,327 dechrau ysgrifennu ieithoedd nad ydynt Mae angen y cam eithaf mecanyddol, 168 00:07:45,327 --> 00:07:47,160 fel y gall dim ond ysgrifennu eich cod a'i redeg. 169 00:07:47,160 --> 00:07:48,920 Ond beth oedd y pris ein bod yn welsom talu 170 00:07:48,920 --> 00:07:50,910 yr wythnos diwethaf, gydag un enghraifft benodol? 171 00:07:50,910 --> 00:07:51,650 Do? 172 00:07:51,650 --> 00:07:52,370 >> Cyflymder. 173 00:07:52,370 --> 00:07:54,690 Felly [? beth sydd] dehonglwyr? ychydig yn arafach, 174 00:07:54,690 --> 00:07:57,330 yn y zeros a rhai yn neis ac yn gyflym ar gyfer cyfrifiadur 175 00:07:57,330 --> 00:08:00,070 i ddeall, gan fod y Intel CPU, neu beth bynnag ydyw, 176 00:08:00,070 --> 00:08:03,070 dim ond yn deall beth sy'n mynd ymlaen gyda phatrymau rhai o ddarnau. 177 00:08:03,070 --> 00:08:05,370 Tra cyfieithydd yn rhaglen sydd wir yn 178 00:08:05,370 --> 00:08:07,980 Mae i ddarllen y ffynhonnell ASCII cod eich bod wedi ysgrifennu, 179 00:08:07,980 --> 00:08:12,700 ac yn ei addasu, fel petai, neu chyfrif i maes sut y mae'n trosi yn y pen draw 180 00:08:12,700 --> 00:08:13,525 i zeros a rhai. 181 00:08:13,525 --> 00:08:15,650 Felly mae'n cymryd dim ond ychydig dipyn o daro perfformiad. 182 00:08:15,650 --> 00:08:16,858 Felly mae'n dipyn o fasnach-off. 183 00:08:16,858 --> 00:08:21,570 Nawr, os ydym yn gwneud hyn dros yma, gadewch i mi mynd yn ei flaen a gwneud esiampl fel a ganlyn. 184 00:08:21,570 --> 00:08:26,610 Os byddaf yn mynd i mewn yma, ffeiliau newydd, dw i'n mynd i achub mae hyn eto yn hello.php. 185 00:08:26,610 --> 00:08:31,450 Ac yn awr rwy'n mynd i fynd yn ei flaen a dweud, "print helo byd" - 186 00:08:31,450 --> 00:08:35,130 a dwyn i gof y gallaf eu defnyddio print, nid wyf yn ei wneud gorfod defnyddio print-F. Ac yn awr i lawr yma, 187 00:08:35,130 --> 00:08:42,039 os wyf yn gwneud PHP o hello.php, yr wyf yn huh-- nid yw'n ymddangos i wedi dehongli iddo. 188 00:08:42,039 --> 00:08:43,412 Beth wnes i ei wneud o'i le? 189 00:08:43,412 --> 00:08:44,710 >> GYNULLEIDFA: Y breichledau onglog. 190 00:08:44,710 --> 00:08:47,015 >> DAVID Malan: Yeah, mae angen i chi y top ongl braced fyny. 191 00:08:47,015 --> 00:08:49,390 Felly mae'n fath o blino, ond chi ddod i arfer ag ef yn gyflym. 192 00:08:49,390 --> 00:08:53,500 Os oes rhaid i mi ysgrifennu cod PHP, yr wyf yn Yn gyffredinol, mae angen i ddweud wrth y rhaglen, 193 00:08:53,500 --> 00:08:56,950 neu ddweud wrth y cyfieithydd, hey PHP, yma hon rhywfaint cod PHP. 194 00:08:56,950 --> 00:09:00,440 Ac yna ar gyfer mesur da, fyddwn i gau'r hyn nid gyda hyn, ond yn hytrach 195 00:09:00,440 --> 00:09:03,740 gyda chwestiwn dim ond ongl marc braced, fel bod yn awr i lawr yma, 196 00:09:03,740 --> 00:09:06,840 os wyf yn rhedeg hyn eto, yn awr Yr wyf yn cael y canlyniad a ddymunir. 197 00:09:06,840 --> 00:09:09,820 >> Nawr, gadewch i ni wneud bychan Optimization, yn union fel eich bod wedi ei weld o'r blaen. 198 00:09:09,820 --> 00:09:14,040 Mae hyn yn fath o blino fy mod rhaid i redeg hello.php gofod PHP, 199 00:09:14,040 --> 00:09:16,060 oherwydd yn y gorffennol yr wyf yn Gallai dim ond ysgrifennu dot slaes 200 00:09:16,060 --> 00:09:17,560 enw rhaglen, sydd yn fath o 'n glws. 201 00:09:17,560 --> 00:09:19,420 Mae'n fath o brofiad y defnyddiwr yn well. 202 00:09:19,420 --> 00:09:24,160 >> Felly, mae'n troi allan y gallwch wneud hyn yn PHP gyda'r wyf canlynol-- 203 00:09:24,160 --> 00:09:28,780 Gall defnyddio hyn yn deg cryptig incantation ar y brig yma, 204 00:09:28,780 --> 00:09:31,740 a elwir yn gyffredinol yn shebang, lle mae hyn yn symbol miniog, 205 00:09:31,740 --> 00:09:34,270 fel petai, mae hwn yn bang neu ebychnod. 206 00:09:34,270 --> 00:09:38,490 Ac mae hyn yn awr yw y llwybr i raglen ar system Linux nodweddiadol sy'n 207 00:09:38,490 --> 00:09:41,500 yn cael ei alw'n amgylchedd, neu env. 208 00:09:41,500 --> 00:09:43,920 Ac mae hyn line-- stori hir un llinell short-- yn unig 209 00:09:43,920 --> 00:09:48,710 yn dweud, hey cyfrifiadur, dod o hyd i'r PHP cyfieithydd i mi yn yr amgylchedd, 210 00:09:48,710 --> 00:09:50,610 yn ei chael yn yn eich cof, fel petai. 211 00:09:50,610 --> 00:09:54,130 >> A beth braf yn awr, yn cael ei os byddaf yn mynd i lawr fan hyn, 212 00:09:54,130 --> 00:09:57,750 Gallaf ei wneud dot slaes helo dot php, or-- hmm. 213 00:09:57,750 --> 00:09:59,000 Caniatâd gwadu. 214 00:09:59,000 --> 00:10:02,350 Wel, byddwch yn gweld hyd yn oed mwy o hyn gyda phroblem yn gosod saith, os ydych 215 00:10:02,350 --> 00:10:04,060 wedi gwneud hynny'n barod, gyda chaniatâd. 216 00:10:04,060 --> 00:10:06,510 Mae'n ymddangos bod angen i mi i weithredu gorchymyn yma 217 00:10:06,510 --> 00:10:10,779 Gelwir [? chamod?] ar gyfer newid mode-- yn fantais x hello.php. 218 00:10:10,779 --> 00:10:13,820 Angen i mi [Anghlywadwy] yr un yma ychwanegol cam sydd yn dweud fy nghyfrifiadur, 219 00:10:13,820 --> 00:10:16,400 gwneud gweithredadwy hello.php. 220 00:10:16,400 --> 00:10:21,310 Ac yn awr gwylio beth happens-- dot slaes hello.php, 'i jyst yn rhedeg. 221 00:10:21,310 --> 00:10:23,310 Nid oes angen imi nodi y cyfieithydd anymore. 222 00:10:23,310 --> 00:10:26,680 Ac yr wyf yn ei gwneud yn hyd yn oed yn prettier, o hyd, os wyf yn ail-enwi y peth hyn. 223 00:10:26,680 --> 00:10:30,570 Os byddaf yn symud hello.php i ddim ond Hello-- felly yn sylwi yn y chwith uchaf, 224 00:10:30,570 --> 00:10:32,860 enw'r rhaglen yw yn wir, yn awr yn unig Helo. 225 00:10:32,860 --> 00:10:37,300 Nawr gallaf ei gwneud yn edrych fel rhaglen C, hyd yn oed er 'i' ysgrifennu yn PHP-- 226 00:10:37,300 --> 00:10:39,210 neu dweud y gwir unrhyw nifer ieithoedd eraill. 227 00:10:39,210 --> 00:10:41,480 >> Felly gwella ymylol, dim gwahaniaeth swyddogaethol. 228 00:10:41,480 --> 00:10:44,460 Ond mae'n dim ond ychydig chwilfrydedd yn awr, fel y gallwch ysgrifennu rhaglenni 229 00:10:44,460 --> 00:10:48,989 mewn unrhyw iaith, ac nad yw'r defnyddiwr yn gwneud rhaid i gwybod neu'n poeni beth hynny. 230 00:10:48,989 --> 00:10:51,030 Wel, gadewch i ni edrych ar fwy Enghraifft cymhellol yn awr 231 00:10:51,030 --> 00:10:52,850 fy mod yn chwipio i fyny o flaen llaw. 232 00:10:52,850 --> 00:10:54,955 A gelwir hyn yn quote.php. 233 00:10:54,955 --> 00:10:56,740 Ac mae'n ar gael ar-lein. 234 00:10:56,740 --> 00:11:00,299 Ac yn sylwi ei bod yn eithaf short-- ond ei fod yn rhaglen llinell gorchymyn sy'n 235 00:11:00,299 --> 00:11:02,840 mynd i edrych i fyny prisiau stoc i mi, sydd yn mynd mewn gwirionedd 236 00:11:02,840 --> 00:11:04,230 i fod yn germane i broblem a osodwyd saith. 237 00:11:04,230 --> 00:11:05,396 >> Felly, gadewch i ni weld beth rwy'n ei wneud. 238 00:11:05,396 --> 00:11:08,640 Ar y brig mae gen y braced agored PHP marc cwestiwn. 239 00:11:08,640 --> 00:11:13,372 Yna mae gen y llinell hon, lle yr wyf ei gwneud yn ofynnol ffeil o'r enw functions.php-- 240 00:11:13,372 --> 00:11:15,080 rydyn ni'n mynd i weld mwy am hyn yn ychydig, 241 00:11:15,080 --> 00:11:17,340 ond mae hyn yn debyg C fersiwn miniog yn cynnwys, 242 00:11:17,340 --> 00:11:19,090 lle rydych eisiau mynd yn cynnwys ffeil arall. 243 00:11:19,090 --> 00:11:23,720 PHP yn galw yn ei gwneud yn ofynnol, er ei fod hefyd yn cael cynnwys swyddogaeth. 244 00:11:23,720 --> 00:11:26,861 Ac mae'n troi allan y function.php yn dim ond rhywbeth Ysgrifennais cyn y dosbarth. 245 00:11:26,861 --> 00:11:29,860 Wyf yn ei roi yn yr un cyfeiriadur, oherwydd Roeddwn i eisiau ffactor rhai cod 246 00:11:29,860 --> 00:11:31,800 y gallem eisiau ei ddefnyddio mewn mannau eraill. 247 00:11:31,800 --> 00:11:34,560 >> Yn y cyfamser, mae'n debyg y gallwch casglu yr hyn sy'n digwydd yma. 248 00:11:34,560 --> 00:11:39,200 Mae hyn yn ychydig yn wahanol i C-- ond beth ddylwn i ei olygu wrth sicrhau defnydd priodol? 249 00:11:39,200 --> 00:11:41,180 Drosi hyn yn fwy technegol. 250 00:11:41,180 --> 00:11:45,950 O dan ba amgylchiadau ydw i'n rhoi'r gorau iddi y rhaglen, neu sy'n gadael? 251 00:11:45,950 --> 00:11:47,074 Yeah? 252 00:11:47,074 --> 00:11:47,990 >> GYNULLEIDFA: Pan nad oes gennych dwy ddadl llinell orchymyn. 253 00:11:47,990 --> 00:11:49,480 >> DAVID Malan: Pan nad oes gennyf i fynnu dadleuon llinell. 254 00:11:49,480 --> 00:11:52,396 A chofiwch mai un o'r rheini dadleuon yw enw'r rhaglen ei hun. 255 00:11:52,396 --> 00:11:55,340 A'r ail yn mynd i fod gair arall yr wyf yn teipio ar ôl yr anogwr. 256 00:11:55,340 --> 00:11:57,460 Felly yn union fel C, mae hyn yn yw fy ffordd o wirio, 257 00:11:57,460 --> 00:12:00,022 oedd y defnyddiwr yn cydweithredu a rhedeg y rhaglen wrth i mi bwriadwyd? 258 00:12:00,022 --> 00:12:01,730 Yn awr, mae rhywbeth ychydig yn wahanol 259 00:12:01,730 --> 00:12:04,020 gyda C-- yn gyntaf oll i ni cael y arwydd doler, 260 00:12:04,020 --> 00:12:07,710 a'r hyn nad doler llofnodi ddynodi yn PHP? 261 00:12:07,710 --> 00:12:08,440 Dim ond amrywiol. 262 00:12:08,440 --> 00:12:11,731 Dyna all-- unig newidyn ddilyn gan beth bynnag y dymunwch i mewn gwirionedd yn ei alw. 263 00:12:11,731 --> 00:12:14,000 Hysbysiad yna rywbeth ar goll o fy rhaglen PHP, 264 00:12:14,000 --> 00:12:18,210 yn union fel yr oedd ar goll ddiwethaf wythnos, yn erbyn C, sef yr hyn? 265 00:12:18,210 --> 00:12:21,620 >> Mae math, ond hefyd yn rhywbeth arall. 266 00:12:21,620 --> 00:12:26,409 Nid oes rhywbeth function-- brif swyddogaeth. 267 00:12:26,409 --> 00:12:27,450 Does dim prif swyddogaeth. 268 00:12:27,450 --> 00:12:29,680 Rydych yn unig yn dechrau ysgrifennu eich cod heb orfod 269 00:12:29,680 --> 00:12:32,790 i chi boeni am gweddol mympwyol confensiwn o enwi rhai diofyn 270 00:12:32,790 --> 00:12:33,880 prif swyddogaeth. 271 00:12:33,880 --> 00:12:36,720 Felly arg C yn unig mewn gwirionedd newidyn byd-eang 272 00:12:36,720 --> 00:12:39,049 bod y cyfieithydd yn gwneud ar gael i mi. 273 00:12:39,049 --> 00:12:40,090 Yn awr, mae hyn yn ddiddorol. 274 00:12:40,090 --> 00:12:41,140 Felly edrych i fyny stwff. 275 00:12:41,140 --> 00:12:43,370 Stoc arwydd Doler ar y chwith, dyna fy amrywiol. 276 00:12:43,370 --> 00:12:45,120 Ar yr ochr dde, mae pob golwg 277 00:12:45,120 --> 00:12:50,270 swyddogaeth yn PHP a elwir yn am-edrych sy'n Rydw i'n pasio fy llinell gorchymyn diwethaf 278 00:12:50,270 --> 00:12:51,902 dadl canlynol-- beth bynnag yw'r gair. 279 00:12:51,902 --> 00:12:53,610 A byddwn yn gweld sut mae hyn yn gweithio mewn munud. 280 00:12:53,610 --> 00:12:55,380 >> Ac yna yn olaf i ddim yn gwybod am y pris. 281 00:12:55,380 --> 00:12:58,650 Dw i'n argraffu un gyfran o fath ac o'r fath. 282 00:12:58,650 --> 00:13:02,082 A chofiwch, mae hyn yn y ffordd PHP-- ffordd yn PHP-- 283 00:13:02,082 --> 00:13:04,290 lle nad oes rhaid i chi ei wneud yr arwydd doler S anymore. 284 00:13:04,290 --> 00:13:06,782 Alli jyst ddefnyddio braces cyrliog a plwg yn rhai amrywiol. 285 00:13:06,782 --> 00:13:09,240 Nid oes rhaid i chi boeni am gan ddefnyddio printf yn yr un modd. 286 00:13:09,240 --> 00:13:13,530 >> Ac wrth fynd heibio, pan fyddwch yn rhoi newidyn tu mewn dyfynodau dwbl fel hyn, 287 00:13:13,530 --> 00:13:17,370 ydych yn defnyddio techneg ffansi Gelwir rhyngosod amrywiol. 288 00:13:17,370 --> 00:13:20,380 Mae'n jyst yn golygu plwg y newidyn yn fan hyn. 289 00:13:20,380 --> 00:13:23,760 Ac wrth fynd heibio, mae rhai ohonoch chi sy'n dod o gefndiroedd rhaglenni eraill, 290 00:13:23,760 --> 00:13:26,960 efallai na fyddwch yn defnyddio dyfynodau sengl o gwmpas llinynnau i wneud hyn. 291 00:13:26,960 --> 00:13:30,290 Rhaid i chi ddefnyddio dyfynodau dwbl ar gyfer rhyngosod amrywiol i weithio. 292 00:13:30,290 --> 00:13:32,740 Fel arall, wnewch chi helpu yn llythrennol gweld braces cyrliog hynny. 293 00:13:32,740 --> 00:13:34,500 >> Felly yn olaf, gadewch i ni fynd yn ei flaen ac yn rhedeg hyn. 294 00:13:34,500 --> 00:13:36,690 Gadewch imi wneud fy terfynell ychydig yn fwy. 295 00:13:36,690 --> 00:13:41,940 Gadewch i mi fynd yn ei flaen ac yn rhedeg tu mewn fy dyfyniad cyfeiriadur. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AC?] [? dyfyniad?] dyfyniad PHP dot PHP, 297 00:13:46,950 --> 00:13:50,290 ac yr wyf i'n mynd i chwilio am rywbeth fel GOOG, sef ei symbol Ticker, 298 00:13:50,290 --> 00:13:55,510 ac un gyfran o ei enw newydd, Wyddor Inc, yn costio $ 717, fel y heddiw. 299 00:13:55,510 --> 00:13:58,680 Mae pob hawl, os ydym am rhedeg hyn eto, bydd unrhyw un 300 00:13:58,680 --> 00:14:02,600 wedi stoc Ticker arall maent yn awyddus i edrych i fyny? 301 00:14:02,600 --> 00:14:06,770 >> Microsoft yn fy marn i yr un yma, MSFT-- $ 53. 302 00:14:06,770 --> 00:14:09,720 Yr wyf yn meddwl Yahoo yw efallai hynny. 303 00:14:09,720 --> 00:14:12,130 A Facebook yw bod. 304 00:14:12,130 --> 00:14:13,740 >> Felly beth yw rhaglen hon yn ei wneud? 305 00:14:13,740 --> 00:14:16,306 Ymddengys fod y hud i gael eu hymgorffori yn y swyddogaeth honno am-edrych. 306 00:14:16,306 --> 00:14:17,430 Felly gadewch i ni edrych yn sydyn. 307 00:14:17,430 --> 00:14:21,815 >> Mae'n troi allan nad yw'n dod gyda PHP, 'i' yn functions.php. 308 00:14:21,815 --> 00:14:23,690 Ac ni fyddwn yn mynd drwy mae hyn yn fanwl iawn, 309 00:14:23,690 --> 00:14:28,040 ond sylwi ar y gair operative yma yw hynny ar-lein chwech o functions.php-- 310 00:14:28,040 --> 00:14:29,440 Yr wyf yn llythrennol yn dweud swyddogaeth. 311 00:14:29,440 --> 00:14:31,050 Yr wyf yn nodi enw fy swyddogaeth. 312 00:14:31,050 --> 00:14:34,330 Yna nodi unrhyw dadleuon, neu baramedrau, 313 00:14:34,330 --> 00:14:36,480 Rwyf am swyddogaeth honno i take-- unrhyw fath. 314 00:14:36,480 --> 00:14:37,580 Ac yna yr wyf yn rhoi ar waith. 315 00:14:37,580 --> 00:14:39,240 >> A byddaf chwifio fy llaw yn y gweithredu, 316 00:14:39,240 --> 00:14:42,115 gan ei fod yn iawn yn eithaf datblygedig erbyn hyn, ond byddwn yn ei weld eto mewn gwirionedd 317 00:14:42,115 --> 00:14:44,700 mewn wythnos yn broblem a osodwyd saith. 318 00:14:44,700 --> 00:14:47,490 Ond gallaf lanhau hyn i fyny, hefyd. 319 00:14:47,490 --> 00:14:49,590 Rwyf hefyd yn cynnwys yn Cod heddiw fersiwn 320 00:14:49,590 --> 00:14:52,340 o dyfyniad, sydd heb unrhyw ffeil dot PHP. 321 00:14:52,340 --> 00:14:57,270 Gan fod yr hyn sydd yn ôl pob tebyg yn y ben y rhaglen o'r enw yn unig ddyfynnu? 322 00:14:57,270 --> 00:15:00,140 Mae hynny fel y'i gelwir shebang-- y incantation eithaf cryptig 323 00:15:00,140 --> 00:15:04,590 sy'n dweud yn dod o hyd PHP ac yna redeg ar fy cod yma. 324 00:15:04,590 --> 00:15:07,360 >> Mae pob hawl, fel bod yn dod â ni i lle'r ydym yn gadael i ffwrdd 325 00:15:07,360 --> 00:15:09,560 adeg-- diwethaf er gyda rhai enghreifftiau mwy datblygedig. 326 00:15:09,560 --> 00:15:13,980 Unrhyw gwestiynau hyd yn hyn am PHP neu beth rydym yn ei wneud? 327 00:15:13,980 --> 00:15:15,570 No-- iawn. 328 00:15:15,570 --> 00:15:16,180 Yeah? 329 00:15:16,180 --> 00:15:19,610 >> GYNULLEIDFA: Y tu mewn i'r Ffeiliau HTML, a oes you-- 330 00:15:19,610 --> 00:15:22,226 [? a ydych chi?] [? dim ond yn ei alw?] mae [Anghlywadwy] ffeil PHP? 331 00:15:22,226 --> 00:15:23,350 DAVID Malan: Cwestiwn da. 332 00:15:23,350 --> 00:15:26,070 Mewn cyd-destun y we, yr ydym ni'n yn llythrennol ar fin newid i, 333 00:15:26,070 --> 00:15:28,028 nad ydych yn defnyddio hyn a elwir yn shebang ar y brig, 334 00:15:28,028 --> 00:15:31,980 oherwydd bod y server-- we yn aml yn rhaglen o'r enw Apache neu Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, Gwybodaeth Rhyngrwyd Server, neu unrhyw nifer o feddalwedd weinydd gwe eraill, 336 00:15:37,470 --> 00:15:40,636 yn gwybod bod pan y gwêl ffeil dot PHP, ei fod yn 337 00:15:40,636 --> 00:15:42,010 Dylai rhedeg y cyfieithydd arno. 338 00:15:42,010 --> 00:15:43,468 Nid yw'n edrych ar y llinell gyntaf. 339 00:15:43,468 --> 00:15:45,580 Felly mae hyn castia llinell gyntaf yn unig pan fyddwch chi'n 340 00:15:45,580 --> 00:15:48,330 ysgrifennu llinell gorchymyn programs-- lle na fyddwn yn ei wneud super aml, 341 00:15:48,330 --> 00:15:52,510 ond mae'n ein ffordd o bontio ein enghreifftiau C yn hyn mae ein PHP. 342 00:15:52,510 --> 00:16:00,680 >> Felly gadewch i ni yn wir pontio'r byd hwn o fyd llinell orchymyn i'r we 343 00:16:00,680 --> 00:16:02,230 drwy wneud y canlynol. 344 00:16:02,230 --> 00:16:05,090 Gadewch i mi fynd yn ei flaen ac yn tynnu dros yma am ychydig funudau'n. 345 00:16:05,090 --> 00:16:09,940 Felly, os oes gennym weinydd y we, neu yn hytrach os oes gennym fy ngliniadur dros yma, 346 00:16:09,940 --> 00:16:11,280 y byddaf yn tynnu fel hyn. 347 00:16:11,280 --> 00:16:14,250 A dyma mae gennym y rhyngrwyd yn ryw fath. 348 00:16:14,250 --> 00:16:18,210 Ac yna dros yma, mae gennym weinydd mewn building-- 349 00:16:18,210 --> 00:16:20,760 dyma sut mae'r rhyngrwyd works-- ac i mewn yma 350 00:16:20,760 --> 00:16:23,120 yn weinydd gyda rhai goleuadau efallai. 351 00:16:23,120 --> 00:16:27,530 Beth sy'n digwydd mewn gwirionedd rhwng y ddau gysylltiadau? 352 00:16:27,530 --> 00:16:29,240 >> Felly, yn yr adeilad hwn yn weinydd y we. 353 00:16:29,240 --> 00:16:31,420 Dyna dim ond cyfrifiadur sy'n rhedeg rhai gweithredu 354 00:16:31,420 --> 00:16:34,561 system, efallai y feddalwedd am ddim o'r enw Apache, a CS50 IDE yn rhedeg. 355 00:16:34,561 --> 00:16:36,310 Felly gallwch mewn gwirionedd meddwl yr adeilad hwn 356 00:16:36,310 --> 00:16:38,579 fel yr adeilad yn sydd CSt0 IDE yn cael ei storio. 357 00:16:38,579 --> 00:16:40,870 Dyna lle pob un ohonoch wedi cyfrifon, lle mae pob un ohonoch 358 00:16:40,870 --> 00:16:43,130 cael eich gweinydd gwe eich hun rhedeg, bob un ohonoch 359 00:16:43,130 --> 00:16:45,730 cael eich URLs unigryw eu hunain, wrth i ni ddechrau trafod, 360 00:16:45,730 --> 00:16:47,280 a byddwch yn gweld mwy yn P. gosod chwech. 361 00:16:47,280 --> 00:16:49,450 >> Dyma fy ngliniadur yn rhywle arall ar y rhyngrwyd. 362 00:16:49,450 --> 00:16:54,550 Ac felly pan fyddaf yn ymweld â URL sy'n perthyn i mi, bod traffig ar y rhyngrwyd yn mynd 363 00:16:54,550 --> 00:16:58,360 dros at 'r gweinyddwr, y gweinydd derbyn HTTP request-- 364 00:16:58,360 --> 00:17:02,900 fel cael index.html ac mae'n ymateb i hynny dudalen we. 365 00:17:02,900 --> 00:17:04,280 Felly dyna y patrwm cyffredinol. 366 00:17:04,280 --> 00:17:07,089 Tra bod popeth i fyny hyd yn hyn heddiw, mae popeth 367 00:17:07,089 --> 00:17:09,660 oedd yn digwydd yn unig yn y cyfyngiadau adeilad hwn. 368 00:17:09,660 --> 00:17:12,910 Roeddwn yn defnyddio fy laptop, ond Roeddwn yn gysylltiedig â CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 felly pob un o'r rhaglenni hynny Roeddwn yn rhedeg Roedd tu mewn y gweinydd, ei hun. 370 00:17:17,369 --> 00:17:22,660 >> Ond yn awr, gadewch i ni ddechrau ailddefnyddio PHP i ysgrifennu rhai rhaglenni gwirioneddol y 371 00:17:22,660 --> 00:17:24,230 yn cael eu gwasanaethu gan weinydd y we. 372 00:17:24,230 --> 00:17:30,320 Ac i wneud hyn, dw i'n mynd i fynd i mewn i criw cyfan o enghreifftiau 373 00:17:30,320 --> 00:17:33,710 sy'n cyflwyno syniad hwn yma. 374 00:17:33,710 --> 00:17:38,500 Felly, mae hyn yn fath o ffordd ffansi o yn disgrifio patrwm rhaglennu. 375 00:17:38,500 --> 00:17:41,540 >> Ac yn wir, wrth i chi adael CS50 neu weithio ar brosiectau terfynol, 376 00:17:41,540 --> 00:17:43,520 neu gymryd rhai dilyn ar y dosbarth, byddwch yn dechrau 377 00:17:43,520 --> 00:17:45,740 gweld bod y world-- yn enwedig ar ôl tyfu i fyny 378 00:17:45,740 --> 00:17:48,300 gydag ieithoedd fel C sy'n level-- super isel 379 00:17:48,300 --> 00:17:51,290 sylweddoli fod yna well ffyrdd o feddalwedd ysgrifennu. 380 00:17:51,290 --> 00:17:53,290 Mae rhai batrymau gallwch eu dilyn, 381 00:17:53,290 --> 00:17:57,640 ffyrdd penodol o drefnu eich ffeiliau a ffyrdd o enwi eich swyddogaethau, 382 00:17:57,640 --> 00:18:00,300 fel bod stori hir yn fyr, mae'r byd wedi dod i fyny 383 00:18:00,300 --> 00:18:04,340 gyda criw cyfan o acronymau ac enwau am ffyrdd o raglennu. 384 00:18:04,340 --> 00:18:06,260 Yn unig yw'r rhain dechnegau y gallech eu defnyddio. 385 00:18:06,260 --> 00:18:09,660 >> A galwodd un ohonynt yn MVC, ar gyfer Model View Rheolwr. 386 00:18:09,660 --> 00:18:12,270 Ac mae hyn yn unig yw, ar gyfer Erbyn hyn, mae cymhleth rhy 387 00:18:12,270 --> 00:18:18,960 ffordd o ddweud sut y dylech osod allan gwefan sy'n seiliedig ar PHP-, yn ein hachos ni. 388 00:18:18,960 --> 00:18:22,140 Sut ydych chi'n trefnu eich ffeiliau, sut ydych chi'n trefnu eich rhesymeg, 389 00:18:22,140 --> 00:18:26,220 mewn ffordd sy'n ei gwneud yn haws i ysgrifennu gwefannau mwy cymhleth? 390 00:18:26,220 --> 00:18:28,550 Ac yn wir, yr ydym annhymerus 'yn gyflym gyrraedd yno gyda p-set saith. 391 00:18:28,550 --> 00:18:32,020 >> Felly, yn y byd o MVC, rydych yn mynd i weld bod ein cod all gyffredinol 392 00:18:32,020 --> 00:18:38,290 gael ei nodweddu fel naill ai cod enghreifftiol, neu god rheolwr, neu edrych ar cod. 393 00:18:38,290 --> 00:18:40,200 Ac yr wyf i'n mynd i gorsymleiddio'r fel follows-- 394 00:18:40,200 --> 00:18:42,074 y rheolwr yw'r ymennydd eich rhaglen, 395 00:18:42,074 --> 00:18:44,100 'i' ble pob un o'r rhesymeg diddorol yn digwydd. 396 00:18:44,100 --> 00:18:46,110 Felly popeth yr ydym wedi bod ysgrifennu hyd yn hyn yn y dosbarth, 397 00:18:46,110 --> 00:18:48,210 yn fath o fel rheolwr code-- mae'n rheoli 398 00:18:48,210 --> 00:18:50,585 eich rhaglen, eich dolenni, eich amodau, eich swyddogaethau 399 00:18:50,585 --> 00:18:52,100 a newidynnau a hynny i gyd. 400 00:18:52,100 --> 00:18:56,160 >> Barn, yn awr, yn mynd i fod ychydig yn mwy amlwg ym myd y we. 401 00:18:56,160 --> 00:18:59,360 Golygfa yw'r estheteg ar eich gwefan. 402 00:18:59,360 --> 00:19:04,080 Dyma'r hyn y mae'r defnyddiwr yn sees-- y delweddau, y tablau HTML, y tagiau HTML, a phob 403 00:19:04,080 --> 00:19:08,220 o hynny, pob un o'r esthetig blewog pethau nad yw'n sy'n anodd i ysgrifennu, 404 00:19:08,220 --> 00:19:11,380 ond yn unig yw hyn yr ydych yn cynhyrchu, yw barn fel y'i gelwir, estheteg. 405 00:19:11,380 --> 00:19:13,880 A model, yn y pen draw, yn mynd i fod yn stuff-- cronfa ddata sy'n 406 00:19:13,880 --> 00:19:16,510 byddwn yn dechrau plymio i mewn i bob po fwyaf ddydd Mercher. 407 00:19:16,510 --> 00:19:19,740 Felly rheolwr yw'r rhesymeg, farn yw y pethau esthetig, 408 00:19:19,740 --> 00:19:23,500 a model yn mynd i fod lle rydym yn storio ein data gwirioneddol. 409 00:19:23,500 --> 00:19:26,410 >> Felly gadewch i ni edrych ar hyn yn fwy diriaethol gyda'r enghraifft ganlynol. 410 00:19:26,410 --> 00:19:34,700 Rydw i'n mynd i fynd i mewn i fy cyfeiriadur yma o ffynhonnell heddiw code-- pob un ohonynt 411 00:19:34,700 --> 00:19:35,770 ar gael ar-lein. 412 00:19:35,770 --> 00:19:37,800 Ac yr wyf i'n mynd i fynd i mewn i fersiwn sero. 413 00:19:37,800 --> 00:19:41,500 Ac yma yw-- gadewch i ni ei alw yn Fersiwn sero gwefan CS50 yn. 414 00:19:41,500 --> 00:19:43,010 Does dim llawer yma o gwbl. 415 00:19:43,010 --> 00:19:46,810 Mae'n syml iawn dudalen we sy'n yn ôl pob tebyg gan ddefnyddio'r hyn HTML tags-- unig 416 00:19:46,810 --> 00:19:48,970 dyfalu o enghreifftiau yn y gorffennol? 417 00:19:48,970 --> 00:19:49,890 >> Beth yw hwnna? 418 00:19:49,890 --> 00:19:53,920 H1-- am hynny beiddgar mawr yn ôl pob tebyg teitl, y logo i fyny top, CS50. 419 00:19:53,920 --> 00:19:55,080 A beth arall sydd wrth chwarae? 420 00:19:55,080 --> 00:19:55,799 Yeah? 421 00:19:55,799 --> 00:19:56,840 GYNULLEIDFA: Rhestr heb drefn. 422 00:19:56,840 --> 00:19:59,990 DAVID Malan: list-- heb drefn felly mae'r UL tag ac efallai ychydig o tagiau LI. 423 00:19:59,990 --> 00:20:01,840 Ac os nad ydych yn cofio hyn, nid yw o bwys yn onest. 424 00:20:01,840 --> 00:20:04,170 Mae'r rhain yn fath ysgafn o Manylion gweithredu HTML 425 00:20:04,170 --> 00:20:06,378 eich bod yn gyflym edrych i fyny ac eich bod yn ôl ar eich ffordd. 426 00:20:06,378 --> 00:20:10,040 Byddwn yn canolbwyntio mwy ar y rhaglenni syniadau sy'n darnau juicier. 427 00:20:10,040 --> 00:20:12,890 >> Felly, gadewch i jyst yn cymryd cyflym edrych ar y HTML-- ac yn wir 428 00:20:12,890 --> 00:20:16,880 os wyf yn agor y farn ffynhonnell yma, yup, dyna'n union beth sy'n mynd ymlaen fan hyn. 429 00:20:16,880 --> 00:20:18,440 Mae tag UL. 430 00:20:18,440 --> 00:20:20,630 Nythu y tu mewn o hynny yw tagiau LI. 431 00:20:20,630 --> 00:20:24,470 Ac yna yr wyf yn benthyg y URL y maes llafur ei hun yma. 432 00:20:24,470 --> 00:20:27,570 >> Ac yna yn y lectures.php yn ôl pob golwg 433 00:20:27,570 --> 00:20:31,640 dudalen arall a gynhyrchir ddynamig mae hynny'n mynd i gael, gadewch i ni see-- AH, 434 00:20:31,640 --> 00:20:33,170 y pythefnos cyntaf o ddarlith. 435 00:20:33,170 --> 00:20:36,600 Felly wythnos sero ac un wythnos, gadewch i ni edrych ar this-- os byddaf yn edrych ar dudalen y ffynhonnell, 436 00:20:36,600 --> 00:20:38,120 hefyd yn super syml. 437 00:20:38,120 --> 00:20:42,430 Mae'r rhain yn arwain at ddwy dudalen Gelwir week0.php, a week1.php. 438 00:20:42,430 --> 00:20:44,040 Felly, yn ystyried yn awr beth sy'n digwydd. 439 00:20:44,040 --> 00:20:50,630 >> Pan fyddaf yn clicio ar week0.php, fy ngliniadur yn gwneud cais am week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Mae'r gweinydd gwe, a.k.a., CS50 IDE, yn derbyn bod amlen rhithwir. 442 00:20:58,110 --> 00:21:01,040 Mae'n gweld neges fel, yn cael week0.php. 443 00:21:01,040 --> 00:21:05,060 Yna caiff ei dehongli'r ffeil, top i'r gwaelod, o'r chwith i'r right-- y ffeil 444 00:21:05,060 --> 00:21:07,720 Gelwir week0.php-- a poeri allan y canlyniadau. 445 00:21:07,720 --> 00:21:10,510 Felly, tu mewn y ffeil, week0.php, rhaid iddynt fod yn 446 00:21:10,510 --> 00:21:15,410 y rhesymeg rheolwr sy'n cynhyrchu HTML hwn, a byddwn yn fuan yn gweld hynny. 447 00:21:15,410 --> 00:21:19,340 >> Ond am nawr, gadewch i mi cliciwch ar wythnos sero, ac erbyn hyn mae gennym Mercher a Gwener, 448 00:21:19,340 --> 00:21:25,260 ac yn awr mae gennym y sleidiau yn araf o wythnos sero. 449 00:21:25,260 --> 00:21:27,400 Ac efallai y byddwch yn cofio hyn o ffordd yn ôl pan. 450 00:21:27,400 --> 00:21:29,340 Felly dyna i gyd y wefan hon yn ei wneud. 451 00:21:29,340 --> 00:21:31,120 >> Felly gadewch i ni ystyried sut y mae'n gwneud hyn. 452 00:21:31,120 --> 00:21:34,290 Rydw i'n mynd i fynd yn ôl i mewn i'r cod ffynhonnell yma, yn CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 ac yr wyf i'n mynd i agor index.php. 454 00:21:36,660 --> 00:21:38,910 Ar frig y ffeil yn griw o sylwadau. 455 00:21:38,910 --> 00:21:43,000 Ac yna yng nghanol y ffeil, mae'n troi allan, dim cod PHP o gwbl. 456 00:21:43,000 --> 00:21:47,380 Oherwydd os nad oes gennych unrhyw un o'r chi braced agored tagiau PHP marc cwestiwn, 457 00:21:47,380 --> 00:21:49,180 rydych yn rhydd i ddim ond rhoi HTML. 458 00:21:49,180 --> 00:21:51,480 >> Oherwydd bod yr hyn y mae'r PHP cyfieithydd i fod i'w wneud, 459 00:21:51,480 --> 00:21:53,938 yw pan mae'n darllen file-- hon top i'r gwaelod, o'r chwith i'r right-- 460 00:21:53,938 --> 00:21:59,100 dim ond dehongli cod y gwêl rhwng cromfachau ongl y rhai cwestiynu marc. 461 00:21:59,100 --> 00:22:02,380 Ac unrhyw beth arall nad yw'n cydnabod fel PHP, 'i jyst poeri allan. 462 00:22:02,380 --> 00:22:05,080 A HTML Ai ymhlith y pethau bydd yn jyst boeri allan. 463 00:22:05,080 --> 00:22:09,090 >> Felly, gallai hyn gael ffeil cael ei alw index.html, 464 00:22:09,090 --> 00:22:11,690 ond rwy'n enwi popeth dot PHP fel carreg gamu. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- yr un modd underwhelming, dim ond rhywfaint o HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php, yn yr un modd dim ond rhai HTML. 467 00:22:19,840 --> 00:22:22,300 >> Ond yn awr gadewch i ni roi ar y het peirianneg diarhebol, 468 00:22:22,300 --> 00:22:24,400 ac yn ystyried sut y gallwn wella hyn. 469 00:22:24,400 --> 00:22:28,541 Nid yw'n anodd i wneud hyn, ond yr wyf yn fath o ddatganoli i mewn i copi a gludo. 470 00:22:28,541 --> 00:22:31,540 Ac yn wir, os wyf yn gwneud wythnos dau, yr ydych yn gwybod yr hyn yr wyf yn ôl pob tebyg i'n mynd i wneud? 471 00:22:31,540 --> 00:22:34,940 Rydw i'n mynd i fynd i week1.php, rwy'n mynd i dynnu sylw at bopeth. 472 00:22:34,940 --> 00:22:39,110 Rydw i'n mynd i gopïo, bastio ' i mewn i ffeil newydd o'r enw week2.php, 473 00:22:39,110 --> 00:22:42,440 tweak rhai URLs, a bod ar fy ffordd. 474 00:22:42,440 --> 00:22:45,240 >> Felly seiliedig ar yr hyn rydym wedi a welir yn C yn barod, 475 00:22:45,240 --> 00:22:46,860 nid yw hyn yn teimlo'n iawn, gobeithio. 476 00:22:46,860 --> 00:22:49,610 Copi, past anaml yr ateb cywir. 477 00:22:49,610 --> 00:22:51,429 Felly, beth allwn ni ei ddechrau ei wneud i wella hyn? 478 00:22:51,429 --> 00:22:53,345 Ble mae'r cyfleoedd ar gyfer dylunio gwell? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> Erbyn i mi gyrraedd wythnos wyth, mae'n mynd 481 00:22:58,760 --> 00:23:00,910 i fod yn wirioneddol yn blino os wyf am newid 482 00:23:00,910 --> 00:23:03,930 y ffont o bob un o fy tudalennau, neu os ydw i eisiau 483 00:23:03,930 --> 00:23:06,522 i newid strwythur y cynllun. 484 00:23:06,522 --> 00:23:08,396 Felly, ble mae'r cyfle ar gyfer dylunio gwell? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 Wel, gadewch i ni ystyried beth sydd rhannu ar draws pob un o'r ffeiliau hyn. 487 00:23:15,160 --> 00:23:21,696 >> Dyma wythnos un, dyma wythnos sero, dyma lectures.php, 488 00:23:21,696 --> 00:23:25,790 dyma index.php-- beth yr un fath ac yr hyn sy'n wahanol, yn fras sy'n siarad, 489 00:23:25,790 --> 00:23:26,760 ym mhob un o'r ffeiliau hyn? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Yeah? 492 00:23:32,060 --> 00:23:34,560 >> GYNULLEIDFA: [Anghlywadwy] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID Malan: Iawn, yn dda. 495 00:23:42,160 --> 00:23:46,115 Felly mae 'na batrwm, yn sicr, lle bob tro rwy'n dewis ddarlith I, 496 00:23:46,115 --> 00:23:48,250 Ddylwn i fod yn creu dudalen edrych yn debyg iawn. 497 00:23:48,250 --> 00:23:50,375 Ac felly efallai y gallaf trosoledd y ffaith bod mewn gwirionedd, 498 00:23:50,375 --> 00:23:53,060 rydym yn fwriadol rhifiadol mynegeio ein lectures-- 499 00:23:53,060 --> 00:23:55,290 os caf ei roi hyd yn oed mwy geiriau yn eich ateb. 500 00:23:55,290 --> 00:23:59,984 A beth yw'r unig beth, mewn gwirionedd, sy'n newid rhwng wythnos one-- 501 00:23:59,984 --> 00:24:02,400 a gadewch i mi sgrolio i lawr, felly mae'n fwy neu lai yn yr un place-- 502 00:24:02,400 --> 00:24:05,480 felly dyma wythnos sero, yn fras ar y brig. 503 00:24:05,480 --> 00:24:12,370 Dyma wythnos un, wythnos sero, wythnos un, wythnos sero. 504 00:24:12,370 --> 00:24:14,370 OK, yn llythrennol os ydych yn gwybod unrhyw raglen o gwbl, 505 00:24:14,370 --> 00:24:16,286 mae hyn yn awr yn union fel gêm paru patrwm. 506 00:24:16,286 --> 00:24:17,200 Felly beth sy'n wahanol? 507 00:24:17,200 --> 00:24:18,765 Yeah? 508 00:24:18,765 --> 00:24:19,777 >> GYNULLEIDFA: [Anghlywadwy] 509 00:24:19,777 --> 00:24:22,360 DAVID Malan: Da, felly mae'r teitl yn newid, erioed mor ychydig. 510 00:24:22,360 --> 00:24:24,010 Zero yn mynd, wrth gwrs, i un. 511 00:24:24,010 --> 00:24:25,570 Un peth sy'n digwydd yn y tag H1. 512 00:24:25,570 --> 00:24:28,790 Ac nid ydym yn hollol yn ei weld mor hawdd, oherwydd bod y URLs ychydig yn hir. 513 00:24:28,790 --> 00:24:30,670 Ond mae rhai URLs yn newid ychydig. 514 00:24:30,670 --> 00:24:34,490 >> Ond nid yr hyn sy'n newid yw, os caf yn dweud, mae'r rhan fwyaf o gynnwys y page-- 515 00:24:34,490 --> 00:24:38,530 y tag HTML yn yr un fath, mae'r pennaeth yn yr un fath, y teitl bron yr un fath, 516 00:24:38,530 --> 00:24:40,659 mae'r corff yn yr un fath, a bron popeth arall 517 00:24:40,659 --> 00:24:42,450 yr un fath ac eithrio ar gyfer tweaks bach hynny. 518 00:24:42,450 --> 00:24:45,310 Felly, sut y gallwn fynd ati i ffactoreiddio rhywfaint o hyn allan? 519 00:24:45,310 --> 00:24:48,740 >> Wel gadewch i mi yn cynnig yn union bod yn y fersiwn nesaf. 520 00:24:48,740 --> 00:24:53,890 Felly dyma mewn fersiwn un, Mae gen i'r union un ffeiliau, yn ogystal â ychydig o rai eraill. 521 00:24:53,890 --> 00:24:59,730 Dyma index.php-- a hyd yn oed os nad ydych erioed wedi ei weld o'r blaen PHP, 522 00:24:59,730 --> 00:25:05,511 beth ydw i'n ei wneud yn ôl pob tebyg i ddatrys hyn problem-- seiliedig ar yr hyn a welwch yma? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Yeah, yw bod ychydig o ymrwymiad? 525 00:25:12,760 --> 00:25:13,450 Na? 526 00:25:13,450 --> 00:25:16,020 Ie, yn mynd ar. 527 00:25:16,020 --> 00:25:17,380 >> GYNULLEIDFA: [Anghlywadwy] 528 00:25:17,380 --> 00:25:18,380 >> DAVID Malan: Yep. 529 00:25:18,380 --> 00:25:20,380 >> GYNULLEIDFA: [Anghlywadwy] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID Malan: Fi angen i chi siarad dim ond ychydig yn uwch. 532 00:25:28,669 --> 00:25:31,084 >> GYNULLEIDFA: [Anghlywadwy] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID Malan: Iawn, yn dda. 535 00:25:36,660 --> 00:25:38,620 Ac yr wyf yn think-- ei fod yn anodd eu clywed you-- ond yr wyf yn 536 00:25:38,620 --> 00:25:42,690 credu yr hyn yr ydych yn ei gael ar yw bod y tagiau a oedd yn gyffredin i fyny top, 537 00:25:42,690 --> 00:25:47,710 ac y tagiau a oedd yn gyffredin ar y gwaelod, erbyn hyn wedi cael eu hystyried allan, 538 00:25:47,710 --> 00:25:51,140 neu relegated i'r hyn ffeiliau? 539 00:25:51,140 --> 00:25:53,476 Header.php a footer.php-- ac rydym yn mynd 540 00:25:53,476 --> 00:25:55,600 i wneud rhai tweaks i mynd i'r afael â'r pryder 'ch jyst 541 00:25:55,600 --> 00:25:59,370 a godwyd am y niferoedd sy'n newid, er enghraifft, os wyf yn eich clywed yn iawn. 542 00:25:59,370 --> 00:26:02,060 >> Ond mae hynny'n ymddangos i fod hanfod ohono. 543 00:26:02,060 --> 00:26:04,820 Os oedd llawer iawn o diswyddo ar frig y dudalen, 544 00:26:04,820 --> 00:26:06,736 a llawer iawn o diswyddo ar y gwaelod, 545 00:26:06,736 --> 00:26:09,280 gadewch i ni llythrennol dim ond tynnu sylw at a thorri cynnwys hwnnw allan, 546 00:26:09,280 --> 00:26:13,270 roi mewn file-- ar wahân yn union fel y syniad o CSS, lle'r ydym yn ffactor allan 547 00:26:13,270 --> 00:26:16,710 estheteg debyg iawn, rhowch mae'n mewn ffeil dot PHP ar wahân, 548 00:26:16,710 --> 00:26:20,340 defnyddio'r ei gwneud yn ofynnol mechanism-- sy'n yn debyg C include-- miniog sy'n 549 00:26:20,340 --> 00:26:23,570 yn ei hanfod fel dweud fynd chrafangia 'r cynnwys header.php, 550 00:26:23,570 --> 00:26:25,370 ac yn copïo a gludo nhw yma. 551 00:26:25,370 --> 00:26:29,490 >> Ond beth mae hyn yn ei olygu yw bod bellach yn index.php, mae gennyf rhai ddwy linell. 552 00:26:29,490 --> 00:26:32,130 Yn lectures.php, rwyf hefyd yn cael y rhai ddwy linell. 553 00:26:32,130 --> 00:26:35,230 Yn week0.php, rwyf hefyd yn cael y rhai ddwy linell. 554 00:26:35,230 --> 00:26:38,380 >> Felly nawr, os wyf am newid teitl fy holl dudalennau, 555 00:26:38,380 --> 00:26:40,530 neu yr wyf am newid y strwythur sylfaenol, 556 00:26:40,530 --> 00:26:44,380 Gallaf newid yn awr mewn dim ond un lle, neu ddau header places-- a throedyn, 557 00:26:44,380 --> 00:26:45,429 yn y drefn honno. 558 00:26:45,429 --> 00:26:47,970 Nawr bod y cod yn cychwyn i edrych ychydig yn fwy cryptig, dde? 559 00:26:47,970 --> 00:26:53,590 Ond os ydych yn meddwl am yr hyn y mae'r dudalen yn doing-- os ydw i'n gofyn am week0.php, 560 00:26:53,590 --> 00:26:59,880 yn union fel ar y tynnu dros Yma-- pan ofynnir am week0.php, 561 00:26:59,880 --> 00:27:00,960 beth yw ystyr hynny? 562 00:27:00,960 --> 00:27:04,410 >> Yn llythrennol, y ffeil yn ar gais y porwr. 563 00:27:04,410 --> 00:27:06,240 A.k.a. Mae'r we server-- 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- hennill hwn ffeiliau, week0.php, ac yn darllen 565 00:27:09,250 --> 00:27:10,780 mae'n top i'r gwaelod, o'r chwith i'r dde. 566 00:27:10,780 --> 00:27:15,400 Ar-lein un, mae'n dod ar eu traws yn syth braced agored PHP marc cwestiwn, ei gwneud yn ofynnol 567 00:27:15,400 --> 00:27:17,872 header dot PHP, ac yn y blaen yr hyn y mae'r cyfieithydd PHP 568 00:27:17,872 --> 00:27:20,580 does-- sy'n hadeiladu i mewn i'r we gweinydd, oherwydd ein ragosodedig 569 00:27:20,580 --> 00:27:24,580 am you-- mae'n mynd yn awtomatig i mewn i header.php, copïau y cynnwys, 570 00:27:24,580 --> 00:27:25,640 eu pastau yma. 571 00:27:25,640 --> 00:27:28,790 >> Ond yna mae'r cyfarfyddiadau cyfieithydd question mark braced agos, 572 00:27:28,790 --> 00:27:30,320 felly mae'n ei wneud i gyd yn meddwl. 573 00:27:30,320 --> 00:27:33,400 Nawr 'i jyst blindly poeri allan linellau dau drwy saith, 574 00:27:33,400 --> 00:27:35,240 am ei fod yn dim ond HTML amrwd. 575 00:27:35,240 --> 00:27:38,470 Yn rhoi'r cyfle i linell wyth, ac yn gwneud hynny un hud again-- agor y ffeil, 576 00:27:38,470 --> 00:27:41,460 grabbing y cynnwys, ac gwneud yn ofynnol iddynt neu eu gludo 577 00:27:41,460 --> 00:27:42,480 i'r dde ac yna neu yno. 578 00:27:42,480 --> 00:27:44,210 >> Ond yr wyf yn jyst cyfeirio at nam. 579 00:27:44,210 --> 00:27:48,610 Mae hwn yn gam rhannol yn ôl, oherwydd os edrychwn yn header.php, 580 00:27:48,610 --> 00:27:50,850 Rydw i wedi fath o dorri cornel. 581 00:27:50,850 --> 00:27:56,250 Pa nodwedd wnes i roi'r gorau er i ennill y dyluniad gwell dadlau? 582 00:27:56,250 --> 00:27:57,305 Yeah? 583 00:27:57,305 --> 00:27:58,180 GYNULLEIDFA: [Anghlywadwy] 584 00:27:58,180 --> 00:28:00,570 DAVID Malan: Yeah, yr wyf yn fath o dorri cornel nontrivial. 585 00:28:00,570 --> 00:28:04,489 Rydych sylw at y ffaith bod yr hyn oedd yn newid oedd y teitl, mae'r rhif yn y teitl, 586 00:28:04,489 --> 00:28:05,530 a'r nifer yn y H1. 587 00:28:05,530 --> 00:28:08,170 Felly fy ateb oedd, OK, gadewch i ni dim ond ail-enwi y dudalen, 588 00:28:08,170 --> 00:28:10,080 ac nid ymdrin â hynny problem o gwbl. 589 00:28:10,080 --> 00:28:12,130 Felly mae hynny'n rhannol chymryd cam yn ôl yn sicr. 590 00:28:12,130 --> 00:28:14,300 >> Ond yr hyn sy'n nodedig yma yw bod yr hyn yr wyf wedi'i wneud 591 00:28:14,300 --> 00:28:17,200 ei gynnwys fel arall allan yr holl bethau cyffredin. 592 00:28:17,200 --> 00:28:21,520 Ac yn footer.php, yn sylwi fy mod yn ffactor allan i gyd, er yn llai, 593 00:28:21,520 --> 00:28:22,790 pethau cyffredin. 594 00:28:22,790 --> 00:28:26,070 Felly, mae angen i mi fod yn gallu rhywsut yn awr cymryd cam arall ymlaen, a atgyweiria 595 00:28:26,070 --> 00:28:27,160 bod materion teitl. 596 00:28:27,160 --> 00:28:28,180 Felly, gadewch i ni wneud hynny. 597 00:28:28,180 --> 00:28:35,060 >> Gadewch i mi fynd i mewn i fy ail fersiwn yma, sydd, unwaith eto, yr un ffeiliau 598 00:28:35,060 --> 00:28:36,825 heblaw am un ychwanegiad newydd. 599 00:28:36,825 --> 00:28:38,950 Ac mae'n ychydig yn fwy amleiriog, ond gadewch i ni weld os byddwn yn 600 00:28:38,950 --> 00:28:40,550 Gall canfod ar wahân yr hyn sy'n digwydd yma. 601 00:28:40,550 --> 00:28:45,370 Felly, yn lle ei gwneud yn ofynnol header.php, a footer.php, 602 00:28:45,370 --> 00:28:50,180 Yr wyf yn ymddangos i fod yn ei gwneud yn ofynnol un yn unig file-- gelwir, wrth gwrs, helpers.php. 603 00:28:50,180 --> 00:28:52,560 A gadewch i mi nodi yn awr, beth sydd tu mewn helpers.php 604 00:28:52,560 --> 00:28:55,330 yn unig yw criw o swyddogaethau a ysgrifennais, yn union fel o'r blaen. 605 00:28:55,330 --> 00:28:57,550 Ond yr wyf yn ei alw helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Nawr mae'n debyg, yn llinell tri a 10, rwy'n 607 00:29:00,370 --> 00:29:02,840 ffonio dau functions-- rendr pennawd, troedyn rendro. 608 00:29:02,840 --> 00:29:05,040 Mae'r rhai nad ydynt yn dod gyda PHP, ysgrifennais y rhai fy hun. 609 00:29:05,040 --> 00:29:07,880 Ac yr wyf yn eu rhoi mewn helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Nawr, rydym wedi gweld dim ond cystrawen hwn unwaith, ac yr oedd yn super fyr. 611 00:29:11,210 --> 00:29:15,330 Ond mae hyn yn ôl pob golwg yn ddadl i rendro pennawd, y swyddogaeth. 612 00:29:15,330 --> 00:29:16,450 Pam ydw i'n gwybod hynny? 613 00:29:16,450 --> 00:29:18,522 Wel dyma ben paren, dyma paren agored. 614 00:29:18,522 --> 00:29:21,230 Ac wrth gwrs, yn union fel yn C, unrhyw beth rhwng y cromfachau rhai 615 00:29:21,230 --> 00:29:23,350 yn input-- neu ddadl i'r swyddogaeth. 616 00:29:23,350 --> 00:29:26,710 >> Beth yw'r math data y ddadl hon, seiliedig ar yr hyn yr wyf wedi tynnu sylw? 617 00:29:26,710 --> 00:29:30,820 Beth mae cromfachau sgwâr y rhai yn nodi, yn seiliedig ar wythnos diwethaf? 618 00:29:30,820 --> 00:29:33,390 Yeah, ei fod yn array-- yn benodol amrywiaeth cysylltiadol. 619 00:29:33,390 --> 00:29:35,700 A chystrawen hon rhaid cyfaddef ychydig yn ffynci, 620 00:29:35,700 --> 00:29:38,860 ond mae hyn yn dim ond pasio mewn un pâr gwerth allweddol. 621 00:29:38,860 --> 00:29:43,530 Yr allwedd yw, dyfynnwch unquote teitl, ac mae'r gwerth yn CS50. 622 00:29:43,530 --> 00:29:46,220 >> Os ydym wedi gwneud hyn yn C, y gallai yn lle hynny 623 00:29:46,220 --> 00:29:49,400 edrych yn fwy fel hyn, dim ond quote unquote CS50-- 624 00:29:49,400 --> 00:29:52,460 neu mewn gwirionedd byddai'n cyrliog braces, neu rywbeth fel 'na yn C, 625 00:29:52,460 --> 00:29:55,580 lle yr allwedd yn sero, a gwerth yn CS50. 626 00:29:55,580 --> 00:29:59,840 Ond unwaith eto, yn PHP, er bod y cystrawen yw, unwaith eto, ychydig yn od, 627 00:29:59,840 --> 00:30:02,860 mae'n eich galluogi i basio mewn geiriau yn lle rhifau 628 00:30:02,860 --> 00:30:05,120 i gysylltu allweddi gyda gwerthoedd. 629 00:30:05,120 --> 00:30:06,390 >> Felly beth mae hyn i gyd yn ei olygu? 630 00:30:06,390 --> 00:30:09,750 Os byddaf yn mynd i mewn i helpers.php, gadewch i ni edrych ar y swyddogaeth hon. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, yn hytrach renderHeader yw fy swyddogaeth, 632 00:30:13,620 --> 00:30:16,220 a gwn fod gan fy mod yn gweld yr allweddair ffwythiant yma. 633 00:30:16,220 --> 00:30:19,450 Mae hyn yn newydd o C-- ei debyg yn cymryd dadl o'r enw data-- 634 00:30:19,450 --> 00:30:22,400 ond gallwn i wedi galw hyn unrhyw beth, ond yr wyf yn ei alw data, 635 00:30:22,400 --> 00:30:25,090 dim ond i fod ychydig yn clean-- a dim ond yn cymryd dyfalu, yn enwedig 636 00:30:25,090 --> 00:30:28,173 os ydych wedi rhaglennu mewn rhyw arall iaith ar lefel uwch o'r blaen, rhywbeth 637 00:30:28,173 --> 00:30:29,820 uwchlaw C, yn gysyniadol. 638 00:30:29,820 --> 00:30:33,820 >> Beth mae braced agored cyfartal yn ôl pob tebyg braced sgwâr yn ei olygu? 639 00:30:33,820 --> 00:30:35,540 Neu beth y gallai ei olygu? 640 00:30:35,540 --> 00:30:39,660 Nid ydym wedi gweld hyn yn C. Yeah? 641 00:30:39,660 --> 00:30:40,480 >> Amrywiaeth gwag. 642 00:30:40,480 --> 00:30:45,440 Yn benodol, mae hyn yn golygu, os nad yw'r defnyddiwr yn galw renderHeader 643 00:30:45,440 --> 00:30:49,340 gyda dadl, rydw i'n dal i fynd i gael dadl o'r enw data, 644 00:30:49,340 --> 00:30:52,327 ond mae ei gwerth diofyn yn mynd i fod amrywiaeth wag. 645 00:30:52,327 --> 00:30:53,660 Felly mae'n dim ond cyfleustra 'n glws. 646 00:30:53,660 --> 00:30:56,493 Nid oes rhaid i mi gweiddi ar y defnyddiwr, neu ddweud chi wedi defnyddio fy swyddogaeth anghywir. 647 00:30:56,493 --> 00:30:59,849 Gallaf roi diofyn y defnyddiwr gwerth, os dwi ddim yn arbennig gofal. 648 00:30:59,849 --> 00:31:01,890 Yn awr y swyddogaeth hon, rwy'n mynd i chwifio fy nwylo ar. 649 00:31:01,890 --> 00:31:07,620 Ond mae swyddogaeth y darn hwn yn caniatáu ni basio newidynnau hyn yn y data 650 00:31:07,620 --> 00:31:10,360 i header.php yn y modd canlynol. 651 00:31:10,360 --> 00:31:13,100 Ac mae hyn yn y darn olaf, Yr wyf yn meddwl, cystrawen ffynci. 652 00:31:13,100 --> 00:31:15,860 Dyma fy fersiwn newydd o header.php-- ei 653 00:31:15,860 --> 00:31:20,140 yn arfer dweud, yn llythrennol, ar agor braced Teitl CS50, a dyna ni. 654 00:31:20,140 --> 00:31:21,766 Ac un peth ar gyfer yr H1. 655 00:31:21,766 --> 00:31:24,310 >> Nawr mae'n debyg yn dweud rhywbeth 'n bert ffynci. 656 00:31:24,310 --> 00:31:28,030 A gadewch i mi symleiddio'r hyn am funud fel a ganlyn. 657 00:31:28,030 --> 00:31:31,020 Mae hyn yn hyn yr wyf i wedi newid fy enw i fod. 658 00:31:31,020 --> 00:31:35,140 Fodd bynnag, mae'n mynd ychydig yn hyll i cromfachau agored yn gyson gyda PHP, 659 00:31:35,140 --> 00:31:36,610 ac yna defnyddiwch y ffwythiant print. 660 00:31:36,610 --> 00:31:40,810 Mae'n ymddangos bod PHP Mae llaw-fer nodiant ar gyfer hyn, sydd ychydig 661 00:31:40,810 --> 00:31:45,050 arwydd cyfartal, sydd yn dechnegol yn swyddogaeth a elwir yn adleisio yn lle print, 662 00:31:45,050 --> 00:31:46,800 ond mae'n yr un peth, yn effeithiol. 663 00:31:46,800 --> 00:31:48,440 >> Mai dim ond yn edrych yn well. 664 00:31:48,440 --> 00:31:50,510 Mae'n dim ond cystrawennol siwgr, os mynnwch, 665 00:31:50,510 --> 00:31:52,260 sy'n gwneud fy cod yn edrych ychydig yn well. 666 00:31:52,260 --> 00:31:54,010 Ond mae'n troi allan, ac byddwn yn gweld hyn eto 667 00:31:54,010 --> 00:31:57,420 cyn bo hir, mae'n rhaid i ni yn galw hyn annoyingly swyddogaeth hir o'r enw 668 00:31:57,420 --> 00:32:00,582 HTML chars arbennig mewn PHP, gan ei fod yn troi allan 669 00:32:00,582 --> 00:32:02,790 mae rhai mewnbynnau y gallai'r defnyddiwr ei roi i ni, 670 00:32:02,790 --> 00:32:05,160 neu y gallai defnyddwyr roi i ni, sydd yn mynd i dorri ein safle. 671 00:32:05,160 --> 00:32:07,035 Ond byddwn yn gweld bod nesaf wythnos gyda JavaScript. 672 00:32:07,035 --> 00:32:10,740 Ond am nawr, dim ond yn gwybod bod y ffeil, headers.php, yn syml 673 00:32:10,740 --> 00:32:13,040 yn cymryd y teitl sy'n Yr wyf yn pasio i mewn, mae'n gwneud 674 00:32:13,040 --> 00:32:17,380 siŵr ei fod yn ddiogel i gael eu chwistrellu i mewn i we dudalen, ac mae'n poeri allan fel fy deitl 675 00:32:17,380 --> 00:32:18,640 ac fel fy F1. 676 00:32:18,640 --> 00:32:24,440 Felly, os byddaf yn mynd i mewn i hyn fersiwn yn awr, sylwi bod ddarlithoedd wedi ei deitl yn ôl, 677 00:32:24,440 --> 00:32:28,630 wythnos sero wedi ei deitl yn ôl, a yn wir, mae'r HTML i ddim yn cynhyrchu 678 00:32:28,630 --> 00:32:32,110 yn union beth yw fy fersiwn cyntaf was-- ac eithrio ar gyfer fy gofod gwyn, 679 00:32:32,110 --> 00:32:35,150 am fy mod i wedi dechrau fformatio fy cod ychydig yn wahanol. 680 00:32:35,150 --> 00:32:38,082 Ond rydw i wedi ei gynhyrchu i gyd y cod Rwy'n poeni am. 681 00:32:38,082 --> 00:32:39,790 Felly gadewch i mi oedi am ychydig funudau'n a gweld 682 00:32:39,790 --> 00:32:42,200 os oes unrhyw gwestiynau neu ddryswch Rydw i wedi creu. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Mae pob hawl, felly gadewch i Twist ychydig yn galetach yma 685 00:32:48,150 --> 00:32:51,500 i weld a oes 'na cyfle i wella. 686 00:32:51,500 --> 00:32:56,130 Roedd gan Helpers.php hefyd hon swyddogaeth, a elwir yn renderFooter. 687 00:32:56,130 --> 00:32:59,652 A beth nodedig am renderHeader, a renderFooter? 688 00:32:59,652 --> 00:33:02,610 Ac eto, ar gyfer dibenion heddiw, yn gwybod bod y swyddogaeth dyfyniad yn unig 689 00:33:02,610 --> 00:33:08,280 fy ffordd o ddadleuon pasio i mewn i header.php a footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Mae'n ddrwg gennym? 692 00:33:11,780 --> 00:33:13,056 >> GYNULLEIDFA: [Anghlywadwy] 693 00:33:13,056 --> 00:33:15,180 DAVID Malan: Yeah, yr wyf yn unig newidiodd y gofyn am linell. 694 00:33:15,180 --> 00:33:19,410 Felly llythrennol, dwi wedi ymrwymo bechod o copïo a gludo, unwaith eto. 695 00:33:19,410 --> 00:33:21,920 Nid yw'n nifer enfawr o linellau, ond yn dod on-- 696 00:33:21,920 --> 00:33:25,220 os ydw i'n gopïo a chludo popeth dim ond i newid un gair bach, 697 00:33:25,220 --> 00:33:28,610 ac mae'r un gair bach sy'n Alan pwyntiau allan yw footer yma, yn erbyn pennawd yma. 698 00:33:28,610 --> 00:33:30,670 Fel arall, mae popeth yn union yr un fath, ac eithrio ar gyfer, 699 00:33:30,670 --> 00:33:32,180 wrth gwrs, enwau y swyddogaeth yn. 700 00:33:32,180 --> 00:33:33,690 Felly, beth y gallem ei wneud yn well? 701 00:33:33,690 --> 00:33:39,810 >> Wel gadewch i mi agor y fersiwn yma, lle yn helpers.php, 702 00:33:39,810 --> 00:33:42,300 pam nad ydw i'n jyst cael ychydig callach am hyn? 703 00:33:42,300 --> 00:33:46,410 Ysgrifennwch ychydig yn fwy cymhleth cod, ond alw yn rendr? 704 00:33:46,410 --> 00:33:48,470 Felly beth rwyf wedi newid yn sylfaenol? 705 00:33:48,470 --> 00:33:51,770 >> Mae'n cymryd dadl now-- dwy ddadl, data o hyd. 706 00:33:51,770 --> 00:33:54,444 Ac yna beth yw'r cyntaf enw yn ôl pob tebyg yn cael ei ddefnyddio ar gyfer, 707 00:33:54,444 --> 00:33:55,860 yn seiliedig ar yr hyn yr ydych yn darllen yma? 708 00:33:55,860 --> 00:33:58,452 Hyd yn oed os bydd rhai o'r gystrawen yn dal yn newydd. 709 00:33:58,452 --> 00:33:59,660 Beth yw templed arwydd doler? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Mae'n ddrwg gennym? 712 00:34:03,016 --> 00:34:03,710 >> GYNULLEIDFA: Pennyn neu droedyn. 713 00:34:03,710 --> 00:34:04,510 >> DAVID Malan: Pennyn neu droedyn. 714 00:34:04,510 --> 00:34:07,134 Felly mae'n debyg, penderfynais os yr unig beth sy'n newid 715 00:34:07,134 --> 00:34:10,159 yw'r hyn yr wyf am dempled i print-- a thrwy thempled 716 00:34:10,159 --> 00:34:13,100 Yr wyf yn golygu hyn yn lasbrint ar gyfer Cod yr wyf am ei allbwn, 717 00:34:13,100 --> 00:34:16,350 ond yr wyf am i blygio mewn rhai values-- felly os mai dim ond header 718 00:34:16,350 --> 00:34:20,440 neu troedyn, pam nad wyf parameterize hynny a ffoniwch yr arwydd doler ddadl 719 00:34:20,440 --> 00:34:21,409 templed? 720 00:34:21,409 --> 00:34:26,250 Ac yna y gystrawen ffynci caniatáu i mi i greu llwybr mewn newidyn yma. 721 00:34:26,250 --> 00:34:28,030 >> Felly llwybr arwydd doler yn amrywio. 722 00:34:28,030 --> 00:34:31,120 Beth mae cystrawen hwn ei wneud, os ydych yn gyfarwydd? 723 00:34:31,120 --> 00:34:32,512 Yeah? 724 00:34:32,512 --> 00:34:34,065 >> GYNULLEIDFA: [Anghlywadwy] 725 00:34:34,065 --> 00:34:34,940 DAVID Malan: Yn union. 726 00:34:34,940 --> 00:34:37,600 Os templed yw, dyfynnwch unquote, pennawd, neu os templed yw, 727 00:34:37,600 --> 00:34:41,170 dyfyniad unquote, troedyn, y llinell yno fy mod wedi tynnu sylw, llinell wyth, 728 00:34:41,170 --> 00:34:46,330 yn syml, gan gymryd bod enw, fel pennawd, a gydgadwyno'r gyda dot PHP. 729 00:34:46,330 --> 00:34:49,750 Felly, nid oedd gennym gweithredwr hon yn C. Mae hyn gweithredwr dot yn 730 00:34:49,750 --> 00:34:54,520 yn beth anhygoel yn PHP-- os ydych chi'n gyfarwydd â JavaScript, neu Java, 731 00:34:54,520 --> 00:34:56,949 gallwch ddefnyddio'r plws lofnodi i wneud concatenation. 732 00:34:56,949 --> 00:34:59,974 >> Yn C, mae'n boen yn y neck-- a dwi mor flin, yn p-set chwech, 733 00:34:59,974 --> 00:35:02,390 rydych yn mynd i gael i wneud this-- ei fod yn boen yn y gwddf 734 00:35:02,390 --> 00:35:03,930 i concatenate llinynnau. 735 00:35:03,930 --> 00:35:04,670 Pam? 736 00:35:04,670 --> 00:35:06,580 Wel, oherwydd os oes gennych llinyn sy'n ydyn nhw o hyd, 737 00:35:06,580 --> 00:35:09,538 a llinyn arall sy'n ydyn nhw o hyd, nid ydych yn gallu eu plwg at ei gilydd. 738 00:35:09,538 --> 00:35:11,070 Beth sy'n rhaid i chi ei wneud yn lle hynny yn C? 739 00:35:11,070 --> 00:35:11,680 Yeah? 740 00:35:11,680 --> 00:35:12,380 >> GYNULLEIDFA: [Anghlywadwy] 741 00:35:12,380 --> 00:35:15,090 >> DAVID Malan: Mae'n rhaid i chi malloc cof, neu ddefnyddio amrywiaeth ar y corn. 742 00:35:15,090 --> 00:35:17,214 Ac mewn gwirionedd yn rhaid i chi wneud y casgliad yn ddigon mawr 743 00:35:17,214 --> 00:35:20,940 i gyd-fynd hyn plws hyn, yn ogystal â'r slaes sero. 744 00:35:20,940 --> 00:35:24,994 Yna concatenate nhw at ei gilydd gan ddefnyddio troi cath neu â llaw gyda gyfer dolen, 745 00:35:24,994 --> 00:35:26,160 neu unrhyw nifer o dechnegau. 746 00:35:26,160 --> 00:35:27,760 Ac rydym yn dangos i chi gwpl mewn chwe set-t. 747 00:35:27,760 --> 00:35:29,080 >> Mae'n boen yn y gwddf. 748 00:35:29,080 --> 00:35:34,190 Ac mae hyn yn wir yr hyn yr wyf yn ei olygu am mae hyn yn erbyn this-- fel C yn erbyn PHP. 749 00:35:34,190 --> 00:35:36,870 Rydych yn unig yn cael cymaint mwy ymarferoldeb ar gyfer rhad ac am ddim, 750 00:35:36,870 --> 00:35:39,030 fel y gallwch ganolbwyntio, yn ddelfrydol, ar yr hwyl 751 00:35:39,030 --> 00:35:41,190 rhan o godio, mae'r prosiect yr ydych am i ddatrys, 752 00:35:41,190 --> 00:35:43,190 yn hytrach na'r manion lefel isel. 753 00:35:43,190 --> 00:35:49,840 >> Felly, mae hyn yn unig yn cynhyrchu header.php neu footer.php yn seiliedig ar ba un yr wyf yn galw. 754 00:35:49,840 --> 00:35:52,280 Ac yn wir os byddaf yn mynd i mewn i index.php, rhybudd 755 00:35:52,280 --> 00:35:56,230 cyfan sydd ei changed-- Yn hytrach na galw rendrad pennawd neu troedyn rendr, 756 00:35:56,230 --> 00:36:00,230 Im 'yn galw rendr, wedi'i ddilyn gan y enwi o'r templed yr wyf am ei wneud. 757 00:36:00,230 --> 00:36:02,370 A byddwch yn gweld hyn, hefyd, yn broblem yn gosod saith, 758 00:36:02,370 --> 00:36:05,530 lle yr ydym yn caniatáu i chi ddefnyddio'r un swyddogaeth i wneud sypiau 759 00:36:05,530 --> 00:36:07,550 a sypiau o dudalennau gwe gwahanol. 760 00:36:07,550 --> 00:36:10,570 >> Felly yn hytrach na drigo yn rhy llawer mwy ar y rhai details-- 761 00:36:10,570 --> 00:36:13,210 pa byddwch yn gweld eto yn seven-- set problem gadewch i ni edrych 762 00:36:13,210 --> 00:36:16,850 ar awr ddechrau ateb i broblem fwy diddorol. 763 00:36:16,850 --> 00:36:19,310 Hyd yn hyn, nid oes dim rydym wedi ei wneud Mae data cadw. 764 00:36:19,310 --> 00:36:22,920 Yn wir, yr unig adeg rydym wedi arbed erioed rhywbeth yr ydym wedi ei wneud yn y dosbarth hwn 765 00:36:22,920 --> 00:36:31,030 yw pan gawsom demo syml iawn dro yn ôl, lle rydym yn defnyddio ffeil IO yn C, 766 00:36:31,030 --> 00:36:34,520 ac yr wyf yn meddwl fy mod deipio yn fy enw i, a Enw Hannah, ac enw Maria, 767 00:36:34,520 --> 00:36:37,610 neu efallai enw Andy, ac yna rydym yn arbed file-- CSV 768 00:36:37,610 --> 00:36:39,430 comma separated ffeil gwerthoedd. 769 00:36:39,430 --> 00:36:43,530 >> Ac rydym yn defnyddio fopen-- wyf yn meddwl rydym yn defnyddio fprintf fel yr wyf yn cofio, 770 00:36:43,530 --> 00:36:44,910 ac rydym yn arbed ffeil. 771 00:36:44,910 --> 00:36:46,920 Yn awr, dyna'r symlaf ffurf cronfa ddata. 772 00:36:46,920 --> 00:36:50,230 Os ydych am wneud gwefan ar gyfer y Rhaglen Frosh IMS, lle Grwpiau myfyrwyr Grwpiau Cymuned 773 00:36:50,230 --> 00:36:53,390 Gall gofrestru ar gyfer chwaraeon, rydych yn ddelfrydol am wneud rhywbeth gyda data hwnnw. 774 00:36:53,390 --> 00:36:55,370 Yr wythnos diwethaf, yr ydym yn gwneud dim gyda'r data-- ydym newydd ei ddweud, 775 00:36:55,370 --> 00:36:56,661 rydych wedi cofrestru, nid mewn gwirionedd. 776 00:36:56,661 --> 00:36:58,950 Neu efallai yr wyf yn anfon e-bost y Proctor, a dyna ni. 777 00:36:58,950 --> 00:37:02,110 >> Ond byddai'n braf pe gallwn rhoi'r proctor ffeil CSV, 778 00:37:02,110 --> 00:37:03,340 fel ffeil Excel. 779 00:37:03,340 --> 00:37:05,090 Neu well eto, byddai'n braf pe gallwn 780 00:37:05,090 --> 00:37:08,830 rhoi enwau defnyddwyr hynny 'a dorm enwau a hynny i gyd 781 00:37:08,830 --> 00:37:11,740 i mewn i gronfa ddata sy'n dim ond yn byw am byth, 782 00:37:11,740 --> 00:37:13,530 nes i mi yn dewis dileu data. 783 00:37:13,530 --> 00:37:15,645 Mae cronfa ddata sy'n caniatáu mi i holi gwybodaeth. 784 00:37:15,645 --> 00:37:18,070 Ac yn wir, dyna beth cronfa ddata yn. 785 00:37:18,070 --> 00:37:20,470 >> Rydym yn cyflwyno heddiw, ac yr wythnos nesaf, hefyd, yn dechnoleg 786 00:37:20,470 --> 00:37:25,020 Gelwir SQL-- mae Ymholiad Strwythuredig Iaith, sydd yn iaith arall. 787 00:37:25,020 --> 00:37:28,750 Mae'n hanfod yn rhaglennu iaith, ond ar gyfer cronfeydd data. 788 00:37:28,750 --> 00:37:31,760 A chronfa ddata ar hyn o bryd, dim ond feddwl fel fersiwn super ffansi 789 00:37:31,760 --> 00:37:35,710 o Microsoft Excel, neu Google Taenlenni, neu Rhifau Apple. 790 00:37:35,710 --> 00:37:39,950 Mae'n gyffredinol rhaglen sy'n caniatáu chi storio criw cyfan o ddata 791 00:37:39,950 --> 00:37:43,960 mewn rhesi a cholofnau, yn eithaf fel chi efallai yn Excel. 792 00:37:43,960 --> 00:37:47,100 >> Ond yr hyn sy'n braf, yn enwedig os nid ydym yn super gyfarwydd â Excel, 793 00:37:47,100 --> 00:37:52,040 beth SQL yn caniatáu i chi ei wneud yw ymholiad hwn gwybodaeth drwy ysgrifennu llinellau o god 794 00:37:52,040 --> 00:37:55,220 lle y gallwch, hyd yn oed os yw eich Mae gan gronfa ddata miliwn o resi ynddo, 795 00:37:55,220 --> 00:37:57,190 gallwch ddod o hyd pethau gyflym super. 796 00:37:57,190 --> 00:37:59,950 Yn wir, Excel yn arbennig o ddrwg o setiau data mawr. 797 00:37:59,950 --> 00:38:02,460 Ac yn wir, hyd at ychydig mlynedd yn ôl, troi allan 798 00:38:02,460 --> 00:38:08,890 Byddai Excel ond yn caniatáu i chi storio hyd at 65,535 rhesi o data-- sy'n 799 00:38:08,890 --> 00:38:12,020 swnio fel llawer, ond ar yr amser oeddwn yn fyfyriwr grad, 800 00:38:12,020 --> 00:38:14,920 ac yr wyf yn cofio baglu dros hwn oherwydd fy mod yn cynhyrchu 801 00:38:14,920 --> 00:38:17,900 Ffeiliau CSV ar gyfer fy ymchwil ac yr wyf yn yn awyddus i'w dadansoddi yn gyflym 802 00:38:17,900 --> 00:38:19,530 at jyst agor i fyny yn Excel. 803 00:38:19,530 --> 00:38:23,730 Wrth gwrs, fy nghyfrifiadur jyst damwain, gan fy mod wedi mwy na 65,000 o rhesi. 804 00:38:23,730 --> 00:38:27,210 >> Ond ble wnaeth y 65,535 yn dod? 805 00:38:27,210 --> 00:38:29,670 Beth oedd yn Microsoft yn ei wneud, yn ôl pob tebyg? 806 00:38:29,670 --> 00:38:32,430 Os ydych yn dda gyda eich pwerau o ddau? 807 00:38:32,430 --> 00:38:37,160 Yeah, maent yn defnyddio 16-bit gwerth i gynrychioli'r rhif rhes. 808 00:38:37,160 --> 00:38:41,310 A dau i 16 yw 65,536-- un minws, oherwydd os ydych 809 00:38:41,310 --> 00:38:45,414 sero mynegai yn golygu bod yn y nifer fwyaf o resi gallwn i gael. 810 00:38:45,414 --> 00:38:46,830 Ac 'i jyst yn benderfyniad dyluniad yn. 811 00:38:46,830 --> 00:38:52,760 Erbyn 16 darnau arbed, maent yn gyfyngedig i mi i 16,000 rhesi, yn hytrach na 4 biliwn, 812 00:38:52,760 --> 00:38:54,322 y gellid wyf wedi cael yn ddelfrydol. 813 00:38:54,322 --> 00:38:57,030 Ond am nawr, rydyn ni'n mynd i gyflwyno hyn fwy mewn cyd-destun y we. 814 00:38:57,030 --> 00:39:00,390 A beth sy'n neis am SQL yw bod hyd yn oed er 'i' 'n bert pwerus a' n bert 815 00:39:00,390 --> 00:39:04,050 soffistigedig, mae'n wir boils i lawr i bedwar weithrediadau allweddol, pedwar 816 00:39:04,050 --> 00:39:08,060 swyddogaethau allweddol, os will-- byddwch yn dewis, ar gyfer adfer data, chwilio 817 00:39:08,060 --> 00:39:12,510 ar gyfer data; dileu neu ddileu data; mewnosod ar gyfer ychwanegu rhesi at y gronfa ddata; 818 00:39:12,510 --> 00:39:13,410 a diweddaru. 819 00:39:13,410 --> 00:39:17,010 Felly os ydych chi erioed wedi defnyddio Google Taenlenni, Rhifau'n Afal, Microsoft 820 00:39:17,010 --> 00:39:19,310 Excel, yr ydych wedi eu gweithredu, fwyaf tebygol, i gyd 821 00:39:19,310 --> 00:39:22,530 o'r gweithrediadau hyn fel dynol drwy dim ond yn defnyddio eich bysellfwrdd a mouse-- 822 00:39:22,530 --> 00:39:26,050 mewnosod data, gan ddefnyddio eich llygaid i ddewis neu chwilio am ddata, 823 00:39:26,050 --> 00:39:28,360 neu ddata diweddaru, neu ddileu data. 824 00:39:28,360 --> 00:39:29,870 >> Felly beth mae hyn yn ei olygu? 825 00:39:29,870 --> 00:39:34,300 Wel, cyn-osod yn CS50 IDE yn rhaglen o'r enw MySQL. 826 00:39:34,300 --> 00:39:37,050 Mae'n rhad ac am ddim, yn agored-ffynhonnell cronfa ddata sy'n super poblogaidd. 827 00:39:37,050 --> 00:39:40,590 Facebook, er enghraifft, yn ei ddefnyddio i hyn dydd, ymhlith offer eraill y maent yn eu defnyddio. 828 00:39:40,590 --> 00:39:44,300 Ac mae llawer o wefannau poblogaidd iawn defnyddio ei i raddau helaeth oherwydd ei fod yn gyflym, 829 00:39:44,300 --> 00:39:45,230 ac am ei fod yn rhad ac am ddim. 830 00:39:45,230 --> 00:39:46,820 Er sicr dewisiadau eraill yn bodoli. 831 00:39:46,820 --> 00:39:49,580 Ac efallai y bydd rhai ohonoch chi dabble gyda dewisiadau eraill ar gyfer prosiectau terfynol. 832 00:39:49,580 --> 00:39:55,330 >> Mae hwn yn screenshot, yn y cyfamser, o offeryn ar y we a elwir yn phpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 Mae'n gyd-ddigwyddiad bod y dull ar y we hefyd 834 00:39:58,260 --> 00:40:01,720 hysgrifennu mewn iaith, PHP, ond yr hyn mae'n fod i'w wneud 835 00:40:01,720 --> 00:40:04,620 yn rhoi i ni yn seiliedig ar y we rhyngwyneb i gronfa ddata. 836 00:40:04,620 --> 00:40:07,180 Gan fod MySQL fel arfer yn rhywbeth, yn hanesyddol, i chi 837 00:40:07,180 --> 00:40:08,770 Byddai rhyngweithio gyda dim ond gyda llinell orchymyn. 838 00:40:08,770 --> 00:40:10,811 A byddai'n super blino ac dirgel i gael 839 00:40:10,811 --> 00:40:14,487 teipio gorchmynion testunol i ddewis data, mewnosod data, a dileu data. 840 00:40:14,487 --> 00:40:16,820 Felly, mae rhai pobl ar y rhyngrwyd Ysgrifennodd rhaglen ar y we 841 00:40:16,820 --> 00:40:18,900 mai dim ond gadewch i ni reoli mae'r data yn ein cronfa ddata. 842 00:40:18,900 --> 00:40:23,040 Mae fel glicio ddwywaith ar Excel, a rhedeg fersiwn ar y we ohono. 843 00:40:23,040 --> 00:40:26,370 >> A beth rydych yn mynd i ddefnyddio hwn ar gyfer yn y pen draw yr wythnos nesaf, nid mewn chwech a osodwyd-p, 844 00:40:26,370 --> 00:40:28,680 ond yw adeiladu rhywbeth Gelwir CS50 Cyllid, a oedd yn 845 00:40:28,680 --> 00:40:32,630 yn mynd i gael cronfa ddata o defnyddwyr, gydag enwau defnyddwyr a chyfrineiriau, 846 00:40:32,630 --> 00:40:34,860 doler symiau eu bod yn yn eu cyfrifon banc. 847 00:40:34,860 --> 00:40:37,280 Mae'n mynd i fod yn rhywbeth rydych yn ei ddefnyddio i storio 848 00:40:37,280 --> 00:40:39,910 y symbolau a'r symiau o stociau bod defnyddwyr 849 00:40:39,910 --> 00:40:42,567 wedi prynu gan ddefnyddio rhith ddoleri y byddwch yn rhoi iddynt. 850 00:40:42,567 --> 00:40:44,900 Ac mae'n mynd i ganiatáu i ddefnyddwyr i gofrestru ar gyfer eich safle, 851 00:40:44,900 --> 00:40:47,190 fel bod hyd yn oed eich ffrindiau gall gwrandewch ar eich gwefan 852 00:40:47,190 --> 00:40:49,360 ac mewn gwirionedd yn cofrestru, logio i mewn, ac yn chwarae o gwmpas 853 00:40:49,360 --> 00:40:52,807 a cheisio dod o hyd fai yn eich cod, a cheisio dod o hyd chwilod yn eich gwefan. 854 00:40:52,807 --> 00:40:55,390 A byddant yn syml gofrestru drwy gan ychwanegu eu hunain, yn effeithiol, 855 00:40:55,390 --> 00:40:58,120 trwy cod i chi ysgrifennu at eich cronfa ddata. 856 00:40:58,120 --> 00:41:02,470 >> Er enghraifft, mae hyn yn screenshot cyflym o'r hyn y gallai cronfa ddata yn edrych fel. 857 00:41:02,470 --> 00:41:05,190 Roedd hyn o un o solutions-- llynedd 858 00:41:05,190 --> 00:41:07,760 mae hyn yn debyg i Excel mini ffeil, storio yn ein cronfa ddata, 859 00:41:07,760 --> 00:41:09,950 storio yn y meddalwedd o'r enw MySQL. 860 00:41:09,950 --> 00:41:13,260 Ar yr ochr chwith, rwyf wedi yn ôl pob golwg cael rhif unigryw bob defnyddiwr. 861 00:41:13,260 --> 00:41:16,200 Yn yr ail golofn, rydw i wedi rhoi pawb defnyddiwr name-- fy hun 862 00:41:16,200 --> 00:41:16,880 yn eu plith. 863 00:41:16,880 --> 00:41:21,430 Ac ar yr ochr dde, Rydw i wedi rhoi hash iddynt. 864 00:41:21,430 --> 00:41:26,760 >> Nawr mae hyn mewn gwirionedd cyfrinair, ond nid yw'n cyfrinair testun plaen. 865 00:41:26,760 --> 00:41:30,160 Mae'n cyfrinair amgryptio, os byddwch, neu gyfrinair hash. 866 00:41:30,160 --> 00:41:32,000 Y byddwn yn dod yn ôl at cyn bo hir. 867 00:41:32,000 --> 00:41:34,340 >> Ond os ydych wedi darllen erioed erthygl am sut 868 00:41:34,340 --> 00:41:37,950 eich cyfrinair ar ryw banc neu ryw Efallai y wefan, wedi cael ei gyfaddawdu, 869 00:41:37,950 --> 00:41:39,630 Yn gyffredinol, gall olygu un o ddau beth. 870 00:41:39,630 --> 00:41:42,780 Felly, mae hyn yn unig yw dyfyniad o chwech o ddefnyddwyr. 871 00:41:42,780 --> 00:41:45,460 Mae pob un ohonoch yn gallu nawr ffigur allan drwy hacio neu gracio 872 00:41:45,460 --> 00:41:47,690 pa cyfrineiriau ein chwech o bobl yn cael eu. 873 00:41:47,690 --> 00:41:49,720 Ond os ydych chi wedi gotten erioed rhybudd neu ymddiheuriad 874 00:41:49,720 --> 00:41:52,803 gan gwmni neu wefan dywediad, ddrwg gennym, haciwr dorrodd i mewn ein cronfa ddata, 875 00:41:52,803 --> 00:41:56,360 mae'n debyg y dylech chi newid eich cyfrinair, beth allai hynny olygu? 876 00:41:56,360 --> 00:41:59,670 >> Wel, un, gallai olygu y cwmni wedi bod yn fwy moronic, 877 00:41:59,670 --> 00:42:03,630 ac wedi bod yn storio eich cyfrinair mewn colofn fel hyn, heb ei amgryptio. 878 00:42:03,630 --> 00:42:05,840 Sy'n golygu bod y gwrthwynebwr, oedd yn dwyn y gronfa ddata, 879 00:42:05,840 --> 00:42:07,440 llythrennol yn gwybod eich enw defnyddiwr a chyfrinair. 880 00:42:07,440 --> 00:42:08,960 Dyna y senario gwaethaf posibl. 881 00:42:08,960 --> 00:42:11,710 Ac fel y gwelwch yn p-set saith, mor hawdd i'w hosgoi. 882 00:42:11,710 --> 00:42:15,624 Does dim esgus o gwbl am hynny ffurf o hurtrwydd yn y rhyngrwyd heddiw. 883 00:42:15,624 --> 00:42:18,540 Two-- a byddwn yn dod o hyd rhai erthyglau i dystio i'r ffaith bod hyn yn dal 884 00:42:18,540 --> 00:42:21,710 yn digwydd, nonetheless-- dau, efallai y gwrthwynebwr 885 00:42:21,710 --> 00:42:23,840 dwyn y fersiwn hon o'r gronfa ddata. 886 00:42:23,840 --> 00:42:27,110 Sydd yn dal math o ddrwg, oherwydd erbyn hyn maent yn gwybod bod gen i chwech o gwsmeriaid, 887 00:42:27,110 --> 00:42:29,270 Yr wyf yn gwybod yr enwau defnyddwyr o chwe cwsmeriaid hynny, 888 00:42:29,270 --> 00:42:32,910 ac yr wyf yn gwybod yr amgryptio fersiwn, neu fersiynau hashed, 889 00:42:32,910 --> 00:42:34,340 cyfrineiriau chwe cwsmeriaid hynny. 890 00:42:34,340 --> 00:42:37,010 Ond unrhyw un ohonoch a allai wedi ei wneud [? Haciwr 2?] 891 00:42:37,010 --> 00:42:41,150 lle rydych wedi cracio cyfrineiriau, neu gymryd a edrych ar y fersiwn o'r broblem 892 00:42:41,150 --> 00:42:46,280 set, pam ei fod yn dal ychydig yn worrisome os yw'r gwrthwynebwr yn gwybod eich hash 893 00:42:46,280 --> 00:42:47,435 cyfrineiriau? 894 00:42:47,435 --> 00:42:49,732 >> GYNULLEIDFA: Oherwydd y gallent mynd i mewn y geiriadur cyfan 895 00:42:49,732 --> 00:42:50,690 i mewn i'r swyddogaeth hash. 896 00:42:50,690 --> 00:42:54,520 Ac os yw eich cyfrinair yn eiriadur gair, [? gallant jyst match--?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID Malan: Yn union, mae'r gwrthwynebwr gall dim ond ysgrifennu cod, fel y mae rhai ohonoch chi 898 00:42:57,640 --> 00:43:00,526 gwnaeth i [? Hacker?] 2, lle byddwch yn ailadrodd drosodd 899 00:43:00,526 --> 00:43:03,400 holl eiriau yn y geiriadur, neu bob gyfuniadau posibl o A 900 00:43:03,400 --> 00:43:06,610 drwy Z ac un drwy nine-- sy'n swnio fel llawer, ac y mae. 901 00:43:06,610 --> 00:43:08,361 Ond ar gyfer cyfrifiadur, mae'n eithaf darn cyflym. 902 00:43:08,361 --> 00:43:10,610 Ac yn wir, dyna oedd y pwynt o [? Haciwr 2,?] Oedd 903 00:43:10,610 --> 00:43:12,540 i gymryd pethau hynny yn llythrennol yn edrych fel hyn, 904 00:43:12,540 --> 00:43:14,900 a pheiriannydd cefn yr hyn y mae'n mewn gwirionedd oedd. 905 00:43:14,900 --> 00:43:17,270 >> Felly byddwn yn edrych ar sut y gallwn storio'r hyn yn fwy effeithlon. 906 00:43:17,270 --> 00:43:20,210 Troi allan, diolch byth yn MySQL, mae yn mynd i fod fathau o ddata. 907 00:43:20,210 --> 00:43:22,800 Ac un o'r rhannau hwyl am dylunio cronfa ddata, i fod yn onest, 908 00:43:22,800 --> 00:43:25,810 mewn gwirionedd yn penderfynu drosoch eich hun sut y dylech cynrychioli'r data? 909 00:43:25,810 --> 00:43:29,630 Os byddwch yn cynrychioli nifer ffôn fel yn int, fel nifer mawr, neu hir? 910 00:43:29,630 --> 00:43:31,630 Neu ydych chi mewn gwirionedd yn ei wneud fel dilyniant o chars? 911 00:43:31,630 --> 00:43:33,780 A gall fod iawn Effeithiau heb fod yn ddibwys o hyn. 912 00:43:33,780 --> 00:43:36,714 >> Yn wir, un o'r cynharaf straeon germane, hwyl 913 00:43:36,714 --> 00:43:39,880 yw pan fydd Mark Zuckerberg yn adeiladu Facebook, yr oedd yn ysgrifenedig yn wreiddiol yn, 914 00:43:39,880 --> 00:43:42,300 ac yn dal ei ysgrifennu i raddau helaeth yn PHP. 915 00:43:42,300 --> 00:43:45,400 Ac un o'r heriau mwyaf roeddent yn eu hwynebu yn gynnar yn graddio. 916 00:43:45,400 --> 00:43:48,820 Pan fyddant yn cadw ychwanegu ar ôl ysgol ysgol ar ôl ysgol, hyd y gwn i, 917 00:43:48,820 --> 00:43:51,639 un o'r atebion gwreiddiol yn ei hanfod i gopïo a gludo 918 00:43:51,639 --> 00:43:53,430 rhai o'r cronfeydd data a rhai o'r cod, 919 00:43:53,430 --> 00:43:55,346 fel bod Harvard oedd rhedeg ar ei ben ei hun gweinydd, 920 00:43:55,346 --> 00:43:56,995 a MIT yn rhedeg ar ei ben ei hun gweinydd. 921 00:43:56,995 --> 00:43:59,120 Ac roedd hyn yn pam, ar gyfer rhai ohonoch a allai yn cofio, 922 00:43:59,120 --> 00:44:01,510 nad oeddech yn gallu cael ffrindiau mewn rhwydweithiau eraill. 923 00:44:01,510 --> 00:44:05,050 >> Mae'n debyg nad oes rhaid i ffrindiau yn MIT neu Harvard 10 mlynedd yn ôl, 924 00:44:05,050 --> 00:44:07,467 ond ni allai chi rhychwantu rhwydweithiau am y rheswm hwnnw yn rhannol. 925 00:44:07,467 --> 00:44:10,550 Ac un o'r heriau mwyaf ar gyfer Mark ac i gwmnïau fel Facebook 926 00:44:10,550 --> 00:44:13,460 mewn gwirionedd yn trin cannoedd a miloedd a miliynau 927 00:44:13,460 --> 00:44:14,460 o geisiadau yr eiliad. 928 00:44:14,460 --> 00:44:16,501 Felly, y pethau y byddwn yn dechrau siarad am yr wythnos hon 929 00:44:16,501 --> 00:44:19,860 yn wir yn mynd i fod yn germane i ysgrifennu meddalwedd da, ac popularly 930 00:44:19,860 --> 00:44:23,040 offer llwyddiannus sy'n Gellir trin llawer o ddefnyddwyr. 931 00:44:23,040 --> 00:44:25,460 >> Felly, byddwn yn siarad am bethau fel mynegeio a chwilio, 932 00:44:25,460 --> 00:44:26,910 ond dyna yw hi i heddiw. 933 00:44:26,910 --> 00:44:28,780 Byddwn yn eich gweld am fwy ar ddydd Mercher. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [CERDDORIAETH - "Seinfeld" THEMA] 936 00:44:33,902 --> 00:44:35,943 DAVID Malan: Gallwch chi i ef, a thynnu oddi wrtho. 937 00:44:35,943 --> 00:44:38,859 Ac nid oes rhaid i chi daro ag rhai swm a bennwyd ymlaen llaw o gof. 938 00:44:38,859 --> 00:44:40,580 Wel, beth sy'n bod yn mynd i gael ei alw? 939 00:44:40,580 --> 00:44:42,369 >> SIARADWR 1: Wel, beth sy'n mynd ymlaen? 940 00:44:42,369 --> 00:44:43,535 SIARADWR 2: Beth ydych chi'n ei olygu? 941 00:44:43,535 --> 00:44:44,451 Mae'n rhoi darlith. 942 00:44:44,451 --> 00:44:47,650 DAVID Malan: A gallwn ddefnyddio swyddogaeth a elwir yn malloc i memory-- 943 00:44:47,650 --> 00:44:50,050 >> SIARADWR 1: Pam nad yn ei freichiau yn symud? 944 00:44:50,050 --> 00:44:52,450 >> SIARADWR 2: Wel that's-- eich bod yn gwybod, mae hynny'n normal. 945 00:44:52,450 --> 00:44:57,162 Mae'n union fel ei fod wedi dim ond selsig mawr yn hongian yno. 946 00:44:57,162 --> 00:44:59,040 >> SIARADWR 1: Mae hynny'n normal? 947 00:44:59,040 --> 00:45:03,096 >> SIARADWR 2: Yeah, yr wyf yn meddwl ein bod chymryd yn ganiataol ei fod yn ddamweiniol 948 00:45:03,096 --> 00:45:06,840 disodli ei diaroglydd gyda superglue. 949 00:45:06,840 --> 00:45:07,608