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: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 персонал, і ви хочете, щоб почати думати про стає 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 Звичайно, мій комп'ютер просто розбився, тому що я був більш, ніж 65 000 рядків. 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