background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "16. CS50 на русском: Лекция #16 [Гарвард, Основы программирования, осень 2015 год]"

input logo icon
Похожие ролики из нашего каталога
|

Похожие ролики из нашего каталога

2. CS50 на русском: Лекция #2 [Гарвард, Основы программирования, осень 2015 год]
1:04:15

2. CS50 на русском: Лекция #2 [Гарвард, Основы программирования, осень 2015 год]

Канал: JavaRush
18. CS50 на русском: Лекция #18 [Гарвард, Основы программирования, осень 2015 год]
50:49

18. CS50 на русском: Лекция #18 [Гарвард, Основы программирования, осень 2015 год]

Канал: JavaRush
7. CS50 на русском: Лекция #7 [Гарвард, Основы программирования, осень 2015 год]
48:00

7. CS50 на русском: Лекция #7 [Гарвард, Основы программирования, осень 2015 год]

Канал: JavaRush
6. CS50 на русском: Лекция #6 [Гарвард, Основы программирования, осень 2015 год]
44:35

6. CS50 на русском: Лекция #6 [Гарвард, Основы программирования, осень 2015 год]

Канал: JavaRush
14. CS50 на русском: Лекция #14 [Гарвард, Основы программирования, осень 2015 год]
52:58

14. CS50 на русском: Лекция #14 [Гарвард, Основы программирования, осень 2015 год]

Канал: JavaRush
3. CS50 на русском: Лекция #3 [Гарвард, Основы программирования, осень 2015 год]
50:17

3. CS50 на русском: Лекция #3 [Гарвард, Основы программирования, осень 2015 год]

Канал: JavaRush
8. CS50 на русском: Лекция #8 [Гарвард, Основы программирования, осень 2015 год]
38:22

8. CS50 на русском: Лекция #8 [Гарвард, Основы программирования, осень 2015 год]

Канал: JavaRush
5. CS50 на русском: Лекция #5 [Гарвард, Основы программирования, осень 2015 год]
50:23

5. CS50 на русском: Лекция #5 [Гарвард, Основы программирования, осень 2015 год]

Канал: JavaRush
20. CS50 на русском: Лекция #20 [Гарвард, Основы программирования, осень 2015 год]
50:17

20. CS50 на русском: Лекция #20 [Гарвард, Основы программирования, осень 2015 год]

Канал: JavaRush
15. CS50 на русском: Лекция #15 [Гарвард, Основы программирования, осень 2015 год]
54:13

15. CS50 на русском: Лекция #15 [Гарвард, Основы программирования, осень 2015 год]

Канал: JavaRush
Теги видео
|

Теги видео

