1 00:00:00,000 --> 00:00:02,500 [Powered by Google Translate] [Семинар] [Веб-разработка: От идеи до воплощения] 2 00:00:02,500 --> 00:00:04,200 [Бен Kuhn] [Билли Janitsch] [Гарвардский университет] 3 00:00:04,200 --> 00:00:07,250 [Это CS50] [CS50.TV] 4 00:00:07,250 --> 00:00:10,840 [Билли] Привет, я Билли и это Бен. >> [Бен] Привет. 5 00:00:10,840 --> 00:00:12,840 Мы собираемся говорить о веб-разработке и сегодня. 6 00:00:12,840 --> 00:00:14,840 [WebDev] [Билли Janitsch и Бен Kuhn] 7 00:00:14,840 --> 00:00:16,840 Немного о нас в первую очередь. 8 00:00:16,840 --> 00:00:19,590 Бен является своего рода фоновых парнем. Он делает все это работает. 9 00:00:19,590 --> 00:00:21,870 А потом я иду в и сделать их довольно. 10 00:00:21,870 --> 00:00:26,610 Я в значительной мере участвует с большим переднего плана дизайна макета рода вещи, 11 00:00:26,610 --> 00:00:31,260 и Бен, с другой стороны, знает, что он делает, чтобы он работает на серверной вещи. 12 00:00:31,260 --> 00:00:34,050 Вместе мы сделали несколько вещей. 13 00:00:34,050 --> 00:00:38,710 Например, в прошлом году мы работали над Gimblium который представляет собой интернет-студия разработки игр. 14 00:00:38,710 --> 00:00:40,400 Это была наша окончательный проект для класса, 15 00:00:40,400 --> 00:00:42,780 и с тех пор мы сделали Гарвардского Class 16 00:00:42,780 --> 00:00:47,860 которая представляет собой интернет-база для просмотра и торговых курсов в Гарварде. 17 00:00:47,860 --> 00:00:53,180 >> Мы собираемся начать с этой идеей для нашего сайта. 18 00:00:53,180 --> 00:00:57,480 Мы собираемся сделать Facebook, но для кошек. 19 00:00:57,480 --> 00:00:59,520 Перед тем, как на самом деле сделать этот сайт, 20 00:00:59,520 --> 00:01:02,520 не сделать этот сайт, потому что это не очень хорошо, но мы будем использовать ее в качестве основы 21 00:01:02,520 --> 00:01:05,349 и пройти через процесс, как мы берем эту идею 22 00:01:05,349 --> 00:01:07,450 и превратить его в настоящий веб-сайт, мы можем использовать. 23 00:01:07,450 --> 00:01:11,940 Мы начнем, нарушая сайт вниз. 24 00:01:11,940 --> 00:01:13,190 Как вы делали в CS50, 25 00:01:13,190 --> 00:01:17,360 вы хотите думать о том, что фактические компоненты, которые входят в этот веб-сайт. 26 00:01:17,360 --> 00:01:21,290 В основном превратив его из идеи, которая является только вид абстрактное понятие 27 00:01:21,290 --> 00:01:23,590 в реальные, ощутимые вещи, которые вы могли бы сделать. 28 00:01:23,590 --> 00:01:25,910 Начнем с вопроса несколько вопросов. 29 00:01:25,910 --> 00:01:28,070 Что это за сайт? Почему мы делаем это? 30 00:01:28,070 --> 00:01:30,670 Что он собирается использовать для? Такого рода вещи. 31 00:01:30,670 --> 00:01:33,660 В случае Facebook Cat, 32 00:01:33,660 --> 00:01:37,730 мы в основном хотите сайт, который позволяет кошек социальной сети друг с другом. 33 00:01:37,730 --> 00:01:41,260 Идея в том, что они могут разместить на стенах друг друга, 34 00:01:41,260 --> 00:01:43,510 они могут сделать комментарии, такие вещи. 35 00:01:43,510 --> 00:01:46,720 И вот, когда мы придем в функциональных компонентов. 36 00:01:46,720 --> 00:01:51,270 Теперь у нас есть этот вид рамках - у нас есть профили пользователей, 37 00:01:51,270 --> 00:01:53,990 у нас есть комментарии, и мы можем отправить. 38 00:01:53,990 --> 00:01:57,390 Возможно, когда-нибудь мы будем влиятельных любит и такую ​​вещь. 39 00:01:57,390 --> 00:02:00,410 И мы как бы хочу приоритеты этим возможностям дюйма 40 00:02:00,410 --> 00:02:03,340 Мы хотим сказать, что, ладно, это действительно важно, чтобы у каждого есть профиль 41 00:02:03,340 --> 00:02:06,440 и что каждый может разместить на стенах друг друга. 42 00:02:06,440 --> 00:02:08,509 Вторичный к тому, что, комментарии были бы хороши. 43 00:02:08,509 --> 00:02:10,180 Может быть, позже мы влиятельных любит. 44 00:02:10,180 --> 00:02:13,700 Итак, вы хотите, чтобы иметь представление о том, что это основополагающее значение для вашего проекта 45 00:02:13,700 --> 00:02:17,260 а что это за более общей функции, которые могут быть применены позже. 46 00:02:17,260 --> 00:02:20,870 Вы хотите, чтобы рода есть определенный список в виду, 47 00:02:20,870 --> 00:02:24,090 но проект, что вы начинаете с не будет проект, который вы закончите с. 48 00:02:24,090 --> 00:02:27,100 Другими словами, все будет меняться, пока вы разрабатываете сайт, 49 00:02:27,100 --> 00:02:30,090 и вы хотите, чтобы оставить место для этого. 50 00:02:30,090 --> 00:02:34,470 Я верну его на Бена, который собирается рассказать немного о структуре. 51 00:02:34,470 --> 00:02:39,610 >> [Бен] я собираюсь говорить о более технической стороне веб-разработки. 52 00:02:39,610 --> 00:02:42,370 Давайте просто пойти над некоторыми основами в первую очередь. 53 00:02:42,370 --> 00:02:45,730 Когда вы делаете веб-приложение, 54 00:02:45,730 --> 00:02:50,470 Главное управление, что вы будете иметь, чтобы есть, 55 00:02:50,470 --> 00:02:52,700 Вы будете иметь некоторые вещи происходит в клиентской стороне - 56 00:02:52,700 --> 00:02:56,700 то есть, код, который вы браузеру берет с сайта 57 00:02:56,700 --> 00:03:01,910 и JavaScript, HTML, CSS материал. 58 00:03:01,910 --> 00:03:04,490 Вот и все на стороне клиента. 59 00:03:04,490 --> 00:03:08,680 Вы будете иметь другой код, который работает на стороне сервера 60 00:03:08,680 --> 00:03:10,770 которая отслеживает все данные, которые люди посылают к вам, 61 00:03:10,770 --> 00:03:15,060 решает, кто дать то, что, все в таком духе. 62 00:03:15,060 --> 00:03:20,380 Это лишь некоторые термины, чтобы вы, ребята, все знакомы с тем, что мы говорим о. 63 00:03:20,380 --> 00:03:28,600 Помимо этого подразделения, что это хорошо, чтобы думать о своем веб-приложение с точки зрения 64 00:03:28,600 --> 00:03:32,500 пару различных компонентов. 65 00:03:32,500 --> 00:03:35,270 Когда вы делаете веб-разработки 66 00:03:35,270 --> 00:03:41,710 одна из вещей, которые вы должны всегда быть пытаются сделать, это уменьшить сложность. 67 00:03:41,710 --> 00:03:45,710 Чем сложнее код, тем больше шансов, чтобы сделать ошибки, 68 00:03:45,710 --> 00:03:47,710 тем труднее изменить позднее. 69 00:03:47,710 --> 00:03:50,140 Так что, если вы можете разбить ваше приложение в некоторых отдельных функциональных областей 70 00:03:50,140 --> 00:03:57,640 что будет - и вы можете уменьшить рода размере кросс-области связи - 71 00:03:57,640 --> 00:04:03,530 что поможет вам многое в долгосрочной перспективе с точки зрения сокращения ошибок. 72 00:04:03,530 --> 00:04:07,950 >> Чтобы быть конкретным, как правило, люди делят веб-приложение в - 73 00:04:07,950 --> 00:04:13,190 это своего рода модных слов сейчас, но они все еще полезны. 74 00:04:13,190 --> 00:04:17,940 Возможно, вы слышали люди говорят о моделей, представлений и контроллеров. 75 00:04:17,940 --> 00:04:23,210 Модели являются фактические данные, что ваше приложение собирается иметь дело. 76 00:04:23,210 --> 00:04:28,260 Например, в вашем Cat Facebook, ваши модели будет - 77 00:04:28,260 --> 00:04:35,340 Вы должны были бы модель как сообщений, а также модель для профилей пользователей, все в таком духе. 78 00:04:35,340 --> 00:04:41,090 Ваши взгляды, как Вы представляете, что данные для пользователей. 79 00:04:41,090 --> 00:04:46,660 Возможно, вам придется 1 вид для глядя на одной должности и все комментарии 80 00:04:46,660 --> 00:04:51,720 и иной взгляд на вашей стене, что имеет список всех сообщений 81 00:04:51,720 --> 00:04:57,170 , которые направлены на вас, и другой вид для вашего новостей - все в таком духе. 82 00:04:57,170 --> 00:05:00,610 Наконец, у вас есть контроллеры, которые в основном, когда люди посылают вам сообщения 83 00:05:00,610 --> 00:05:03,310 и вы делаете обновления для вашего серверной системе, 84 00:05:03,310 --> 00:05:06,400 Вы увеличить кучу счетчиков, и что угодно. 85 00:05:06,400 --> 00:05:07,860 Это ваши контроллеры. 86 00:05:07,860 --> 00:05:11,030 >> Я собираюсь говорить в основном о моделях. 87 00:05:11,030 --> 00:05:14,030 Просмотров технически не так сложно, а речь идет больше с их разработке 88 00:05:14,030 --> 00:05:22,040 Контроллеры будут специфическими для того, что Вы проектировании. 89 00:05:22,040 --> 00:05:25,220 Но есть некоторые довольно общие методы можно использовать 90 00:05:25,220 --> 00:05:30,220 чтобы сделать ваши модели приятнее и легче работать с, что я думаю, что очень полезно. 91 00:05:30,220 --> 00:05:35,860 Это в основном будет о том, как иметь дело с вашими данными веб-приложений в хороший способ. 92 00:05:35,860 --> 00:05:40,420 Основные вопросы, с моделями 93 00:05:40,420 --> 00:05:44,540 в том, что они живут на клиенте и на сервере, и вы должны выяснить, 94 00:05:44,540 --> 00:05:51,170 а) как их получить - все соответствующие те - от сервера к клиенту, 95 00:05:51,170 --> 00:05:53,440 и б) как держать их в синхронизации. 96 00:05:53,440 --> 00:05:58,700 Ваши пользователи будут хотеть, чтобы сделать некоторые обновления. 97 00:05:58,700 --> 00:06:00,470 Они собираются хотим сделать новые сообщения. 98 00:06:00,470 --> 00:06:04,800 Они собираются хочу любить вещи и вещи, если у вас есть симпатии. 99 00:06:04,800 --> 00:06:11,490 Таковы основные технические проблемы борьбы с моделями. 100 00:06:11,490 --> 00:06:15,680 Первое, что вы собираетесь хотите спросить себя, 101 00:06:15,680 --> 00:06:18,420 какие данные идет в этой модели и какие запросы мы собираемся хотите сделать - 102 00:06:18,420 --> 00:06:24,290 то есть, как мы будем смотреть на моделях? 103 00:06:24,290 --> 00:06:26,940 Для вашего Cat Facebook Например, 104 00:06:26,940 --> 00:06:31,520 ваш пост будет иметь автору, связанные с ним, 105 00:06:31,520 --> 00:06:35,660 некоторые стене текст и получателем сообщению стены. 106 00:06:35,660 --> 00:06:38,470 И тогда вы, возможно, захотите запросить, что в кучу-разному. 107 00:06:38,470 --> 00:06:42,220 Вы хотели бы, чтобы смотреть на него тем, кто писал, какой пост, 108 00:06:42,220 --> 00:06:46,620 тем, кто получил какую должность, может быть, по дате их были размещены. 109 00:06:46,620 --> 00:06:50,340 Но если вы собираетесь сделать это по дате, то вы должны добавить еще одно поле на свой пост 110 00:06:50,340 --> 00:06:52,490 от того, когда он был на самом деле отправил. 111 00:06:52,490 --> 00:07:00,220 Эти 2 фактора - то, что данные, которые вы хотите использовать и как вы хотите, чтобы посмотреть его - 112 00:07:00,220 --> 00:07:04,200 вы должны думать о них в первую очередь потому, что они зависят друг от друга, 113 00:07:04,200 --> 00:07:08,030 и это будет сложнее, чтобы добавить их в дальнейшем. 114 00:07:08,030 --> 00:07:12,750 >> Есть и другие соображения. 115 00:07:12,750 --> 00:07:17,540 Когда вы думаете о том, как вы имеете дело с моделями на сервере 116 00:07:17,540 --> 00:07:20,540 то, что вы хотите посмотреть на это - 117 00:07:20,540 --> 00:07:27,440 вы в основном хотят, чтобы сервер как можно более простым. 118 00:07:29,440 --> 00:07:35,500 Делая вещи на стороне клиента, как правило, гораздо быстрее, если вы можете сделать это чисто на клиенте 119 00:07:35,500 --> 00:07:38,230 не делая каких-либо запросу сети. 120 00:07:38,230 --> 00:07:47,860 Идея состоит в том, чтобы делать то, что многие из этих запросов, как вы можете на клиенте. 121 00:07:47,860 --> 00:07:51,560 Единственная проблема с этим 122 00:07:51,560 --> 00:07:54,160 является то, что если вы спрашиваете все ваши данные в начале 123 00:07:54,160 --> 00:07:57,160 то, что собирается занять много времени для загрузки. 124 00:07:57,160 --> 00:08:02,290 Таким образом, идея заключается в золотую середину между наличием достаточного количества данных на стороне клиента 125 00:08:02,290 --> 00:08:07,640 что вы можете сделать большую часть работы там, но не только извлечение все сразу 126 00:08:07,640 --> 00:08:09,710 так что вы получите действительно медленные время загрузки в начале. 127 00:08:09,710 --> 00:08:12,610 Например, для данных кошки 128 00:08:12,610 --> 00:08:20,340 Вы, наверное, хотели, чтобы принести кучу последних сообщений стены. 129 00:08:20,340 --> 00:08:23,790 Вы не хотели бы, чтобы принести все из них, потому что это может вернуться через пару лет. 130 00:08:23,790 --> 00:08:25,470 Но вы не хотите, чтобы принести им по одному 131 00:08:25,470 --> 00:08:28,740 потому что это ввести много сетевые накладные расходы. 132 00:08:28,740 --> 00:08:33,620 >> Это часто довольно трудно - как только у Вас работает с базой данных - 133 00:08:33,620 --> 00:08:37,210 часто довольно трудно изменить, какие данные у вас есть в нем - 134 00:08:37,210 --> 00:08:40,510 то есть, добавить новый столбец базы данных или что-то - 135 00:08:40,510 --> 00:08:43,510 так что хорошая стратегия на самом деле просто держать много ваших данных в текстовом капля - 136 00:08:43,510 --> 00:08:53,880 капля JSON - JSON быть JavaScript Object Notation - 137 00:08:53,880 --> 00:08:58,330 Причина, по которой это полезно, потому что тогда вы можете добавить новые свойства 138 00:08:58,330 --> 00:09:01,920 на все эти JSON капли не меняя вашу базу данных. 139 00:09:01,920 --> 00:09:06,860 Единственный недостаток, что в том, что если у вас есть куча полей 140 00:09:06,860 --> 00:09:09,890 что вы добавлены позже - как скрытые в этой JSON капля - 141 00:09:09,890 --> 00:09:12,850 то это сложнее запросить их в базе данных. 142 00:09:12,850 --> 00:09:17,690 Например, если вы позже - если у вас был свой пост модель, что мы обсуждали ранее 143 00:09:17,690 --> 00:09:25,380 только с автором, получателя и текст - 144 00:09:25,380 --> 00:09:29,000 Вы могли также есть JSON каплю, а затем, если вы позже хотел добавить поле даты 145 00:09:29,000 --> 00:09:31,000 Вы не должны были бы изменить ваши базы. 146 00:09:31,000 --> 00:09:36,140 Вы можете просто добавить даты, чтобы все текстовые поля. 147 00:09:36,140 --> 00:09:39,640 И тогда вы были бы в состоянии смотреть на тех, кто на стороне клиента, 148 00:09:39,640 --> 00:09:42,430 но вы не были бы в состоянии запросить их на стороне сервера 149 00:09:42,430 --> 00:09:44,430 потому что это скрыто внутри этого текста. 150 00:09:44,430 --> 00:09:49,920 >> Другой вопрос, что вы хотите, чтобы думать о 151 00:09:49,920 --> 00:09:52,400 как ваш клиент, и сервер собираетесь общаться. 152 00:09:52,400 --> 00:09:56,040 Вы, как правило, хотят, чтобы эта как можно более простым. 153 00:09:56,040 --> 00:10:02,230 Вы можете просто как краткосрочного меня-этого запроса данных, 154 00:10:02,230 --> 00:10:09,140 Create-A-New-Object вещь, и запрос на обновление-старый-объект. 155 00:10:09,140 --> 00:10:12,930 И это все были бы разные URL-адреса на сервере, вы - 156 00:10:12,930 --> 00:10:20,030 , что браузер будет - вы можете использовать AJAX запросы для всех из них 157 00:10:20,030 --> 00:10:24,000 и либо принимать, либо разместить данные. 158 00:10:24,000 --> 00:10:26,600 Опять же, для нашей кошки Facebook Например, 159 00:10:26,600 --> 00:10:32,350 вы могли бы иметь, что URL, чтобы получить индивидуальный пост, 160 00:10:32,350 --> 00:10:39,750 и у вас был бы URL для создания новой записи стены 161 00:10:39,750 --> 00:10:45,670 и, возможно, URL для загрузки своей фотографией в профиле, такие вещи, как, что. 162 00:10:45,670 --> 00:10:51,730 Но опять же, это заранее получить большинство ваших данных, так что вам не придется держать 163 00:10:51,730 --> 00:10:53,360 создание сетевых запросов. 164 00:10:53,360 --> 00:10:59,030 По этой причине, вы не можете иметь, что индивидуальный запрос получить за одно сообщение, 165 00:10:59,030 --> 00:11:03,210 и вместо этого вы просто хотите 1 запрос получите за всю стену. 166 00:11:03,210 --> 00:11:06,110 А потом, если вы пытаетесь найти баланс, потому что - 167 00:11:06,110 --> 00:11:10,970 это также будет зависеть от вашего приложения. 168 00:11:10,970 --> 00:11:13,430 Потому что если вы ожидаете, что люди имеют только 10 или 20 сообщений на стене 169 00:11:13,430 --> 00:11:15,430 что все будет хорошо. 170 00:11:15,430 --> 00:11:17,390 Но если вы ожидаете они имеют тысячи тогда, что запрос займет слишком много времени, 171 00:11:17,390 --> 00:11:23,580 и так что вы можете добавить Get-все-сообщения-так параметр. 172 00:11:23,580 --> 00:11:26,580 >> Для всех из них вы, вероятно, будете хотеть, чтобы синхронизировать данные в JSON - 173 00:11:26,580 --> 00:11:29,260 JavaScript Object Notation. 174 00:11:29,260 --> 00:11:34,600 Практически каждый язык имеет дело с JSON очень хорошо. 175 00:11:34,600 --> 00:11:40,880 JQuery имеет эту хорошую функцию getJSON, который будет делать всю тяжелую работу за вас. 176 00:11:40,880 --> 00:11:47,390 И на PHP есть также очень хорошие функции JSON связи. 177 00:11:47,390 --> 00:11:52,660 Так, это, вероятно, лучший формат для отправки модели взад и вперед. 178 00:11:52,660 --> 00:11:56,570 >> В качестве примера того, что мы говорили о до сих пор, 179 00:11:56,570 --> 00:12:00,520 вот пример потока для вашей кошки Facebook приложения. 180 00:12:00,520 --> 00:12:07,760 Она начинается с вашего браузера, запрашивающего база адрес веб-сайта. 181 00:12:07,760 --> 00:12:15,470 Сервер, вероятно, пошлет за статический HTML и немного JavaScript и CSS. 182 00:12:15,470 --> 00:12:19,170 Как правило, лучше не делать никаких рендеринг на сервере. 183 00:12:19,170 --> 00:12:23,370 Вы, наверное, не хотите - 184 00:12:23,370 --> 00:12:28,360 что сервер не делает там идет вниз список сообщений стены 185 00:12:28,360 --> 00:12:31,120 и создать некоторый HTML для каждого из них и отправки, что за. 186 00:12:31,120 --> 00:12:34,960 Как правило, лучше делать это на стороне клиента, так как в противном случае 187 00:12:34,960 --> 00:12:38,580 каждый раз, когда вы хотите, чтобы повторно нарисовать что-то, вы должны сделать запрос на сервер. 188 00:12:38,580 --> 00:12:42,450 И, что очень быстро дает много накладных расходов. 189 00:12:42,450 --> 00:12:47,430 Как правило, лучше всего, чтобы корабль посылает статический HTML 190 00:12:47,430 --> 00:12:50,660 а затем JavaScript и CSS, которые будут выполнять рендеринг на стороне клиента. 191 00:12:50,660 --> 00:12:56,750 Как только тот материал приходит, 192 00:12:56,750 --> 00:13:03,500 то вы можете иметь - в JavaScript - вы можете сделать запросы для данных стене 193 00:13:03,500 --> 00:13:08,740 и все в таком духе, и после, что сервер в основном только делать запросы к базе данных 194 00:13:08,740 --> 00:13:10,740 и проверки прав доступа. 195 00:13:10,740 --> 00:13:16,690 Важно только то, что он не может отправить по некоторым другими пользователями сообщений на стене 196 00:13:16,690 --> 00:13:19,220 что вы не можете видеть. 197 00:13:19,220 --> 00:13:28,050 Он может быть в основном очень тонкий слой доступа к базе данных, 198 00:13:28,050 --> 00:13:32,820 а затем все, показывающий данные - все представления и прочее - 199 00:13:32,820 --> 00:13:37,280 те, может произойти в вашем браузере, а затем, когда вы хотите сделать пост или что-то 200 00:13:37,280 --> 00:13:40,000 Вы просто отправить еще один запрос. 201 00:13:40,000 --> 00:13:45,350 >> Там также некоторые модные вещи вы можете сделать на вершине этого. 202 00:13:45,350 --> 00:13:49,550 С точки зрения получения более подробной технической информации, 203 00:13:49,550 --> 00:13:53,360 развивается в обычной JavaScript может быть немного болезненным, 204 00:13:53,360 --> 00:13:56,220 поэтому, есть некоторые библиотеки и инструменты, которые помогут вам много с этим. 205 00:13:56,220 --> 00:14:03,690 Я думаю, что вы все, наверное, слышали о JQuery что делает делает HTML рендеринг 206 00:14:03,690 --> 00:14:08,890 и манипуляции намного проще - есть много фантазии функций для увядающей, и выйдет, 207 00:14:08,890 --> 00:14:12,020 и делать как дизельные анимации. 208 00:14:12,020 --> 00:14:13,720 Там также эта библиотека называется Underscore.js. 209 00:14:13,720 --> 00:14:20,760 Она имеет много полезных функций полезности, вещи, которые вы ожидали бы JavaScript, чтобы иметь 210 00:14:20,760 --> 00:14:24,740 что это действительно оленья кожа - такие вещи, как перетасовки массив, 211 00:14:24,740 --> 00:14:28,900 удаление дубликатов из списка, или уплощение список списков. 212 00:14:28,900 --> 00:14:30,900 Это лишь небольшой пример кода. 213 00:14:30,900 --> 00:14:36,520 Подчеркивание имеет массу этих хороших функций, которые вы хотите вам придется все время. 214 00:14:36,520 --> 00:14:38,840 >> А тут еще более 1 библиотека, что я хотел бы провести немного времени на 215 00:14:38,840 --> 00:14:44,800 называется Backbone.js потому Магистральная действительно помогает вам справиться с моделями на стороне клиента 216 00:14:44,800 --> 00:14:47,210 и много путаницы, что это может вызвать. 217 00:14:47,210 --> 00:14:53,550 Магистральная дает эту концепцию моделей и коллекций 218 00:14:53,550 --> 00:14:58,300 в JavaScript, которые в основном так же, как объектов JavaScript 219 00:14:58,300 --> 00:15:04,900 в массивах JavaScript, но у них есть события, когда вы изменить свои свойства. 220 00:15:04,900 --> 00:15:09,090 Так же, как в JavaScript, вы можете иметь событие, когда кнопка получает нажал или что-то 221 00:15:09,090 --> 00:15:14,800 эти модели Магистральные и коллекции Магистральные будет транслировать вещи, как 222 00:15:14,800 --> 00:15:17,510 , что, когда они изменяются. 223 00:15:17,510 --> 00:15:22,270 Это означает, что вы можете просто написать что-то вроде этого фрагмент кода здесь - 224 00:15:22,270 --> 00:15:27,530 это говорит, когда вы что-либо добавить к записям массива вы перекроить всю стену. 225 00:15:27,530 --> 00:15:34,270 И это было бы сказать, всякий раз, когда число поста из подобных изменений, 226 00:15:34,270 --> 00:15:38,970 Вы уведомить пользователя, что кто-то любил свой пост. 227 00:15:38,970 --> 00:15:45,210 Или когда любое имущество должности изменения вы перекроить пост. 228 00:15:45,210 --> 00:15:51,050 Вещи, как, что сэкономит вам кучу сложности, потому что иначе 229 00:15:51,050 --> 00:15:55,440 если у вас нет Некоторые рамочные как это, то каждый раз, когда в коде, что вы изменить 230 00:15:55,440 --> 00:16:04,280 что-нибудь о должности, вы должны были бы помнить себя называть все делают функции 231 00:16:04,280 --> 00:16:07,680 и все в таком духе, и если вы хотели добавить что-то новое, что произошло 232 00:16:07,680 --> 00:16:10,680 каждый раз, когда вы изменили пост вам придется пройти через каждый место в вашем 233 00:16:10,680 --> 00:16:14,610 код, который вы изменили пост и добавить, что новую вещь. 234 00:16:14,610 --> 00:16:21,450 Рамки, как это будет удалить много, что между слоем связи 235 00:16:21,450 --> 00:16:28,280 что делает ваш код сложным и трудно поддерживать. 236 00:16:28,280 --> 00:16:31,170 >> Там в немного о взглядах тоже. 237 00:16:31,170 --> 00:16:35,960 Я собираюсь оставить большую часть этого Билли, потому что они технически не очень сложно. 238 00:16:35,960 --> 00:16:43,540 Используйте JQuery за просмотр. Это практически как необходимость в этой точке. 239 00:16:43,540 --> 00:16:46,290 Он просто делает все намного проще. 240 00:16:46,290 --> 00:16:48,290 Есть много библиотек. 241 00:16:48,290 --> 00:16:49,970 Если вы усложнили элементы пользовательского интерфейса, 242 00:16:49,970 --> 00:16:57,250 если вы хотите автозаполнения вещь или, как один из тех причудливых мульти-селекторов - 243 00:16:57,250 --> 00:17:04,790 если вы хотите что-нибудь подобное, вы должны, вероятно, просто искать вокруг 244 00:17:04,790 --> 00:17:08,130 и вы можете найти хорошую библиотеку, которая будет делать то, что вы хотите. 245 00:17:08,130 --> 00:17:11,579 Билли объяснит больше о фактически трудных частей видом. 246 00:17:11,579 --> 00:17:17,530 Кроме того, как примечание стороны, Магистральная имеет некоторые функциональные возможности для принятия просмотров общаться 247 00:17:17,530 --> 00:17:22,800 приятно с моделями - посмотрите документацию для всех этих библиотек, на самом деле. 248 00:17:22,800 --> 00:17:28,270 Достаточно взглянуть на документы. Они очень хорошо написана и легко следовать. 249 00:17:28,270 --> 00:17:33,890 В общем, вы можете в значительной степени только Google, если у вас есть проблемы. 250 00:17:33,890 --> 00:17:36,370 Есть много людей, использующих их. 251 00:17:36,370 --> 00:17:42,020 Я думаю, что это как последнее замечание. 252 00:17:42,020 --> 00:17:48,770 >> Есть также некоторые более продвинутые вещи, которые вы можете сделать, 253 00:17:48,770 --> 00:17:53,400 если вы ищете, чтобы сделать ваш веб-приложение дополнительные удивительным. 254 00:17:53,400 --> 00:17:59,760 Вы можете сделать - новая спецификация HTML5 имеет много причудливых вещей, которые вы можете сделать. 255 00:17:59,760 --> 00:18:05,780 Локальное хранение данных - что вы можете хранить данные в браузере - 256 00:18:05,780 --> 00:18:09,470 вместо того, чтобы вернуться назад и просмотреть сервер за все, 257 00:18:09,470 --> 00:18:12,470 Вы можете держать некоторые из них на стороне клиента и, что даже позволяет людям - 258 00:18:12,470 --> 00:18:20,850 в некоторых случаях она может даже позволит вам использовать веб-страницы в автономном режиме. 259 00:18:20,850 --> 00:18:26,980 Там в то, что называется WebSockets которые являются различного рода сетевых коммуникаций 260 00:18:26,980 --> 00:18:30,930 где вместо того, чтобы просто вы делаете одну заявку, вы получите ответ, и все готово, 261 00:18:30,930 --> 00:18:35,240 Вы держите открыть соединение с сервером и поэтому вы можете делать вещи, как 262 00:18:35,240 --> 00:18:37,240 обновления в реальном времени. 263 00:18:37,240 --> 00:18:42,020 Так что, если вы пытались сделать чат приложение, вы можете использовать WebSockets 264 00:18:42,020 --> 00:18:43,790 общаться назад и вперед так, чтобы вам не придется держать с просьбой, 265 00:18:43,790 --> 00:18:48,410 "О, сервер, кто-нибудь прислать мне поболтать?" каждые 10 секунд или что-то. 266 00:18:48,410 --> 00:18:55,620 Там также интересная HTML5 функция, где вы можете сделать его похожим на 267 00:18:55,620 --> 00:18:58,340 Адрес страницы в сети меняется, даже не имея на самом деле перезагрузить его. 268 00:18:58,340 --> 00:19:03,230 Вы можете использовать кнопки Назад и Вперед, не делая кучу сетевых запросов. 269 00:19:03,230 --> 00:19:14,660 Вещи, как, что действительно полезно с точки зрения, что делает его быстрым, но и работать как веб-приложение должно. 270 00:19:14,660 --> 00:19:17,680 >> Там также то, что называется CoffeeScript. 271 00:19:17,680 --> 00:19:24,450 CoffeeScript это другой язык, на самом деле, что составляет до JavaScript. 272 00:19:24,450 --> 00:19:30,080 Вы должны написать весь код в CoffeeScript, а затем запустить этот компилятор, 273 00:19:30,080 --> 00:19:33,300 и он выплевывает файл JavaScript, который можно включить в веб-страницы. 274 00:19:33,300 --> 00:19:38,860 Причина, по которой CoffeeScript хорош потому, что он избавляется от многих 275 00:19:38,860 --> 00:19:44,760 странные случаи, которые JavaScript имеет, где равна равных, 276 00:19:44,760 --> 00:19:51,130 и составляет равно делать разные вещи, или как - 277 00:19:51,130 --> 00:19:55,740 он имеет более хорошее синтаксис для работы с массивами и функциями. 278 00:19:55,740 --> 00:20:00,460 Это небольшой отрывок из CoffeeScript, которая выдает список всех квадратов 279 00:20:00,460 --> 00:20:04,900 от 10 ^ 2 к 1 ^ 2 в обратном порядке. 280 00:20:04,900 --> 00:20:08,410 Как вы можете видеть, CoffeeScript часто позволяет выразить в 1 линии 281 00:20:08,410 --> 00:20:10,890 что бы взять 5 строк JavaScript. 282 00:20:10,890 --> 00:20:13,230 Это может сделать вещи намного проще. 283 00:20:13,230 --> 00:20:15,390 Это немного нового синтаксиса, чтобы узнать сначала, 284 00:20:15,390 --> 00:20:18,010 но он определенно сделает вашу работу более продуктивной в долгосрочной перспективе. 285 00:20:18,010 --> 00:20:22,050 >> Вы также можете использовать другие языки, на сервере, чем PHP - 286 00:20:22,050 --> 00:20:27,570 Языки, как Ruby, Python, или есть даже проект под названием node.js 287 00:20:27,570 --> 00:20:31,450 что позволит вам использовать наличие на сервере. 288 00:20:31,450 --> 00:20:34,700 Лично я очень, очень не нравится PHP. 289 00:20:34,700 --> 00:20:38,310 Я просто не нравится работать с ним. 290 00:20:38,310 --> 00:20:43,450 Если вы тоже думаете, что это ужасно cluge языка, 291 00:20:43,450 --> 00:20:46,160 то вы можете использовать один из них вместо этого. 292 00:20:46,160 --> 00:20:54,780 В общем, если вы хотите сделать что-то, и вы действительно не знаете, как бы вы это сделали, 293 00:20:54,780 --> 00:20:56,780 просто поиск в Интернете. 294 00:20:56,780 --> 00:20:59,990 Есть тонны и тонны ресурсов особенно на - 295 00:20:59,990 --> 00:21:03,260 StackOverflow является великим. 296 00:21:03,260 --> 00:21:06,400 Именно это сайт, где программисты задавать друг другу вопросы. 297 00:21:06,400 --> 00:21:09,690 Вы, возможно, столкнетесь с ним, если вы были проблемы на проблемные CS50 множеств. 298 00:21:09,690 --> 00:21:16,820 И есть тонны библиотек для ведения в значительной степени все, что вы хотели бы. 299 00:21:16,820 --> 00:21:21,710 Если вы хотите сделать что-то и вы не знаете, как это сделать, 300 00:21:21,710 --> 00:21:23,710 не думайте, что это невозможно. 301 00:21:23,710 --> 00:21:26,160 Посмотрите вокруг, и вы можете найти некоторые хорошие ресурсы. 302 00:21:26,160 --> 00:21:29,280 >> Как вообще подводить итоги, 303 00:21:29,280 --> 00:21:33,650 основные вынос являются держать вещи простыми. 304 00:21:33,650 --> 00:21:36,010 Чем сложнее код находится в начале 305 00:21:36,010 --> 00:21:40,370 и чем больше вы попробовать и сделать модные вещи, 306 00:21:40,370 --> 00:21:43,300 тем больше времени потребуется, чтобы получить что-то действительно функциональное 307 00:21:43,300 --> 00:21:46,480 и тем труднее будет изменить позже. 308 00:21:46,480 --> 00:21:49,580 Так, делать вещи немым, простой способ первый. 309 00:21:49,580 --> 00:21:51,720 Чтобы согласиться с этим, 310 00:21:51,720 --> 00:21:59,070 не бойтесь того, чтобы выбросить старый код или очистки его много. 311 00:21:59,070 --> 00:22:05,320 В общем, как только вы на самом деле есть что-то работает, 312 00:22:05,320 --> 00:22:09,640 это гораздо проще думать о чем тогда, когда вы все еще в начальной стадии 313 00:22:09,640 --> 00:22:12,610 о том, как бы это сказать все вместе. 314 00:22:12,610 --> 00:22:17,500 Лучше всего, чтобы сделать тупой возможное дизайн, который работает 315 00:22:17,500 --> 00:22:22,270 а затем улучшить его многократно, чем пытаться получить все правильно с первого раза. 316 00:22:22,270 --> 00:22:28,330 С точки зрения разделения клиент-сервер, попытаться сохранить ваш сервер очень просто - 317 00:22:28,330 --> 00:22:33,030 просто база данных, а некоторые аутентификации и не делают никакой тяжелой работы там. 318 00:22:33,030 --> 00:22:37,540 У всех ваших сложные вещи на стороне клиента в браузере 319 00:22:37,540 --> 00:22:40,650 в JavaScript столько, сколько вы можете. 320 00:22:40,650 --> 00:22:43,420 Посмотрите вокруг для библиотек, которые делают вашу жизнь лучше. 321 00:22:43,420 --> 00:22:46,850 Всегда лучше использовать код, который кто-то написал 322 00:22:46,850 --> 00:22:49,850 если вы - и не писать его самостоятельно. 323 00:22:49,850 --> 00:22:57,560 Там очень много вещей в Интернете. Google это ваш лучший друг. 324 00:22:57,560 --> 00:22:59,560 Google является лучшим другом программиста. 325 00:22:59,560 --> 00:23:07,620 Да, безусловно, не бойтесь, чтобы осмотреться на вещи. 326 00:23:07,620 --> 00:23:11,860 Хорошо. И к Билли. 327 00:23:11,860 --> 00:23:14,600 >> [Билли] На самом деле, прежде чем я начну с некоторыми дизайн вещи, 328 00:23:14,600 --> 00:23:17,250 Кто-нибудь есть какие-либо вопросы для Бена ни о чем, что он говорил о? 329 00:23:17,250 --> 00:23:20,290 Ладно, хорошо. 330 00:23:20,290 --> 00:23:22,220 Опять же, дайте нам знать, если что-нибудь не ясно 331 00:23:22,220 --> 00:23:25,420 или если вы хотите, чтобы мы пошли на что-то немного больше. 332 00:23:25,420 --> 00:23:30,330 Я собираюсь сделать шаг назад немного, и говорить о более фундаментальных частей конструкции. 333 00:23:30,330 --> 00:23:34,840 Бен упомянул модель под названием - извините, Model View Controller система 334 00:23:34,840 --> 00:23:38,520 который является своего рода технической стороны, так что я собираюсь смотреть на видом частности, 335 00:23:38,520 --> 00:23:42,930 и я собираюсь начать с как бы вы разработать мнение, что выглядит красиво. 336 00:23:42,930 --> 00:23:50,540 Вот вид действительно базовый шаблон для нашего кота Facebook. 337 00:23:50,540 --> 00:23:54,190 Я думаю, что есть некоторые фундаментальные в современном дизайне пользовательского интерфейса 338 00:23:54,190 --> 00:23:56,190 , которые стоит набирает обороты. 339 00:23:56,190 --> 00:23:58,210 Вы можете заметить, что есть много белого пространства по всей странице, 340 00:23:58,210 --> 00:24:00,790 много места для вещей. 341 00:24:00,790 --> 00:24:02,580 Не хочется вас есть, чтобы раздавить вещи в страницу. 342 00:24:02,580 --> 00:24:06,700 Вы хотите оставить много места открыты, и если вы идете в почти любой современной сайте 343 00:24:06,700 --> 00:24:08,380 вы увидите, что именно белая везде. 344 00:24:08,380 --> 00:24:10,380 Там в белый в местах вы не будете ожидать. 345 00:24:10,380 --> 00:24:14,570 У вас есть эта цветовую палитру, и это мудро в начале 346 00:24:14,570 --> 00:24:17,880 выбрать цветовую палитру, что вы собираетесь работать, и развиваться. 347 00:24:17,880 --> 00:24:22,250 Вы также - помогает выбрать шрифт, и, таким образом, вы вроде работы с 348 00:24:22,250 --> 00:24:24,450 эти конкретные основы дизайна. 349 00:24:24,450 --> 00:24:26,910 У вас есть свой тип, у вас есть свои цвета, а затем вы можете рода 350 00:24:26,910 --> 00:24:29,380 соответствовать все остальное в по мере необходимости. 351 00:24:29,380 --> 00:24:37,710 Так что, как я уже сказал, с вашей цветовой гамме вы хотите использовать более смелые цвета вашего цветовой гамме 352 00:24:37,710 --> 00:24:40,320 экономно. Заголовки хороши. Кнопки хорошо иметь действительно большие, яркие цвета. 353 00:24:40,320 --> 00:24:43,710 Но в целом, если у вас есть сайт, который имеет цвета везде, 354 00:24:43,710 --> 00:24:47,250 все смотрит вам в лицо, он просто выглядит суматоху, и это не хорошо. 355 00:24:47,250 --> 00:24:50,430 Вы хотите, чтобы правило, используют светлые тона. 356 00:24:50,430 --> 00:24:52,890 Попробуйте, опять же, выбрать довольно последовательную цветовую схему. 357 00:24:52,890 --> 00:24:56,640 Вы можете иметь эти маленькие брызги большим количеством цветов - 358 00:24:56,640 --> 00:25:00,240 которые могут выглядеть довольно хорошо, но вы хотите использовать их довольно экономно. 359 00:25:00,240 --> 00:25:04,270 >> Как я уже сказал, вы хотите быть минимальным. Менее почти всегда больше. 360 00:25:04,270 --> 00:25:07,430 Если вы можете показать что-то или нет отображать что-то, 361 00:25:07,430 --> 00:25:10,230 и ты вроде не уверены, следует ли ему быть там по умолчанию - 362 00:25:10,230 --> 00:25:13,400 вероятно, Вам лучше всего оставить его. Вы всегда можете добавить его в дальнейшем. 363 00:25:13,400 --> 00:25:16,620 Да, держать вещи простыми. 364 00:25:16,620 --> 00:25:19,510 Но самое главное, вы хотите рассмотреть несколько проектов. 365 00:25:19,510 --> 00:25:23,520 Не думайте, что, когда вы делаете сайт, у вас есть в вашей голове, что вы собираетесь 366 00:25:23,520 --> 00:25:26,310 сделать сайт в некотором роде, и это будет выглядеть так же, как это. 367 00:25:26,310 --> 00:25:29,830 Это будет иметь синий заголовок в верхней и синий боковую панель 368 00:25:29,830 --> 00:25:32,670 а затем желтый вещь подзаголовок. 369 00:25:32,670 --> 00:25:34,670 Вы хотите, чтобы несколько шаблонов. 370 00:25:34,670 --> 00:25:37,350 Вы можете либо - если вы хорошо с Photo Shop, вы можете открыть, что и рода 371 00:25:37,350 --> 00:25:39,600 дизайн сайта, как вам нравится, чтобы она выглядела. 372 00:25:39,600 --> 00:25:41,680 Если нет, то вы можете просто использовать ручку и бумагу, 373 00:25:41,680 --> 00:25:44,000 но поцарапать до нескольких конструкций. 374 00:25:44,000 --> 00:25:47,000 Вы хотите, чтобы в основном имеют настроить, где у вас есть много различных конструкций, 375 00:25:47,000 --> 00:25:50,810 и если один заканчивается работу, то это замечательно. 376 00:25:50,810 --> 00:25:53,370 Если заканчивается неудачу, то у вас всегда есть еще один, чтобы обратиться. 377 00:25:53,370 --> 00:25:57,960 В общем, не чувствую, что вы должны быть ограничены 378 00:25:57,960 --> 00:26:00,830 в какой бы то ни дизайн вы изначально решение о. 379 00:26:00,830 --> 00:26:04,420 Конструкции очень изменчивы, и часть важности модели 380 00:26:04,420 --> 00:26:09,480 вид системный контроллер является то, что вы можете поменять в и разные взгляды, которые вы хотите. 381 00:26:09,480 --> 00:26:13,510 Вы можете повлиять свои данные в одну сторону, а затем решить,, ой, на самом деле, это не работает, что хорошо. 382 00:26:13,510 --> 00:26:19,190 Я думаю, что это своего рода слишком сложным или есть часть здесь, что на самом деле не работает, 383 00:26:19,190 --> 00:26:22,150 так что я просто хочу, чтобы полностью отказаться от этого вида и своп в совершенно новой. 384 00:26:22,150 --> 00:26:24,790 Мы все еще можем использовать старые модели и старые контроллеры. 385 00:26:24,790 --> 00:26:27,490 Мы можем сделать все на сервере и клиенте, как нам бы раньше. 386 00:26:27,490 --> 00:26:32,850 Но фактическое волна данным на дисплее будет немного отличаться. 387 00:26:32,850 --> 00:26:35,840 >> Насколько на самом деле реализации дизайн вы хотите, 388 00:26:35,840 --> 00:26:39,330 когда у вас есть несколько конструкций набросал на бумаге или на Photo Shop или любой другой, 389 00:26:39,330 --> 00:26:42,120 Есть целый ряд инструментов, которые доступны для вас. 390 00:26:42,120 --> 00:26:45,700 Первый вы очень хорошо знакомы с которой ваш HTML, PHP, или то, 391 00:26:45,700 --> 00:26:48,990 язык вы используете только для кодирования статических страниц на вашем сайте. 392 00:26:48,990 --> 00:26:51,990 Вы много работали с HTML, какой вид дает вам эти теги 393 00:26:51,990 --> 00:26:57,820 что вы можете положить вещи в, и в основном это способ организации содержимого. 394 00:26:57,820 --> 00:27:00,990 Например, у вас есть заголовок там, так что вы будете иметь, тег заголовка, 395 00:27:00,990 --> 00:27:05,770 и это будет иметь некоторый текст внутри него, которая, вероятно, будет в другой тег. 396 00:27:05,770 --> 00:27:08,380 Тогда у вас есть врезку возможно, с некоторыми разных звеньев, 397 00:27:08,380 --> 00:27:10,160 и те собираются все быть в отдельных тегов. 398 00:27:10,160 --> 00:27:13,870 Так, в основном HTML в его сердце это способ разделения страницу, как 399 00:27:13,870 --> 00:27:16,980 вы в конечном итоге хотите отформатировать его. 400 00:27:16,980 --> 00:27:18,980 Итак, еще раз, вы видели, что раньше. 401 00:27:18,980 --> 00:27:20,540 Ты очень удобно работать с ним сейчас 402 00:27:20,540 --> 00:27:23,120 учитывая, что вы сделали в последний PSET надеюсь, 403 00:27:23,120 --> 00:27:26,150 так что не должно быть никаких проблем. 404 00:27:26,150 --> 00:27:31,280 >> Тогда у вас есть CSS, который в основном обрабатывает все дизайна статических аспектах. 405 00:27:31,280 --> 00:27:35,320 Было бы обрабатывать все цвета, все позиционировании различных элементов, 406 00:27:35,320 --> 00:27:36,840 где они идут с относительно друг друга, 407 00:27:36,840 --> 00:27:41,530 какие они большие, различные виды позициями, которые вам придется - 408 00:27:41,530 --> 00:27:46,030 другими словами, вы можете иметь вещи закреплены так, чтобы, когда вы прокрутите вниз они остаются, 409 00:27:46,030 --> 00:27:48,700 или вы можете иметь вещи по отношению к другим элементам. 410 00:27:48,700 --> 00:27:50,730 Все такого рода вещи в CSS. 411 00:27:50,730 --> 00:27:54,630 Кроме того, вы можете сделать различные украшения, вы можете иметь цвет текста, 412 00:27:54,630 --> 00:27:56,630 текстовые эффекты, все в таком же роде. 413 00:27:56,630 --> 00:28:00,360 Бен дал действительно хороший семинар на эту минувшие выходные, 414 00:28:00,360 --> 00:28:04,450 и поэтому я обязательно проверить бы, что, если вы планируете делать некоторые модные вещи с CSS. 415 00:28:04,450 --> 00:28:09,850 CSS3 на самом деле новая версия CSS, и это может сделать все виды действительно хороших вещей. 416 00:28:09,850 --> 00:28:14,750 Он может делать градиенты, вы можете иметь хорошие, закругленные углы, вы можете сделать все виды материала 417 00:28:14,750 --> 00:28:17,940 чтобы сделать ваш сайт выглядеть более современными и фантазии. 418 00:28:17,940 --> 00:28:22,150 >> Следующий инструмент JavaScript и JQuery, который Бен немного поговорили о, 419 00:28:22,150 --> 00:28:24,150 но я получу немного дальше в. 420 00:28:24,150 --> 00:28:28,100 JavaScript, как вы работали с ним немного, или по крайней мере видели это в лекции, 421 00:28:28,100 --> 00:28:31,870 это своего рода способ динамически делать вещи в HTML. 422 00:28:31,870 --> 00:28:35,950 HTML, как вы знаете, является статическим, поэтому, как только у вас есть HTML вы не можете изменить его. 423 00:28:35,950 --> 00:28:40,050 Но в JavaScript, в некотором смысле, это способ быть в состоянии изменить HTML. 424 00:28:40,050 --> 00:28:44,520 Таким образом, вы можете сделать это, и это здорово, но JavaScript действительно боль, чтобы работать с. 425 00:28:44,520 --> 00:28:49,050 Это так долго и тупой и делать даже самые простые вещи 426 00:28:49,050 --> 00:28:51,630 требует много линий JavaScript. 427 00:28:51,630 --> 00:28:55,410 Так, JQuery в основном это библиотека для JavaScript, который упрощает все это. 428 00:28:55,410 --> 00:28:59,880 Это говорит, хорошо, если вы хотите иметь квадратную коробку раздается из левого 429 00:28:59,880 --> 00:29:03,980 и отходят на второй странице, так что это не находится в середине, в JavaScript, который возьмет - 430 00:29:03,980 --> 00:29:06,340 Я не знаю,, сто линии, чтобы сделать, и это будет боль, 431 00:29:06,340 --> 00:29:10,540 и вы выходите из его ненавидеть все о веб-программировании. 432 00:29:10,540 --> 00:29:15,380 JQuery вы в основном имеют элемент-точка-ЧЕТКО, или что-то вроде этого. 433 00:29:15,380 --> 00:29:18,580 Так, очень, очень простые функции, которые позволят вам сделать все виды анимацию 434 00:29:18,580 --> 00:29:20,580 и такая вещь. 435 00:29:20,580 --> 00:29:23,300 Другое дело, что эти 2 очень хорошо для просто делает динамические вещи 436 00:29:23,300 --> 00:29:25,300 с веб-сайтом. 437 00:29:25,300 --> 00:29:28,370 Так, а не просто иметь свой страницу HTML - который отображает некоторые данные, но на самом деле не 438 00:29:28,370 --> 00:29:32,130 ничего делать - JavaScript и JQuery позволит Вам иметь кнопки, вы можете нажать на, 439 00:29:32,130 --> 00:29:37,960 и вы можете перетаскивать элементы и переупорядочиваем их и сортировать их, и имеют новые элементы 440 00:29:37,960 --> 00:29:40,500 добавлены или удалены. Вы можете добавить-удаления, такого рода вещи. 441 00:29:40,500 --> 00:29:44,570 Так, JQuery делает тонн интересных вещей. 442 00:29:44,570 --> 00:29:48,840 И Випул фактически давая семинар по этом сегодня, на мой взгляд, в 5-часов, 443 00:29:48,840 --> 00:29:51,220 так что если вы можете остаться на так долго, что бы - 5 или 4? 444 00:29:51,220 --> 00:29:54,930 Четыре. Извините. Это на самом деле сразу после этого, поэтому я бы рекомендовал 445 00:29:54,930 --> 00:29:56,680 прилипания вокруг для него, если можно. 446 00:29:56,680 --> 00:30:00,180 JQuery супер, супер полезно, и вы будете в состоянии сделать много действительно хороших вещей с ним 447 00:30:00,180 --> 00:30:03,460 для почти любого проекта веб-разработки. 448 00:30:03,460 --> 00:30:06,200 >> Теперь я собираюсь попасть в своего рода различия. 449 00:30:06,200 --> 00:30:08,210 Я говорил в основном о пользовательском интерфейсе. 450 00:30:08,210 --> 00:30:11,510 Пользовательский интерфейс является только дизайн сайта. 451 00:30:11,510 --> 00:30:13,780 Но есть своего рода еще одна концепция, которая является пользовательский опыт. 452 00:30:13,780 --> 00:30:15,900 Два очень разные. 453 00:30:15,900 --> 00:30:19,440 Интерфейс, безусловно, часть опыта. 454 00:30:19,440 --> 00:30:21,340 Другими словами, когда вы заходите на сайт, вы посмотрите на интерфейс. 455 00:30:21,340 --> 00:30:22,960 Это часть того, как вы испытываете на сайт. 456 00:30:22,960 --> 00:30:24,960 Но пользовательский опыт более того. 457 00:30:24,960 --> 00:30:29,910 Опыт Пользователь о том, что создается впечатление, что пользователь получает с вашего сайта есть. 458 00:30:29,910 --> 00:30:31,910 Таким образом, очевидно, интерфейс является частью этого. 459 00:30:31,910 --> 00:30:35,340 И это, безусловно, необходимая часть, но это не достаточно. 460 00:30:35,340 --> 00:30:38,790 Другими словами, если у вас есть приятный интерфейс, и это довольно и красочный, и все, что, 461 00:30:38,790 --> 00:30:43,650 это здорово, но если пользователь переходит на ваш сайт, видит симпатичную макет, и это смущает 462 00:30:43,650 --> 00:30:47,060 все, понятия не имеет, как что-либо делать, то, очевидно, вы сделали действительно 463 00:30:47,060 --> 00:30:48,930 бедных сайт. 464 00:30:48,930 --> 00:30:50,930 Это своего рода, где пользовательский опыт приходит дюйма 465 00:30:50,930 --> 00:30:54,570 Я собираюсь рассказать немного о UX дизайн - UX это сокращение от пользовательского опыта - 466 00:30:54,570 --> 00:30:58,050 и вроде как вы можете убедиться, что у вас есть хороший опыт пользователя. 467 00:30:58,050 --> 00:31:04,330 Первый заключается в том, что вы можете разработать сайт, где пользователь может делать все, что 468 00:31:04,330 --> 00:31:06,820 что пользователь, возможно, хочет. 469 00:31:06,820 --> 00:31:08,940 Но если пользователь не может понять, как делать те вещи - 470 00:31:08,940 --> 00:31:12,850 другими словами, если пользователь не есть хорошая идея, когда они идут на ваш сайт из, 471 00:31:12,850 --> 00:31:17,660 "О, если я хочу обновить свой профиль, то я нажимаю эту кнопку, или если я хочу разместить на 472 00:31:17,660 --> 00:31:20,850 чей-то стена, то я иду в их стене и нажмите на коробочку ". 473 00:31:20,850 --> 00:31:24,410 Если пользователь не знает, что, то вы эффективно имеют на самом деле не 474 00:31:24,410 --> 00:31:27,080 реализованы эту функциональность правильно. 475 00:31:27,080 --> 00:31:30,900 Часть реализации функциональности является то, что пользователи на самом деле в состоянии использовать его. 476 00:31:30,900 --> 00:31:34,810 И это может быть неприятно - вы можете сделать сайт, и он может сделать все виды 477 00:31:34,810 --> 00:31:37,810 замечательные вещи, но тогда вы будете иметь людей проверить его и сказать: "Это не может этого сделать. 478 00:31:37,810 --> 00:31:39,770 Почему он не может это сделать? ", И вы будете говорить, вернуться к ним, 479 00:31:39,770 --> 00:31:44,420 "Ну, он может. Вы просто должны пойти в меню седьмой выпадающего на этот никому не известный 480 00:31:44,420 --> 00:31:48,470 страницы, что только можно найти на ссылку в правом нижнем углу "или что-то. 481 00:31:48,470 --> 00:31:50,430 Очевидно, вы не хотите, что. 482 00:31:50,430 --> 00:31:53,420 Вы хотите, чтобы это было понятно для пользователей, что они должны делать, 483 00:31:53,420 --> 00:31:56,240 и она должна быть простой и интуитивно понятный для них. 484 00:31:56,240 --> 00:32:01,180 >> Другое дело, что вы хотите, чтобы попытаться сделать, это, если кто-то собирается идти на ваш сайт 485 00:32:01,180 --> 00:32:05,520 и 9 из 10 раз сделать действие А, и 1 из 10 раз сделать действий B, 486 00:32:05,520 --> 00:32:08,950 вы, вероятно, хотите, чтобы сосредоточиться своим опытом действий А. 487 00:32:08,950 --> 00:32:12,240 Другими словами, вы хотите сделать это очень, очень ясно, как это сделать A. 488 00:32:12,240 --> 00:32:15,980 Должна быть передняя-центровой - зайти на сайт, посмотреть ее; о, это тут же. 489 00:32:15,980 --> 00:32:20,850 В то время как B, очевидно, вы хотите быть понятно, но вы можете оставить его немного больше 490 00:32:20,850 --> 00:32:22,850 в фоновом режиме. 491 00:32:22,850 --> 00:32:24,640 Дэвид дает хороший пример этого в лекции, 492 00:32:24,640 --> 00:32:26,640 которая является системой Boston T. 493 00:32:26,640 --> 00:32:29,440 Когда вы идете в Бостон T, и вы хотите, чтобы купить билет, 494 00:32:29,440 --> 00:32:32,700 Вы должны войти в 5 меню, прежде чем вы действительно сможете приобрести билет 495 00:32:32,700 --> 00:32:37,130 для значения в $ 2, $ 2.50, что является, сколько нужно, чтобы ездить в метро 496 00:32:37,130 --> 00:32:39,130 в одном направлении. 497 00:32:39,130 --> 00:32:41,600 Это проблема, потому что большинство людей, которые езда в метро 498 00:32:41,600 --> 00:32:44,880 вероятно, просто хочу, чтобы пойти в одном месте, купить свой билет, попасть на сразу. 499 00:32:44,880 --> 00:32:47,550 Это не имеет смысла, что они должны пройти через множество различных меню 500 00:32:47,550 --> 00:32:49,550 туда попасть. 501 00:32:49,550 --> 00:32:51,760 Лучший пользовательский опыт будет быстрая кнопка на первой странице 502 00:32:51,760 --> 00:32:54,760 что просто говорит: "купить билет в один конец на", и, что бы поставить во всех стандарта 503 00:32:54,760 --> 00:32:58,550 значения по умолчанию, а затем, если кто-то хочет купить другую билет, чем, 504 00:32:58,550 --> 00:33:01,690 они все еще, конечно, есть возможность, но вы оптимизировали для 505 00:33:01,690 --> 00:33:04,080 общее использование случай, который является действительно важным. 506 00:33:04,080 --> 00:33:06,830 Вы можете видеть примеры этого на Facebook, не так ли? 507 00:33:06,830 --> 00:33:09,410 Если вы идете в Facebook, и вы хотите опубликовать статус, 508 00:33:09,410 --> 00:33:11,710 это правильно наверху, который является то, что вы часто хотят сделать. 509 00:33:11,710 --> 00:33:14,730 Как только вы войдете в страницу, вы можете сделать самые общие вещи, которые 510 00:33:14,730 --> 00:33:16,730 что вы хотите сделать. 511 00:33:16,730 --> 00:33:17,550 Если вы хотите сделать немного более сложные вещи, как, 512 00:33:17,550 --> 00:33:21,070 сказать, что я хочу пойти в стене моего друга и отправить фотографию на нем - 513 00:33:21,070 --> 00:33:24,810 который я хочу сделать часто, но не так часто, как размещение обновления статуса - 514 00:33:24,810 --> 00:33:28,200 так что в этом случае, я печатаю его имя в поле в верхней, нажмите на их профиле, 515 00:33:28,200 --> 00:33:31,680 а затем, все же, это на самом верху там однажды я получил в свой профиль. 516 00:33:31,680 --> 00:33:38,240 Опять же, я оптимизированы в приоритете за исключением случаев, наиболее общего пользования. 517 00:33:38,240 --> 00:33:41,800 >> Еще одна важная вещь в том, что часто люди будут своего рода попытаться обойти это 518 00:33:41,800 --> 00:33:44,890 , говоря, хорошо, так что я сделал сайт, и люди находят, что это заблуждение, 519 00:33:44,890 --> 00:33:46,110 и это проблема, не так ли? 520 00:33:46,110 --> 00:33:49,210 Очевидно, я не хочу, чтобы люди путать содержанием моего сайта. 521 00:33:49,210 --> 00:33:53,210 Но путь к решению, что не иметь что-то выскочит говоря, 522 00:33:53,210 --> 00:33:55,290 эй, я собираюсь научить вас, как использовать этот сайт. 523 00:33:55,290 --> 00:33:58,130 Шаг 1 - нажмите на эту кнопку. Шаг 2 - идут сюда. 524 00:33:58,130 --> 00:34:03,080 Конечно, это способ обойти это - это способ, что вы можете сказать людям, что делать, но это 525 00:34:03,080 --> 00:34:05,080 действительно не оптимальным образом. 526 00:34:05,080 --> 00:34:07,420 Если я иду на сайт и вдруг я обстреляли с этого учебника, что говорит мне 527 00:34:07,420 --> 00:34:11,739 что делать и куда идти, и все, что, это не развлечение для меня. 528 00:34:11,739 --> 00:34:13,739 Это не хороший опыт для меня. 529 00:34:13,739 --> 00:34:17,130 Это вид боли. Я хочу просто начать делать вещи. 530 00:34:17,130 --> 00:34:19,449 Люди собираются, чтобы закрыть их диалоговом окне, 531 00:34:19,449 --> 00:34:23,580 или выйти из учебника, не знаю, что делать, а потом жаловаться, потому что 532 00:34:23,580 --> 00:34:25,580 вы не сказали им, что делать. 533 00:34:25,580 --> 00:34:29,530 Путь к решению это не давая какой-либо учебник или направлениях - 534 00:34:29,530 --> 00:34:31,530 что-то в этом роде. 535 00:34:31,530 --> 00:34:33,719 Столько, сколько вы можете избежать этого, вы действительно хотите, чтобы показать пользователю, что делать 536 00:34:33,719 --> 00:34:36,429 просто по характеру, как веб-сайт выкладывается. 537 00:34:36,429 --> 00:34:39,090 Другими словами, если я пойду в Facebook без входа в систему, 538 00:34:39,090 --> 00:34:40,920 первое, что я вижу на главной странице - 539 00:34:40,920 --> 00:34:44,480 это немного Войти коробка. Так, дух. Я должен войдите Это прямо там. 540 00:34:44,480 --> 00:34:48,030 Принимая во внимание, если бы я пошел в Facebook, и мне пришлось нажмите немного ссылку внизу 541 00:34:48,030 --> 00:34:51,920 что сказал 'войти' и остальная часть страницы была просто какая-то картинка или что-то, 542 00:34:51,920 --> 00:34:54,820 Я бы не знаю, что делать, не так ли? Я бы путать. 543 00:34:54,820 --> 00:34:58,590 Так, он может сказать мне, чтобы пойти туда и нажмите кнопку, чтобы войти, 544 00:34:58,590 --> 00:35:01,080 или войти в систему кнопку может быть на самом верху, где я собираюсь, чтобы увидеть его. 545 00:35:01,080 --> 00:35:04,780 Вы хотите, чтобы всегда показывать пользователю, что делать, 546 00:35:04,780 --> 00:35:06,750 и что должно быть присуще самой страницы. 547 00:35:06,750 --> 00:35:09,880 >> Когда вы думаете о конструкции и насмешливый до различных способов 548 00:35:09,880 --> 00:35:13,810 выражая свой сайт, вы действительно хотите, чтобы думать о том, что пользователи будут 549 00:35:13,810 --> 00:35:19,380 делать и как вы можете показать им, что делать. 550 00:35:19,380 --> 00:35:23,530 Последнее, что такое тестирование, действительно, очень важно. 551 00:35:23,530 --> 00:35:27,400 Это здорово, чтобы заставить кого-то - попросите друга, заставить кого-то вы не знаете даже - 552 00:35:27,400 --> 00:35:30,420 кто никогда не видел сайт, прежде чем использовать сайт. 553 00:35:30,420 --> 00:35:33,650 Потому что вы работали на месте в течение нескольких часов, вы были глядя на него, 554 00:35:33,650 --> 00:35:36,670 и вы точно знаете, что делать, поэтому очевидно, что вы собираетесь тестировать 555 00:35:36,670 --> 00:35:39,520 вещи, которые вы работали, и что вы знаете, работу. 556 00:35:39,520 --> 00:35:42,680 Но если кто-то приходит и использует сайт, который никогда не использовал его раньше, 557 00:35:42,680 --> 00:35:46,880 что это уникальный опыт, потому что у вас есть кто-то, кто не имеет никаких предварительных знаний 558 00:35:46,880 --> 00:35:51,530 из сайта вход в него, так что они не придется эффективно ни малейшего представления, что делать 559 00:35:51,530 --> 00:35:54,890 или какую прецедентов присутствуют для них. 560 00:35:54,890 --> 00:36:00,930 Это здорово. Это уникальная, потому что они по сути человек с пустым для ума. 561 00:36:00,930 --> 00:36:03,750 Они могут рассказать вам, если что-то смущает или непонятно. 562 00:36:03,750 --> 00:36:07,580 Они могут дать вам представление о том, что именно пользователь опыт вашего сайта. 563 00:36:07,580 --> 00:36:10,630 Это может быть очень трудно сказать, что себя, так определенно я хотел бы призвать вас 564 00:36:10,630 --> 00:36:13,640 как вы разрабатываете ваши проекты - если вы делаете веб-проектов - 565 00:36:13,640 --> 00:36:18,290 чтобы люди используют сайт уже в вас есть какой-то функциональной демо. 566 00:36:18,290 --> 00:36:25,330 >> Теперь я собираюсь поговорить немного о том, как управлять проектом веб-разработки. 567 00:36:25,330 --> 00:36:28,900 Мы пошли по тому, как вы можете сделать техническую серверную сторону, 568 00:36:28,900 --> 00:36:31,050 как вы можете создать действительно хороший сайт, 569 00:36:31,050 --> 00:36:34,150 и это здорово, если вы работаете на себя, но - 570 00:36:34,150 --> 00:36:37,300 даже если вы работаете на себя, и особенно, если вы работаете в команде, 571 00:36:37,300 --> 00:36:39,580 управление проектами становится большой проблемой. 572 00:36:39,580 --> 00:36:42,340 Вы вроде слышал об управлении проектами в различных формах с 573 00:36:42,340 --> 00:36:45,410 начальная школа, когда вы сказали, групповую работу. 574 00:36:45,410 --> 00:36:46,820 Вы должны сотрудничать, общаться, все это. 575 00:36:46,820 --> 00:36:49,620 Это все еще применяется здесь, но есть некоторые уникальные обстоятельства с 576 00:36:49,620 --> 00:36:54,910 информатика, что вы хотите быть в курсе, и вы хотите, чтобы убедиться, что вы обращаться хорошо. 577 00:36:54,910 --> 00:36:58,050 Я поговорю сначала немного о команде, что вы будете дюйма 578 00:36:58,050 --> 00:37:03,280 Это очень важно, чтобы выбрать правильный размер команды, чтобы быть работаете, 579 00:37:03,280 --> 00:37:05,890 и в вашем окончательном проекте я думаю у вас есть возможность выбрать 580 00:37:05,890 --> 00:37:08,610 от 1 до 4 человек, если я правильно. 581 00:37:08,610 --> 00:37:12,050 Вы хотите, чтобы убедиться, что вы не просто выбор количество людей 582 00:37:12,050 --> 00:37:14,950 что вы хотите работать, потому что они ваши друзья. 583 00:37:14,950 --> 00:37:18,170 Вы хотите, чтобы выбрать команду, что это хороший размер, и что будет получить работу. 584 00:37:18,170 --> 00:37:22,700 Там в компромисс с наличием большего числа людей против меньшего количества людей. 585 00:37:22,700 --> 00:37:25,320 Если у вас есть больше людей, очевидно, больше работы можно сделать 586 00:37:25,320 --> 00:37:28,450 потому что у вас много людей, много кода, много идей, 587 00:37:28,450 --> 00:37:29,870 и это все здорово. 588 00:37:29,870 --> 00:37:32,590 Но это также требует намного больше управление и много больше общения. 589 00:37:32,590 --> 00:37:34,720 Другими словами, если у вас есть 4 людей, работающих над одним проектом 590 00:37:34,720 --> 00:37:39,200 и они все редактирования и тот же код, более или менее все они вроде должны знать 591 00:37:39,200 --> 00:37:40,920 что происходит, так что требует от вас - 592 00:37:40,920 --> 00:37:44,580 если добавить некоторые новые функции вы как бы должны сказать людям, - я добавляя, что это, 593 00:37:44,580 --> 00:37:48,510 Я меняю это таким образом - особенно если вы получаете в действительно глубокой вещи 594 00:37:48,510 --> 00:37:52,730 как моделей и контроллеров, которые на самом деле собираются влиять, как работает сайт. 595 00:37:52,730 --> 00:37:54,500 Вся команда должна знать об этом, 596 00:37:54,500 --> 00:37:58,140 так что вы должны убедиться, что вы не выбирая слишком большой команды, которая собирается быть трудно 597 00:37:58,140 --> 00:37:59,970 чтобы сделать эту связь. 598 00:37:59,970 --> 00:38:02,930 Вы также не хотите, чтобы выбрать достаточно небольшую команду, что вы не собираетесь, чтобы 599 00:38:02,930 --> 00:38:06,250 быть в состоянии общаться, потому что это только вы. 600 00:38:06,250 --> 00:38:11,270 >> Другим важным моментом является баланс, где навыки народные. 601 00:38:11,270 --> 00:38:14,350 Это здорово, если вы все действительно хорошие программисты. 602 00:38:14,350 --> 00:38:17,050 Но если вы все фоновые людей, то ваш сайт не будет выглядеть очень хорошо 603 00:38:17,050 --> 00:38:20,860 потому что вы должны эту великую базу данных, и это делает супер-быстрые запросы поиска - 604 00:38:20,860 --> 00:38:26,130 и это здорово - но когда вы идете к нему, это как сайт 1990-с красным и синим 605 00:38:26,130 --> 00:38:30,370 везде, и это не хорошо также. 606 00:38:30,370 --> 00:38:34,210 Обратите внимание, что Бен и я, работая в команде очень приятно, потому что я вроде более 607 00:38:34,210 --> 00:38:38,030 на переднем конце, мы оба взаимодействуют в середине-конце, и Бен действительно хорошо с серверной вещи, 608 00:38:38,030 --> 00:38:43,550 так что работает очень хорошо, потому что мы можем конструировать любой сайт, и в основном отверстия 609 00:38:43,550 --> 00:38:47,580 на этом сайте, которые должны быть заполнены могут быть заполнены либо из нас, или, возможно, и другое. 610 00:38:47,580 --> 00:38:50,210 Вы хотите, чтобы убедиться, что нет никаких отверстий в вашей команде. 611 00:38:50,210 --> 00:38:51,180 Это хорошо, если есть немного перекрытия. 612 00:38:51,180 --> 00:38:53,670 Другими словами, если у вас есть 2 человека, которые являются и хорошо с задней части, 613 00:38:53,670 --> 00:38:57,250 что может быть хорошо, а потому, что они могут помочь друг другу с проблемами 614 00:38:57,250 --> 00:38:58,820 , что они имеют. 615 00:38:58,820 --> 00:39:02,590 Это может быть проблемой, если у вас есть только один человек, который отвечает за определенную вещь 616 00:39:02,590 --> 00:39:06,650 и они столкнуться с проблемой, так что вы хотите, чтобы иметь немного перекрытия 617 00:39:06,650 --> 00:39:10,760 но вы главное хотите, чтобы убедиться, что все возможные дырочки заполнены. 618 00:39:10,760 --> 00:39:17,550 >> Последнее, что - и это должно быть очевидно, но это часто не так. 619 00:39:17,550 --> 00:39:19,550 Вы действительно хотите, весело. 620 00:39:19,550 --> 00:39:23,360 Смысл этого окончательного проекта в CS50 и часто точка веб-разработки в целом 621 00:39:23,360 --> 00:39:26,360 не просто сделать работу, потому что это необходимо сделать. 622 00:39:26,360 --> 00:39:29,140 Вы действительно хотите, весело, и вы хотите делать что-то 623 00:39:29,140 --> 00:39:31,180 что мотивирует вас работать на нем. 624 00:39:31,180 --> 00:39:33,650 Если все, что вы делаете это боль, чтобы сесть и работать, 625 00:39:33,650 --> 00:39:35,650 то вы не выбирая правильный проект. 626 00:39:35,650 --> 00:39:37,730 Вы хотите, чтобы выбрать то, что вы найдете интересные, 627 00:39:37,730 --> 00:39:41,150 Вы действительно хотите, чтобы увидеть результат, вы рады, когда вы получаете новую идею о 628 00:39:41,150 --> 00:39:44,700 то, что вы могли бы сделать - так что все виды проектов там, что я уверен, что 629 00:39:44,700 --> 00:39:47,290 вы можете найти - у каждого есть что-то, что действительно заинтриговать их 630 00:39:47,290 --> 00:39:49,290 если они делают проект веб-. 631 00:39:49,290 --> 00:39:52,210 Я скажу это снова прямо сейчас. 632 00:39:52,210 --> 00:39:54,520 Если ваш проект кажется боли, и вы не хотите, чтобы работать на нем, 633 00:39:54,520 --> 00:39:57,260 выбрать другой проект. Выберите то, что действительно вдохновляет вас. 634 00:39:57,260 --> 00:40:00,260 >> Бен упомянул эту концепцию итерации немного, и я хочу пойти по нему немного. 635 00:40:00,260 --> 00:40:08,250 Это действительно важно для работы рывками, где вы получить что-то функциональное. 636 00:40:08,250 --> 00:40:13,420 Это может быть хорошо, если у вас есть этот план для веб-сайта, что будет делать A, B, и C, 637 00:40:13,420 --> 00:40:16,000 и в конечном итоге это будет попасть. 638 00:40:16,000 --> 00:40:18,600 Но вы застряли в этой фазе, где вы работаете на нем и работает на нем, 639 00:40:18,600 --> 00:40:23,330 но ничего не становится сделанным. Вы не должны ничего видеть и осязаемое, функциональную вещь. 640 00:40:23,330 --> 00:40:27,940 То, что вы действительно хотите сделать, как много, как кажется рода боли иногда 641 00:40:27,940 --> 00:40:32,300 работать над чем-то, а затем рода довершение, чтобы он, по крайней мере в стабильной, работает 642 00:40:32,300 --> 00:40:34,910 версия даже если он не имеет все необходимые функции. 643 00:40:34,910 --> 00:40:37,690 И может быть, есть некоторые особенности, которые вы действительно хотите, чтобы добавить, но вы просто не можете 644 00:40:37,690 --> 00:40:41,830 потому что вы хотите, чтобы получить этот сайт в функциональной точки. 645 00:40:41,830 --> 00:40:44,400 И поэтому вы хотите отчасти есть весь процесс развития выглядеть. 646 00:40:44,400 --> 00:40:47,810 Вы хотите, чтобы с чего-то начать функционально - или, по существу начать ни с чем - 647 00:40:47,810 --> 00:40:49,890 но вы хотите получить где-то очень основным и функциональным. 648 00:40:49,890 --> 00:40:54,940 И опять же, сделать своего рода прыжок и получить где-то функциональная снова. 649 00:40:54,940 --> 00:40:59,190 Вы будете постепенно наращивать, и это могло бы пойти немного медленнее, чем это было бы в противном случае, 650 00:40:59,190 --> 00:41:03,000 но в долгосрочной перспективе, если вы постоянно застрял в этой фазе первом, где вы 651 00:41:03,000 --> 00:41:06,380 на самом деле не имеет ничего рабочий, это может быть действительно большой разочарование 652 00:41:06,380 --> 00:41:09,970 работать над вашим проектом, потому что ты всегда так близко к тому, чтобы он работал, 653 00:41:09,970 --> 00:41:12,130 и это никогда не на самом деле работает. 654 00:41:12,130 --> 00:41:14,810 Вы хотите работать в этих функциональных рывками, 655 00:41:14,810 --> 00:41:17,950 и вы также хотите сделать некоторые размышления после каждой из них. 656 00:41:17,950 --> 00:41:21,260 Другими словами, как только вы в точке, где сайт сейчас работает - 657 00:41:21,260 --> 00:41:24,790 это не есть все, что нравится, но он делает некоторые вещи - 658 00:41:24,790 --> 00:41:28,870 вы хотите думать, ладно, этот сайт достижении цели, что я намеревался сделать? 659 00:41:28,870 --> 00:41:33,410 Другими словами, если сайт будет делать X, то, что я работал в направлении X? 660 00:41:33,410 --> 00:41:36,450 Все ли функции, которые я хотел там? 661 00:41:36,450 --> 00:41:39,340 И более того, это служит общую цель, что я хочу? 662 00:41:39,340 --> 00:41:43,200 Если вы считаете, что ваш сайт начинает травить в другом направлении 663 00:41:43,200 --> 00:41:47,330 или может быть, все как раз вроде не работают, это может быть время, чтобы переключать передачи немного. 664 00:41:47,330 --> 00:41:51,700 Другими словами, это стоит рассматривать - это стоит выбрасывать идеи в случае необходимости 665 00:41:51,700 --> 00:41:57,950 и учитывая я действительно работают к тому, что я хочу быть. 666 00:41:57,950 --> 00:42:00,760 >> Я считаю, что мой следующий пункт. Не бойтесь отказаться от идеи. 667 00:42:00,760 --> 00:42:03,750 Просто потому, что вы потратили много часов работает над функцией 668 00:42:03,750 --> 00:42:07,890 и, наконец, получил это работает, но это действительно не так хорошо - 669 00:42:07,890 --> 00:42:12,690 как будто это не так уж полезно или пользователи возникли проблемы с использованием его - такого рода вещи - 670 00:42:12,690 --> 00:42:15,300 не бойтесь его выбросить. 671 00:42:15,300 --> 00:42:17,650 Она сосет, что вы потратили много времени, работая на нем, 672 00:42:17,650 --> 00:42:21,870 но в конечном счете вы не хотите сайт, который вроде вместе взятые этими частей, которые 673 00:42:21,870 --> 00:42:25,380 вид работы, но не то, что хорошо служил. 674 00:42:25,380 --> 00:42:27,990 Кроме того, не бойтесь использовать новые идеи. 675 00:42:27,990 --> 00:42:30,050 Если кто-то приходит и говорит, эй, что сайт выглядит действительно здорово, но 676 00:42:30,050 --> 00:42:32,290 не будет ли даже здорово, если бы он также сделал это? 677 00:42:32,290 --> 00:42:36,220 Просто потому, что это то, что вы не намерены и то, что не в вашей 678 00:42:36,220 --> 00:42:37,900 характеристики, то, что вы не намеревались делать, 679 00:42:37,900 --> 00:42:40,860 не бойся принять его, а затем работать с ним. 680 00:42:40,860 --> 00:42:43,680 Потому что часто идеи, которые вы запускаете с на протяжении всего развития 681 00:42:43,680 --> 00:42:47,630 в конечном итоге по-настоящему интересные функции сайта. 682 00:42:47,630 --> 00:42:49,630 >> Я говорил это раньше. Я скажу это снова. 683 00:42:49,630 --> 00:42:51,630 Тестеры супер, супер полезно. 684 00:42:51,630 --> 00:42:56,350 Постарайтесь, чтобы получить людей, которые никогда не видели сайт, прежде чем войти в систему и посмотреть, что происходит на 685 00:42:56,350 --> 00:42:59,080 потому что они могут не только проверить полезность сайта и пользовательского опыта, 686 00:42:59,080 --> 00:43:02,070 но они также могут проверить функциональность таким образом, что вы не можете. 687 00:43:02,070 --> 00:43:06,430 Если вы делаете некоторые функции, что делает определенную вещь 688 00:43:06,430 --> 00:43:11,620 и вы знаете, что собираетесь делать, что же самую вещь правильно каждый раз, это здорово. 689 00:43:11,620 --> 00:43:16,610 Но это часто может быть трудно объяснить угловых тех случаях, когда пользователь может 690 00:43:16,610 --> 00:43:19,500 введите то, что вы не ожидали - именно потому, что вы определили 691 00:43:19,500 --> 00:43:21,500 особенности себя. 692 00:43:21,500 --> 00:43:23,730 Таким образом, чтобы кто-то приехал, кто понятия не имеет, как использовать сайт 693 00:43:23,730 --> 00:43:26,840 и просто разбить его любыми способами они могут сделать, это действительно полезно, потому что вам 694 00:43:26,840 --> 00:43:30,340 получить представление из совершенно другой точки зрения того, что на вашем сайте работает 695 00:43:30,340 --> 00:43:33,300 и то, что нуждается в ремонте. 696 00:43:33,300 --> 00:43:37,070 >> Последнее, что я буду говорить о некоторых общих передовой практики, 697 00:43:37,070 --> 00:43:42,470 и вы видели много таких в CS50, но они также очень, очень применять в условиях проекта. 698 00:43:42,470 --> 00:43:47,600 Одним из них является комментариев. Всегда комментировать свой код, особенно если вы работаете на большой команды. 699 00:43:47,600 --> 00:43:51,230 Это может быть так раздражает просто гигантский блок кода, который кто-то написал 700 00:43:51,230 --> 00:43:54,230 и, возможно, он работает, может быть, это не так, но вы понятия не имеете, что он делает, 701 00:43:54,230 --> 00:43:58,010 так что вы понятия не имею, является ли это полезно или нет, или должна ли она быть там или нет, 702 00:43:58,010 --> 00:44:00,200 и если вы работаете над чем-то другим, что это даже возможно, что вы работаете на 703 00:44:00,200 --> 00:44:06,590 то же самое, так что просто быть очень, очень осторожны, чтобы быть внимательным ваших коллег 704 00:44:06,590 --> 00:44:09,710 и написать код, который хорошо документированы. 705 00:44:09,710 --> 00:44:13,580 Вы не должны пойти так далеко, чтобы делать все это, где угодно, если вы увеличить 706 00:44:13,580 --> 00:44:16,620 Счетчик есть комментарий, который говорит, я добавляю 1 до этого счетчика. 707 00:44:16,620 --> 00:44:20,450 Это не обязательно должно быть подробным, но для любой функции, что вы когда-либо писал 708 00:44:20,450 --> 00:44:23,160 вы должны иметь документацию о том, что эта функция точно делает, 709 00:44:23,160 --> 00:44:25,140 что его входы, и то, что он должен вернуть. 710 00:44:25,140 --> 00:44:27,800 Таким образом, вы можете использовать другие компоненты людей о сайте 711 00:44:27,800 --> 00:44:31,990 и вы можете работать в направлении создания что-то большое. 712 00:44:31,990 --> 00:44:34,100 >> Еще одна важная вещь вы хотите сделать регулярные чистые окна. 713 00:44:34,100 --> 00:44:40,490 Код становится грязным. Не расстраивайтесь, если ваш код просто полностью нечитаемым, и гигантский беспорядок. 714 00:44:40,490 --> 00:44:42,770 Это происходит в веб-разработке всегда. 715 00:44:42,770 --> 00:44:46,530 Ты добавляя новые функции, удаляя старые. Материал будет там, что не должно быть. 716 00:44:46,530 --> 00:44:49,330 Это прекрасно, но вы хотите, чтобы убедиться, чтобы иметь дело с этим на регулярной основе. 717 00:44:49,330 --> 00:44:53,430 Вы же не хотите, чтобы это построить до точки, где вы просто не можете найти ничего 718 00:44:53,430 --> 00:44:56,430 в коде, и вы понятия не имеете, что ни в чем себе. 719 00:44:56,430 --> 00:44:58,430 Вот и в случае с HTML. 720 00:44:58,430 --> 00:44:59,490 Иногда вы будете в конечном итоге с объектами, которые не содержат ничего, 721 00:44:59,490 --> 00:45:01,320 и вы хотите, чтобы избавиться от них. 722 00:45:01,320 --> 00:45:04,610 В CSS, вы можете быть относящиеся к элементам, которые не там больше, 723 00:45:04,610 --> 00:45:06,340 так что вы хотите, чтобы избавиться от этого кода. 724 00:45:06,340 --> 00:45:09,900 В JavaScript, вы можете удалили что-то из HTML. 725 00:45:09,900 --> 00:45:13,150 Итак, вы хотите, чтобы убедиться, что вы всегда очистки, что делает вещи довольно 726 00:45:13,150 --> 00:45:17,450 столько, сколько вы можете на регулярной основе. 727 00:45:17,450 --> 00:45:21,060 >> Еще один очень полезная вещь, что я не думаю, что изложена очень много в CS50 728 00:45:21,060 --> 00:45:23,430 но это стоит того, чтобы в это управление версиями. 729 00:45:23,430 --> 00:45:27,180 Идея контроля версий, когда вы в основном отслеживания весь прогресс 730 00:45:27,180 --> 00:45:30,820 Вы сделали на ваш сайт, и если в какой-то момент вы понимаете, о, это работает 731 00:45:30,820 --> 00:45:35,220 некоторое время назад, но это не работает больше, вы можете вернуться к предыдущим версиям 732 00:45:35,220 --> 00:45:37,720 и посмотреть, что изменилось с тех пор и тому подобное. 733 00:45:37,720 --> 00:45:41,670 Основной способ сделать это с Git и Git является вся такая система, что 734 00:45:41,670 --> 00:45:46,390 Я считаю, Томми MacWilliam провела семинар о в прошлом году. 735 00:45:46,390 --> 00:45:51,520 Если вы идете в CS50 семинаров на 2011 год, можно увидеть его семинар по этому вопросу. 736 00:45:51,520 --> 00:45:57,070 Идея Git в основном, что на регулярной основе вы делаете эти обязательства 737 00:45:57,070 --> 00:46:01,430 которые являются способы сказать сайт находится в довольно стабильной версии прямо сейчас, так 738 00:46:01,430 --> 00:46:05,910 Я упаковке его и отправить его прочь к серверу, а затем вы можете пойти на этот сервер 739 00:46:05,910 --> 00:46:07,910 и смотреть на все предыдущие версии кода и посмотреть, как он прогрессировал 740 00:46:07,910 --> 00:46:12,210 и все такое хороший материал. 741 00:46:12,210 --> 00:46:14,210 Так, что в основном это. 742 00:46:14,210 --> 00:46:17,870 Насколько веб-разработки, мы рады остаться и ответить на любые 743 00:46:17,870 --> 00:46:20,570 вопросы, насколько нашей презентации. 744 00:46:20,570 --> 00:46:22,900 Вот и все. Благодаря. >> [Бен] Спасибо. 745 00:46:22,900 --> 00:46:28,480 [Аплодисменты] 746 00:46:28,480 --> 00:46:30,950 >> [Билли] Персонал, кто-нибудь есть какие-либо вопросы о вещах, которые мы рассмотрели 747 00:46:30,950 --> 00:46:33,950 или вещи, которые мы не охваченные, что они надеялись, что мы бы покрыть? 748 00:46:33,950 --> 00:46:35,950 Мы были бы рады ответить на них. Любой? 749 00:46:35,950 --> 00:46:50,360 [Член аудитории] Каковы плюсы и минусы использования Руби или с помощью Python? 750 00:46:50,360 --> 00:46:58,660 [Бен] Вопрос был, каковы плюсы и минусы использования Руби или Python 751 00:46:58,660 --> 00:46:59,900 вместо как PHP. 752 00:46:59,900 --> 00:47:11,340 Плюсы в том, что Руби и Python намного лучшие языки, чем PHP. 753 00:47:11,340 --> 00:47:14,920 По крайней мере, на мой взгляд, и я думаю, во многих чужого мнения, а также. 754 00:47:14,920 --> 00:47:20,990 Они были разработаны больше для делать сложные вещи, 755 00:47:20,990 --> 00:47:25,380 и меньше для бить вместе веб-страниц очень быстро с 756 00:47:25,380 --> 00:47:28,400 немного динамического контента. 757 00:47:28,400 --> 00:47:35,180 Минусы в том, что есть немного - есть больше времени на освоение 758 00:47:35,180 --> 00:47:37,220 чтобы получить их настроить. 759 00:47:37,220 --> 00:47:41,010 То есть, как и в PHP, вы можете просто есть HTML файл, и вы написать меньше, чем, 760 00:47:41,010 --> 00:47:43,060 вопросительный знак, а затем вы написать код, а затем вы пишете знак вопроса, 761 00:47:43,060 --> 00:47:45,700 больше, чем, а затем вы закончите. 762 00:47:45,700 --> 00:47:50,300 В других языках, например Руби или Python, 763 00:47:50,300 --> 00:47:56,810 Вы должны пройти немного больше работы, чтобы получить первоначальный сайт работает. 764 00:47:56,810 --> 00:48:02,730 Там также - по крайней мере это было так - что есть больше документации 765 00:48:02,730 --> 00:48:05,480 доступны для PHP только потому, что есть больше людей, использующих его. 766 00:48:05,480 --> 00:48:09,370 Я думаю, что это не столько вопрос больше. 767 00:48:09,370 --> 00:48:12,520 Там, безусловно, очень хорошая документация для вещи, как Рубин на рельсы 768 00:48:12,520 --> 00:48:16,080 или Django для Python является эквивалентом. 769 00:48:16,080 --> 00:48:25,910 PHP является тот, который использует каждый в течение многих лет, и вы знаете, как это работает. 770 00:48:25,910 --> 00:48:28,460 Руби и Python являются немного менее зрелые. 771 00:48:28,460 --> 00:48:33,130 >> [Член аудитории] Если бы пришлось выбирать между одним из них, чтобы узнать или забрать, 772 00:48:33,130 --> 00:48:36,130 что бы вы предпочли? 773 00:48:36,130 --> 00:48:38,870 Честно говоря, я думаю, что зависит от человека. 774 00:48:38,870 --> 00:48:45,450 Мне очень жаль. Вопрос был, который бы вы выбрали для кого-то учиться? 775 00:48:45,450 --> 00:48:50,230 Я считаю, Python самый хороший лично. 776 00:48:50,230 --> 00:48:55,360 Есть много людей, которые - я сделал мой первый веб-Dev проект в Python и Django. 777 00:48:55,360 --> 00:49:00,300 Есть много людей, которые любят Рубин на рельсы также. 778 00:49:00,300 --> 00:49:02,650 Наверное больше людей, которые знают, Рубин на рельсы. 779 00:49:02,650 --> 00:49:05,270 Честно говоря, я бы просто пойти с тем, что люди вокруг вас знаю 780 00:49:05,270 --> 00:49:09,680 так что у вас есть люди, чтобы задать вопросы. 781 00:49:19,640 --> 00:49:24,170 >> Вопрос был - на общих серверах это отчасти трудно работать на Python? 782 00:49:24,170 --> 00:49:26,170 Это зависит от вашего хостинга. 783 00:49:26,170 --> 00:49:29,400 Есть целый ряд веб-узлов, которые разместим Python вещей. 784 00:49:29,400 --> 00:49:31,400 WebFaction делает это, не так ли? 785 00:49:31,400 --> 00:49:34,400 WebFaction является одним, что Билли, и я использовал для некоторых проектов. 786 00:49:34,400 --> 00:49:37,750 Они действительно здорово. Они поддерживают большинство языков. 787 00:49:37,750 --> 00:49:40,020 Но это правда, что PHP является гораздо более широкую поддержку. 788 00:49:40,020 --> 00:49:45,210 Так что, если вы застряли на веб-хостинга, что только делает PHP, это хороший повод, чтобы использовать PHP. 789 00:49:45,210 --> 00:49:56,010 >> [Аудитория член] Я только что получил в изучение, как запрос к определенным базам данных, 790 00:49:56,010 --> 00:50:00,680 и я знаю, что моя SQL является повсеместно, но я недавно получил воздействию - 791 00:50:00,680 --> 00:50:04,470 и вы указали на него. Вы видите JSON и расширяемые баз данных. 792 00:50:04,470 --> 00:50:14,580 My SQL по-прежнему повсеместно. Как вы видите, что происходит? 793 00:50:14,580 --> 00:50:21,330 Есть ли будет растущая тенденция для более расширяемой (неразборчиво)? 794 00:50:21,330 --> 00:50:30,100 Вопрос был - я думаю, что это будет тенденция к базам данных не-SQL. 795 00:50:30,100 --> 00:50:33,850 Например, как MongoDB. Я думаю, что, безусловно, верно. 796 00:50:33,850 --> 00:50:38,730 Мой совет был в основном MySQL, связанных здесь только потому, что MySQL является 797 00:50:38,730 --> 00:50:40,950 отраслевым стандартом. 798 00:50:40,950 --> 00:50:45,950 Лично я предпочитаю баз данных, которые не имеют schemos как MongoDB 799 00:50:45,950 --> 00:50:49,520 где у вас нет проблемы, о, мне нужно добавить еще один столбец. 800 00:50:49,520 --> 00:50:51,600 Горе мне, как бы то ни было мне делать? 801 00:50:51,600 --> 00:50:55,840 Это очень трудно сделать это на MySQL, но когда у вас есть что-то вроде Монго 802 00:50:55,840 --> 00:50:57,840 это намного более хорошо. 803 00:50:57,840 --> 00:51:03,780 Другая хорошая вещь о Монго в том, что ваши записи на самом деле объекты JavaScript. 804 00:51:03,780 --> 00:51:10,110 Там нет рода стадии конверсии, где вы должны принять эти строки базы данных 805 00:51:10,110 --> 00:51:13,140 и превратить их в объект JavaScript, а затем отправить их по сети. 806 00:51:13,140 --> 00:51:20,290 Я думаю, что такие вещи, как, что будет очень, очень полезно для быстрого веб-разработки в будущем. 807 00:51:20,290 --> 00:51:23,060 >> [Билли] Что-то я хотел бы добавить, что всего лишь общие Дело в том, что 808 00:51:23,060 --> 00:51:26,580 не чувствуете, как вы должны были узнать все языки, которые мы обсуждали 809 00:51:26,580 --> 00:51:28,580 от нашего семинара. 810 00:51:28,580 --> 00:51:30,560 Очевидно, дело в том, чтобы дать вам представление о том, что там, 811 00:51:30,560 --> 00:51:33,450 и если вы заинтригованы любой из вещей, которые мы упомянули, что вы можете Google их 812 00:51:33,450 --> 00:51:35,830 и прочитать о них. 813 00:51:35,830 --> 00:51:38,750 И как я уже говорил, есть несколько семинаров, которые имеют дело именно с этими вещами. 814 00:51:38,750 --> 00:51:41,660 Есть даже больше семинаров, которые я не упомянул, что, вероятно, попасть в 815 00:51:41,660 --> 00:51:43,660 этот материал также. 816 00:51:43,660 --> 00:51:46,610 Идея состоит в том, что, если вы хотите работать над чем-то, вот инструменты в вашем распоряжении. 817 00:51:46,610 --> 00:51:51,630 Не чувствуют себя подавленными, если вы не совсем уверены, что эти инструменты делают точно, 818 00:51:51,630 --> 00:51:54,830 но знаю, что они там и что вы можете сделать широкое применение из них 819 00:51:54,830 --> 00:51:56,830 на Google. 820 00:51:56,830 --> 00:51:59,960 >> [Член аудитории] Какие вещи вы должны сделать, чтобы убедиться, что ваш сайт 821 00:51:59,960 --> 00:52:02,530 хорошо выглядит на мобильных устройствах? 822 00:52:02,530 --> 00:52:05,590 [Билли] Мобильные устройства немного трудно. 823 00:52:05,590 --> 00:52:07,590 Там в 2 способа вы можете подойти к нему. 824 00:52:07,590 --> 00:52:11,500 Первый способ является то, что у вас действительно есть мобильный веб-сайт. 825 00:52:11,500 --> 00:52:14,660 Другими словами, необходимо выполнить какую-то обнаружения в начале 826 00:52:14,660 --> 00:52:18,830 когда браузер делает запрос на ваш сайт, которые либо говорит 827 00:52:18,830 --> 00:52:25,240 вернуть этот вид - который станет представление для настольных или портативных браузеров - 828 00:52:25,240 --> 00:52:27,710 и этот другой вид для мобильных устройств. 829 00:52:27,710 --> 00:52:33,090 Это место, где взгляды действительно хороши тем, что вы можете очень многое подкачки 830 00:52:33,090 --> 00:52:37,580 два и иметь интерфейс, который работает очень хорошо на мобильных устройствах 831 00:52:37,580 --> 00:52:40,770 и иметь совершенно другой, который работает хорошо на устройствах браузера. 832 00:52:40,770 --> 00:52:43,770 Проблема в том, что занимает много времени, потому что это означает кодирование 833 00:52:43,770 --> 00:52:47,060 совершенно другой интерфейс. 834 00:52:47,060 --> 00:52:49,720 Другой способ, что вы можете сделать это является - 835 00:52:49,720 --> 00:52:55,250 много современных телефонов будет отображать сайты и попытаться сделать их как браузер будет, 836 00:52:55,250 --> 00:52:57,680 и они делают все возможное. 837 00:52:57,680 --> 00:53:04,340 Вы можете рода попытаться остаться свет от количества JQuery JavaScript вы используете 838 00:53:04,340 --> 00:53:07,360 который имеет тенденцию быть, где вещи могут пойти не так немного. 839 00:53:07,360 --> 00:53:13,430 Это своего рода таким образом, что вы должны использовать, если вы не так уж много времени. 840 00:53:13,430 --> 00:53:18,540 Если у вас есть время для работы на мобильном интерфейсе, это, очевидно, лучший выбор. 841 00:53:18,540 --> 00:53:23,320 >> Я думаю, что в целом для CS50 проектов, вы собираетесь хотите, чтобы выбрать один или другой. 842 00:53:23,320 --> 00:53:27,990 Другими словами, вы хотите, чтобы сделать мобильное приложение или вы хотите сделать сайт на рабочем столе. 843 00:53:27,990 --> 00:53:32,200 И такого рода определяет, где вы идете с этим. 844 00:53:32,200 --> 00:53:35,360 Но если вы хотите, чтобы развернуть его позже, вероятно, вам лучше всего 845 00:53:35,360 --> 00:53:37,360 сделать еще один интерфейс для другого. 846 00:53:51,650 --> 00:53:56,340 У меня есть немного опыта в разработке сайтов WordPress-приложений. 847 00:53:56,340 --> 00:53:58,670 Я прошел личный сайт на WordPress на некоторое время. 848 00:53:58,670 --> 00:54:02,310 Те виды рамок может быть хорошие как очень простые вещи. 849 00:54:02,310 --> 00:54:07,050 Часто вы будете просто столкнуться с большим количеством проблем Customizability же. 850 00:54:07,050 --> 00:54:10,940 Вы хотите, чтобы иметь что-то выглядеть определенным образом или быть определенным образом 851 00:54:10,940 --> 00:54:14,510 и вы просто не можете, потому что это зашитыми в систему, которая 852 00:54:14,510 --> 00:54:17,480 это, как вы должны делать вещи, которые могут быть чем-то вроде проблемы. 853 00:54:17,480 --> 00:54:22,020 С тех пор я отчасти было более склонны работать с сайтов с нуля. 854 00:54:22,020 --> 00:54:26,840 Для таких вещей, как блог баз данных и такого рода вещи это действительно не так уж трудно построить основу. 855 00:54:26,840 --> 00:54:29,970 Если вы действительно растягивается на время, вы можете, конечно, использовать что-то вроде WordPress 856 00:54:29,970 --> 00:54:33,120 или тому подобное для блога. 857 00:54:33,120 --> 00:54:38,790 Те вещи, что блоги магазин и делать на самом деле не достаточно сильно, что 858 00:54:38,790 --> 00:54:41,500 если вы работаете в любой из этих видов вещей, вы, вероятно, лучше просто 859 00:54:41,500 --> 00:54:43,500 сделать версию в доме. 860 00:54:43,500 --> 00:54:48,350 >> Я думаю, что это о нем, поэтому еще раз спасибо, что пришли. 861 00:54:48,350 --> 00:54:51,960 Мы действительно любили говорить с вами, ребята и надеемся, что вы узнали некоторые вещи. 862 00:54:51,960 --> 00:54:55,350 [Бен] Мы рады поговорить - мы должны идти, но мы рады говорить больше за пределами 863 00:54:55,350 --> 00:55:01,650 если у вас есть еще один вопрос. Еще раз спасибо. [Аплодисменты] 864 00:55:03,750 --> 00:55:06,000 [CS50.TV]