1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Гуляе музыка] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> Дэвід малая: Гэта CS50, і гэта пачатак тыдня восем. 5 00:00:13,350 --> 00:00:17,510 І мы так рады вітаць таму, вялікі сюрпрыз, уласны Рамон CS50 ў 6 00:00:17,510 --> 00:00:22,160 Гальван, узыходзячая старэйшы, які быў Правёўшы апошнія некалькі месяцаў 7 00:00:22,160 --> 00:00:26,190 з ліпеня ў Лос-Анджэлесе, у Галівудзе, літаральна працуе на новым тэлевізары 8 00:00:26,190 --> 00:00:31,930 шоў пад назвай Калонія, стваральнікам якога на самай справе сам Гарвардскі галын. 9 00:00:31,930 --> 00:00:36,610 І таму мы вельмі рады бачыць гэта Дэбют у сеткі ЗША ў студзені гэтага года. 10 00:00:36,610 --> 00:00:40,370 Так што сочыце за што, а для больш Рамон для тыдняў прыехаць. 11 00:00:40,370 --> 00:00:42,550 >> Ведайце ж цяпер, што канец блізкі. 12 00:00:42,550 --> 00:00:47,400 І тое, што гэта азначае, што там не усё, што многае засталося CS50, на жаль. 13 00:00:47,400 --> 00:00:49,400 У нас ёсць толькі тры праблемы наборы left-- ёсць 14 00:00:49,400 --> 00:00:52,510 Праблема ўсталяваць six--, які знаходзіцца ў Вашы рукі цяпер ці ў бліжэйшы час будзе, 15 00:00:52,510 --> 00:00:56,080 у канцы гэтага week-- закліканая ліквідаваць нашы светы ў камандным радку, дзе 16 00:00:56,080 --> 00:00:59,450 мы правялі вялікую частку нашага часу, выкарыстоўваючы З, а свет вэб-праграмавання. 17 00:00:59,450 --> 00:01:02,350 Ну, вы ўбачыце шмат ідэй запазычаныя з працы з каманднага радка, 18 00:01:02,350 --> 00:01:04,560 але таксама шмат новага і цікавыя ідэі 19 00:01:04,560 --> 00:01:07,929 якія таксама будзе дарэчы для мабільныя прыкладання і тэхналогіі, для 20 00:01:07,929 --> 00:01:10,470 ў больш агульным, з дапамогай якога Хлопцы ўсе знаёмыя ў цяперашні час 21 00:01:10,470 --> 00:01:12,090 на наўтбуках і тэлефонах і да таго падобнае. 22 00:01:12,090 --> 00:01:15,220 >> Такім чынам, вы будзеце ажыццяўляць не вэб-старонкі, або вэб-сайт 23 00:01:15,220 --> 00:01:17,620 як такой, але фактычна вэб-сервер. 24 00:01:17,620 --> 00:01:21,590 Вы будзеце пісаць астатнія вэб-сервера напісана ў C, мэта якога ў жыцці 25 00:01:21,590 --> 00:01:25,410 гэта атрымаць HTTP запытаў, гэтыя віртуальныя канверты мы працягваць казаць 26 00:01:25,410 --> 00:01:29,780 о, а на самай справе адказаць альбо некаторыя статычныя content-- як кропка HTML 27 00:01:29,780 --> 00:01:32,310 файл або кропка JPEG ці любое іншае лік файлаў, 28 00:01:32,310 --> 00:01:37,070 ці нават файл PHP з дапамогай вэб- сервер будзе інтэрпрэтаваць гэтую PHP 29 00:01:37,070 --> 00:01:38,332 Код і выплюнуў вынікі. 30 00:01:38,332 --> 00:01:40,540 Зараз, мы падалі вам зусім няшмат рамках 31 00:01:40,540 --> 00:01:43,100 для it-- сапраўды Код размеркавання праблемы 32 00:01:43,100 --> 00:01:47,496 ўсталяваць шэсць даўжынёй больш за 1000 ліній, А многія з якіх прадстаўлены водгукі, каб быць fair-- 33 00:01:47,496 --> 00:01:49,370 але гэта на самай справе азначае быць магчымасць 34 00:01:49,370 --> 00:01:52,570 каб атрымаць вашыя рукі брудныя дайвінг у даволі вялікім праекце 35 00:01:52,570 --> 00:01:55,570 што мы вельмі канкрэтна выразаныя кавалкі для вас, 36 00:01:55,570 --> 00:01:59,046 так што на самой справе, калі вы выходзіце CS50 і ўвесці рэальны свет праграмавання 37 00:01:59,046 --> 00:02:00,920 і хочаце, каб плёскацца ў любую колькасць праектаў, 38 00:02:00,920 --> 00:02:03,253 Вы будзеце мець значна больш камфорт запампоўкі некаторыя крыніца 39 00:02:03,253 --> 00:02:05,020 Код, некаторыя з адкрытым зыходным кодам праекта ў Інтэрнэце, 40 00:02:05,020 --> 00:02:08,174 і дайвінг ў і робіць Змены, якія вы лічыце патрэбным. 41 00:02:08,174 --> 00:02:11,340 Праблема ўсталяваць сем будзе пра зрабіць свой уласны вэб-дадатак 42 00:02:11,340 --> 00:02:14,140 які прымае дынамічны ўвод і вырабляе дынамічны выхад у выглядзе 43 00:02:14,140 --> 00:02:16,920 вэб-сайта etrade.com-як. 44 00:02:16,920 --> 00:02:20,800 І праблема ўсталяваць восем будуць сканцэнтраваны на яшчэ іншую мову вядомы як JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Між тым, канчатковае Праект знаходзіцца на гарызонце. 46 00:02:24,170 --> 00:02:26,800 Так званы папярэдняй заяўкі з-за тыдзень з сённяшняга дня. 47 00:02:26,800 --> 00:02:29,930 Папярэдне proposal-- ў адпаведнасці са спецыфікацыяй, які знаходзіцца на website-- CS50 ў 48 00:02:29,930 --> 00:02:33,260 з'яўляецца даволі выпадковы магчымасць для каб вы адправіць ліст даволі кароткі 49 00:02:33,260 --> 00:02:35,170 у вучэнне таварыша проста інфармаваць яго 50 00:02:35,170 --> 00:02:38,250 ці яе, што вы думаеце, у выкарыстоўваць яго ці яе ў якасці рупара. 51 00:02:38,250 --> 00:02:40,980 І ёсць здаровае check-- Ці вы думаеце 52 00:02:40,980 --> 00:02:43,210 аб адкусваючы занадта шмат ці, можа быць, занадта мала, 53 00:02:43,210 --> 00:02:46,480 ці, можа быць, вы паняцця не маеце наогул і хочаце ўдзельнічаць у размове. 54 00:02:46,480 --> 00:02:48,480 >> Пасля гэтую прапанову і справаздачу аб стане, 55 00:02:48,480 --> 00:02:51,860 так званы CS50 Hackathon тут Кембрыдж для Гарварда і Йеля студэнтаў 56 00:02:51,860 --> 00:02:52,362 падобныя. 57 00:02:52,362 --> 00:02:54,320 Канчатковы праект-х Рэалізацыя тады з-за. 58 00:02:54,320 --> 00:02:59,290 А потым CS50 справядліва тут, у Кембрыджы, а таксама яшчэ адзін у Нью-Хейвене. 59 00:02:59,290 --> 00:03:02,500 Так прапанове, зірніце на вэб-сайт для тых прыватнасцяў. 60 00:03:02,500 --> 00:03:06,530 >> Але больш узбуджальна, таксама з'яўляецца магчымасць атрымаць вашыя рукі брудныя, 61 00:03:06,530 --> 00:03:09,350 і вашы розумы, адкрытыя для цэлага куча тым і інструментаў 62 00:03:09,350 --> 00:03:12,920 і метады, якія з'яўляюцца дапаможнымі да асноўнай праграме Курсу, 63 00:03:12,920 --> 00:03:14,810 але тым не менш звязаны паміж сабой. 64 00:03:14,810 --> 00:03:18,400 А таксама выдатны прыступкамі да рабіць сапраўды класныя канчатковыя праекты, якія 65 00:03:18,400 --> 00:03:22,020 выходзяць далёка за рамкі матэрыялу мы разгледзелі афіцыйна ў задачы ўсталёўвае або лекцыі. 66 00:03:22,020 --> 00:03:24,446 Так што на сайт CS50 для Увесь спіс семінараў. 67 00:03:24,446 --> 00:03:26,070 Калі вы яшчэ не зарэгістраваць, гэта нармальна. 68 00:03:26,070 --> 00:03:29,860 Ідзіце наперад і зарэгістравацца яшчэ, і мы будзем сачыць за жывой сувязі струменевага 69 00:03:29,860 --> 00:03:31,844 дзень і час на сайце. 70 00:03:31,844 --> 00:03:33,760 І ўсё будзе запісаны і паставіць онлайн 71 00:03:33,760 --> 00:03:35,800 калі вы не можаце зрабіць у пэўныя дні тыдня і час. 72 00:03:35,800 --> 00:03:39,380 >> Пра тое, што наперадзе thereafter-- добра, Вядома, ёсць CS50 Hackathon. 73 00:03:39,380 --> 00:03:43,560 Гэтая фатаграфія, нагадаем, з нуля тыдзень прынятыя каля 4 гадзін раніцы ў адзін з вечароў мінулага года. 74 00:03:43,560 --> 00:03:46,900 CS50 кірмаш, якая зноў адбудзецца ў абодвух гарадах. 75 00:03:46,900 --> 00:03:49,760 А потым, на завод насення, хоць мы па-ранейшаму 76 00:03:49,760 --> 00:03:54,080 ёсць у месяц плюс злева ад семестра, калі Вы хацелі б далучыцца да ўласнай вучэнне CS50 ў 77 00:03:54,080 --> 00:03:56,770 персанал, і вы хочаце, каб пачаць думаць пра становіцца CA, 78 00:03:56,770 --> 00:03:59,550 або вучэнне малайчына, ведае, што мы пачынаем казаць аб тым, што больш 79 00:03:59,550 --> 00:04:00,630 пазней у гэтым семестры. 80 00:04:00,630 --> 00:04:03,470 Але на фота тут Найбольш каманды ў гэтым годзе. 81 00:04:03,470 --> 00:04:06,950 >> І так, PHP--, і я быў так сумна на мінулым тыдні, што [? Allyse?] Ласкава 82 00:04:06,950 --> 00:04:09,370 пайшоў у намаганні атрымання нас гэтыя выдатныя рэквізіт 83 00:04:09,370 --> 00:04:11,720 што я не ў канчатковым выніку з дапамогай, так што на самай справе проста паглядзеў роду дурное 84 00:04:11,720 --> 00:04:15,160 што ў нас рыдлёўку седзячы тут усё дзень у мінулую сераду, і трохі лыжку. 85 00:04:15,160 --> 00:04:17,709 Але гэта быў мой метафарычны спосаб паспрабаваць намаляваць 86 00:04:17,709 --> 00:04:21,600 карціна, чаму мы пераходу з С у мове, як PHP. 87 00:04:21,600 --> 00:04:25,480 І тое ж самае можна сказаць і пра любую Колькасць languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 або пучкі others-- але ў той час як у З, напрыклад, напісаць праграму на З 89 00:04:31,270 --> 00:04:34,050 можа быць, як правіла, прымаючы лыжку, як гэта 90 00:04:34,050 --> 00:04:36,770 і капаць яму ў зямля, у пясок або бруд. 91 00:04:36,770 --> 00:04:39,770 PHP дазваляе заняць значна вялікія ўкусы з праблемы, 92 00:04:39,770 --> 00:04:42,842 пісаць код значна менш выкарыстоўваючы значна меншую інструмент, 93 00:04:42,842 --> 00:04:45,050 таму што ёсць значна больш, Функцыянальнасць сабрана ст. 94 00:04:45,050 --> 00:04:47,633 >> Цяпер, калі мы сапраўды драматычныя, мы нешта лапатай 95 00:04:47,633 --> 00:04:48,760 тут, але так яно і будзе. 96 00:04:48,760 --> 00:04:51,370 Між тым, з другога Метафара мы прыдумалі 97 00:04:51,370 --> 00:04:53,770 ёсць, вядома, вы маглі б выкарыстоўваць нешта накшталт гаечны ключ 98 00:04:53,770 --> 00:04:56,610 забіваць чымсьці накшталт цвіка. 99 00:04:56,610 --> 00:04:58,980 Але, вядома, права інструмент для выкарыстання збіраецца 100 00:04:58,980 --> 00:05:01,360 быць не столькі мова называецца C-- 101 00:05:01,360 --> 00:05:03,590 і цяпер я проста раздражнёны [? Сандэрс ,?] Магчыма, 102 00:05:03,590 --> 00:05:07,890 мы гэта выправім later-- так правільны інструмент для часта выкарыстоўваюць 103 00:05:07,890 --> 00:05:09,640 ня будзе гэта самы нізкі ўзровень інструментам. 104 00:05:09,640 --> 00:05:13,720 І на самай справе, З не з'яўляецца мовай, які большасць з вас калі-небудзь выкарыстоўваць, 105 00:05:13,720 --> 00:05:15,590 ці абавязкова выкарыстоўваць зноў. 106 00:05:15,590 --> 00:05:18,350 >> І на самай справе, трохі secret-- адзіны раз 107 00:05:18,350 --> 00:05:23,160 Я выкарыстоўваю C я даволі шмат паміж Верасень і снежань кожнага падзення 108 00:05:23,160 --> 00:05:23,870 семестр. 109 00:05:23,870 --> 00:05:25,790 І гэта таму, што мы выкарыстоўваць яго як магчымасць 110 00:05:25,790 --> 00:05:27,852 каб навучыць асновам праграмавання, 111 00:05:27,852 --> 00:05:29,810 а разам з ім кампутара навука асновы, дадзеныя 112 00:05:29,810 --> 00:05:32,435 структуры, алгарытмаў і like-- але вельмі хутка будзе вам 113 00:05:32,435 --> 00:05:35,010 бачым, што сінтаксіс і ідэі, якія ляжаць C 114 00:05:35,010 --> 00:05:37,530 так цудоўна перадачы на ​​больш сучасныя 115 00:05:37,530 --> 00:05:41,130 высокаўзроўневых моў, як PHP і Python і Perl, Java і 116 00:05:41,130 --> 00:05:46,750 і Objective-C-- самай справе, не так шмат Мэта-C-- але Свіфт, гэтыя новыя 117 00:05:46,750 --> 00:05:50,010 мовы, што многія з вас будзе то плёскацца з вамі канчатковага праекта. 118 00:05:50,010 --> 00:05:55,070 >> Так што без далейшых цырымоній, давайце на самай справе выкарыстоўваць PHP, каб вырашыць некаторыя праблемы. 119 00:05:55,070 --> 00:06:00,230 Нагадаем, што на ранняй стадыі, у мінулым тыдні мы проста выкарыстоўвалі CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 мы напісалі невялікую праграму DINKY што толькі што сказаў, "Прывітанне, свет". 121 00:06:02,990 --> 00:06:05,680 І тады я выратаваў яго ў файл называецца hello.php. 122 00:06:05,680 --> 00:06:07,280 І тады я пабег гэтую каманду. 123 00:06:07,280 --> 00:06:08,080 >> І чаму? 124 00:06:08,080 --> 00:06:09,900 У ангельскай мове, што тут адбываецца? 125 00:06:09,900 --> 00:06:12,760 Што я раблю, калі Я пабег гэтую каманду? 126 00:06:12,760 --> 00:06:13,405 >> Да? 127 00:06:13,405 --> 00:06:16,572 >> АЎДЫТОРЫЯ: Там нейкая функцыя PHP які чытае тое, што in-- разумее. 128 00:06:16,572 --> 00:06:19,696 Дэвід малая: Добра, ёсць некаторая функцыя PHP-- і дазвольце мне быць больш канкрэтным, 129 00:06:19,696 --> 00:06:21,810 ёсць праграма пад назвай PHP, таксама вядомае, як 130 00:06:21,810 --> 00:06:25,872 Перакладчык, які разумее змесціва hello.php, 131 00:06:25,872 --> 00:06:27,830 і інтэрпрэтуе яго зверху знізу, злева направа, 132 00:06:27,830 --> 00:06:29,590 і робіць тое, што кажуць гэтыя каманды. 133 00:06:29,590 --> 00:06:33,320 Каманды ў hello.php, вядома, толькі крыніца code-- функцыі 134 00:06:33,320 --> 00:06:35,750 і зменныя і завесы і і да т.п., што мы самі 135 00:06:35,750 --> 00:06:37,460 пачалі пісаць у PHP. 136 00:06:37,460 --> 00:06:40,240 >> Але ў адрозненне ад C, які з'яўляецца кампіляваная мова, 137 00:06:40,240 --> 00:06:42,810 PHP вы проста напісаць яго, і запусціць яго. 138 00:06:42,810 --> 00:06:46,420 Вы прапусціць гэты крок пасярэдніка пераўтварэння яго ў нулёў і адзінак, 139 00:06:46,420 --> 00:06:47,790 а затым запусціць яго. 140 00:06:47,790 --> 00:06:50,510 І так, што з ног на гэта? 141 00:06:50,510 --> 00:06:52,690 Чаму мы прапускаючы крок? 142 00:06:52,690 --> 00:06:55,238 Чаму больш сучасныя мовы як правіла, каб прапусціць гэты крок? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Што выгада? 145 00:07:01,220 --> 00:07:02,080 >> Ці проста інтуітыўна? 146 00:07:02,080 --> 00:07:04,200 Нават калі мы не маю напісана шмат PHP раней, 147 00:07:04,200 --> 00:07:07,210 што выгадна не пра кампіляцыі кода вы думаеце? 148 00:07:07,210 --> 00:07:08,520 Няма? 149 00:07:08,520 --> 00:07:09,610 Ня здзяйсненні? 150 00:07:09,610 --> 00:07:11,350 Чухаць галаву? 151 00:07:11,350 --> 00:07:12,614 Так. 152 00:07:12,614 --> 00:07:13,600 >> АЎДЫТОРЫЯ: больш дынамічным. 153 00:07:13,600 --> 00:07:14,683 >> Дэвід малая: Больш дынамічны? 154 00:07:14,683 --> 00:07:16,032 Што вы маеце на ўвазе? 155 00:07:16,032 --> 00:07:17,000 >> АЎДЫТОРЫЯ: [неразборліва] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 Дэвід малая: ОК, добра, так у залежнасці ад ўваходных дадзеных, 158 00:07:22,390 --> 00:07:23,470 Вы не павінны сабраць яго кожны раз. 159 00:07:23,470 --> 00:07:24,990 І гэта сапраўды так проста, як тое, што that-- 160 00:07:24,990 --> 00:07:26,990 з'яўляецца кропкай працягу скампіляваць код? 161 00:07:26,990 --> 00:07:29,480 Гэта ўсяго толькі адзін крок, што гэта making-- гэта патрабуе, 162 00:07:29,480 --> 00:07:31,900 На працягу апошніх некалькіх тыдня, у два разы больш крокаў 163 00:07:31,900 --> 00:07:33,820 як толькі што выкананне праграмы. 164 00:07:33,820 --> 00:07:36,940 Гэта было карысна ў тым, што вы ўбачыць некаторыя паведамленні пра памылкі і г.д., 165 00:07:36,940 --> 00:07:38,720 але гэта яшчэ толькі раздражняе крок. 166 00:07:38,720 --> 00:07:41,810 >> І таму праграмісты зразумелі, на працягу доўгага часу, чаму б нам 167 00:07:41,810 --> 00:07:45,327 пачаць пісаць мовах, якія ня трэба што даволі механічнай крок, 168 00:07:45,327 --> 00:07:47,160 так што можна проста напісаць код і запусціць яго. 169 00:07:47,160 --> 00:07:48,920 Але якой цаной што мы ўбачылі мы заплацілі 170 00:07:48,920 --> 00:07:50,910 на мінулым тыдні, з аднаго канкрэтным прыкладзе? 171 00:07:50,910 --> 00:07:51,650 Да? 172 00:07:51,650 --> 00:07:52,370 >> Хуткасць. 173 00:07:52,370 --> 00:07:54,690 Так [? што?] перакладчыкі трохі павольней, 174 00:07:54,690 --> 00:07:57,330 у тым, што нулі і адзінкі ў прыгожа і хутка для кампутара 175 00:07:57,330 --> 00:08:00,070 каб зразумець, таму што Працэсар Intel, або тое, што ёсць, 176 00:08:00,070 --> 00:08:03,070 проста разумее, што адбываецца на з гэтымі мадэлямі біт. 177 00:08:03,070 --> 00:08:05,370 У той час як перакладчыка гэта праграма, якая на самой справе 178 00:08:05,370 --> 00:08:07,980 павінен прачытаць крыніца Ascii код, які вы напісалі, 179 00:08:07,980 --> 00:08:12,700 і пераўтварыць яго, так бы мовіць, або высветліць, як яна пераўтворыць у канчатковым рахунку, 180 00:08:12,700 --> 00:08:13,525 у нулёў і адзінак. 181 00:08:13,525 --> 00:08:15,650 Так што проста займае крыху трохі прадукцыйнасці. 182 00:08:15,650 --> 00:08:16,858 Так што гэта крыху кампраміс. 183 00:08:16,858 --> 00:08:21,570 Цяпер, калі мы робім гэта тут, дазвольце мне ісці наперад і рабіць прыклад наступным чынам. 184 00:08:21,570 --> 00:08:26,610 Калі я іду сюды, новы файл, я збіраюся захаваць гэта зноў hello.php. 185 00:08:26,610 --> 00:08:31,450 А цяпер я збіраюся ісці наперад і сказаць, "друк прывітанне свет" - 186 00:08:31,450 --> 00:08:35,130 і ўспомніць, што я магу выкарыстоўваць друк, я не павінны выкарыстоўваць друк-F. А цяпер сюды, 187 00:08:35,130 --> 00:08:42,039 калі я PHP ў hello.php, huh-- я здаецца, не інтэрпрэтавалі яго. 188 00:08:42,039 --> 00:08:43,412 Што я зрабіў не так? 189 00:08:43,412 --> 00:08:44,710 >> Аўдыторыя: кутнія бранзалеты. 190 00:08:44,710 --> 00:08:47,015 >> Дэвід малая: Так, вам трэба што дужка наверсе. 191 00:08:47,015 --> 00:08:49,390 Так што гэта выгляд раздражняе, але вы абвыкнеце да яго хутка. 192 00:08:49,390 --> 00:08:53,500 Калі я павінен напісаць PHP код, я як правіла, неабходна, каб паведаміць праграме, 193 00:08:53,500 --> 00:08:56,950 або распавесці перакладчыка, эй PHP, вось некаторыя PHP-код. 194 00:08:56,950 --> 00:09:00,440 І тады для добрай мерай, я б зачыніць гэта не з гэтага, а 195 00:09:00,440 --> 00:09:03,740 з кутом маркі проста пытанне кранштэйн, так што зараз тут, 196 00:09:03,740 --> 00:09:06,840 калі я запускаю гэта зноў, цяпер Я атрымаць жаданы вынік. 197 00:09:06,840 --> 00:09:09,820 >> Зараз давайце зробім невялікае аптымізацыі, проста так, што вы бачылі раней. 198 00:09:09,820 --> 00:09:14,040 Гэта свайго роду раздражняе, што я павінны працаваць PHP прастору hello.php, 199 00:09:14,040 --> 00:09:16,060 таму што ў мінулым я можа проста напісаць кропка слэш 200 00:09:16,060 --> 00:09:17,560 Назва праграмы, якая з'яўляецца своеасаблівай прыемна. 201 00:09:17,560 --> 00:09:19,420 Гэта свайго роду лепшага карыстацкага досведу. 202 00:09:19,420 --> 00:09:24,160 >> Вось і атрымліваецца, вы можаце зрабіць гэта у PHP з following-- I 203 00:09:24,160 --> 00:09:28,780 можна выкарыстоўваць гэта даволі загадкавым загавор у верхняй тут, 204 00:09:28,780 --> 00:09:31,740 якія, як правіла, называецца прытон, прычым гэта рэзкае сімвал, 205 00:09:31,740 --> 00:09:34,270 так бы мовіць, гэта выбух або клічнік. 206 00:09:34,270 --> 00:09:38,490 І гэта ў цяперашні час з'яўляецца шлях да праграмы на звычайнай сістэме Linux, што 207 00:09:38,490 --> 00:09:41,500 называецца сераду, або акр. 208 00:09:41,500 --> 00:09:43,920 І гэта line-- доўгую гісторыю short-- адна лінія толькі 209 00:09:43,920 --> 00:09:48,710 кажа, эй кампутар, знайсці PHP перакладчык для мяне ў навакольным асяроддзі, 210 00:09:48,710 --> 00:09:50,610 знайсці яго ў памяці, так бы мовіць. 211 00:09:50,610 --> 00:09:54,130 >> І што цяпер прыемна, гэта што калі я іду сюды, 212 00:09:54,130 --> 00:09:57,750 Я магу зрабіць кропка слэш прывітанне кропка PHP, или-- хм. 213 00:09:57,750 --> 00:09:59,000 Ўведзена адмоўлена. 214 00:09:59,000 --> 00:10:02,350 Ну, вы ўбачыце нават больш гэтага з праблемай ўсталяваць сем, калі вы 215 00:10:02,350 --> 00:10:04,060 ўжо не маеце, з дазволамі. 216 00:10:04,060 --> 00:10:06,510 Аказваецца, што мне трэба для выканання гэтай каманды 217 00:10:06,510 --> 00:10:10,779 называецца [? chamod?] для змены mode-- плюс х hello.php. 218 00:10:10,779 --> 00:10:13,820 Мне трэба [неразборліва] гэта адзін дадатковы крок, які кажа мой кампутар, 219 00:10:13,820 --> 00:10:16,400 зрабіць hello.php выкананы файл. 220 00:10:16,400 --> 00:10:21,310 А цяпер паглядзіце, што happens-- кропка скараціць hello.php, ён проста працуе. 221 00:10:21,310 --> 00:10:23,310 Мне не трэба, каб паказаць інтэрпрэтатар больш. 222 00:10:23,310 --> 00:10:26,680 І я магу зрабіць гэта, нават прыгажэй, яшчэ, калі я перайменаваць гэтую рэч. 223 00:10:26,680 --> 00:10:30,570 Калі перамясціць hello.php проста Hello-- так заўважыць у левым верхнім куце, 224 00:10:30,570 --> 00:10:32,860 Назва праграмы з'яўляецца сапраўды цяпер проста Прывітанне. 225 00:10:32,860 --> 00:10:37,300 Цяпер я магу зрабіць яго падобным на праграму C, нават калі гэта напісана ў PHP-- 226 00:10:37,300 --> 00:10:39,210 або адкрыта любую колькасць іншых моў. 227 00:10:39,210 --> 00:10:41,480 >> Так лімітавая павышэнне, няма функцыянальнай розніцы. 228 00:10:41,480 --> 00:10:44,460 Але гэта ўсяго толькі трохі цікаўнасці Цяпер, так што вы можаце пісаць праграмы, 229 00:10:44,460 --> 00:10:48,989 на любой мове, і карыстальнік не павінны ведаць, ці ўсё роўна, што гэта такое. 230 00:10:48,989 --> 00:10:51,030 Ну, давайце паглядзім на больш пераканаўчым прыкладам у цяперашні час 231 00:10:51,030 --> 00:10:52,850 што я на хуткую руку загадзя. 232 00:10:52,850 --> 00:10:54,955 І гэта называецца quote.php. 233 00:10:54,955 --> 00:10:56,740 І гэта даступна онлайн. 234 00:10:56,740 --> 00:11:00,299 І заўважце, што гэта даволі short-- але гэта праграма каманднага радка, што гэта 235 00:11:00,299 --> 00:11:02,840 будзе выглядаць коштаў на акцыі для мяне, што на самой справе адбываецца 236 00:11:02,840 --> 00:11:04,230 быць дарэчныя для праблем ўсталяваць сем. 237 00:11:04,230 --> 00:11:05,396 >> Такім чынам, давайце паглядзім, што я раблю. 238 00:11:05,396 --> 00:11:08,640 На самым версе я атрымаў якая адкрывае дужка знак пытання PHP. 239 00:11:08,640 --> 00:11:13,372 Тады я атрымаў гэтую лінію, у выніку чаго я якія патрабуюць файл пад назвай functions.php-- 240 00:11:13,372 --> 00:11:15,080 мы збіраемся, каб убачыць Больш падрабязна пра гэта ў трохі, 241 00:11:15,080 --> 00:11:17,340 але гэта, як З-х версія рэзкае ўключаюць, 242 00:11:17,340 --> 00:11:19,090 дзе вы хочаце пайсці ўключыць іншы файл. 243 00:11:19,090 --> 00:11:23,720 PHP называе гэта патрабуе, хоць гэта таксама мае функцыю ўключаюць у сябе. 244 00:11:23,720 --> 00:11:26,861 І аказваецца, што гэта function.php проста што-то я ўжо пісаў класа. 245 00:11:26,861 --> 00:11:29,860 Я паклаў яго ў тым жа каталогу, таму што Я хацеў, каб вынесці код 246 00:11:29,860 --> 00:11:31,800 што мы маглі б выкарыстоўваць у іншым месцы. 247 00:11:31,800 --> 00:11:34,560 >> Між тым, вы можаце, верагодна, выснову, што тут адбываецца. 248 00:11:34,560 --> 00:11:39,200 Гэта крыху адрозніваецца ад C-- але што я маю на ўвазе гарантаваць належнае выкарыстанне? 249 00:11:39,200 --> 00:11:41,180 Перавесці гэта больш тэхнічна. 250 00:11:41,180 --> 00:11:45,950 Пры якіх абставінах гэта я выхад з праграмы, або выхадзе? 251 00:11:45,950 --> 00:11:47,074 Да? 252 00:11:47,074 --> 00:11:47,990 >> АЎДЫТОРЫЯ: Калі ў вас няма два аргументу каманднага радка. 253 00:11:47,990 --> 00:11:49,480 >> Дэвід малая: Калі я не камандаваць аргументы радка. 254 00:11:49,480 --> 00:11:52,396 І памятайце, што адзін з тых, Аргументы сама назва праграмы. 255 00:11:52,396 --> 00:11:55,340 І другі будзе іншае слова я друкую пасля радку. 256 00:11:55,340 --> 00:11:57,460 Гэтак жа, як C, гэта гэта мой спосаб праверкі, 257 00:11:57,460 --> 00:12:00,022 зрабіў карыстальнік супрацоўнічаць і запусціць праграму як я збіраўся? 258 00:12:00,022 --> 00:12:01,730 Цяпер, ёсць сёе-тое трохі адрозніваецца 259 00:12:01,730 --> 00:12:04,020 з C-- у першую чаргу мы ёсць гэты знак даляра, 260 00:12:04,020 --> 00:12:07,710 і тое, што робіць долар увайдзіце абазначэння ў PHP? 261 00:12:07,710 --> 00:12:08,440 Проста пераменная. 262 00:12:08,440 --> 00:12:11,731 Гэта all-- проста пераменная наступным усё, што вы хочаце на самай справе назваць гэта. 263 00:12:11,731 --> 00:12:14,000 Звярніце ўвагу, ёсць нешта адсутнічае з маёй праграмы PHP, 264 00:12:14,000 --> 00:12:18,210 гэтак жа, як гэта было ў мінулым адсутнічае тыдзень, у параўнанні з C, які з'яўляецца што? 265 00:12:18,210 --> 00:12:21,620 >> А віды, але яшчэ сёе-тое. 266 00:12:21,620 --> 00:12:26,409 Там няма то function-- асноўную функцыю. 267 00:12:26,409 --> 00:12:27,450 Там няма асноўнай функцыяй. 268 00:12:27,450 --> 00:12:29,680 Вы проста пачаць пісаць код без 269 00:12:29,680 --> 00:12:32,790 турбавацца аб даволі адвольнае Канвенцыя наймення па змаўчанні некаторыя 270 00:12:32,790 --> 00:12:33,880 Функцыя галоўны. 271 00:12:33,880 --> 00:12:36,720 Так аргумент З толькі сапраўды глабальная пераменная 272 00:12:36,720 --> 00:12:39,049 што перакладчыка робіць даступнымі для мяне. 273 00:12:39,049 --> 00:12:40,090 Цяпер, гэта цікава. 274 00:12:40,090 --> 00:12:41,140 Так што глядзіце на рэчы. 275 00:12:41,140 --> 00:12:43,370 Знак даляра акцыі на выйшла, што мая пераменная. 276 00:12:43,370 --> 00:12:45,120 На правай баку, ёсць, мабыць, 277 00:12:45,120 --> 00:12:50,270 функцыя ў PHP называецца пошук, што Я перадаю свой апошні каманднага радка 278 00:12:50,270 --> 00:12:51,902 Аргумент, мэтай якіх усе слова. 279 00:12:51,902 --> 00:12:53,610 І мы ўбачым, як гэта працуе ў дадзены момант. 280 00:12:53,610 --> 00:12:55,380 >> А потым, нарэшце, я паведамляю цану. 281 00:12:55,380 --> 00:12:58,650 Я друкую адным Доля такой-то. 282 00:12:58,650 --> 00:13:02,082 І памятайце, што гэта спосаб PHP-- чынам у PHP-- 283 00:13:02,082 --> 00:13:04,290 дзе вы не павінны рабіць знак даляра S больш. 284 00:13:04,290 --> 00:13:06,782 Вы можаце проста выкарыстоўваць фігурныя дужкі і падключыць якой-небудзь зменнай. 285 00:13:06,782 --> 00:13:09,240 Вы не павінны турбавацца аб выкарыстоўваючы Printf такім жа чынам. 286 00:13:09,240 --> 00:13:13,530 >> І, як у бок, калі вы кладзе зменную ўнутры падвойных двукоссяў, як гэта, 287 00:13:13,530 --> 00:13:17,370 Вы карыстаецеся фантазіі тэхніку называецца інтэрпаляцыя зменных. 288 00:13:17,370 --> 00:13:20,380 Гэта проста азначае, падключыце зменную тут. 289 00:13:20,380 --> 00:13:23,760 І, як у бок, некаторыя з вас, хто прыйшоў ад іншых слаёў праграмавання, 290 00:13:23,760 --> 00:13:26,960 Вы не можаце выкарыстоўваць адзінарныя двукоссі вакол струны, каб зрабіць гэта. 291 00:13:26,960 --> 00:13:30,290 Вы павінны выкарыстоўваць двайныя двукоссі для інтэрпаляцыя зменных, каб працаваць. 292 00:13:30,290 --> 00:13:32,740 У адваротным выпадку вы будзеце літаральна ўбачыць гэтыя фігурныя дужкі. 293 00:13:32,740 --> 00:13:34,500 >> Так, нарэшце, давайце ісці наперад і працаваць у гэтым. 294 00:13:34,500 --> 00:13:36,690 Дазвольце мне зрабіць мой тэрмінал трохі больш. 295 00:13:36,690 --> 00:13:41,940 Дазвольце мне ісці наперад і працаваць ўнутры маёй цытатай каталогу. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? М.?] [? цытата?] PHP цытатай кропка PHP, 297 00:13:46,950 --> 00:13:50,290 і я збіраюся шукаць нешта як GOOG, які з'яўляецца яго Біржавы сімвал, 298 00:13:50,290 --> 00:13:55,510 і адна акцыя новым імем, Алфавіт Inc, кошт $ 717, як сёння. 299 00:13:55,510 --> 00:13:58,680 Добра, калі мы хочам, каб Запусцім, хто 300 00:13:58,680 --> 00:14:02,600 ёсць яшчэ адзін біржавых зводак яны хочуць, каб паглядзець? 301 00:14:02,600 --> 00:14:06,770 >> Microsoft, я думаю, гэта адно, MSFT-- $ 53. 302 00:14:06,770 --> 00:14:09,720 Я думаю, што Yahoo з'яўляецца, можа быць ,. 303 00:14:09,720 --> 00:14:12,130 І ў тым, што Facebook. 304 00:14:12,130 --> 00:14:13,740 >> Так што гэтая праграма робіць? 305 00:14:13,740 --> 00:14:16,306 Магія, здаецца, быць убудаваныя у гэтай функцыі пошуку. 306 00:14:16,306 --> 00:14:17,430 Такім чынам, давайце зірнем. 307 00:14:17,430 --> 00:14:21,815 >> Атрымліваецца, што не прыйшоў з PHP, гэта ў functions.php. 308 00:14:21,815 --> 00:14:23,690 І мы не будзем ісці праз гэта вельмі падрабязна, 309 00:14:23,690 --> 00:14:28,040 але зьвярніце ўвагу на аператыўнае слова тут што на лініі шосты functions.php-- 310 00:14:28,040 --> 00:14:29,440 Я літаральна сказаць, функцыю. 311 00:14:29,440 --> 00:14:31,050 Я паказаць імя маёй функцыі. 312 00:14:31,050 --> 00:14:34,330 Я тады паказаць любы аргументы, або параметры, 313 00:14:34,330 --> 00:14:36,480 Я хачу, каб функцыя не take-- ніякія тыпы. 314 00:14:36,480 --> 00:14:37,580 І тады я яго рэалізацыі. 315 00:14:37,580 --> 00:14:39,240 >> І я буду махаць рукой на рэалізацыю, 316 00:14:39,240 --> 00:14:42,115 так як гэта даволі прасунуты права цяпер, але мы будзем бачыць яго зноў на самай справе 317 00:14:42,115 --> 00:14:44,700 на тыдзень ў задачы ўсталяваць сем. 318 00:14:44,700 --> 00:14:47,490 Але я магу ачысціць гэта таксама. 319 00:14:47,490 --> 00:14:49,590 Я таксама уключыў у сёння код версія 320 00:14:49,590 --> 00:14:52,340 цытаты, якая не мае кропка PHP файл. 321 00:14:52,340 --> 00:14:57,270 Таму што тое, што, як мяркуецца, на Верхняя частка праграмы пад назвай проста працытаваць? 322 00:14:57,270 --> 00:15:00,140 Гэта так званая shebang-- даволі загадкавым загавор 323 00:15:00,140 --> 00:15:04,590 што кажа знайсці PHP, а затым запусціць яго на сваім кодзе тут. 324 00:15:04,590 --> 00:15:07,360 >> Добра, так што прыносіць нам, дзе мы спыніліся 325 00:15:07,360 --> 00:15:09,560 Апошняе time-- хоць і з некаторыя больш прасунутыя прыклады. 326 00:15:09,560 --> 00:15:13,980 Любыя пытанні да гэтага часу пра PHP або тое, што мы робім? 327 00:15:13,980 --> 00:15:15,570 No-- усё ў парадку. 328 00:15:15,570 --> 00:15:16,180 Да? 329 00:15:16,180 --> 00:15:19,610 >> АЎДЫТОРЫЯ: Унутры HTML файлы, рабіць you-- 330 00:15:19,610 --> 00:15:22,226 [? Вы?] [? проста назваць яго?] а [неразборліва] PHP файл? 331 00:15:22,226 --> 00:15:23,350 Дэвід малая: Добры пытанне. 332 00:15:23,350 --> 00:15:26,070 У кантэксце Вэб, які мы знаходзімся літаральна аб пераходзе да, 333 00:15:26,070 --> 00:15:28,028 Вы не карыстаецеся так званы прытон у верхняй частцы, 334 00:15:28,028 --> 00:15:31,980 таму што вэб-server-- часта Праграма называецца Apache або Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server, або любую колькасць іншага праграмнага забеспячэння вэб-сервера, 336 00:15:37,470 --> 00:15:40,636 ведае, што, калі ён бачыць файл кропка PHP, што гэта 337 00:15:40,636 --> 00:15:42,010 варта запусціць інтэрпрэтатар на ім. 338 00:15:42,010 --> 00:15:43,468 Гэта не глядзіць на гэтай першага радка. 339 00:15:43,468 --> 00:15:45,580 Так першай лініі трук проста, калі вы 340 00:15:45,580 --> 00:15:48,330 пісаць каманднага радка programs-- які мы не будзем рабіць супер часта, 341 00:15:48,330 --> 00:15:52,510 але гэта наш спосаб пераадолення нашы прыклады C да гэтага часу нашай PHP. 342 00:15:52,510 --> 00:16:00,680 >> Так што давайце сапраўды пераадолець гэты свет ад свету з каманднага радка ў Сеткі 343 00:16:00,680 --> 00:16:02,230 робячы наступнае. 344 00:16:02,230 --> 00:16:05,090 Дазвольце мне ісці наперад і рабіць тут на імгненне. 345 00:16:05,090 --> 00:16:09,940 Так што, калі ў нас ёсць вэб-сервер, ці, дакладней, калі ў нас ёсць свой ноўтбук тут, 346 00:16:09,940 --> 00:16:11,280 якія я буду маляваць, як гэта. 347 00:16:11,280 --> 00:16:14,250 І вось у нас ёсць Інтэрнэт у нейкім выглядзе. 348 00:16:14,250 --> 00:16:18,210 А потым сюды, у нас ёсць сервер у building-- 349 00:16:18,210 --> 00:16:20,760 гэта, як Інтэрнэт works-- і тут 350 00:16:20,760 --> 00:16:23,120 гэта сервер з некаторымі агнямі, можа быць. 351 00:16:23,120 --> 00:16:27,530 Што адбываецца на самай справе паміж гэтымі двума злучэннямі? 352 00:16:27,530 --> 00:16:29,240 >> Такім чынам, у гэтым будынку з'яўляецца вэб-сервер. 353 00:16:29,240 --> 00:16:31,420 Гэта проста кампутар які працуе ў некаторых аперацыйных 354 00:16:31,420 --> 00:16:34,561 система-- магчыма свабоднае праграмнае забеспячэнне пад назвай Apache, які працуе CS50 IDE. 355 00:16:34,561 --> 00:16:36,310 Такім чынам, вы можаце фактычна думаю, з гэтага будынка 356 00:16:36,310 --> 00:16:38,579 як будынак, у які захоўваецца CSt0 IDE. 357 00:16:38,579 --> 00:16:40,870 Вось дзе ў вас ва ўсіх рахункі, дзе вы ўсё 358 00:16:40,870 --> 00:16:43,130 мець свой уласны вэб-сервер працуе, вы ўсё 359 00:16:43,130 --> 00:16:45,730 ёсць свае ўласныя унікальныя адрасы, як мы пачалі абмяркоўваць, 360 00:16:45,730 --> 00:16:47,280 і вы будзеце бачыць больш у П. ўстаноўлены шэсць. 361 00:16:47,280 --> 00:16:49,450 >> Вось мой ноўтбук дзесьці яшчэ ў Інтэрнэце. 362 00:16:49,450 --> 00:16:54,550 І таму, калі я наведваю URL, які належыць мне, што інтэрнэт-трафік будзе 363 00:16:54,550 --> 00:16:58,360 на сервер, сервер-х атрымання HTTP-request-- 364 00:16:58,360 --> 00:17:02,900 падобна атрымаць index.html, і гэта адказваючы на ​​гэтай вэб-старонцы. 365 00:17:02,900 --> 00:17:04,280 Так што гэта наогул парадыгма. 366 00:17:04,280 --> 00:17:07,089 У той час як усё да Да гэтага часу сёння, усё 367 00:17:07,089 --> 00:17:09,660 адбываецца толькі ў абмяжоўваецца гэтага будынка. 368 00:17:09,660 --> 00:17:12,910 Я выкарыстаў свой ноўтбук, але Я быў звязаны з CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 так што ўсе з гэтых праграм я бег быў ўнутры гэтага сервера, самой. 370 00:17:17,369 --> 00:17:22,660 >> Але цяпер, давайце пачнем паўторнага PHP напісаць некалькі праграм, якія фактычныя 371 00:17:22,660 --> 00:17:24,230 падаюцца да вэб-серверам. 372 00:17:24,230 --> 00:17:30,320 А для гэтага, я збіраюся пайсці у цэлай кучай прыкладаў 373 00:17:30,320 --> 00:17:33,710 што ўвесці гэтую ідэю тут. 374 00:17:33,710 --> 00:17:38,500 Так што гэта свайго роду мудрагелісты спосаб апісання парадыгмы праграмавання. 375 00:17:38,500 --> 00:17:41,540 >> І на самай справе, як вы выйдзеце CS50 або працаваць на канчатковых праектаў, 376 00:17:41,540 --> 00:17:43,520 або ўзяць некаторыя ідуць ад класа, вы пачнеце 377 00:17:43,520 --> 00:17:45,740 бачыць, што world-- асабліва якія вырасьлі 378 00:17:45,740 --> 00:17:48,300 з моў, такіх як C якія з'яўляюцца супер нізкай level-- 379 00:17:48,300 --> 00:17:51,290 разумею, што ёсць лепш спосабы напісання праграмнага забеспячэння. 380 00:17:51,290 --> 00:17:53,290 Ёсць пэўная шаблоны вы можаце прытрымлівацца, 381 00:17:53,290 --> 00:17:57,640 некаторыя спосабы арганізацыі файлаў і спосабы наймення функцый, 382 00:17:57,640 --> 00:18:00,300 так што карацей кажучы, свет прыйшоў 383 00:18:00,300 --> 00:18:04,340 з цэлай кучай скарачэнняў і імёны шляхоў праграмавання. 384 00:18:04,340 --> 00:18:06,260 Гэта ўсяго толькі метады, якія Вы маглі б выкарыстоўваць. 385 00:18:06,260 --> 00:18:09,660 >> І адзін з іх завецца MVC, для мадэлі View Controller. 386 00:18:09,660 --> 00:18:12,270 І гэта толькі для Цяпер, празмерна складаным 387 00:18:12,270 --> 00:18:18,960 спосаб сказаць, як вы павінны выкласці сайт PHP на аснове, у нашым выпадку. 388 00:18:18,960 --> 00:18:22,140 Як вам арганізаваць вашыя файлы, як вы арганізаваць вашу логіку, 389 00:18:22,140 --> 00:18:26,220 такім чынам, што робіць яго лягчэй напісаць больш складаныя вэб-сайты? 390 00:18:26,220 --> 00:18:28,550 І на самай справе, мы хутка трапіць з р-ром сем. 391 00:18:28,550 --> 00:18:32,020 >> Такім чынам, у свеце MVC, вы збіраецеся бачыць, што наш код можа наогул 392 00:18:32,020 --> 00:18:38,290 можна ахарактарызаваць як любы код мадэлі, ці код кантролера, або від Код. 393 00:18:38,290 --> 00:18:40,200 І я збіраюся спрашчаць яго як follows-- 394 00:18:40,200 --> 00:18:42,074 кантролер з'яўляецца мазгі вашай праграмы, 395 00:18:42,074 --> 00:18:44,100 гэта, дзе ўсё цікавая логіка бывае. 396 00:18:44,100 --> 00:18:46,110 Так што ўсе мы былі пісаць да гэтага часу ў класе, 397 00:18:46,110 --> 00:18:48,210 накшталт як кантролер code-- гэта кантроль 398 00:18:48,210 --> 00:18:50,585 ваша праграма, вашы завесы, ваш ўмовы, вашы функцыі 399 00:18:50,585 --> 00:18:52,100 і зменныя і ўсё такое. 400 00:18:52,100 --> 00:18:56,160 >> Праглядаў, цяпер, будуць крыху больш відавочным ў свеце ў Інтэрнэце. 401 00:18:56,160 --> 00:18:59,360 Выгляд эстэтыка вашага сайта. 402 00:18:59,360 --> 00:19:04,080 Гэта тое, што карыстальнік sees-- малюнка, HTML-сталы, HTML тэгі і ўсё 403 00:19:04,080 --> 00:19:08,220 таго, што ўсе пухнаты эстэтыкі рэчы, якія не тое, што цяжка напісаць, 404 00:19:08,220 --> 00:19:11,380 але толькі тое, што вы генерацыі, гэта так званы выгляд, эстэтыка. 405 00:19:11,380 --> 00:19:13,880 І мадэль, у выніку, будзе быць stuff-- база дадзеных, якая 406 00:19:13,880 --> 00:19:16,510 мы пачнем дайвінг ва ўсе тым больш у гэтую сераду. 407 00:19:16,510 --> 00:19:19,740 Так кантролер логіка, погляд эстэтычнае рэчы, 408 00:19:19,740 --> 00:19:23,500 і мадэль будзе дзе мы захоўваем нашы фактычныя дадзеныя. 409 00:19:23,500 --> 00:19:26,410 >> Такім чынам, давайце паглядзім на гэта больш канкрэтна на наступным прыкладзе. 410 00:19:26,410 --> 00:19:34,700 Я збіраюся пайсці ў мой каталог тут сённяшняй крыніцы code-- усе з якіх 411 00:19:34,700 --> 00:19:35,770 даступна онлайн. 412 00:19:35,770 --> 00:19:37,800 І я збіраюся ісці ў версіі нулявы. 413 00:19:37,800 --> 00:19:41,500 А вось is-- давайце называць яго на Версія нуль сайце CS50 ст. 414 00:19:41,500 --> 00:19:43,010 Там не так шмат тут наогул. 415 00:19:43,010 --> 00:19:46,810 Гэта вельмі просты вэб-старонкі, што гэта верагодна, выкарыстоўваючы тое, што HTML-tags-- толькі 416 00:19:46,810 --> 00:19:48,970 здагадацца з апошніх прыкладаў? 417 00:19:48,970 --> 00:19:49,890 >> Што гэта? 418 00:19:49,890 --> 00:19:53,920 H1-- верагодна, што вялікі смелы Назва, лагатып, што наверсе, CS50. 419 00:19:53,920 --> 00:19:55,080 І, што яшчэ ў гульні? 420 00:19:55,080 --> 00:19:55,799 Да? 421 00:19:55,799 --> 00:19:56,840 АЎДЫТОРЫЯ: Ненумераваны спіс. 422 00:19:56,840 --> 00:19:59,990 Дэвід малая: неўпарадкаваных list-- так UL тэг і, магчыма, пару LI тэгаў. 423 00:19:59,990 --> 00:20:01,840 І калі вы не памятаеце, гэтыя, гэта сумленна не мае значэння. 424 00:20:01,840 --> 00:20:04,170 Гэтыя пухнатыя роду Дэталі рэалізацыі HTML 425 00:20:04,170 --> 00:20:06,378 што вы хутка шукаць і вы зноў на вашым шляху. 426 00:20:06,378 --> 00:20:10,040 Мы засяродзіцца на праграмаванні ідэі, якія з'яўляюцца больш сакавітымі штук. 427 00:20:10,040 --> 00:20:12,890 >> Так што давайце проста ўзяць хуткі паглядзець на HTML-- і сапраўды 428 00:20:12,890 --> 00:20:16,880 калі я адкрываю крыніца выгляд тут, ды, Гэта менавіта тое, што адбываецца тут. 429 00:20:16,880 --> 00:20:18,440 Там у тэг UL. 430 00:20:18,440 --> 00:20:20,630 Укладзеныя ўнутры, што з'яўляецца LI тэгаў. 431 00:20:20,630 --> 00:20:24,470 І тады я запазычаў URL фактычнага праграме тут. 432 00:20:24,470 --> 00:20:27,570 >> І тады ў lectures.php па-відаць, 433 00:20:27,570 --> 00:20:31,640 іншы дынамічна старонка што будзе мець, давайце see-- ах, 434 00:20:31,640 --> 00:20:33,170 першыя два тыдні лекцыі. 435 00:20:33,170 --> 00:20:36,600 Так нуля тыдзень і тыдзень з, давайце паглядзець на this-- калі я паглядзець зыходны код старонкі, 436 00:20:36,600 --> 00:20:38,120 таксама супер проста. 437 00:20:38,120 --> 00:20:42,430 Яны вядуць да двух старонак называецца week0.php і week1.php. 438 00:20:42,430 --> 00:20:44,040 Так што цяпер разгледзець, што адбываецца. 439 00:20:44,040 --> 00:20:50,630 >> Калі я націскаю на week0.php, мой ноўтбук робіць запыт на week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Вэб-сервер, таксама вядомае, як, CS50 IDE, атрымлівае віртуальны канверт што. 442 00:20:58,110 --> 00:21:01,040 Гэта адлюстроўваецца паведамленне як, атрымаць week0.php. 443 00:21:01,040 --> 00:21:05,060 Затым інтэрпрэтацыі файл, верхняя уніз, налева, каб right-- файл 444 00:21:05,060 --> 00:21:07,720 называецца week0.php-- і выплёўваючы вынікаў. 445 00:21:07,720 --> 00:21:10,510 Так ўнутры гэтага файла, week0.php, павінны быць 446 00:21:10,510 --> 00:21:15,410 логіка кіравання, які генеруе Гэты HTML-і мы хутка ўбачым, што. 447 00:21:15,410 --> 00:21:19,340 >> Але цяпер, дазвольце мне націсніце на нулявы тыдні, і цяпер у нас ёсць сераду і пятніцу, 448 00:21:19,340 --> 00:21:25,260 і цяпер у нас ёсць слайды павольна нулявы тыдні. 449 00:21:25,260 --> 00:21:27,400 І вы памятаеце гэта ад шляху назад, калі. 450 00:21:27,400 --> 00:21:29,340 Дык вось гэты вэб-сайт робіць. 451 00:21:29,340 --> 00:21:31,120 >> Такім чынам, давайце разгледзім, як гэта робіць гэта. 452 00:21:31,120 --> 00:21:34,290 Я збіраюся вярнуцца ў Зыходны код тут, у CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 і я збіраюся адкрыць index.php. 454 00:21:36,660 --> 00:21:38,910 У верхняй часткі гэтага файла гэта куча каментароў. 455 00:21:38,910 --> 00:21:43,000 І тады ў сярэдзіне гэтага файла, яго Аказваецца, няма PHP кода б там ні было. 456 00:21:43,000 --> 00:21:47,380 Таму што, калі ў вас няма якой-небудзь з адкрыты кранштэйн знак пытання PHP тэгі, 457 00:21:47,380 --> 00:21:49,180 Вы вольныя проста паставіць HTML. 458 00:21:49,180 --> 00:21:51,480 >> Таму што тое, што PHP- перакладчык павінен рабіць, 459 00:21:51,480 --> 00:21:53,938 калі ён чытае гэтую file-- зверху ўніз, злева right-- 460 00:21:53,938 --> 00:21:59,100 гэта толькі інтэрпрэтуе код ён бачыць паміж гэтыя дужкі знак пытання. 461 00:21:59,100 --> 00:22:02,380 І нешта яшчэ, што гэта не прызнаць PHP, ён проста выплёўвае. 462 00:22:02,380 --> 00:22:05,080 І HTML-ці сярод рэчаў гэта будзе проста выплюнуць. 463 00:22:05,080 --> 00:22:09,090 >> Так гэты файл можа мець былі index.html, 464 00:22:09,090 --> 00:22:11,690 але я ўсё называючы кропка PHP як трамплін. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- аналагічна захапленне, гэта толькі некаторыя HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php, аналагічна толькі некаторыя HTML. 467 00:22:19,840 --> 00:22:22,300 >> Але цяпер давайце на праславуты інжынерна капялюш, 468 00:22:22,300 --> 00:22:24,400 і разгледзім, як мы можам палепшыць гэта. 469 00:22:24,400 --> 00:22:28,541 Гэта не цяжка зрабіць, але я накшталт з ператварыліся ў копіі і пасты. 470 00:22:28,541 --> 00:22:31,540 І на самай справе, калі я тыдзень два, вы ведаю, што я, верагодна, буду рабіць? 471 00:22:31,540 --> 00:22:34,940 Я збіраюся паехаць у week1.php, я збіраецца вылучыць ўсё. 472 00:22:34,940 --> 00:22:39,110 Я збіраюся скапіяваць яго, ўставіць яго у новы файл з назвай week2.php, 473 00:22:39,110 --> 00:22:42,440 змяніць некаторыя адрасы, і быць на маім шляху. 474 00:22:42,440 --> 00:22:45,240 >> Так на аснове таго, што мы бачыў у C ўжо 475 00:22:45,240 --> 00:22:46,860 гэта не адчувае сябе добра, з надзеяй. 476 00:22:46,860 --> 00:22:49,610 Капіяванне, устаўка рэдка правільнае рашэнне. 477 00:22:49,610 --> 00:22:51,429 Так што мы можам пачаць зрабіць, каб палепшыць гэта? 478 00:22:51,429 --> 00:22:53,345 Якія магчымасці для лепшага дызайну? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> Да таго часу, я атрымліваю, каб тыдзень восем, гэта будзе 481 00:22:58,760 --> 00:23:00,910 каб быць сапраўды раздражняе калі я хачу, каб змяніць 482 00:23:00,910 --> 00:23:03,930 шрыфт кожнага з мае старонкі, або калі я хачу 483 00:23:03,930 --> 00:23:06,522 змяніць структуру макета. 484 00:23:06,522 --> 00:23:08,396 Дык дзе ж магчымасць для лепшага дызайну? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 Ну, давайце разгледзім тое, што падзяліўся ва ўсіх гэтых файлаў. 487 00:23:15,160 --> 00:23:21,696 >> Вось тыдні адзін, вось тыдзень нуля, вось lectures.php, 488 00:23:21,696 --> 00:23:25,790 вось index.php-- што тое ж самае, і Чым адрозніваецца, груба кажучы, 489 00:23:25,790 --> 00:23:26,760 у кожным з гэтых файлаў? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Да? 492 00:23:32,060 --> 00:23:34,560 >> АЎДЫТОРЫЯ: [неразборліва] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 Дэвід малая: ОК, добра. 495 00:23:42,160 --> 00:23:46,115 Так што карціна, вядома ж, у выніку чаго кожны раз, калі я выбіраю лекцыі я, 496 00:23:46,115 --> 00:23:48,250 Я павінен быць генеравання вельмі падобны, стар. 497 00:23:48,250 --> 00:23:50,375 І таму, магчыма, я магу выкарыстоўваць той факт, што на самой справе, 498 00:23:50,375 --> 00:23:53,060 мы свядома колькасна індэксуецца наш lectures-- 499 00:23:53,060 --> 00:23:55,290 калі я магу паставіць яшчэ слова ў адказ. 500 00:23:55,290 --> 00:23:59,984 І тое, што гэта адзінае, што, на самай справе, што змяняецца паміж тыдзень одно-- 501 00:23:59,984 --> 00:24:02,400 і дазвольце мне пракруціць ўніз, каб гэта прыкладна ў той жа place-- 502 00:24:02,400 --> 00:24:05,480 так вось нуля тыдзень, прыкладна зверху. 503 00:24:05,480 --> 00:24:12,370 Вось тыдні адзін, тыдзень нуля, тыдні адзін, нуль тыдзень. 504 00:24:12,370 --> 00:24:14,370 ОК, літаральна, калі вы ведаеце, няма праграмы наогул, 505 00:24:14,370 --> 00:24:16,286 гэта цяпер гэтак жа, як малюнак лагічнай гульні. 506 00:24:16,286 --> 00:24:17,200 Дык чым жа адрозніваецца? 507 00:24:17,200 --> 00:24:18,765 Да? 508 00:24:18,765 --> 00:24:19,777 >> АЎДЫТОРЫЯ: [неразборліва] 509 00:24:19,777 --> 00:24:22,360 Дэвід малая: Добра, так што назва змяняецца, ледзь-ледзь. 510 00:24:22,360 --> 00:24:24,010 Нуль будзе, вядома, да аднаго. 511 00:24:24,010 --> 00:24:25,570 Тое ж самае адбываецца ў тэгу H1. 512 00:24:25,570 --> 00:24:28,790 І мы не зусім разумею, як лёгка, таму што URL-адрасы трохі доўга. 513 00:24:28,790 --> 00:24:30,670 Але гэтыя URL-адрасы змяняюцца нязначна. 514 00:24:30,670 --> 00:24:34,490 >> Але тое, што не мяняецца па-за, смею сказаць, большасць з змесціва page-- 515 00:24:34,490 --> 00:24:38,530 HTML-тэгі той жа, галава тое ж самае, што назва амаль тое ж самае, 516 00:24:38,530 --> 00:24:40,659 цела ж, і амаль усё астатняе 517 00:24:40,659 --> 00:24:42,450 тое ж самае, за выключэннем маленькія хітрасці тыя. 518 00:24:42,450 --> 00:24:45,310 Так як мы можам ісці аб факторынг некаторыя з гэта? 519 00:24:45,310 --> 00:24:48,740 >> Ну дазвольце мне прапанаваць менавіта што ў наступнай версіі. 520 00:24:48,740 --> 00:24:53,890 Дык вось у версіі адной, у мяне ёсць дакладная тыя ж файлы, а таксама некалькі іншых. 521 00:24:53,890 --> 00:24:59,730 Вось index.php-- і нават калі Вы ніколі не бачылі раней, чым PHP, 522 00:24:59,730 --> 00:25:05,511 што я, верагодна, рабіць, каб вырашыць гэтае problem-- аснове таго, што вы бачыце тут? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Так, гэта тое, што невялікім прыхільнасці? 525 00:25:12,760 --> 00:25:13,450 Няма? 526 00:25:13,450 --> 00:25:16,020 Так, ісці далей. 527 00:25:16,020 --> 00:25:17,380 >> АЎДЫТОРЫЯ: [неразборліва] 528 00:25:17,380 --> 00:25:18,380 >> Дэвід малая: Так. 529 00:25:18,380 --> 00:25:20,380 >> АЎДЫТОРЫЯ: [неразборліва] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> Дэвід малая: Я хачу, каб ты казаць толькі крыху гучней. 532 00:25:28,669 --> 00:25:31,084 >> АЎДЫТОРЫЯ: [неразборліва] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 Дэвід малая: ОК, добра. 535 00:25:36,660 --> 00:25:38,620 І я think-- было цяжка пачуць, але я you-- 536 00:25:38,620 --> 00:25:42,690 думаю, што вы атрымліваеце на гэта, што тэгі, якія былі распаўсюджаны да верхняй, 537 00:25:42,690 --> 00:25:47,710 і тэгі, якія былі распаўсюджаныя на знізу, у цяперашні час вынесена, 538 00:25:47,710 --> 00:25:51,140 або зьвяду да таго, што файлы? 539 00:25:51,140 --> 00:25:53,476 Header.php і footer.php-- і мы збіраемся 540 00:25:53,476 --> 00:25:55,600 каб зрабіць некаторыя хітрасці, каб ліквідаваць заклапочанасць вы проста 541 00:25:55,600 --> 00:25:59,370 узняты пытанне аб змене нумара, для Напрыклад, калі я правільна пачуў цябе. 542 00:25:59,370 --> 00:26:02,060 >> Але гэта, здаецца, сутнасць яго. 543 00:26:02,060 --> 00:26:04,820 Калі б не было велізарная колькасць рэзерваванне ў верхняй частцы старонкі, 544 00:26:04,820 --> 00:26:06,736 і велізарная колькасць рэзерваванне на дне, 545 00:26:06,736 --> 00:26:09,280 давайце літаральна разыначкай і скараціць гэта змест з, 546 00:26:09,280 --> 00:26:13,270 змясціць яго ў асобную file-- проста як ідэя CSS, дзе мы факторизовали 547 00:26:13,270 --> 00:26:16,710 вельмі падобныя эстэтыка, пастаўленыя гэта ў асобным файле PHP кропка, 548 00:26:16,710 --> 00:26:20,340 выкарыстоўваць патрабуюць mechanism-- якія гэта як-дыез ўключаць: які 549 00:26:20,340 --> 00:26:23,570 па сутнасці, як кажуць ісці захапіць змесціва header.php, 550 00:26:23,570 --> 00:26:25,370 скапіруйце і ўстаўце іх тут. 551 00:26:25,370 --> 00:26:29,490 >> Але тое, што гэта азначае, што ў цяперашні час у index.php, у мяне ёсць гэтыя дзве лініі. 552 00:26:29,490 --> 00:26:32,130 У lectures.php, я таксама ёсць тыя дзве лініі. 553 00:26:32,130 --> 00:26:35,230 У week0.php, я таксама ёсць тыя дзве лініі. 554 00:26:35,230 --> 00:26:38,380 >> Так што цяпер, калі я хачу, каб змяніць назва ўсіх маіх старонак, 555 00:26:38,380 --> 00:26:40,530 ці я хачу змяніць фундаментальная структура, 556 00:26:40,530 --> 00:26:44,380 Я магу змяніць яго цяпер толькі ў адным месцы, ці два places-- верхні і ніжні калантытула, 557 00:26:44,380 --> 00:26:45,429 адпаведна. 558 00:26:45,429 --> 00:26:47,970 Цяпер стартавая Кодэкса глядзець трохі больш загадкавае, праўда? 559 00:26:47,970 --> 00:26:53,590 Але калі вы думаеце, аб тым, што старонка у doing-- калі я з просьбай week0.php, 560 00:26:53,590 --> 00:26:59,880 гэтак жа, як на чарцяжы над here-- калі week0.php запытваецца, 561 00:26:59,880 --> 00:27:00,960 што гэта азначае? 562 00:27:00,960 --> 00:27:04,410 >> Літаральна гэты файл прасіў у браўзэры. 563 00:27:04,410 --> 00:27:06,240 Вэб-server-- таксама вядомае 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- хапае гэтага Файл, week0.php, і чытае 565 00:27:09,250 --> 00:27:10,780 гэта зверху ўніз, злева направа. 566 00:27:10,780 --> 00:27:15,400 На першай лініі, адразу ж сутыкаецца з яго якая адкрывае дужка знак пытання PHP, патрабуюць 567 00:27:15,400 --> 00:27:17,872 Загаловак кропка PHP, і так што РНР 568 00:27:17,872 --> 00:27:20,580 does--, што ўбудаваны ў вэб Сервер, таму што мы папярэдне настроены 569 00:27:20,580 --> 00:27:24,580 гэта для you-- ён аўтаматычна пераходзіць у header.php, капіюе змесціва, 570 00:27:24,580 --> 00:27:25,640 ўстаўляе іх тут. 571 00:27:25,640 --> 00:27:28,790 >> Але тады інтэрпрэтатар сустракае знак пытання побач кранштэйн, 572 00:27:28,790 --> 00:27:30,320 так што гэта ўсё робіцца думаць. 573 00:27:30,320 --> 00:27:33,400 Цяпер ён проста слепа плюе з ліній другога па сем, 574 00:27:33,400 --> 00:27:35,240 таму што гэта проста сырой HTML. 575 00:27:35,240 --> 00:27:38,470 Атрымлівае ў лінію восем, і робіць, што жа магія again-- адкрыцця файла, 576 00:27:38,470 --> 00:27:41,460 захопліваючы змесціва, і патрабуючы ад іх або устаўляючы іх 577 00:27:41,460 --> 00:27:42,480 прама тады ці там. 578 00:27:42,480 --> 00:27:44,210 >> Але я проста спасылаўся на памылку. 579 00:27:44,210 --> 00:27:48,610 Гэта няпоўны крок назад, таму што, калі мы паглядзім у header.php, 580 00:27:48,610 --> 00:27:50,850 Я накшталт адрэзаць куток. 581 00:27:50,850 --> 00:27:56,250 Што функцыя я адмовіцца, каб каб атрымаць гэтую спрэчную лепшы дызайн? 582 00:27:56,250 --> 00:27:57,305 Да? 583 00:27:57,305 --> 00:27:58,180 АЎДЫТОРЫЯ: [неразборліва] 584 00:27:58,180 --> 00:28:00,570 Дэвід малая: Так, я як бы Выразаць нетрывіяльнае кут. 585 00:28:00,570 --> 00:28:04,489 Вы адзначылі, што тое, што было змяненне была назва, колькасць у назве, 586 00:28:04,489 --> 00:28:05,530 і колькасць у H1. 587 00:28:05,530 --> 00:28:08,170 Так што маё рашэнне было, добра, давайце проста перайменаваць старонку, 588 00:28:08,170 --> 00:28:10,080 а не займацца тым, што Праблема наогул. 589 00:28:10,080 --> 00:28:12,130 Дык вось няпоўны крок назад напэўна. 590 00:28:12,130 --> 00:28:14,300 >> Але тое, што характэрна тут Гэта тое, што я зрабіў 591 00:28:14,300 --> 00:28:17,200 у адваротным выпадку улічаны з усяго агульнай матэрыялу. 592 00:28:17,200 --> 00:28:21,520 І ў footer.php, звярніце ўвагу, я улічаны з усіх, што, хоць менш, 593 00:28:21,520 --> 00:28:22,790 агульны матэрыял. 594 00:28:22,790 --> 00:28:26,070 Так што я нейкім чынам трэба зараз змогуць зрабіць яшчэ адзін крок наперад, і выправіць 595 00:28:26,070 --> 00:28:27,160 што пытанні назву. 596 00:28:27,160 --> 00:28:28,180 Так давайце зробім гэта. 597 00:28:28,180 --> 00:28:35,060 >> Дазвольце мне ісці ў маім другім варыянце тут, што, зноў жа, мае тыя ж самыя файлы 598 00:28:35,060 --> 00:28:36,825 для аднаго новае дадатак выключэннем. 599 00:28:36,825 --> 00:28:38,950 І гэта крыху больш, шматслоўны, але давайце паглядзім, калі мы 600 00:28:38,950 --> 00:28:40,550 можа дражніць адзін ад аднаго, што тут адбываецца. 601 00:28:40,550 --> 00:28:45,370 Такім чынам, замест таго, каб патрабаваць header.php і footer.php, 602 00:28:45,370 --> 00:28:50,180 Я, здаецца, толькі адзін які патрабуе file-- называецца, вядома, helpers.php. 603 00:28:50,180 --> 00:28:52,560 І дазвольце мне прадугледжваюць зараз, што ўнутры helpers.php 604 00:28:52,560 --> 00:28:55,330 гэта ўсяго толькі купка функцый што я напісаў, як і раней. 605 00:28:55,330 --> 00:28:57,550 Але я назваў яго helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Цяпер, па-відаць, у лінія тры і 10, я 607 00:29:00,370 --> 00:29:02,840 выкліку двух functions-- аказваць загаловак, аказваюць калантытула. 608 00:29:02,840 --> 00:29:05,040 Тыя, не прыходзяць з PHP, я напісаў тыя сябе. 609 00:29:05,040 --> 00:29:07,880 І я паклаў іх у helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Зараз, мы бачылі толькі гэты сінтаксіс адзін раз, і гэта было супер кароткім. 611 00:29:11,210 --> 00:29:15,330 Але гэта па-відаць аргумент аказваць загаловак, функцыі. 612 00:29:15,330 --> 00:29:16,450 Чаму я гэта ведаю? 613 00:29:16,450 --> 00:29:18,522 Ну вось блізкі Хлопец, вось адкрытая дужка. 614 00:29:18,522 --> 00:29:21,230 І, вядома, як і ў C, нічога паміж гэтымі дужкамі 615 00:29:21,230 --> 00:29:23,350 з'яўляецца input-- або аргумент функцыі. 616 00:29:23,350 --> 00:29:26,710 >> Які тып дадзеных гэтага аргументу, на аснове таго, што я вылучыў? 617 00:29:26,710 --> 00:29:30,820 Што рабіць гэтыя квадратныя дужкі паказваюць, на аснове апошняга тыдня? 618 00:29:30,820 --> 00:29:33,390 Так, што гэта array-- спецыяльна асацыятыўны масіў. 619 00:29:33,390 --> 00:29:35,700 І гэта праўда, сінтаксіс трохі напалоханы, 620 00:29:35,700 --> 00:29:38,860 але гэта проста праходзіў ў адной ключавой пары значэнняў. 621 00:29:38,860 --> 00:29:43,530 Ключ, цытата канец цытаты Назва і значэнне CS50. 622 00:29:43,530 --> 00:29:46,220 >> Калі мы зрабілі гэта ў C, гэта магло б замест 623 00:29:46,220 --> 00:29:49,400 выглядаць прыкладна так, проста цытата канец цытаты CS50-- 624 00:29:49,400 --> 00:29:52,460 ці на самай справе было б кучаравыя брекеты, ці нешта падобнае ў C, 625 00:29:52,460 --> 00:29:55,580 дзе ключ роўны нулю, і значэнне CS50. 626 00:29:55,580 --> 00:29:59,840 Але, зноў жа, у PHP, хоць Сінтаксіс, зноў жа, крыху дзіўна, 627 00:29:59,840 --> 00:30:02,860 гэта дазваляе перадаваць у словы замест нумара 628 00:30:02,860 --> 00:30:05,120 каб звязаць ключы са значэннямі. 629 00:30:05,120 --> 00:30:06,390 >> Такім чынам, што ж ўсё гэта значыць? 630 00:30:06,390 --> 00:30:09,750 Калі я іду ў helpers.php, давайце паглядзім на гэтую функцыю. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, а renderHeader гэта мая функцыя, 632 00:30:13,620 --> 00:30:16,220 і я ведаю, што, таму што бачу функцыя Ключавое слова тут. 633 00:30:16,220 --> 00:30:19,450 Гэта новае ад C-- яго, па-відаць прымае аргумент з імем data-- 634 00:30:19,450 --> 00:30:22,400 але я мог бы назваць гэта што-небудзь, але я назваў яго дадзеныя, 635 00:30:22,400 --> 00:30:25,090 проста быць трохі clean-- і проста ўзяць здагадку, асабліва 636 00:30:25,090 --> 00:30:28,173 калі вы праграмавалі ў некаторых іншых вышэй узровень мовы, перш чым, нешта 637 00:30:28,173 --> 00:30:29,820 вышэй C, канцэптуальна. 638 00:30:29,820 --> 00:30:33,820 >> Што робіць роўны адкрыты кранштэйны квадратную дужку, верагодна, маеце на ўвазе? 639 00:30:33,820 --> 00:30:35,540 Або тое, што, магчыма, гэта значыць? 640 00:30:35,540 --> 00:30:39,660 Мы не бачылі гэта ў С. Да? 641 00:30:39,660 --> 00:30:40,480 >> Пусты масіў. 642 00:30:40,480 --> 00:30:45,440 У прыватнасці, гэта азначае, што калі карыстальнік не называць renderHeader 643 00:30:45,440 --> 00:30:49,340 з аргументам, я ўсё яшчэ збіраюся мець аргумент з імем дадзеных, 644 00:30:49,340 --> 00:30:52,327 але яго значэнне па змаўчанні будзе пусты масіў. 645 00:30:52,327 --> 00:30:53,660 Так што гэта проста добры зручнасць. 646 00:30:53,660 --> 00:30:56,493 Я не павінен крычаць на карыстальніка, ці сказаць, што вы выкарыстоўвалі мая функцыя не так. 647 00:30:56,493 --> 00:30:59,849 Я магу толькі даць карыстачу па змаўчанні значэнне, калі я не асабліва хвалюе. 648 00:30:59,849 --> 00:31:01,890 Зараз гэтая функцыя, я збіраецца махаць рукамі ст. 649 00:31:01,890 --> 00:31:07,620 Але гэты экстракт функцыя дазваляе нам перадаць гэтыя зменныя ў дадзеных 650 00:31:07,620 --> 00:31:10,360 у header.php наступным чынам. 651 00:31:10,360 --> 00:31:13,100 І гэта апошняя частка, Я думаю, што, фанкі сінтаксісу. 652 00:31:13,100 --> 00:31:15,860 Вось мой новая версія з header.php-- яго 653 00:31:15,860 --> 00:31:20,140 гаварыў, у літаральным сэнсе, адкрытым Кранштэйны назву CS50, і што гэта было. 654 00:31:20,140 --> 00:31:21,766 І тое ж самае для H1. 655 00:31:21,766 --> 00:31:24,310 >> Цяпер, па-відаць, кажа ён нешта вельмі напалоханы. 656 00:31:24,310 --> 00:31:28,030 І дазвольце мне спрасціць гэта на імгненне, як след. 657 00:31:28,030 --> 00:31:31,020 Гэта тое, што я змяніў свой тытул, каб быць. 658 00:31:31,020 --> 00:31:35,140 Тым не менш, гэта становіцца трохі непрыгожа пастаянна адкрытых дужках з PHP, 659 00:31:35,140 --> 00:31:36,610 а затым выкарыстоўваць функцыю друку. 660 00:31:36,610 --> 00:31:40,810 Атрымліваецца, што PHP мае скарочаны абазначэння для гэтага, які з'яўляецца толькі 661 00:31:40,810 --> 00:31:45,050 знак роўнасці, які з'яўляецца тэхнічна Функцыя называецца рэха замест друку, 662 00:31:45,050 --> 00:31:46,800 але гэта тое ж самае, эфектыўна. 663 00:31:46,800 --> 00:31:48,440 >> Гэта проста выглядае лепш. 664 00:31:48,440 --> 00:31:50,510 Гэта проста сінтаксічны цукар, калі хочаце, 665 00:31:50,510 --> 00:31:52,260 што робіць мой код выглядае трохі лепш. 666 00:31:52,260 --> 00:31:54,010 Але, аказваецца, і мы ўбачым гэта зноў 667 00:31:54,010 --> 00:31:57,420 у хуткім часе, мы павінны назваць гэта раздражняльна доўга функцыя называецца 668 00:31:57,420 --> 00:32:00,582 HTML спецыяльныя сімвалы ў PHP, таму што ён аказваецца 669 00:32:00,582 --> 00:32:02,790 Ёсць пэўныя ўваходы што карыстальнік можа даць нам, 670 00:32:02,790 --> 00:32:05,160 або, што карыстальнікі могуць даць нам, што збіраюцца разбіць наш сайт. 671 00:32:05,160 --> 00:32:07,035 Але мы ўбачым, што ў наступным тыдзень з JavaScript. 672 00:32:07,035 --> 00:32:10,740 Але цяпер, проста ведаю, што гэты файл, headers.php, проста 673 00:32:10,740 --> 00:32:13,040 прымае тытул, які Я прайшоў у гэта зрабіць 674 00:32:13,040 --> 00:32:17,380 упэўнены, што гэта бяспечна ўводзіць у Інтэрнэце старонка, і ён выплёўвае яго, як мой тытул 675 00:32:17,380 --> 00:32:18,640 і як мой H1. 676 00:32:18,640 --> 00:32:24,440 Так што, калі я іду ў гэтай версіі цяпер, заўважыць, што лекцыі мае тытул таму, 677 00:32:24,440 --> 00:32:28,630 нулявы тыдні мае сваю назву таму, і на самай справе, HTML я генерацыі 678 00:32:28,630 --> 00:32:32,110 ідэнтычны таму, што мой першы варыянт was-- для майго прабелаў, за выключэннем, 679 00:32:32,110 --> 00:32:35,150 таму што я пачаў фарматаванне мой код крыху па-іншаму. 680 00:32:35,150 --> 00:32:38,082 Але я ўсё генеруецца код, які я хвалюе. 681 00:32:38,082 --> 00:32:39,790 Такім чынам, дазвольце мне спыніцца на толькі на імгненне і ўбачыць 682 00:32:39,790 --> 00:32:42,200 калі ёсць якія-небудзь пытанні або спутанность свядомасці я стварыў. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Добра, так што давайце круціць крыху больш складана тут 685 00:32:48,150 --> 00:32:51,500 каб убачыць, калі ёсць магчымасць для паляпшэння. 686 00:32:51,500 --> 00:32:56,130 Helpers.php таксама было гэта функцыя, званая renderFooter. 687 00:32:56,130 --> 00:32:59,652 І тое, што характэрна аб renderHeader і renderFooter? 688 00:32:59,652 --> 00:33:02,610 І зноў, для сённяшніх мэтаў, ведаюць, што функцыя экстракт проста 689 00:33:02,610 --> 00:33:08,280 мой спосаб перадачы аргументаў у header.php і footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> На жаль? 692 00:33:11,780 --> 00:33:13,056 >> АЎДЫТОРЫЯ: [неразборліва] 693 00:33:13,056 --> 00:33:15,180 Дэвід малая: Так, я толькі зменены патрабуюць лінія. 694 00:33:15,180 --> 00:33:19,410 Так літаральна, я здзейсніў грэх капіявання і ўстаўкі, яшчэ раз. 695 00:33:19,410 --> 00:33:21,920 Гэта не вялікая колькасць ліній, але прыходзяць on-- 696 00:33:21,920 --> 00:33:25,220 калі я капіявання і ўстаўкі усё проста змяніць адзін слоўца, 697 00:33:25,220 --> 00:33:28,610 і адна маленькая слова, што Алан паказвае аўт ніжні калантытул тут, у параўнанні з загалоўка тут. 698 00:33:28,610 --> 00:33:30,670 У адваротным выпадку, усё ідэнтычныя, за выключэннем, 699 00:33:30,670 --> 00:33:32,180 Вядома, імёны функцыі. 700 00:33:32,180 --> 00:33:33,690 Так што мы маглі б зрабіць лепш? 701 00:33:33,690 --> 00:33:39,810 >> Ну дазвольце мне адкрыць гэтую версію тут, у выніку чаго ў helpers.php, 702 00:33:39,810 --> 00:33:42,300 чаму я не проста атрымаць трохі разумнейшыя пра гэта? 703 00:33:42,300 --> 00:33:46,410 Напісаць ледзь складаней Код, але назваць гэта зрабіць? 704 00:33:46,410 --> 00:33:48,470 Так што я прынцыпова змянілася? 705 00:33:48,470 --> 00:33:51,770 >> Ён прымае аргумент now-- два аргументу, дадзеныя па-ранейшаму. 706 00:33:51,770 --> 00:33:54,444 І тады тое, што першы Назва, верагодна, выкарыстоўваецца для, 707 00:33:54,444 --> 00:33:55,860 на аснове таго, што вы чытаеце тут? 708 00:33:55,860 --> 00:33:58,452 Нават калі некаторыя з сінтаксісу ўсё яшчэ з'яўляецца новай. 709 00:33:58,452 --> 00:33:59,660 Што шаблону знак даляра? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> На жаль? 712 00:34:03,016 --> 00:34:03,710 >> АЎДЫТОРЫЯ: верхні ці ніжні калантытул. 713 00:34:03,710 --> 00:34:04,510 >> Дэвід малая: верхні ці ніжні калантытул. 714 00:34:04,510 --> 00:34:07,134 Такім чынам, відавочна, я вырашыў, што калі Адзінае, што змяняецца 715 00:34:07,134 --> 00:34:10,159 гэта тое, што я хачу, шаблон каб print-- і па шаблоне 716 00:34:10,159 --> 00:34:13,100 Я маю на ўвазе, гэта праект для код, які я хачу для вываду, 717 00:34:13,100 --> 00:34:16,350 але я хачу, каб падключыць некаторыя values-- так што калі гэта толькі загаловак 718 00:34:16,350 --> 00:34:20,440 ці ніжні калантытул, чаму я не параметрызацыі што і называюць знак даляра аргумент 719 00:34:20,440 --> 00:34:21,409 шаблон? 720 00:34:21,409 --> 00:34:26,250 І тады гэта фанкі сінтаксіс дазваляе мне стварыць шлях у зменнай. 721 00:34:26,250 --> 00:34:28,030 >> Так знак даляра шлях зменнай. 722 00:34:28,030 --> 00:34:31,120 Што робіць гэты сінтаксіс рабіць, калі вы знаёмыя? 723 00:34:31,120 --> 00:34:32,512 Да? 724 00:34:32,512 --> 00:34:34,065 >> АЎДЫТОРЫЯ: [неразборліва] 725 00:34:34,065 --> 00:34:34,940 Дэвід малая: Дакладна. 726 00:34:34,940 --> 00:34:37,600 Калі шаблон, цытата канец цытаты, Загаловак, або калі шаблон, 727 00:34:37,600 --> 00:34:41,170 канец цытаты цытаты, склеп, гэтая лінія існуе што я вылучыў, лінія восем, 728 00:34:41,170 --> 00:34:46,330 проста прымаючы гэтае імя, як загаловак, і аб'яднання яе з кропкавай PHP. 729 00:34:46,330 --> 00:34:49,750 Такім чынам, мы не павінны гэтага аператара у C. Гэты аператар з'яўляецца кропка 730 00:34:49,750 --> 00:34:54,520 дзіўная рэч у PHP-- калі вы знаёмыя з JavaScript або Java, 731 00:34:54,520 --> 00:34:56,949 Вы можаце выкарыстоўваць плюс увайдзіце зрабіць канкатэнацыі. 732 00:34:56,949 --> 00:34:59,974 >> У C, гэта боль у neck-- і мне так шкада, у р-шэсць ўсталяваць, 733 00:34:59,974 --> 00:35:02,390 Вы будзеце мець, каб зрабіць this-- гэта боль у шыі 734 00:35:02,390 --> 00:35:03,930 для аб'яднання радкоў. 735 00:35:03,930 --> 00:35:04,670 Чаму? 736 00:35:04,670 --> 00:35:06,580 Ну, таму што, калі ў вас ёсць радок гэта так доўга, 737 00:35:06,580 --> 00:35:09,538 і яшчэ радок гэта так доўга, Вы не можаце проста падключыць іх разам. 738 00:35:09,538 --> 00:35:11,070 Што вы замест гэтага зрабіць у C? 739 00:35:11,070 --> 00:35:11,680 Да? 740 00:35:11,680 --> 00:35:12,380 >> АЎДЫТОРЫЯ: [неразборліва] 741 00:35:12,380 --> 00:35:15,090 >> Дэвід малая: Вы павінны Таноса памяці, або выкарыстоўваць масіў у стэку. 742 00:35:15,090 --> 00:35:17,214 І вы на самой справе трэба зрабіць гэта досыць вялікі масіў 743 00:35:17,214 --> 00:35:20,940 каб адпавядаць гэта плюс гэта, плюс зваротны слеш нуля. 744 00:35:20,940 --> 00:35:24,994 Затым аб'яднаць іх разам з дапамогай змяшаць ўручную або котку з цыкл, 745 00:35:24,994 --> 00:35:26,160 або любую колькасць метадаў. 746 00:35:26,160 --> 00:35:27,760 І мы пакажам вам некалькі ў р-ўсталяваць шэсць. 747 00:35:27,760 --> 00:35:29,080 >> Гэта боль у шыі. 748 00:35:29,080 --> 00:35:34,190 І гэта сапраўды тое, што я маю на ўвазе гэта супраць this-- як C у параўнанні з PHP. 749 00:35:34,190 --> 00:35:36,870 Вы проста атрымаеце значна больш Функцыянальнасць бясплатна, 750 00:35:36,870 --> 00:35:39,030 так што вы можаце засяродзіцца, у ідэале, на весялосьць 751 00:35:39,030 --> 00:35:41,190 частка кадаванні Праект вы хочаце вырашыць, 752 00:35:41,190 --> 00:35:43,190 а не на ўзроўні дробязяў нізкай. 753 00:35:43,190 --> 00:35:49,840 >> Так што гэта проста генеруе header.php або footer.php на падставе якіх я называю. 754 00:35:49,840 --> 00:35:52,280 І на самай справе, калі я іду у index.php, апавяшчэнне 755 00:35:52,280 --> 00:35:56,230 усё, што changed-- Замест называючы аказаць загаловак або ніжні калантытул зрабіць, 756 00:35:56,230 --> 00:36:00,230 Я тэлефаную зрабіць, за ім імя шаблону, што я хачу зрабіць. 757 00:36:00,230 --> 00:36:02,370 І вы ўбачыце, гэта таксама, ў задачы ўсталяваць сем, 758 00:36:02,370 --> 00:36:05,530 у выніку чаго мы дазваляем вам выкарыстоўваць тая ж функцыя, каб зрабіць букеты 759 00:36:05,530 --> 00:36:07,550 і гронкі розных вэб-старонак. 760 00:36:07,550 --> 00:36:10,570 >> Такім чынам, замест спыняцца занадта больш на тых details-- 761 00:36:10,570 --> 00:36:13,210 якія вы ўбачыце зноў у Праблема набор seven-- давайце паглядзім 762 00:36:13,210 --> 00:36:16,850 на цяпер пачатку раствора да больш цікавай праблеме. 763 00:36:16,850 --> 00:36:19,310 Да гэтага часу, мы нічога не маю зрабіць ёсць захаваныя дадзеныя. 764 00:36:19,310 --> 00:36:22,920 На самай справе, адзіны раз, мы калі-небудзь захаваны тое, што мы зрабілі ў гэтым класе 765 00:36:22,920 --> 00:36:31,030 гэта калі ў нас быў вельмі просты дэма некаторы час таму, у выніку чаго мы выкарыстоўвалі файл IO ў C, 766 00:36:31,030 --> 00:36:34,520 і я думаю, я набраў у імя Маё, і Імя Ганны, і імя Марыі, 767 00:36:34,520 --> 00:36:37,610 ці, можа быць, імя Эндзі, і тады мы захавалі file-- CSV 768 00:36:37,610 --> 00:36:39,430 значэння, падзеленыя коскамі файл. 769 00:36:39,430 --> 00:36:43,530 >> І мы выкарыстоўвалі fopen-- Я думаю, мы выкарыстоўвалі fprintf, як я памятаю, 770 00:36:43,530 --> 00:36:44,910 і мы захавалі файл. 771 00:36:44,910 --> 00:36:46,920 Цяпер, што гэта самы просты Форма базы дадзеных. 772 00:36:46,920 --> 00:36:50,230 Калі вы хочаце, каб зрабіць вэб-сайт для Праграма Фрош чаты, у выніку чаго першакурснікаў 773 00:36:50,230 --> 00:36:53,390 можа зарэгістравацца на спорт, ты ідэальна хачу зрабіць што-то з гэтымі дадзенымі. 774 00:36:53,390 --> 00:36:55,370 На мінулым тыдні, мы нічога не рабілі з data-- мы проста сказаў 775 00:36:55,370 --> 00:36:56,661 Вы зарэгістраваныя, не на самай справе. 776 00:36:56,661 --> 00:36:58,950 Ці, можа быць, я паслаў па электроннай пошце Проктор, і што гэта было. 777 00:36:58,950 --> 00:37:02,110 >> Але было б нядрэнна, калі б я мог даць, што Проктор файл CSV, 778 00:37:02,110 --> 00:37:03,340 як файл Excel. 779 00:37:03,340 --> 00:37:05,090 Або, яшчэ лепш, гэта было б добра, калі б я мог 780 00:37:05,090 --> 00:37:08,830 змясціць імёны гэтых карыстальнікаў і інтэрната імёны і ўсё, што 781 00:37:08,830 --> 00:37:11,740 у базу дадзеных, проста жыве вечна, 782 00:37:11,740 --> 00:37:13,530 пакуль я не выбраць для выдалення дадзеных. 783 00:37:13,530 --> 00:37:15,645 База дадзеных, якая дазваляе мне запыт інфармацыі. 784 00:37:15,645 --> 00:37:18,070 І на самай справе, гэта тое, што база дадзеных. 785 00:37:18,070 --> 00:37:20,470 >> Ўвядзем сёння, і на наступным тыдні, таксама тэхналогія 786 00:37:20,470 --> 00:37:25,020 называецца SQL-- структурны запыт Мова, які з'яўляецца іншы мова. 787 00:37:25,020 --> 00:37:28,750 Гэта істотна праграмавання мова, але для баз дадзеных. 788 00:37:28,750 --> 00:37:31,760 І база дадзеных зараз, проста думаю, як супер модныя версіі 789 00:37:31,760 --> 00:37:35,710 з Microsoft Excel або Google Табліцы, ці яблычны лікаў. 790 00:37:35,710 --> 00:37:39,950 Гэта ў цэлым праграма, якая дазваляе захоўваць цэлую кучу дадзеных 791 00:37:39,950 --> 00:37:43,960 у радках і слупках, досыць як вы маглі б у Excel. 792 00:37:43,960 --> 00:37:47,100 >> Але тое, што прыемна, асабліва калі мы не супер знаёмыя з Excel, 793 00:37:47,100 --> 00:37:52,040 тое, што SQL дазваляе зрабіць запыт гэта Інфармацыя ў пісьмовым выглядзе радкоў кода 794 00:37:52,040 --> 00:37:55,220 дзе вы можаце, нават калі ваш база дадзеных мае мільён радкоў у ім, 795 00:37:55,220 --> 00:37:57,190 Вы можаце знайсці рэчы вельмі хутка. 796 00:37:57,190 --> 00:37:59,950 На самай справе, Excel асабліва дрэнна на вялікіх набораў дадзеных. 797 00:37:59,950 --> 00:38:02,460 І на самай справе, да некалькіх гадоў таму, аказалася 798 00:38:02,460 --> 00:38:08,890 Excel толькі дазволіць вам захоўваць да 65,535 радкоў, якія data-- 799 00:38:08,890 --> 00:38:12,020 гучыць, як шмат, але ў той раз я быў аспірантам, 800 00:38:12,020 --> 00:38:14,920 і я памятаю, спатыкаючыся гэта таму, што я быў генерацыі 801 00:38:14,920 --> 00:38:17,900 Файлы CSV для майго даследавання, і я хацеў прааналізаваць іх хутка 802 00:38:17,900 --> 00:38:19,530 проста адкрыўшы ў Excel. 803 00:38:19,530 --> 00:38:23,730 Вядома, мой кампутар проста разбіўся, таму што я быў больш, чым 65000 радкоў. 804 00:38:23,730 --> 00:38:27,210 >> Але дзе ж 65,535 прыйшлі? 805 00:38:27,210 --> 00:38:29,670 Што рабіць Microsoft, па-відаць? 806 00:38:29,670 --> 00:38:32,430 Калі вы добра з паўнамоцтвамі двух? 807 00:38:32,430 --> 00:38:37,160 Так, яны былі з выкарыстаннем 16-біт значэнне ўяўляюць лік радкоў. 808 00:38:37,160 --> 00:38:41,310 І два 16 з'яўляецца 65,536-- мінус адна, таму што калі вы 809 00:38:41,310 --> 00:38:45,414 нулявой адзнакі азначае, што быў Найбольшая колькасць радкоў я мог бы. 810 00:38:45,414 --> 00:38:46,830 І гэта было толькі дызайнерскае рашэнне. 811 00:38:46,830 --> 00:38:52,760 Пры захаванні 16 біт, яны абмежаваныя мяне 16000 радкоў, а не 4 млрд, 812 00:38:52,760 --> 00:38:54,322 якія я мог мець у ідэале. 813 00:38:54,322 --> 00:38:57,030 Але цяпер, мы збіраемся ўвесці гэты больш у вэб-кантэксце. 814 00:38:57,030 --> 00:39:00,390 І тое, што прыемна пра SQL з'яўляецца тое, што нават хоць гэта даволі магутная і даволі 815 00:39:00,390 --> 00:39:04,050 складаныя, гэта сапраўды кіпіць да чатырох ключавых аперацый, чатыры 816 00:39:04,050 --> 00:39:08,060 Асноўныя функцыі, калі вы выберыце, will-- для вымання дадзеных, пошуку 817 00:39:08,060 --> 00:39:12,510 для дадзеных; выдаляць або выдаленне дадзеных; ўставіць для дадання радкоў у базе даных; 818 00:39:12,510 --> 00:39:13,410 і абнаўленне. 819 00:39:13,410 --> 00:39:17,010 Так што калі вы калі-небудзь выкарыстоўвалі Google Табліцы, Apple, Microsoft Лікі 820 00:39:17,010 --> 00:39:19,310 Excel, як Вы выканалі, хутчэй за ўсё, усе 821 00:39:19,310 --> 00:39:22,530 з гэтых аперацый, як чалавека па толькі з дапамогай клавіятуры і mouse-- 822 00:39:22,530 --> 00:39:26,050 ўстаўкі дадзеных, выкарыстоўваючы свае вочы для выбару або пошуку дадзеных, 823 00:39:26,050 --> 00:39:28,360 або дадзеныя абнаўлення або выдалення дадзеных. 824 00:39:28,360 --> 00:39:29,870 >> Такім чынам, што ж гэта значыць? 825 00:39:29,870 --> 00:39:34,300 Ну, папярэдне ўсталяваныя ў CS50 IDE з'яўляецца праграма пад назвай MySQL. 826 00:39:34,300 --> 00:39:37,050 Гэта бясплатна, з адкрытым зыходным кодам базы дадзеных, што супер папулярным. 827 00:39:37,050 --> 00:39:40,590 Facebook, напрыклад, выкарыстоўвае яго для гэтага дзень, сярод іншых інструментаў, якія яны выкарыстоўваюць. 828 00:39:40,590 --> 00:39:44,300 І шмат вельмі папулярных вэб-сайтаў выкарыстоўваць гэта ў значнай ступені таму, што гэта хутка, 829 00:39:44,300 --> 00:39:45,230 і таму, што гэта бясплатна. 830 00:39:45,230 --> 00:39:46,820 Хоць, безумоўна, існуюць альтэрнатывы. 831 00:39:46,820 --> 00:39:49,580 І некаторыя з вас, магчыма, плёскацца з альтэрнатывы для канчатковых праектаў. 832 00:39:49,580 --> 00:39:55,330 >> Гэта здымак экрана, тым часам, з вэб-інструмент называецца PhpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 Гэта супадзенне, што гэта вэб-інструмент таксама 834 00:39:58,260 --> 00:40:01,720 напісана на мове РНР, але тое, што ён хацеў зрабіць 835 00:40:01,720 --> 00:40:04,620 гэта даць нам на аснове вэб- Інтэрфейс да базы дадзеных. 836 00:40:04,620 --> 00:40:07,180 Паколькі MySQL, як правіла, з'яўляецца тое, гістарычна, вам 837 00:40:07,180 --> 00:40:08,770 будуць узаемадзейнічаць толькі з з каманднага радка. 838 00:40:08,770 --> 00:40:10,811 І гэта было б супер раздражняе і таямніцай мець 839 00:40:10,811 --> 00:40:14,487 ўвесці тэкставыя каманды для выбару Дадзеныя, ўставіць дадзеныя і выдаляць дадзеныя. 840 00:40:14,487 --> 00:40:16,820 Такім чынам, некаторыя людзі ў Інтэрнэце напісаў вэб-праграмы 841 00:40:16,820 --> 00:40:18,900 што проста дайце нам кіраваць дадзеныя ў нашай базе дадзеных. 842 00:40:18,900 --> 00:40:23,040 Гэта як двойчы пстрыкнуўшы па Excel і працуе іх вэб-разрадных версій. 843 00:40:23,040 --> 00:40:26,370 >> І тое, што вы збіраецеся выкарыстоўваць гэта для у канчатковым рахунку, на наступным тыдні, а не ў р-ўсталяваць шэсць, 844 00:40:26,370 --> 00:40:28,680 але нешта пабудаваць называецца CS50 Фінансы, якія 845 00:40:28,680 --> 00:40:32,630 будзе мець базу дадзеных карыстальнікі, з імёнамі карыстальнікаў і паролямі, 846 00:40:32,630 --> 00:40:34,860 даляр сумы, якія яны маюць у сваіх банкаўскіх рахункаў. 847 00:40:34,860 --> 00:40:37,280 Гэта будзе тое, што вы карыстаецеся для захоўвання 848 00:40:37,280 --> 00:40:39,910 сімвалы і велічыні запасаў, што карыстальнікі 849 00:40:39,910 --> 00:40:42,567 купіў з дапамогай віртуальнай даляраў, што вы будзеце даваць ім. 850 00:40:42,567 --> 00:40:44,900 І гэта адбываецца, каб дазволіць карыстальнікам каб зарэгістравацца для вашага сайта, 851 00:40:44,900 --> 00:40:47,190 так што нават вашыя сябры можаце наладзіцца на свой вэб-сайт 852 00:40:47,190 --> 00:40:49,360 а на самай справе зарэгіструйцеся, увайсці, і пагуляць 853 00:40:49,360 --> 00:40:52,807 і паспрабаваць знайсці няспраўнасць у кодзе, і паспрабаваць знайсці памылкі ў свой вэб-сайт. 854 00:40:52,807 --> 00:40:55,390 І яны проста зарэгістравацца, дадаўшы сябе, па сутнасці, 855 00:40:55,390 --> 00:40:58,120 з дапамогай кода вы пішаце ў базу дадзеных. 856 00:40:58,120 --> 00:41:02,470 >> Напрыклад, гэта хуткі скрыншот што база дадзеных можа выглядаць. 857 00:41:02,470 --> 00:41:05,190 Гэта з адной з solutions-- леташнія 858 00:41:05,190 --> 00:41:07,760 гэта як міні-Excel падаць, захоўваецца ў нашай базе дадзеных, 859 00:41:07,760 --> 00:41:09,950 захоўваюцца ў гэтым праграмнае забеспячэнне пад назвай MySQL. 860 00:41:09,950 --> 00:41:13,260 На левай баку, мабыць, У мяне улічваючы кожнаму карыстальніку унікальны нумар. 861 00:41:13,260 --> 00:41:16,200 У другой калонцы, я даў усе карыстальнік name-- маё 862 00:41:16,200 --> 00:41:16,880 сярод іх. 863 00:41:16,880 --> 00:41:21,430 А на правай баку, Я даў ім хэш. 864 00:41:21,430 --> 00:41:26,760 >> Зараз гэта сапраўды паролю але гэта не просты тэкставы пароль. 865 00:41:26,760 --> 00:41:30,160 Гэта зашыфраваны пароль, калі Вы будзеце, або хэш пароля. 866 00:41:30,160 --> 00:41:32,000 Які мы вернемся да хуткім часе. 867 00:41:32,000 --> 00:41:34,340 >> Але калі вы калі-небудзь чытаў артыкул пра тое, як 868 00:41:34,340 --> 00:41:37,950 пароль у нейкі банк ці некаторыя вэб-сайт можа быць скампраметаваная, 869 00:41:37,950 --> 00:41:39,630 ён можа, як правіла азначаць адно з двух рэчаў. 870 00:41:39,630 --> 00:41:42,780 Так што гэта проста ўрывак з шасці карыстальнікаў. 871 00:41:42,780 --> 00:41:45,460 Усё цяпер вы можаце зразумець з з дапамогай узлому або расколін 872 00:41:45,460 --> 00:41:47,690 якія паролі нашых шасці народныя. 873 00:41:47,690 --> 00:41:49,720 Але калі вы калі-небудзь атрымлівалі папярэджанне або прабачэнне 874 00:41:49,720 --> 00:41:52,803 ад кампаніі або на сайце прымаўцы, прабачце, хакер ўварваліся ў нашай базе дадзеных, 875 00:41:52,803 --> 00:41:56,360 Вы, верагодна, варта змяніць свой пароль, што можа азначаць? 876 00:41:56,360 --> 00:41:59,670 >> Ну, адзін, можа азначаць, што Кампанія была больш ідыёцкі, 877 00:41:59,670 --> 00:42:03,630 і быў захоўвання пароль у калонцы, як гэта, ў незашыфраваным выглядзе. 878 00:42:03,630 --> 00:42:05,840 Што азначае, што праціўнік, хто скраў базу дадзеных, 879 00:42:05,840 --> 00:42:07,440 літаральна ведае вашыя Лагін і пароль. 880 00:42:07,440 --> 00:42:08,960 Гэта горшы сцэнар. 881 00:42:08,960 --> 00:42:11,710 І, як вы ўбачыце ў р-набор сем, так лёгка пазбегнуць. 882 00:42:11,710 --> 00:42:15,624 Там няма абсалютна ніякага апраўдання за што форма глупства ў сучасным Інтэрнэце. 883 00:42:15,624 --> 00:42:18,540 Two-- і мы знойдзем некалькі артыкулаў каб сведчыць той факт, што гэта па-ранейшаму 884 00:42:18,540 --> 00:42:21,710 бывае, nonetheless-- два, можа быць, праціўнік 885 00:42:21,710 --> 00:42:23,840 скраў гэтую версію базы дадзеных. 886 00:42:23,840 --> 00:42:27,110 Якія яшчэ выгляд дрэнна, таму што цяпер яны ведаюць, што ў мяне ёсць шэсць кліентаў, 887 00:42:27,110 --> 00:42:29,270 Я ведаю імёны карыстальнікаў з гэтых шасці кліентаў, 888 00:42:29,270 --> 00:42:32,910 і я ведаю, зашыфраваны версіі, або версіі, HASHED 889 00:42:32,910 --> 00:42:34,340 пароляў гэтых шасці кліентаў. 890 00:42:34,340 --> 00:42:37,010 Але любы з вас, хто можа зрабілі [? Хакер 2?] 891 00:42:37,010 --> 00:42:41,150 дзе вы расколіны паролі, або ўзяў Погляд на гэтай версіі праблемы 892 00:42:41,150 --> 00:42:46,280 набор, чаму гэта да гэтага часу мала турбуе калі праціўнік ведае ваш хэш 893 00:42:46,280 --> 00:42:47,435 паролі? 894 00:42:47,435 --> 00:42:49,732 >> АЎДЫТОРЫЯ: Таму што яны маглі увядзіце цэлы слоўнік 895 00:42:49,732 --> 00:42:50,690 у хэш-функцыі. 896 00:42:50,690 --> 00:42:54,520 І калі ваш пароль слоўнік Слова [? яны могуць проста match--?] 897 00:42:54,520 --> 00:42:57,640 >> Дэвід малая: Роўна, праціўнік можна проста напісаць код, як і некаторыя з вас 898 00:42:57,640 --> 00:43:00,526 зрабіў для [? Хакер?] 2, у якім вы перабору 899 00:43:00,526 --> 00:43:03,400 ўсе словы ў слоўніку, ці ўсе магчымыя камбінацыі А 900 00:43:03,400 --> 00:43:06,610 праз Z і адзін праз nine-- якая гучыць, як шмат, і гэта. 901 00:43:06,610 --> 00:43:08,361 Але для кампутара, гэта па-чартоўску хутка. 902 00:43:08,361 --> 00:43:10,610 І на самай справе, што было кропка [? Хакер 2 ,?] Быў 903 00:43:10,610 --> 00:43:12,540 прыняць рэчы, якія літаральна выглядае так, 904 00:43:12,540 --> 00:43:14,900 і зваротны інжынірынг тое, што было на самай справе. 905 00:43:14,900 --> 00:43:17,270 >> Такім чынам, мы будзем глядзець на тое, як мы можам захоўваць гэта больш эфектыўна. 906 00:43:17,270 --> 00:43:20,210 Аказваецца, на шчасце, у MySQL, там збіраюцца быць тыпы дадзеных. 907 00:43:20,210 --> 00:43:22,800 І адзін з пацешных частак аб праектаванне баз дадзеных, каб быць сумленным, 908 00:43:22,800 --> 00:43:25,810 на самай справе вырашыць для сябе як вы павінны прадстаўляць дадзеныя? 909 00:43:25,810 --> 00:43:29,630 Калі вы ўяўляеце, як нумар тэлефона цэлалікавых, як вялікі нумар, або доўгі? 910 00:43:29,630 --> 00:43:31,630 Ці вы на самой справе зрабіць гэта як паслядоўнасць знакаў? 911 00:43:31,630 --> 00:43:33,780 І можа быць вельмі нетрывіяльныя наступствы гэтага. 912 00:43:33,780 --> 00:43:36,714 >> На самай справе, адзін з раннія, вясёлыя гісторыі Герман 913 00:43:36,714 --> 00:43:39,880 калі Марк Цукерберг будуе Facebook, ён быў першапачаткова напісаны на, 914 00:43:39,880 --> 00:43:42,300 і да гэтага часу ў значнай ступені напісаная ў PHP. 915 00:43:42,300 --> 00:43:45,400 І адна з самых вялікіх праблем, яны сутыкнуліся рана было маштабавання. 916 00:43:45,400 --> 00:43:48,820 Калі яны працягвалі дадаваць школу пасля Школа пасля школы, па маіх звестках, 917 00:43:48,820 --> 00:43:51,639 адзін з арыгінальных рашэнняў па сутнасці, скапіруйце і ўстаўце 918 00:43:51,639 --> 00:43:53,430 некаторыя з баз дадзеных і частка кода, 919 00:43:53,430 --> 00:43:55,346 так што Гарвард быў працуе на ўласным серверы, 920 00:43:55,346 --> 00:43:56,995 і Масачусецкага тэхналагічнага інстытута быў запушчаны на ўласным серверы. 921 00:43:56,995 --> 00:43:59,120 І гэта было, чаму, для некаторых з вас, хто, магчыма, памятаеце, 922 00:43:59,120 --> 00:44:01,510 Вы не маглі мець сяброў у іншых сетках. 923 00:44:01,510 --> 00:44:05,050 >> Вы, напэўна, няма сяброў на Масачусецкі тэхналагічны інстытут Гарвардскі або 10 або каля таго гадоў таму, 924 00:44:05,050 --> 00:44:07,467 але вы не маглі займаць сетак для часткова па гэтай прычыне. 925 00:44:07,467 --> 00:44:10,550 І адна з самых вялікіх праблем для Марк і для кампаній, такіх як Facebook 926 00:44:10,550 --> 00:44:13,460 на самай справе апрацоўкі сотні і тысячы і мільёны 927 00:44:13,460 --> 00:44:14,460 запытаў у секунду. 928 00:44:14,460 --> 00:44:16,501 Такім чынам, тое, што мы пачнем казаць аб гэтым тыдні 929 00:44:16,501 --> 00:44:19,860 сапраўды будзе дарэчы, каб напісанне добрай праграмы, і ў народзе 930 00:44:19,860 --> 00:44:23,040 паспяховыя інструменты, можа апрацоўваць вялікая колькасць карыстальнікаў. 931 00:44:23,040 --> 00:44:25,460 >> Такім чынам, мы будзем казаць аб тым, як індэксацыі і пошуку, 932 00:44:25,460 --> 00:44:26,910 але гэта на сёння. 933 00:44:26,910 --> 00:44:28,780 Мы будзем бачыць Вас на працягу больш у сераду. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [МУЗЫКА - "Seinfeld" ТЭМА] 936 00:44:33,902 --> 00:44:35,943 Дэвід малая: вы можаце гэта, і адняць з яго. 937 00:44:35,943 --> 00:44:38,859 І вы не павінны прытрымлівацца некаторыя загадзя вызначаныя аб'ём памяці. 938 00:44:38,859 --> 00:44:40,580 Ну, тое, што, што будзе называцца? 939 00:44:40,580 --> 00:44:42,369 >> СПІКЕР 1: Ну, што адбываецца? 940 00:44:42,369 --> 00:44:43,535 СПІКЕР 2: Што вы маеце на ўвазе? 941 00:44:43,535 --> 00:44:44,451 Ён чытаў лекцыю. 942 00:44:44,451 --> 00:44:47,650 Дэвід малая: І мы можам выкарыстоўваць Функцыя называецца Таноса ў memory-- 943 00:44:47,650 --> 00:44:50,050 >> СПІКЕР 1: Почему не рукі рухаецца? 944 00:44:50,050 --> 00:44:52,450 >> СПІКЕР 2: Ну that's-- Вы ведаеце, што гэта нармальна. 945 00:44:52,450 --> 00:44:57,162 Гэта проста, як ён толькі што сардэлек вісіць. 946 00:44:57,162 --> 00:44:59,040 >> СПІКЕР 1: Гэта нармальна? 947 00:44:59,040 --> 00:45:03,096 >> СПІКЕР 2: Так, я думаю, што мы толькі выказаць здагадку, што ён выпадкова 948 00:45:03,096 --> 00:45:06,840 замяніць яго дэзадарант з суперклея. 949 00:45:06,840 --> 00:45:07,608