cs50
основы программирования
cs50 на русском
cs50 лекция 16
Week 8
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:17
добро пожаловать в гарвард на курс seo
00:00:21
свифти
00:00:24
это ses fifty и мы начинаем восьмую
00:00:28
неделю а к нам вернулся и мы рады
00:00:30
приветствовать его на себе спирте рамон
00:00:32
гальван и наш почти выпускник
00:00:34
который провел последние несколько
00:00:36
месяцев начиная с июля в лос-анджелесе в
00:00:39
голливуде работая над новым
00:00:41
научно-фантастическим телесериалом
00:00:43
колония создатель которого кстати и сам
00:00:46
тоже выпускник гарварда садитесь это с
00:00:48
нетерпением ждем премьеру сериала в
00:00:51
январе не пропустите и смотрите рамона
00:00:53
через несколько недель
00:00:54
ну чтож конец близок то есть нам
00:00:57
осталось совсем немного всех fifty как
00:00:59
это ни печально всего три задачника
00:01:01
задачник номер 6 с которым вы работаете
00:01:03
сейчас или скоро начнете является как бы
00:01:05
мостиком между миром командной строки в
00:01:07
котором и мы провели большую часть
00:01:09
времени сил и миром веб-программирование
00:01:12
вы встретите множество идей
00:01:13
заимствованных у системы командной
00:01:15
строке а также много интересных задумок
00:01:18
имеющих прямое отношение к мобильным
00:01:20
приложением и вообще технологиям с
00:01:21
которыми вы ребята сегодня хорошо
00:01:23
знакомы благодаря лэптопом телефоном и
00:01:25
прочим устройством вам предстоит
00:01:27
реализовать не веб-страницу или веб-сайт
00:01:29
как таковые но непосредственно
00:01:30
веб-сервер вам надо будет записать
00:01:33
оставшуюся часть веб-сервера
00:01:35
прописанного в сейчас сути получается
00:01:37
запроса http и виртуальные пакеты о
00:01:39
которых мы так много говорим и отвечать
00:01:42
либо каким-то статичным содержимым
00:01:44
например файлом .
00:01:45
html или . чепик или другим либо файлам
00:01:48
php в этом случае ваш веб-сервер
00:01:50
расшифрует php код и выдаст результаты
00:01:53
мы обеспечили вас общими схемами для
00:01:55
работы дистрибутив 6 задачника содержат
00:01:58
более тысячи строк кода правда многие из
00:02:00
них комментарии и это очень хорошая
00:02:02
возможность головой погрузиться в
00:02:04
действительно серьезный проект
00:02:05
каждый элемент которого мы тщательно
00:02:07
продумали чтобы когда вы завершите курсе
00:02:10
свифти выйдите в реальный мир программирования
00:02:11
и захотите заняться какими-то проектами
00:02:14
вы чувствовали себя комфортно
00:02:15
сталкиваясь с исходными кодами открытыми
00:02:18
проектами в сети погружаясь во все это и
00:02:21
внося собственные поправки задачник
00:02:23
номер семь посвящен тому как сделать
00:02:24
свое веб-приложение с применением
00:02:26
динамического ввода и вывода данных как
00:02:29
на сайте и trud.com и ему подобных
00:02:31
а 8 задачник содержит упражнения по еще
00:02:34
одному языку под названием java script в
00:02:37
общем финальный проект уже не за горами
00:02:39
а так называемый пред проект надо будет
00:02:41
сдать через неделю предпроектных
00:02:43
согласно глоссарий усе аспекте это
00:02:45
просто возможность отправить короткое
00:02:47
письмо своему куратору чтобы поведать
00:02:49
ему или ей о своих мыслях посовещаться а
00:02:51
заодно проверить не чересчур ли вы
00:02:53
замахнулись
00:02:54
или наоборот не достанем себя а может у
00:02:57
вас вообще нет никаких мыслей и вы
00:02:59
хотите это обсудить
00:03:01
дальше идет разработка проекта и отчет
00:03:03
об успехах хакатон sea of fifty в
00:03:05
кембридже для студентов гарварда и йеля
00:03:08
потом окончательно реализация проекта и
00:03:11
наконец ярмарка с fifty
00:03:13
1 здесь кембриджа и 2 в нью-хейвене
00:03:15
подробности на нашем веб-сайте но
00:03:17
по-настоящему интересно с холодной
00:03:19
головой и горячим сердцем погрузиться в
00:03:21
темы инструменты и техники которые
00:03:23
являются дополнительными в программе
00:03:25
курса но тем не менее очень полезны прекрасные
00:03:28
кирпичики для по-настоящему крутых
00:03:30
проектов которые будут выходить за рамки
00:03:31
того что было и в задачниках и на
00:03:34
лекциях опасайтесь я свифти есть список
00:03:36
всех семинаров если вы еще не
00:03:38
зарегистрировались ничего заходите и
00:03:40
спокойно регистрируйтесь а мы будем
00:03:42
выкладывать все в сети аки день и время
00:03:44
указаны на сайте все будет записана и
00:03:46
выложена онлайн если вы не сможете
00:03:48
присоединиться в конкретный день и что
00:03:50
еще нам предстоит это конечно хакатон с
00:03:53
fifty помните это фото с нулевой неделе
00:03:56
его сделали где-то в 4 утра несколько
00:03:58
лет назад если ярмарка ses fifty которая
00:04:00
пройдет в обоих городах
00:04:01
ну и на будущее хотя у нас остался ещё
00:04:04
целый месяц семестре
00:04:05
но если вы захотите присоединиться к
00:04:07
преподавательской команде с fifty если
00:04:09
вы задумываетесь о том чтобы стать
00:04:11
помощником или куратором имейте в виду
00:04:13
что мы будем обсуждать это подробнее в
00:04:15
конце семестра на снимке большая часть
00:04:17
команды этого года и так
00:04:18
php я так расстроился на прошлой неделе
00:04:21
что элис старалась обеспечить на с этим
00:04:23
прекрасным реквизитом а я не успел им
00:04:25
воспользоваться но правда глупо
00:04:27
получилось что у нас всю среду здесь зря
00:04:29
провели
00:04:30
лопата и маленькая ложечка но этой
00:04:32
метафоры я всего лишь хотел объяснить
00:04:33
почему мы переходим от языка си к такому
00:04:36
языку как печки то же самое можно
00:04:38
сказать о любом другом языке java питон
00:04:40
руби и прочих в то время как в написании
00:04:42
программы выглядит так будто мы берем
00:04:45
маленькую ложечку и капаем яму в земле
00:04:46
песке или грязи тычки позволяет
00:04:49
разобраться с задачей много быстрее
00:04:51
путем написания гораздо более короткого
00:04:53
кода арт с привлечением меньшего количества
00:04:55
инструментов благодаря его серьезной
00:04:57
функциональности фон для большей
00:04:59
наглядности можно было бы покопать тут
00:05:02
что-нибудь ну да и бог с ним мин другая
00:05:04
метафора о которой мы прибегли
00:05:06
это гаечный ключ в который можно забить
00:05:09
гвоздь хотя конечно более уместным
00:05:12
инструментом тут будет не столько язык
00:05:14
си помочь половой я похоже все испортил
00:05:17
надеюсь сандерс подчинена live arcade
00:05:20
правильным инструментом зачастую будет
00:05:22
мне этот язык низкого уровня снова в
00:05:24
целом и
00:05:25
это не тот язык котором большинство из
00:05:27
вас будут или должны будут пользоваться
00:05:29
в общем небольшой секрет я в основном
00:05:31
работаю си только с сентября по декабрь
00:05:33
каждый осенний семестр это потому что мы
00:05:36
пользуемся все в основном для обучения
00:05:38
основам программирования и основам
00:05:40
компьютерной науке
00:05:41
структуре данных алгоритмам и всему
00:05:44
такому но очень скоро вы увидите что
00:05:46
синтаксис и идеи языка си прекрасно
00:05:49
переносится на более высокоуровневые
00:05:50
языки такие как печки бетон и pearl java
00:05:54
объекте всей хотя объекте всей не совсем
00:05:57
еще свифт это более современные языки на
00:06:01
которых многие из вас и будут писать
00:06:03
финальный проект хотя и так без лишней
00:06:05
суеты давайте пользоватся печкой для
00:06:08
решения задач вам помните на прошлой
00:06:10
неделе в еде и счастливцев мы написали
00:06:13
изящную маленькую программу которая
00:06:16
выводила халлоу
00:06:17
потом не сохранила в файле халат . печь
00:06:20
пятна
00:06:21
а потом задал эту команду а зачем было
00:06:23
простыми словами что это значит что я
00:06:26
сделал да в такую команду да есть такая
00:06:28
функция печки которая считывает
00:06:31
и понимает что там когда есть некая
00:06:33
функция от печь и точнее есть программа
00:06:35
под названием печки
00:06:36
она же интерпретатор которая понимает
00:06:38
содержимое хлопаешь и интерпретирует его
00:06:41
сверху вниз слева направо и делай то что
00:06:43
говорят эти команды в команды в печке
00:06:46
это конечно просто исходный код функции
00:06:48
и переменные циклы и тому подобное
00:06:50
которую мы сами начали писать напичкана
00:06:53
в отличие от c который компилируются код
00:06:55
на печке вы просто пишете и запускаете
00:06:57
не нужен промежуточный шаг с переводом в
00:06:59
нули и единицы сразу запускаем программу
00:07:02
and в чём здесь преимущество почему мы
00:07:04
пропускаем шаг это не почему большинство
00:07:06
современных языков стремятся и
00:07:08
пропустить этот шаг в чем плюс ну так
00:07:16
интуитивно даже если мы пока немного
00:07:18
написали на печке в чем преимущество
00:07:20
того что кот не компилируется как вы
00:07:22
думаете мне такая не рискнешь просто
00:07:24
голову почесал больше динамики что-то
00:07:29
имеешь ввиду если входных данных много
00:07:31
то уходит куча времени каждый раз да
00:07:35
хорошо итак вам не приходится
00:07:37
компилировать программу каждый раз после
00:07:38
нового года вот и все дела в чем смысл
00:07:41
постоянно компиляции кода это просто шаг
00:07:43
необходимо сделать как на протяжении
00:07:44
последних недели в два раза больше шагов
00:07:46
по сравнению с простым запуском
00:07:48
программы теперь он полезен чтобы
00:07:49
увидеть какие-то ошибки и так далее но
00:07:51
это просто лишний шаг и однажды
00:07:53
программиста задались вопросом почему бы
00:07:54
не начать придумывать языки в которых не
00:07:56
будет такого откровенно механического
00:07:58
шага о которых можно просто написать код
00:08:01
и запустить его ну какую цену пришлось
00:08:03
заплатить как мы увидели на прошлой
00:08:05
неделе на конкретном примере спида
00:08:07
скорость интерпретатора слегка
00:08:08
медлительны нули и единицы компьютер
00:08:11
понимает быстро потому что центральный
00:08:12
процессор intel или любой другой просто
00:08:14
понимает что происходит со всеми этими
00:08:16
битами а вот интерпретатор
00:08:18
это программа которая приходится читать
00:08:20
исходный код аске который вы написали и
00:08:22
конвертировать его так сказать тире
00:08:24
догадываться как бы он сконвертировал ся
00:08:27
в нули и единицы так что это немного
00:08:29
сказывается на производительности такая
00:08:31
вот цена давайте-ка рассмотрим это на примере
00:08:33
сейчас я напишу здесь программку файлы
00:08:36
заходим сюда
00:08:38
новый файл сохраняя его опять как флот .
00:08:41
печь берем коллег и дальше пишу print
00:08:43
hello will allow a rating
00:08:46
и помните я могу использовать print они
00:08:48
принтер надо теперь ниже пишу печь и
00:08:51
ахилла . печки
00:08:53
а похоже де интерпретировал что сделал
00:08:57
не так да нам нужны угловые скобки
00:09:01
сверху сначала слегка раздражает есть но
00:09:03
вы быстро привыкнете если я пишу код на
00:09:06
печке я должен сказать программе
00:09:08
интерпретатору php вот себе печки код и
00:09:11
в довершение я должен закрыть скобки но
00:09:14
не так же а только с одним знаком
00:09:16
вопроса
00:09:17
теперь внизу если запущу программу то
00:09:19
получу желаемый результат зол
00:09:21
а давайте немного оптимизируем как мы
00:09:23
делали раньше слегка раздражает что при
00:09:25
запуске надо писать течки пробел холо .
00:09:28
. ведь раньше я мог просто написать в .
00:09:30
слышу имя программы и это было удобно
00:09:32
экономила пользователю время от печь и
00:09:35
это можно сделать тайский
00:09:37
воспользоваться вот таким иероглифом
00:09:40
здесь сверху который называется еше банк
00:09:43
пути состоит из решетки и
00:09:45
восклицательного знака всем и это путь к
00:09:47
программе в типичный linux системе
00:09:49
который называется среда in warm on
00:09:51
wings of и эта строка короче говоря
00:09:54
строка номер один просто говорит она и
00:09:56
компьютер найди мне печку интерпретатор
00:09:59
в этой среде то есть найди его в своей
00:10:01
памяти и хорошо то что если теперь внизу
00:10:05
эмоций я пишу . слышь хэллоу
00:10:09
. пилочки low дабке или а в разрешении
00:10:13
отказано вы часто будете встречаться с подобным в
00:10:15
седьмом задачники если уже не довелось
00:10:18
разрешение оказывается мне нужно
00:10:20
выполнить эту команду чем мог изменить
00:10:22
режим и плюс x хэллоу точка php
00:10:26
мне нужен этот дополнительный шаг чтобы
00:10:28
сказать своему компьютеру сделай халат .
00:10:31
php исполняемым файлом
00:10:33
а теперь смотрите . слышала . печки
00:10:35
запускается больше мне не нужно
00:10:37
обозначать интерпретатор
00:10:39
можно сделать еще красивее переименовав
00:10:41
вот это
00:10:42
временную халат . печкой просто hollow
00:10:44
смотрите смело сверху имя программы
00:10:46
теперь просто хэллоу то есть я могу
00:10:48
сделать ее похожей на программу носи
00:10:50
хоть это и php или на любом другом языке
00:10:53
просто небольшая оптимизация никакой
00:10:55
функциональной разницы
00:10:56
но что интересно теперь вы можете писать
00:10:58
программы на любом языке и пользователю
00:11:00
не обязательно знать на каком именно
00:11:02
а теперь давайте взглянем на более
00:11:05
интересный пример который я набросал
00:11:07
заранее программа называется као лак
00:11:08
точка php
00:11:09
она доступна в сети она довольно
00:11:11
короткая но это консольная программа и
00:11:13
она будет искать для меня биржевые цены
00:11:15
об очень похоже на то что вы встретите в
00:11:17
задачнике номер семь давайте посмотрим
00:11:19
где о нет в самом верху скобки
00:11:21
открываются ? печь и потом у меня строка
00:11:24
где я запрашиваю файл с именем
00:11:25
functions.php мы еще разберем это
00:11:28
подробнее но в целом это аналог решетки in cloud
00:11:30
все когда вы хотите включить в код
00:11:32
другой файл php для этого есть
00:11:34
конструкций арековая хотя функция
00:11:36
ренклод в нем тоже имеется он файл
00:11:38
functions.php написал заранее перед
00:11:40
занятием я положил его в тот же каталог
00:11:42
потому что хотел вынести за скобки некий
00:11:44
код который мы можем использовать где-то
00:11:46
еще в общем вы наверное сами можете
00:11:48
догадаться что здесь происходит немного
00:11:50
отличается от c но что я имею ввиду под
00:11:53
убеждаемся верном использование
00:11:54
переведите это на более технический язык
00:11:56
при каких обстоятельствах я завершаю
00:11:58
или выхожу из программы до когда у меня
00:12:03
нет двух аргументов командной строки
00:12:05
помните что один из этих аргументов или
00:12:07
самой программы
00:12:08
а второе другое слово которую я пишу
00:12:10
после подсказки то есть как и все так я
00:12:12
проверяю выполняет ли пользователь
00:12:14
программу как это было задумано
00:12:15
а теперь кое-что новенькое по сравнению
00:12:17
с во первых тут есть знак доллара а что
00:12:19
знак доллара значит печки
00:12:22
просто переменную и все просто
00:12:24
переменную и за этим знакам следует ее
00:12:26
имя обратите внимание моя печкой
00:12:27
программе кое-что пропущено по сравнению
00:12:29
с и как и на прошлой неделе что это
00:12:32
типы да но кое что еще ты мне чего-то
00:12:38
связанного с функциями функции main
00:12:41
здесь нет функции main
00:12:43
вы начинаете писать код не беспокоясь об
00:12:45
абсолютно условном провели называть
00:12:47
некую стандартную функцию main
00:12:48
arxi это просто глобальная переменная
00:12:51
которую интерпретатор
00:12:53
не предоставляет а вот дальше интересная
00:12:55
сам поиск толочь слева знак доллара сток
00:12:58
это моя переменная справа очевидно
00:12:59
функция которая в печке называется
00:13:01
lookup поиск которые я передаю свой
00:13:03
последний аргумент командной строки
00:13:05
какое-то слово через минуту посмотрим
00:13:07
как это работает и наконец программа
00:13:09
сообщает цену выдаёт 1 акция такого-то и
00:13:13
помните что в печке есть способ особый
00:13:15
способ когда больше не надо писать знак
00:13:18
доллара с ним а можно просто фигурных
00:13:20
скобках указать переменную и то же самое
00:13:22
спринтер она не нужно их слову когда
00:13:24
помещаете переменной в двойные кавычки
00:13:25
как здесь вы используете сложную технику
00:13:28
под названием интерполяция переменных
00:13:30
она просто означает вставить переменную
00:13:31
сюда сменить кстати кто пришел к нам с
00:13:34
опытом программирования на других языках
00:13:36
помните нельзя использовать для этих
00:13:38
целей одинарные кавычки со строкой
00:13:40
внутри
00:13:41
для интерполяции переменных нужды
00:13:42
двойные кавычки а иначе вы в буквальном
00:13:44
смысле увидите те самые фигурные скобки
00:13:47
и наконец давайте запустим нашу
00:13:48
программу
00:13:49
увеличу окошко терминала но и так
00:13:52
запускаю внутри каталога ок вот сиди
00:13:57
source 8-м coat печь pequod точка php и
00:14:01
я еще нечто под названием гук этот
00:14:04
стикер биржевой код google итак 1 акция
00:14:07
уже под новым названием lgd.int стоит на
00:14:09
сегодня 717 долларов если запустим снова
00:14:12
кто подскажет другой биржевой код
00:14:14
который хотите поискать майкопа
00:14:18
microsoft кажется такой msft
00:14:20
53 доллара а у яху наверное такой а вот
00:14:25
фейсбук и так что же делает эта
00:14:28
программа кажется эта функция lookup
00:14:30
обладает какой-то магии давайте
00:14:31
посмотрим похоже она не встроены в печке
00:14:34
а берется из spunk шанс . печки не будем
00:14:37
сильно вдаваться в детали но обратите
00:14:38
внимание на это ключевое слово в строке
00:14:40
6 файл functions.php ведь я буквально
00:14:43
говорю фанкшн я обозначаю имя свои
00:14:45
функции дальше обозначая все аргументы
00:14:47
или параметры которые хочу чтобы эта
00:14:49
функция приняла ни каких типов и потом
00:14:51
выполняю и и не будем останавливаться на
00:14:54
выполнение сейчас до этого уровня мы еще
00:14:56
доберемся через неделю в задачнике номер
00:14:58
семь это теперь можно стереть
00:15:01
я также включил в сегодняшней код версию
00:15:04
файла cvut который не имеет расширение
00:15:06
печки потому как что заранее обозначено
00:15:09
в самом верху программа под названием к
00:15:11
вот тот самый так называемый банк
00:15:13
настоящие крипто графическое обозначение
00:15:15
которое говорит найди печки и запусти
00:15:18
его в моем коде итак мы подошли к тому
00:15:21
на чем остановились в прошлый раз только
00:15:23
с более сложными примерами есть вопросы
00:15:25
по php или тому что мы тут делали нет
00:15:29
хорошо да внутри файла html тоже
00:15:33
используется she банк или можно просто
00:15:35
вызвать хороший вопрос в веб контексте
00:15:39
которому мы скоро подойдем и вот так
00:15:41
называемый шаман не используется в
00:15:44
начале кода потому что web-серверы
00:15:46
например apache или microsoft
00:15:48
ой ой с интернет informations сервер или
00:15:50
любой другой веб-сервер знают что когда
00:15:53
им встречается файл . печки надо
00:15:56
запускать для него интерпретатор
00:15:57
они не смотрят на первую строчку
00:15:59
хитрость первой строкой нужно только
00:16:01
когда мы пишем программы с командной
00:16:03
строкой
00:16:04
а мы это будем делать не часто мы таким
00:16:07
способом связываем наши примеры вас с
00:16:09
php
00:16:10
ну что же давайте перекинем мостик между
00:16:13
миром командной строки и сетью следующим
00:16:16
образом я сейчас нарисую кое-что здесь у
00:16:21
нас есть веб-сервер или лучше мой
00:16:24
ноутбук нарисую его так а тут у нас интернет вот
00:16:29
такой вот а здесь сервер в здании
00:16:31
так работает интернет здесь находится
00:16:34
сервер
00:16:35
г множество лампочек что же происходит
00:16:38
между тремя этими элементами в этом
00:16:41
здании веб-сервер это просто компьютер
00:16:43
на котором работает некая операционная
00:16:45
система может быть свободна и п о х патч
00:16:47
которая запускается aldi
00:16:49
исчез fifty так что его можно
00:16:51
представить как здание где находится иди
00:16:53
и seas fifty именно здесь хранятся все
00:16:55
ваши профили здесь работают все ваши
00:16:58
собственные серверы здесь собраны все
00:17:00
ваши уникальные url-адреса о которых мы
00:17:02
начали говорить с которыми вы еще
00:17:04
встретитесь задачники номер 6 а вот мой
00:17:06
ноутбук где-то еще на просторах
00:17:09
интернета и когда я захожу на свой url
00:17:11
интернет трафик идет через сервер сервер
00:17:13
получает запрос http в виде get индекс
00:17:16
точка html и отвечает этой веб-странице
00:17:18
такова общая схема причем все вплоть до
00:17:21
сегодняшнего дня происходило только в
00:17:22
границах этого здания и использовал свой
00:17:25
ноутбук окно подключался к айди исчез fifty то
00:17:28
есть все программы которые я запускал вы
00:17:30
находились на этом самом сервере
00:17:32
но теперь давайте использовать php
00:17:34
по-другому чтобы писать настоящие
00:17:37
программы которые будут обслуживаться
00:17:39
веб-сервером он или давайте я приведу
00:17:41
вам несколько приведу вам немало
00:17:43
примеров которые проиллюстрируют эту
00:17:45
идею вот достаточно наглядный способ
00:17:47
описать схему программирования на самом
00:17:50
деле когда вы закончите курс с fifty
00:17:53
или будете работать над финальным
00:17:55
проектом или продолжить обучение
00:17:57
вы начнете понимать что мир особенно те
00:17:59
кто привык к таким низким уровнем языкам
00:18:02
как си вы поймете что есть лучшие
00:18:04
способы писать программы есть
00:18:06
определенные шаблоны которое можно
00:18:08
использовать особые способы организации
00:18:10
файлов анти наименования функций короче
00:18:13
говоря в мире полно всяких разных
00:18:16
акроним of способов программирования это
00:18:19
просто техники которую вы можете
00:18:21
использовать одна из них называется м
00:18:23
виси модель представления контроля и в
00:18:26
нашем случае это просто более витиеватый
00:18:28
способ сказать как вам следует
00:18:30
подстроить веб-сайт на печке
00:18:32
то есть как вы организовывается свой
00:18:34
файл и стройте свою логику все это
00:18:36
несколько облегчает написание более
00:18:38
сложных веб-сайтов
00:18:39
кстати с этим вы столкнетесь в седьмом
00:18:42
задачники и так на схеме mvc вы увидите
00:18:45
что ваш код можно в целом
00:18:47
охарактеризовать либо как кот модель
00:18:49
либо как кот контроллер либо как код
00:18:52
представления если говорить проще the controller это
00:18:55
мозги и вашей программы
00:18:56
именно здесь реализуется вся интересная
00:18:58
логика все что мы до сих пор писали в
00:19:00
классе это своего рода код контроллер он
00:19:03
контролирует вашу программу ваши циклы
00:19:04
ваши условия ваши функции переменная и
00:19:06
прочее представление становятся более
00:19:08
важными именно в программировании о
00:19:11
представлении вид это эстетика вашего
00:19:14
сайта это то что пользователь видит
00:19:16
изображение таблице html теги html и
00:19:19
тому подобное 10 тонкая эстетика которую
00:19:22
не сложно написать то как представлен
00:19:24
ваш сайт его внешний вид эстетика а
00:19:26
модель это некая база данных то во что
00:19:28
мы начнем погружаться в среду сок не так
00:19:32
контроллер это логика представление эта
00:19:34
эстетика а модель это место где мы
00:19:36
храним собственно данные судачит давайте
00:19:39
разберем все подробнее на следующем
00:19:41
примере я захожу в свой каталог
00:19:43
сегодняшнего исходного кода он доступен
00:19:45
онлайн
00:19:46
захожу версию 0 и что мы видим entire
00:19:51
назовем это версия 0 веб-сайт оси с
00:19:54
fifty здесь смотреть особо не на что это
00:19:57
очень простая веб-страница в которой
00:19:59
используются какие-то идеи чтим л
00:20:02
попробуйте догадаться из примеров какие
00:20:04
еще один возможно для этого жирного
00:20:06
заголовка этого логотипа seas fifty
00:20:08
наверху а какие еще до
00:20:11
маркированный список то есть т п о л и
00:20:14
может быть теги
00:20:15
л ой он из логан не страшно если забыли
00:20:17
есть много элементов из темы которые
00:20:19
легко найти и которым вы будете
00:20:21
частенько возвращаться а мы лучше
00:20:23
сфокусируемся на более интересных
00:20:24
программистских задачах давайте быстро
00:20:26
посмотрим на html если я открою
00:20:28
посмотреть исходный код то мы увидим что
00:20:30
же здесь происходит вот так ю.л. внутри
00:20:34
него два того л ой и дальше я
00:20:37
позаимствовал viorel настоящего курса а
00:20:39
файле lectures . печь и другая
00:20:43
динамически созданная страница в которой
00:20:46
а 2 1 неделю лекции 0 и 1 неделя давайте
00:20:49
на них посмотрим посмотреть исходный код
00:20:51
тоже все просто
00:20:52
эти файлы ведут к двум страницам вик 0 и
00:20:57
печки и викодин печки
00:20:59
ведь смотрите что происходит когда я
00:21:01
кликаю
00:21:02
навек 0 hp мой ноутбук
00:21:05
запрашивает весной php the babies
00:21:09
веб-сервер он же аиде исчез fifty
00:21:11
получает виртуальный конверт
00:21:13
он воспринимает сообщение как получить
00:21:15
вид 0.5 и далее он интерпретирует файл
00:21:18
сверху вниз слева направо файл под
00:21:21
названием вид 0 php и выдает результат
00:21:24
то есть внутри этого файла вик 0 hp
00:21:26
должен быть логический контроллер
00:21:28
который генерирует этот html
00:21:30
ему скоро это увидим а пока кликаем
00:21:32
навек 0 тот у нас среда и пятница и
00:21:35
медленно загружаются слайды с 0 видеть
00:21:37
недели
00:21:38
делать возможно вы их помните это вот
00:21:42
что делает этот веб-сайт
00:21:44
давайте посмотрим как он это делает
00:21:46
возвращаюсь к исходному коду
00:21:48
в редакторе ses фихте и открываю индекс
00:21:50
. печки
00:21:51
верху этого файла множество комментариев
00:21:53
а в середине похоже вообще нет печь
00:21:55
pic-кода в печь ведь если у вас нет
00:21:57
печки тегов со скобками и знаком вопроса
00:21:59
об тогда вы просто пишете на html this
00:22:03
поречкина ведь что сделает интерпретатор php когда
00:22:06
он прочитает
00:22:07
этот файл сверху вниз слева направо он
00:22:09
будет интерпретировать только тот код
00:22:11
который найдет между этими угловыми
00:22:13
скобками со знаком вопроса а все что он
00:22:15
не распознает как печь и он просто
00:22:17
выводит и html он тоже выводит
00:22:20
наряду с прочим так что этот файл мог бы
00:22:22
называться индекс точка html но я
00:22:24
называю все . печки на данном этапе
00:22:26
lectures . печки тоже самый обыкновенный
00:22:29
html-файл весной . печки тоже какой-то
00:22:33
html
00:22:34
но давайте представим себя настоящими
00:22:36
инженерами и подумаем как можно это
00:22:38
оптимизировать это не очень сложно но
00:22:41
придется скатиться до копипаста если
00:22:44
вспомнить вторую неделю догадайтесь что
00:22:46
я собираюсь сделать я собираюсь перейти
00:22:48
к файлу вик от
00:22:49
php и все выделить и скопировать и
00:22:52
вставить в новый файл под названием вик
00:22:54
2 точки печь и подкорректировать и
00:22:56
url-адреса и вуаля исходя из того что мы
00:22:58
знаем оси
00:22:59
этот вариант должен быть для вас не
00:23:01
лучшим об копии вставки вообще редко
00:23:03
становится хорошим решением что же нам
00:23:05
делать таким образом подкорректировать
00:23:08
структуру программы
00:23:10
восьмой неделе занятий
00:23:12
кажется тем более странным решение
00:23:15
менять шрифт каждой странице или
00:23:16
структуру шаблона вот так как же нам так
00:23:19
вчера дала и справиться с вы со
00:23:21
структурой программы
00:23:26
давайте ка посмотрим что общего у всех
00:23:28
этих файлов вот викодин вот вик 0 вот
00:23:31
lectures.php вот windex на копеечки что
00:23:36
грубо говоря у всех этих файлов
00:23:38
общего и чем они отличаются
00:23:44
да у них общее содержимое отличаются
00:23:51
лекции только номерами
00:23:53
12 до хорошо итак есть общая схема
00:23:58
каждый раз когда я выбираю какую-то из
00:24:01
лекций у меня открываются почти
00:24:02
одинаковые страницы и наверное я могу
00:24:05
воспользоваться тем фактом что мы
00:24:06
предусмотрительно пронумеровали лекции
00:24:08
если развернуть твой ответ единственное
00:24:11
что на самом деле отличает файлы вик 1 и
00:24:14
дайте-ка я прокручу чтобы они были
00:24:15
примерно на одном уровне смотрите вот
00:24:18
неделя 0 сверху недели 1 неделя 0 недели
00:24:23
1 неделя 0 в общем даже если совсем не
00:24:28
знать что такое программа то можно
00:24:30
сказать что это похоже на игру найди
00:24:31
отличия где же отличие да когда меняется
00:24:35
название тайтон хоть и мало заметно но
00:24:37
меняется на единица та же самая в теге
00:24:39
h1 и еще нам это сложнее заметить потому
00:24:42
что адреса url длинного ты но
00:24:44
они тоже немного меняются при этом
00:24:46
осмелюсь предположить вообще не меняется
00:24:49
содержимое страницы
00:24:50
так html точно такой же хоть точно такой
00:24:53
же тайтл почти такую же вроде тоже самое
00:24:56
и почти все остальное без изменений
00:24:58
кроме небольших поправок что же нам со
00:25:00
всем этим делать покажу на следующем
00:25:02
примере
00:25:03
эта версия 1 здесь точно такие же файлы
00:25:05
плюс парочка новых
00:25:07
вот яндекс . печки и не даже если вы
00:25:10
никогда раньше не видели .
00:25:12
можно догадаться что я делаю и майк
00:25:15
чтобы решить эту проблему на основании
00:25:19
того что видите
00:25:25
эндо хочешь попробовать нет яда
00:25:28
пожалуйста я
00:25:40
говори пожалуйста чуть чуть погромче
00:25:50
окай хорошо и по тебя было не очень
00:25:53
хорошо слышно но думаю ты пыталась
00:25:55
сказать что теги характерные для нижней
00:25:58
выносятся за скобки не убей или
00:26:01
собираются в какие общие файлы от files
00:26:05
хедер . печь пик да и footer . печки и
00:26:09
мы кое-что подправим чтобы разобраться с
00:26:11
твоим вопросам по поводу меняющихся
00:26:13
чисел если я правильно тебя расслышал
00:26:14
ведь именно в этом весь смысл если у нас
00:26:17
излишки вверху страницы и внизу страницы
00:26:19
есть что убрать давайте просто выделим и
00:26:22
вырежем эти куски поместим в отдельный
00:26:24
файл подобный принцип использовался в
00:26:26
css где мы так же убрали за скобки
00:26:28
данный поместив их в отдельный печки
00:26:30
файл
00:26:31
использовали конструкцию рик vaio
00:26:32
похожую на in cloud все это то же самое
00:26:34
что сказать возьмись содержимое файла
00:26:37
header.php скопируй и вставь его сюда но
00:26:40
что в результате теперь в яндекс . печки
00:26:43
у меня эти две строчки в lectures .
00:26:46
печки у меня те же две строчки этого
00:26:48
века но и . печки
00:26:49
свежая две строчки и теперь если я хочу
00:26:53
поправить названия всех моих страниц или
00:26:55
изменить базовую структуру то у могу
00:26:57
сделать это в одном месте а вернее в
00:26:59
двух header и footer соответственно
00:27:01
mclaren теперь код начинает выглядеть
00:27:03
менее понятным да но если задуматься что
00:27:05
здесь происходит если я запрашиваю вик
00:27:08
но и . печки как на этой картинке когда
00:27:12
запрашивается вид 0.55 что это значит
00:27:15
буквально браузер запрашивает этот файл
00:27:18
веб-сервер он же и dcs фихте берет этот
00:27:20
файл весной точка php и читает его
00:27:23
сверху вниз слева направо в строке 1
00:27:25
сразу встречает открытую скобку знак
00:27:27
вопроса php
00:27:28
рик vaio федор . печь и идти и что же
00:27:32
делает интерпретатор печки который для
00:27:33
вашего удобства встроенный веб-сервер
00:27:35
он автоматически идет файл header.php и
00:27:38
копирует содержимое и вставляет его сюда
00:27:40
а затем интерпретатор наталкивается на ?
00:27:43
и закрытую скобку и понимает что все
00:27:45
выполнено дальше он слепо выдает строки
00:27:47
со второй
00:27:48
ну и потому что это чистый html
00:27:49
переходят к строке номер 8 и совершать
00:27:52
те же волшебные действия открывает файл
00:27:54
берет содержимое и включает то есть
00:27:56
вставляет его куда нужно курить чего
00:27:58
палок но я упомянула баги необходимости
00:28:00
корректировки вернёмся чуть назад если
00:28:02
посмотреть на хедер . певички я можно
00:28:05
сказать пошел простым путем чем я
00:28:07
пожертвовал ради этого сомнительного
00:28:08
улучшения структуры до структурой да я
00:28:13
скажем так пожертвовал важным моментом
00:28:15
вы отметили что у нас менялся до этого
00:28:18
цифра в заголовке и цифра в еще один я
00:28:21
решил давайте просто переименуем
00:28:23
страницу о самой проблему оставим так
00:28:25
без сомнения это частичный шаг назад
00:28:28
но нужно отметить что с другой стороны
00:28:30
мое действие вынесли за скобки общие
00:28:32
элементы так и в footer.php
00:28:34
обратите внимание я тоже избавился хотя
00:28:36
и в меньшей степени суад повторов
00:28:38
одинаковых данных так что теперь мне
00:28:42
надо как-то сделать шаг вперед и
00:28:43
исправить все эти проблемы с тайтл
00:28:45
май давайте так и поступим у 4 идем к
00:28:49
второй версии
00:28:50
в которой те же файлы кроме одного
00:28:52
новшества он чуть более сложную но
00:28:54
давайте посмотрим сможем ли мы распутать
00:28:56
что здесь происходит вместо того чтобы
00:28:58
запрашивать header.php и footer.php
00:28:59
сенти похоже я запрашиваю только один
00:29:02
файл который называется очевидных
00:29:03
helpers.php
00:29:04
и хочу отметить что файл helpers.php
00:29:07
лишь набор написанных мной функции пить
00:29:10
как и раньше просто я назвал его
00:29:11
helpers.php вы видите что в 3 и 10
00:29:15
строках я вызываю две функции рендер
00:29:17
хедер и renderfooter они не из печки я написал
00:29:20
их сам и поместил helpers . php
00:29:23
мы уже видели такой синтаксис но
00:29:25
подробно не останавливались очевидно что
00:29:27
это аргумент функции рендер федор как я
00:29:29
это понял one потому что вот закрывающая
00:29:32
скобка а вот открывающие кошки также как
00:29:35
все все что внутри скобок это входные
00:29:37
данные или аргумент функции и каков тип
00:29:39
этого аргумента если посмотреть на
00:29:41
выделенный кусок и что означает эти
00:29:43
квадратные скобки которые мы разбирали
00:29:44
на прошлой неделе да это массив а именно
00:29:47
ассоциативный массив аки этот синтаксис
00:29:49
признаться немного заумный но он просто
00:29:52
передает пару ключ значения ключ это
00:29:54
тайтл в кавычках а значение id
00:29:56
сейчас fifty если бы мы писали код все
00:30:00
то выглядело бы это так просто ses fifty
00:30:03
в кавычках
00:30:04
или в фигурных скобках или что-то в этом
00:30:06
роде
00:30:07
в общем ключом был бы 0 а значением сию
00:30:10
свифти но все-таки хотя синтаксис печки
00:30:13
кажется странным он позволяет с помощью
00:30:15
слов они цифр
00:30:16
связать ключи и значения и так что всё
00:30:19
это значит зайдем в helpers.php и
00:30:21
посмотрим на эту функцию рендер feeder .
00:30:25
речь перед вернее рендер хыгр вот моя
00:30:27
функция и я знаю это благодаря ключевому
00:30:30
слову в панк шин вот здесь все и в этом
00:30:32
отличие от театра к функция принимает
00:30:35
аргумент да это я могу назвать его как
00:30:37
угодно но я назвал его да это для
00:30:40
ясности попробуйте догадаться особенно
00:30:42
если вы уже программировали раньше на
00:30:44
языках высокого уровня по вы 6 что
00:30:46
означает равно квадратные скобки или что
00:30:49
это могло бы обозначать he такого не
00:30:51
было да это значит что если пользователь
00:30:56
не вызывает рендер headers аргументом у
00:30:59
меня всё равно будет аргумент дельта
00:31:01
но его значением по умолчанию будет
00:31:03
пустой массив это очень удобно мне не
00:31:06
надо ругаться на пользователя или
00:31:08
говорить ошибка в использовании функции
00:31:10
я могу просто вы дать пользователю
00:31:12
значения по умолчанию если мне не
00:31:14
принципиально что же с моей функции
00:31:16
разобрались а эта функция экстракт
00:31:18
импортировать позволяет нам передать эти
00:31:20
переменные в дейта в header.php
00:31:22
следующим образом пожалуй это последний
00:31:25
кусок непривычного синтаксиса
00:31:27
это новая версия моего ходор . . раньше
00:31:30
было просто тайтл в скобках
00:31:31
исчез fifty то же самое с речь один
00:31:34
теперь же здесь нечто довольно странная
00:31:36
давайте на минуту упрощу это следующим
00:31:39
образом эпплов а вот как я изменил свое название
00:31:42
но как-то не очень смотрится эти
00:31:45
постоянные открывающие скобки спички и
00:31:47
потом еще функция print оказывается в
00:31:49
печке это можно оформить проще всего
00:31:51
лишь знака равно технически являющийся
00:31:53
функции f
00:31:54
которую можно использовать вместо принты
00:31:56
но на деле это одно и то же но выглядят
00:31:58
лучше и это своего рода синтаксически
00:32:01
бонус если хотите который немного
00:32:02
улучшает мой кот но кроме того и мы
00:32:05
скоро это увидим нам надо вызвать это
00:32:07
ужасно длинную функцию под названием
00:32:09
html спешил встреч и поскольку
00:32:12
оказывается есть такие входные данные
00:32:13
которые может дать нам пользователь или
00:32:16
пользователи данные которые могут
00:32:18
сломать наш сайт но мы увидим это на
00:32:21
следующей неделе с языком java-script а
00:32:23
пока просто знаете что файл header.php
00:32:26
просто принимает название которое я
00:32:28
передал убеждается что оно безопасно и
00:32:30
его можно вставлять в веб страницу и
00:32:32
выдает его в качестве тайтл и эйч-1 итак
00:32:35
если я зайду сейчас в эту версию
00:32:37
смотрите отображается название лекции
00:32:40
отображается название неделя номер ноль
00:32:42
и обратите внимание html который я
00:32:45
разрабатываю идентичен моей первой
00:32:46
версии кроме пробелов потому что я начал
00:32:49
форматировать свой код немного
00:32:50
по-другому но весь код который был нужен
00:32:53
готов давайте остановимся на минуту
00:32:55
вдруг у кого-то есть вопросы
00:32:56
относительно того что я написал хорошо
00:33:00
тогда давайте за вертим еще круче чтобы
00:33:03
посмотреть как не взяли здесь еще
00:33:05
что-нибудь улучшить all hell пирс .
00:33:07
была еще одна функция под названием
00:33:09
renderfooter что примечательного в
00:33:12
render header и renderfooter
00:33:14
кстати имейте в виду что на сегодняшний
00:33:17
день функция экстракт и всего лишь мой
00:33:19
способ передать аргументы в header.php и
00:33:23
footer.php
00:33:25
тогда да я просто изменить строку с
00:33:30
рекой а то есть а я опять опустился до
00:33:32
копипаста конечно здесь не куча строк но
00:33:34
послушайте если я просто копирую и
00:33:36
вставляю изменяя всего одно единственное
00:33:38
слово и это одно слово как отметил а вон
00:33:42
здесь footer от тут хедер все остальное
00:33:44
идентично кроме конечно имен функций 40
00:33:47
что же мы можем улучшить давайте откроем
00:33:50
эту версию где helpers.php почему бы мне
00:33:53
не сделать тут умнее написать немного
00:33:55
более сложный код но назвать его
00:33:58
эндеры отображения что принципиально
00:34:00
изменил она теперь принимает аргумент
00:34:03
вернее два аргумента d&d по-прежнему
00:34:05
а что же может означать первое слово
00:34:07
судя по тому что вы здесь видите даже
00:34:10
если синтаксис здесь незнакомой что
00:34:13
такое знак доллара template
00:34:16
да а федор или фута то есть я решил что
00:34:20
если единственное что меняется это
00:34:22
шаблон который я хочу напечатать а под
00:34:25
шаблоном я имею в виду заготовку кода
00:34:27
который я хочу вывести добавив некоторые
00:34:29
значения этих вот если это только хедер
00:34:32
или footer почему бы мне не обобщить и
00:34:35
не назвать аргумент знак доллара
00:34:36
template
00:34:37
а этот заковыристый синтаксис позволяет
00:34:39
мне создать переменную path путь знак
00:34:42
доллара по эта переменная что означает этот
00:34:44
синтаксис кто в курсе .
00:34:50
если template хедер в кавычках или если
00:34:52
template future в кавычках да то это
00:34:54
выделенная строка строка номер восемь
00:34:57
просто принимает это именно пример хедер
00:34:59
и соединяет его с точкой печки со всей
00:35:01
не было такого оператора этот оператор .
00:35:04
удивительная вещь .
00:35:06
если вам знаком java script или java то
00:35:09
там для соединения можно использовать
00:35:10
знак + сиси это сплошная головная боль и
00:35:14
мне очень жаль ну шестом задачники вам
00:35:16
придется помучиться чтобы это сделать
00:35:18
связать строки почему потому что если у
00:35:20
вас одна строка такой длины а другая
00:35:22
такой у вас не получится просто их
00:35:23
соединить что вместо этого придется
00:35:25
сделать все да я вам придется выделять
00:35:28
память или использовать массив стеки и
00:35:30
придется сделать массив достаточно
00:35:31
большим чтобы вместить это
00:35:33
это да еще и обратный слеш ноль потом
00:35:35
соединить их вместе с помощью stern кит
00:35:37
или вручную циклом for
00:35:39
или применить какую-то еще технику с
00:35:41
парочка из них мы знакомим вас в
00:35:43
задачнике под номером 6 а еще головная
00:35:45
боль вот что я имею в виду когда сравниваю
00:35:47
это и и to see pea шпиль
00:35:49
вам на халяву достается столько всего
00:35:51
функционального что можно в идеале
00:35:52
сфокусироваться на самой интересной
00:35:54
части работы на задача которые вы хотите
00:35:57
решить они на низкоуровневых
00:35:58
алиханова эти так здесь создается
00:36:00
header.php и footer.php
00:36:03
зависимости от того что я вызываю и если
00:36:05
я открою
00:36:06
индекс точка php обратите внимание на
00:36:08
изменения вместо вызова рядах ядер или
00:36:10
рендер footer чья вызывая рендер а
00:36:12
дальше имя шаблона который я хочу применить вы
00:36:15
также это увидите в седьмом задачники
00:36:17
где мы даем вам возможность помощью той
00:36:19
же функции создавать множество разных
00:36:21
веб-страниц ладно вместо того чтобы без
00:36:24
конца разбирать детали которой вы
00:36:25
встретите снова в задачнике номер 7
00:36:27
давайте посмотрим на начало решения
00:36:30
более интересной задачей тасс пока
00:36:32
ничего из того что мы сделали
00:36:34
не сохраняла данные на самом деле
00:36:36
единственный раз когда мы что-то
00:36:37
сохраняли на лекции это когда у нас была
00:36:40
очень простая дымка не так давно где мы
00:36:42
использовали файловый ввод-вывод все
00:36:44
оси по моему я вводил свое имя имя хана
00:36:47
янамари или энди и потом мы сохраняли
00:36:51
этот файл csv и конусе воры тут вильнюс
00:36:53
это обозначение через запятую и мы
00:36:55
использовали of a pen i вроде бы f принт
00:36:57
эф насколько я помню и сохраняли файл
00:36:59
мял чтож это самый простой вид база
00:37:01
данных если вы собрались делать веб-сайт
00:37:03
для программы соревнований
00:37:04
первокурсников где новички могут
00:37:06
зарегистрироваться для участия в каком
00:37:08
ты виде спорта вы без сомнения захотите
00:37:09
оперировать этими данными на прошлой
00:37:11
неделе мы ничего с данными не делали
00:37:13
просто подтвердили вы зарегистрированы
00:37:15
или может я еще сообщил куратору
00:37:17
первокурсников у все но было бы здорово
00:37:19
если бы я мог дать им ну все с vip-file
00:37:21
tipo xl
00:37:22
а еще лучше если бы я мог сохранить эти
00:37:24
имена пользователей и их данные в
00:37:26
какой-то базе данных до тех пор пока не
00:37:27
захочу их удалить на базе данных которая
00:37:30
позволяет запрашивать информацию то есть
00:37:32
в обычный базе данных сегодня и на
00:37:34
следующей неделе
00:37:35
мы будем знакомиться с технологией
00:37:37
которая называется сиквел язык
00:37:38
структурированных запросов еще один язык
00:37:41
по сути это язык программирования но для
00:37:43
баз данных из сегодняшнего дня
00:37:45
базу данных следует воспринимать как
00:37:47
более сложную версию microsoft excel или
00:37:50
таблиц google или apple numbers в общем
00:37:53
эта программа которая позволяет хранить
00:37:54
множество данных в строках и столбцах
00:37:57
прямо как в экселе но что здорово
00:37:59
особенно если вы не профиля в экселе это
00:38:02
то что сиквел позволяет вам запрашивать
00:38:04
эту информацию с помощью строк кода
00:38:06
благодаря которым вы можете даже если в
00:38:09
вашей базе миллион рядов находить
00:38:11
информация очень быстро excel не слишком
00:38:13
хорош когда речь идет о большом объёме
00:38:15
данных тяга фактически вплоть до
00:38:17
недавнего времени пиксель позволял
00:38:19
хранить только 65535 строк данных звучит
00:38:23
вроде бы неплохо но я помню как на
00:38:25
последнем курсе споткнулся на этом
00:38:27
потому что создавал для своего
00:38:28
исследования все свои файлы и мне надо
00:38:31
было их быстро анализировать просто
00:38:32
открывая в excel и конечно мой компьютер
00:38:34
зависал потому что у меня было больше
00:38:37
65000 строк но почему именно 65535 что
00:38:41
по-видимому делал microsoft смуглее
00:38:44
эффект г как у вас со степенями
00:38:46
да там используется 16-битное значение
00:38:50
для номера строки а 2 в шестнадцатой это
00:38:52
как раз 65536 5 минус 1 потому что если
00:38:56
считать с нуля то это максимальное
00:38:58
возможное число так и это было просто
00:39:01
структурные решения
00:39:02
экономия 16 бит мне выделили 60 тысяч
00:39:06
строк вместо возможных 4 миллиардов папа
00:39:09
сейчас представим это в сетевом
00:39:11
контексте что еще хорошо в сиквел опять
00:39:13
несмотря на то что он достаточно мощный
00:39:15
и сложный но сводится к четырём ключевым
00:39:18
операциям четырем ключевым функциям если
00:39:20
хотите выбор для поиска и выборки данных
00:39:23
удаления для удаления данных вставка для
00:39:26
добавления с
00:39:27
базу и обновление если вы когда-либо
00:39:30
пользовались таблицами google и полна
00:39:32
амброз microsoft excel вы вероятно и
00:39:34
сами выполняли все эти операции при
00:39:36
помощи клавиатуры и мыши вставляли
00:39:38
данные глазами искали и выбирали данные
00:39:41
обновляли или удаляли их что же это
00:39:44
значит в и действия с fifty установлена
00:39:46
программа мо сиквел это бесплатная
00:39:48
свободная база данных очень популярна
00:39:50
например facebook использует ее по
00:39:52
сегодняшний день на ряду с другими
00:39:53
своими инструментами и многие другие
00:39:55
очень популярные сайты
00:39:57
широко ей пользуются потому что она
00:39:59
быстрая и бесплатная хотя есть и
00:40:01
альтернативы некоторые из вас могут
00:40:03
поработать с ними при подготовке
00:40:05
финальных проектов вот например скриншот
00:40:07
в приложение под названием печь прямо
00:40:09
админ простой совпадение что данные от и
00:40:11
веб-приложения тоже написано на языке
00:40:13
печь пятно предполагается что она
00:40:15
позволяет создать базу данных своим
00:40:17
интерфейсом потому что исторически
00:40:19
сложилось что нормой сиквел можно
00:40:21
работать только посредством командной
00:40:23
строке и было бы неудобно и сложно
00:40:25
набирать текстовой команда чтобы выбрать
00:40:27
данные вставить данные удалить данные
00:40:28
поэтому кто-то в интернете написал
00:40:30
программу для сети которая позволяет нам
00:40:32
управлять данными в нашей базе
00:40:34
это как двойной щелчок на иконке excel
00:40:36
только запускается в версии и вы будете
00:40:38
использовать ее на следующей неделе не в
00:40:40
шестом задачники а чтобы разработать
00:40:42
так называемую все из фив тег fine and в
00:40:44
которой будет база данных пользователей
00:40:46
с их именами паролями и количеством
00:40:48
долларов на их банковских счетах должна
00:40:50
получиться базы где будут храниться
00:40:51
символы и количество акций которые
00:40:53
купили пользователя на виртуальные
00:40:55
доллары которые вы им дадите ещё она
00:40:57
должна позволять пользователям
00:40:59
регистрироваться на сайте так что даже
00:41:00
ваши друзья смогут зайти на сайт
00:41:02
зарегистрироваться залогиниться и
00:41:04
поразвлекаться пытаясь найти ошибки в
00:41:06
вашем коде и баги на веб-сайте они
00:41:08
смогут зарегистрироваться просто
00:41:10
добавится благодаря коду который вы
00:41:11
напишете для своей базы данных вот
00:41:13
например скриншот базы
00:41:15
которая примерно может получиться пример
00:41:17
из прошлых годов похоже на мини файл
00:41:19
excel хранящейся в нашей базе данных
00:41:22
аня щиеся васу б.д. май сиквел она life
00:41:25
and слева очевидно и присвоил каждому
00:41:27
пользователю уникальный номер во втором
00:41:29
столбце имя a username кстати тут есть и
00:41:31
мои она справа им присвоен некий
00:41:34
хэш вообще-то это порой но не простой
00:41:38
текстовый пароль это зашифрованный если
00:41:40
хотите или хаш ированный порой мы еще к
00:41:42
этому вернемся но если вы когда-либо
00:41:44
читали статью о том как взламывают
00:41:46
банковские пароли или пароли на
00:41:48
веб-сайтах то вы знаете что это
00:41:50
происходит двумя способами
00:41:51
здесь у нас выборка из шести
00:41:53
пользователей все вы можете теперь
00:41:55
выяснить к окну или взломав систему
00:41:58
какие пароли у этих шести пользователей
00:42:00
а если вы когда-либо получали
00:42:02
предупреждение от компании или веб-сайта
00:42:05
в котором говорилось извините нашу базу
00:42:07
данных взломали поменять и пожалуйста
00:42:08
пароль то что это может значить
00:42:10
но один из вариантов что эта компания
00:42:12
настолько глупо что хранила ваш пароль в
00:42:14
такой колонки в незашифрованном виде
00:42:16
это значит что злоумышленник который
00:42:18
взломал базу а теперь знает ваше имя
00:42:20
пользователя и пароль это худшее из
00:42:22
вариантов и как вы увидите в задачнике
00:42:24
номер семь это вы так просто избежать
00:42:26
нет никакого оправдания подобной
00:42:28
глупости на сегодняшних просторах
00:42:29
интернета
00:42:30
но мы найдем статьи в которых увидим что
00:42:32
подобные тем не менее до сих пор
00:42:33
случается второй вариант возможно
00:42:35
злоумышленник украл такую версию базы
00:42:38
данных это тоже плохо потому что теперь
00:42:40
они знают что у меня шесть клиентов
00:42:41
знают именно 6 пользователей знает
00:42:44
зашифрованные версии или хэш-коды
00:42:45
паролей этих шести пользователей секс
00:42:48
посмот кто-нибудь из вас кто работал над
00:42:50
вторым за дачникам хакера где надо
00:42:52
взламывать пароля или просто видел там
00:42:54
это задание скажите почему так же не
00:42:58
очень хорошо если злоумышленник я
00:43:00
заполучил хэш пароля правильно
00:43:10
злоумышленник может написать код типа
00:43:12
того что вы писали для хакерского
00:43:13
задачника в котором перебираются все
00:43:15
слова из словаря или все возможные
00:43:17
сочетания от а до я
00:43:18
и это нам надо 9 кажется что это очень
00:43:20
много и это так вот le camp
00:43:22
второе . он быстро и в общем в этом и
00:43:24
был смысл того задачника взять подобный
00:43:26
материал и докопаться до его изначальных
00:43:28
спрятанных значений так что мы разберем
00:43:30
как можно эффективней хранить данные
00:43:32
счастью оказываются что в массе kvoll
00:43:34
есть типы данных и одна из самых
00:43:36
интересных задач при создании базы
00:43:37
данных честно говоря это решать как
00:43:39
лучше представлять данные представляют
00:43:41
ли телефонные номера как целое большое
00:43:42
целое или ланка может как
00:43:44
последовательность символов
00:43:45
и подобное решение могут оказаться
00:43:47
весьма важными есть одна старая смешная
00:43:49
история на эту тему когда марк цукерберг
00:43:51
создавал facebook так он писал его на
00:43:53
певички фейсбук до сих пор по большей
00:43:55
части написано печь пикете одной из
00:43:57
сложностей с которыми они сразу
00:43:58
столкнулись было масштабирование когда
00:44:00
они добавляли школу еще школу еще и еще
00:44:03
то насколько я знаю одним из первых
00:44:04
решений было не по средствам копировать
00:44:06
и вставлять некоторые базы данных
00:44:08
некоторые коды чтобы горват работал на
00:44:10
своем сервере массачусетский институт на
00:44:11
своем и именно поэтому некоторые из вас
00:44:14
возможно помнят нельзя было добавлять в
00:44:15
друзья людей из других сетей
00:44:17
возможно 10 лет назад у вас не было
00:44:19
друзей в массачусетском институте или
00:44:20
гарварде ну нельзя было охватить все эти
00:44:22
частично по этой причине у серьезным
00:44:24
вызовом морковью компаниям подобным
00:44:26
фейсбуку стала обработка сотни тысяч
00:44:28
миллионов запросов секунду итак то о чем
00:44:30
мы будем говорить на этой неделе имеет
00:44:31
прямое отношение к созданию хорошего
00:44:33
программного обеспечения их широко
00:44:35
известным и эффективным инструментом
00:44:37
который может применять большинство
00:44:38
пользователей мы будем разбирать такие
00:44:40
вещи как индексация и поиска на сегодня
00:44:42
это все увидимся в среду
00:44:43
переведено и озвучено студией vert
00:44:47
дайвер по заказу java rush
00:44:49
[музыка]
00:44:52
можно прибавлять или вычитать и не
00:44:54
обязательно придерживаться раз и
00:44:56
навсегда выделенного объема памяти как
00:44:58
это называется что происходит ты о чем
00:45:02
он читает лекцию можно использовать
00:45:04
функцию мелок выделение памяти
00:45:06
почему не в руки не двигаются ну это
00:45:10
это нормально спать они просто висят как
00:45:13
две большие сардельки это нормально да я
00:45:19
думаю он просто случайно перепутал
00:45:21
дезодорант у супер-клеем

