Сегодня мы предлагаем вам ознакомиться с одним из курсов Техносферы, который посвящён программированию на Perl. Этот курс открытый — на него может записаться любой студент или аспирант МГУ имени М.В. Ломоносова. Также в Техносфере есть еще несколько открытых курсов, 1 сентября на них открывается запись. В этом семестре вас ждет приятное дополнение: они будут подкреплены методическим материалом, который будет содержать достаточно информации, чтобы по нему можно было вспомнить материал любой лекции и при необходимости более глубоко её изучить.
Цель курса «Программирование на Perl» — узнать возможности языка (его сильные и слабые стороны), научиться писать программные продукты на этом языке, научится быстро ориентироваться в чужом коде. Под катом находятся все лекции в формате видео и краткое описание к ним.
Лекция 1. Введение
История создания языка Perl. Сравнение производительности. Примеры проектов. Документация (perldoc). Настройка окружения. Запуск скриптов (perlrun). Модуль Deparse. Модуль Data::Dumper. Модуль DDP. Отладка perl-скриптов (perldebug).
Лекция 2. Синтаксис и данные
Базовый синтаксис (условия, циклы, управляющие функции, постфиксная нотация). Переменные (основные типы, ссылки, интерполяция). Функции (декларирование, аргументы, контекст, прототипы, встроенные функции, grep/map/sort, eval). Операторы (порядок исполнения, особенные операторы, числа и строки).
Лекция 3. Модульность и повторное использование
Include. Блоки фаз. Package. Экспорт. Версии. Pragmatic modules. No. Symblo tables. CPAN.
Лекция 4. Регулярные выражения и юникод
Поддержка Unicode (определения, строки и октеты, преобразования, UTF8-flag, ввод/вывод). Регулярные выражения (сопоставление, поиск и замена, транслитерация, классы символов, модификаторы, группы, оглядывания, захваты, квантификаторы, работа с юникодом, отладка).
Лекция 5. Общение с внешним миром
Работа с файлами. Perl IO backend. Взаимодействие процессов. Работа с сокетами. Сериализация (преобразование данных в двоичный вид, JSON, CBOR, MSGPACK, Storable, XML). Разбор входных параметров.
Лекция 6. ООП
Методы. Примеры. Наследование. Method resolution order. Детали. Moose-like.
Лекция 7. Работа с базами данных
SQL. DBI. Connect. SQL-инъекции. Prepare, execute. Fetchrow. Fetchall_arrayref. Fetchall_hashref. Selectrow. Selectall. Ошибки. Транзации. Last_insert_id. DBIx::Class. Файлы. Resultset, result. Search. Find, single. Count. Relations. Join. Prefetch. Update, delete. Many_to_many. Storage. DBIx::Class::Schema::Loader. SQL::Translator. Memcached.
Лекция 8. Веб-приложения изнутри
Протокол HTTP. CGI, mod_perl, FastCGI, PSGI. Веб-фреймворки. Механизмы безопасности в приложениях.
Лекция 9. Асинхронно-событийное программирование
Работа операционной системы (параллелизм и псевдопараллелизм, состояние процесса и переключение контекста, степень многозадачности, системный вызов, блокирующие операции ввода-вывода). Обработка N параллельных соединений (accept + fork, C10k, неблокирующие операции ввода-вывода, событийный цикл). AnyEvent (замыкания, функции с отложенным результатом, интерфейс AnyEvent, Guard). Coro.
Лекция 10. Ускоряем Перл. Расширяем «С»
Генерация XS-модулей. Макропроцессор. Типы данных изнутри. Работа со стеком. Typemaps. Встраивание Perl (perlembed).
Лекция 11-12. Тестирование. Анализ производительности
Функциональное тестирование. Тестирование производительности. Нагрузочное тестирование. Юзабилити-тестирование. Тестирование интерфейса пользователя. Тестирование безопасности. Тестирование локализации. Тестирование совместимости. Профилирование. Бенчмарки. Поиск утечек в Pure Perl. Поиск утечек в XS.
Подписывайтесь на наш youtube-канал Технострим Mail.Ru! Там вы найдете все лекции, мастер-классы и трансляции наших образовательных проектов.
Комментарии (19)
dmrt
30.08.2016 18:23+2Не нужны мы, перловички-боровички, сейчас уже более никому…
blacklight
30.08.2016 22:41Это почему же? jobs.perl.org
dmrt
30.08.2016 23:27London, Santa Monica, Miami, NY USA…
Звучит конечно очень заманчиво, но не знай возьмут ли из Россиюшки, захотят ли связываться, затрудняться с помощью в переезде, когда проще из своей страны нанять, на не самые инновационные проекты…
Terras
31.08.2016 05:46На Perl остались вакансии только в больших компаниях, которые физически (а точнее им это слишком затратно) не могут перейти на более современные платформы, чаще всего Python/PHP/Ruby.
Ну а так, в mail.ru говорили даже, что если человек знает два скриптовых языка + имеет хороший опыт, то они готовы его взять и обучить перлу.dmrt
31.08.2016 09:42А в описании вакансии, Perl чаще всего встречается в таком контексте:
Требуется знание одного из скриптовых языков Python/PHP/Ruby/Perl
Pilat
31.08.2016 01:51Я с удовольствием посмотрел некоторые фрагменты, но всё-таки этот видеокурс плохо вводит в перл. За кадром остаётся, похоже, больше половины — например домашние задания, вопросы-ответы. Стоило бы? наверно, ещё один ролик сделать — разработка более-менее сложной программы целиком, чтобы из разрозненных кусочков увидеть цельную картину.
Не упоминается Modern Perl в какой-то форме, например perl5i.
Вопрос к авторам: вы действительно используете Moose как обязательный метод для оформления ООП?Snay
04.09.2016 17:41Не опровергаю мысль о том, что курс длинных и сложных лекций — не самое удачное введение в язык, но неожиданно нашлись доп.материалы и домашние задания. Может кому-то пригодятся.
https://github.com/Nikolo/Technosfera-perl
ncuxomozg
01.09.2016 00:20Этот курс открытый — на него может записаться любой студент или аспирант МГУ имени М.В. Ломоносова
Мне кажется, это взаимоисключающие понятия. Данный курс открыт только для студентов и аспирантов МГУ имени М.В. Ломоносова. Это называется — доступен для определенного круга лиц. Для всех открыта лишь запись годичной давности.
С другой стороны, после смерти «Pragmatic Perl» и «Moscow.pm», это лучше чем ничего. Спасибо.
Pilat
01.09.2016 01:57+1Есть одна тема, которая практически не освящалась, как ни странно. Чем же плох Perl, что вызвало снижение его популярности. Может быть, если изучить именно это вопрос, можно вернуть ему былую славу.
saboteur_kiev
02.09.2016 11:31-1Perl хорош, просто у него раньше практически не было конкурентов в его нише.
Потом появился php, на котором активно писали сайты, и появились те, кто знают лучше php чем перл.
Потом раскрутился python, на котором даже стали писать энтерпрайз, снова появились те, кто знает лучше python чем perl.
Затем написали nodejs, и в эту нишу влезли те, кто писали на javascript, и знали его гораздо лучше чем perl.
А так, в своем деле perl превосходен, но не настолько, чтобы показать явное преимущество перед всеми конкурентами.
it_fareast_vl
05.09.2016 14:38Спасибо Вам за материал. А почему Вы ДЗ вырезали? Их выполнение принесло бы гораздо больше пользы, чем просмотр теоретического материала. Я понимаю, что можно и самому себе задания придумать, или пойти на github и применить там теорию на каком-нибудь проекте, но тем кто смотрит материал было бы удобно выполнять задачи с возрастающей сложностью. А то тортиком поманили, а откусить не дали.
Terras
Вообще лучше заходить на ваш канал на ютьюбе. Ребята веб-разработчики, вообще ребята классные!
P.s. Хорошая попытка научить программировать на perl и схантить себе, но нет =)