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 >> Дејвид MALAN: Ова е CS50, и ова е почеток на недела осум. 5 00:00:13,350 --> 00:00:17,510 И ние сме толку возбудени за добредојде назад, големо изненадување, сопствена Рамон CS50 е 6 00:00:17,510 --> 00:00:22,160 Galvan, растечки постар кој е трошење на изминатите неколку месеци 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 Па Stay tuned за тоа како и за повеќе Рамон за следните недели да дојде. 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 ние сме поминува најголем дел од нашето време со користење C, а во светот на веб програмирање. 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 кои се, исто така, ќе биде germane за мобилни апликации и за технологијата, 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 постави шест е долга повеќе од 1.000 линии, Многу од нив е коментари, да биде 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 Проблемот постави седум се случува да биде во врска со правење на своја сопствена web-базирана апликација 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 хакатон тука во Кембриџ за Харвард и Јеил студенти 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 хакатон. 73 00:03:39,380 --> 00:03:43,560 Оваа слика, да се потсетиме, од нула недела преземени околу 04:00 на една вечер во изминатите години. 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 персоналот, и сакате да започнете размислува да стане Калифорнија, 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 на слика за тоа зошто ние сме во транзиција од C до јазик како PHP. 87 00:04:21,600 --> 00:04:25,480 А истото може да се каже на сите број на languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 или гроздовете на others-- но додека во Ц, на пример, пишување програма во C 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 >> Значи без понатамошно ado, ајде да се, всушност, го користите PHP за решавање на некои проблеми. 119 00:05:55,070 --> 00:06:00,230 Потсетиме дека на почетокот на, последните недела, ние само се користат CS50 ИРО, 120 00:06:00,230 --> 00:06:02,990 ние напиша спретнат малку програма дека само рече: "Здраво светот." 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 Дејвид MALAN: Добри се, има некои на функцијата PHP-- и дозволете ми да биде поконкретен, 129 00:06:19,696 --> 00:06:21,810 има програма наречена PHP, a.k.a. 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 >> Но, за разлика Ц, кој е Составувач јазик, 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 >> Дејвид MALAN: подинамичен? 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 Дејвид MALAN: Добро, добро, па во зависност од влезниот, 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 да се разбере, бидејќи Интел процесор, или што и да е, 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 >> Дејвид MALAN: Да, ви се потребни тој агол заградата до врвот. 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-- јас 203 00:09:24,160 --> 00:09:28,780 да го користите овој прилично криптичната инкантација на врвот тука, 204 00:09:28,780 --> 00:09:31,740 која е генерално се нарекува shebang, при што овој е остар симбол, 205 00:09:31,740 --> 00:09:34,270 така да се каже, ова е страшен тресок или извичник. 206 00:09:34,270 --> 00:09:38,490 И ова сега е на пат да создаде програма на еден типичен систем Линукс, кој 207 00:09:38,490 --> 00:09:41,500 се нарекува животната средина, или env. 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, or-- хм. 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 но тоа е како на C верзија на остри вклучуваат, 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 >> Дејвид MALAN: Кога немам да командува со аргументите на командната линија. 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 исто како што се водат за исчезнати последните недела, наспроти Ц, кој е што? 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 Па arg C е само навистина глобалната променлива 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 аргумент to-- што и зборот е. 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 >> Мајкрософт мислам дека е овој, MSFT-- $ 53. 302 00:14:06,770 --> 00:14:09,720 Мислам дека Yahoo е можеби тоа. 303 00:14:09,720 --> 00:14:12,130 И Фејсбук е тоа. 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 Дејвид MALAN: Добро прашање. 332 00:15:23,350 --> 00:15:26,070 Во веб контекст, што сме буквално за да транзиција кон, 333 00:15:26,070 --> 00:15:28,028 што не го користат т.н. shebang на врвот, 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 но тоа е нашиот начин на премостување нашите С примери до сега нашите 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 system-- можеби на слободен софтвер наречен Apache-то, кое CS50 ИРО работи. 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 имаат свој уникатен URL, Почнавме да се дискутира за тоа, 360 00:16:45,730 --> 00:16:47,280 и ќе видите повеќе во P. постави шест. 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 ИРО, 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 се сервира од страна на web серверот. 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, за модел погледнете контролорот. 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 Дејвид MALAN: неподредени list-- па UL таг и можеби неколку ЛИ тагови. 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 Ние ќе се фокусира повеќе на програмирање идеи кои се на juicier парчиња. 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 Вгнездени внатре во тоа е да ЛИ тагови. 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 На веб серверот, a.k.a., CS50 ИРО, прима таа виртуелна плик. 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 ИРО, 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-- слично underwhelming, тоа е само некои 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 tweak некои адреси, и да биде на мојот начин. 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 Дејвид MALAN: Добро, добро. 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 И она што е само работа, навистина, тоа се менува помеѓу недела one-- 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 Дејвид MALAN: Добро, така што насловот се менува, некогаш толку малку. 510 00:24:22,360 --> 00:24:24,010 Нула ќе, се разбира, на еден. 511 00:24:24,010 --> 00:24:25,570 Истото се случува во Н1 таг. 512 00:24:25,570 --> 00:24:28,790 А ние не сосема да го видите како лесно, бидејќи на адресите се малку долго. 513 00:24:28,790 --> 00:24:30,670 Но оние адреси се менуваат малку. 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 >> Дејвид MALAN: Да. 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 >> Дејвид MALAN: Ми треба да зборуваат само малку погласно. 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 Дејвид MALAN: Добро, добро. 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-- која е како C остар include-- која 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-- a.k.a. 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 On line еден, таа веднаш налетува отворена заграда прашалник PHP, да бараат 567 00:27:15,400 --> 00:27:17,872 заглавие точка PHP, и така она што на 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 Дејвид MALAN: Да, јас вид пресечат некој nontrivial агол. 585 00:28:00,570 --> 00:28:04,489 Ви посочи дека она што се менува беше насловот, бројот во насловот, 586 00:28:04,489 --> 00:28:05,530 а бројот на Н1. 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 Па тука е блиску paren, тука е отворена paren. 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 Клучот е, цитат unquote Наслов, а вредноста е CS50. 622 00:29:43,530 --> 00:29:46,220 >> Ако ние не го сторил тоа во C, наместо тоа би можело да 623 00:29:46,220 --> 00:29:49,400 изгледаат повеќе како ова, само цитат unquote 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 погоре Ц, концептуално. 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 Ние не го видел ова во C. Да? 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 И истото за Н1. 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 пред долго време, ние треба да се јавите на оваа annoyingly долги функција наречена 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 и како што ми Н1. 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 Дејвид MALAN: Да, јас само смени бара линија. 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 и еден мал збор дека Алан поени надвор е Footer тука, наспроти насловот овде. 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 >> Дејвид MALAN: заглавието или подножјето. 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 Дејвид MALAN: Токму така. 726 00:34:34,940 --> 00:34:37,600 Ако шаблон е, цитат unquote, насловот, или ако шаблон е, 727 00:34:37,600 --> 00:34:41,170 цитат unquote, footer, таа линија таму што сум ги истакна, линија осум, 728 00:34:41,170 --> 00:34:46,330 едноставно прима тоа име, како и насловот, и тоа concatenating со точка PHP. 729 00:34:46,330 --> 00:34:49,750 Значи ние не го имаат ова оператор во C. Овој оператор точка е 730 00:34:49,750 --> 00:34:54,520 неверојатно нешто во PHP-- ако сте запознаени со JavaScript или Јава, 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 да concatenate жици. 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 Што ви е наместо да се направи во Ц? 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 >> Дејвид MALAN: Мора да Примерок меморија, да се користи низа на магацинот. 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 Потоа да ги concatenate заедно користење промешува мачка или рачно со за телефонска линија, 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 или можеби името на Енди, и тогаш ние спаси CSV file-- 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 Ако сакате да се направи веб-сајт за Програма Frosh Инстант пораки, при што бруцоши 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 стави имињата на тие корисници и dorm имиња и сето тоа 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 Табеларни пресметки, или Apple броеви. 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 Ексел да дозволи само да ги чувате до 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 Се разбира, мојот компјутер само се урна, бидејќи имав повеќе од 65.000 редови. 804 00:38:23,730 --> 00:38:27,210 >> Но, каде е 65.535 доаѓаат од? 805 00:38:27,210 --> 00:38:29,670 Што прави Мајкрософт, веројатно? 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 бита, тие ми се ограничени 16.000 редови, наместо на 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 Табеларни пресметки, броеви Епл, Мајкрософт 820 00:39:17,010 --> 00:39:19,310 Ексел, сте погубен, најверојатно, сите 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 Фејсбук, на пример, го користи за оваа ден, меѓу другите алатки кои тие ги користат. 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 напишани на јазик, PHP, но она што тоа е со цел да се направи 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 >> Дејвид MALAN: Токму така, на еден противнички играч може само да се напише код, како што некои од вас 898 00:42:57,640 --> 00:43:00,526 правеше за [? Хакер?] 2, при што ќе iterate во текот 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 Треба да ви претставува телефонски број како int, како голем број, или долго? 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 >> Всушност, еден од најрано забава germane приказни 913 00:43:36,714 --> 00:43:39,880 е кога Марк Цукерберг градеше Фејсбук, што беше првично напишано во, 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 Но, вие не би можеле да span мрежи за делумно таа причина. 925 00:44:07,467 --> 00:44:10,550 И еден од најголемите предизвици за Марко и за компании како што се Фејсбук 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 Дејвид MALAN: Може да се тоа, и одземе од него. 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 Дејвид MALAN: И ние може да се користи функција наречена Примерок да 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 заменува дезодоранс со неговиот superglue. 949 00:45:06,840 --> 00:45:07,608