Описание:

Доп. материалы и задачи к лекции - https://javarush.com/quests/lectures?quest=QUEST_HARVARD_CS50&level=8 Весь курс CS50 - https://javarush.com/quests/QUEST_HARVARD_CS50 Больше практики по программированию — https://javarush.com/user/track/a?jrm_source=youtube.com&jrm_medium=link_under_video&out=jrmain CS50, или Computer Science 50 — это курс Гарвардского университета, посвящённый основам программирования. Шестнадцатая серия цикла продолжает рассматривать язык PHP, теперь для разработки веб-приложений, а также знакомит с базами данных и MySQL. Впервые в истории студенты двух учебных заведений — Гарварда и Йеля — при помощи современных технологий параллельно проходят обучение на курсе.

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "16. CS50 на русском: Лекция #16 [Гарвард, Основы программирования, осень 2015 год]"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "16. CS50 на русском: Лекция #16 [Гарвард, Основы программирования, осень 2015 год]" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "16. CS50 на русском: Лекция #16 [Гарвард, Основы программирования, осень 2015 год]"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "16. CS50 на русском: Лекция #16 [Гарвард, Основы программирования, осень 2015 год]" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "16. CS50 на русском: Лекция #16 [Гарвард, Основы программирования, осень 2015 год]"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "16. CS50 на русском: Лекция #16 [Гарвард, Основы программирования, осень 2015 год]"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.