Сегодня мы предлагаем вам ознакомиться с одним из курсов Техносферы, который посвящён программированию на 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)


  1. Terras
    30.08.2016 16:16

    Вообще лучше заходить на ваш канал на ютьюбе. Ребята веб-разработчики, вообще ребята классные!

    P.s. Хорошая попытка научить программировать на perl и схантить себе, но нет =)


  1. Splo1ter
    30.08.2016 16:23

    Забавно наблюдать такие названия Resultset, result. Search. Find, single.
    У перла тоже что ли с консистентностью проблемы(см. именования)?


    1. alaska332
      01.09.2016 15:28

      эти названия не часть языка.


  1. dmrt
    30.08.2016 18:23
    +2

    Не нужны мы, перловички-боровички, сейчас уже более никому…


    1. blacklight
      30.08.2016 22:41

      Это почему же? jobs.perl.org


      1. dmrt
        30.08.2016 23:27

        London, Santa Monica, Miami, NY USA…
        Звучит конечно очень заманчиво, но не знай возьмут ли из Россиюшки, захотят ли связываться, затрудняться с помощью в переезде, когда проще из своей страны нанять, на не самые инновационные проекты…


    1. Terras
      31.08.2016 05:46

      На Perl остались вакансии только в больших компаниях, которые физически (а точнее им это слишком затратно) не могут перейти на более современные платформы, чаще всего Python/PHP/Ruby.

      Ну а так, в mail.ru говорили даже, что если человек знает два скриптовых языка + имеет хороший опыт, то они готовы его взять и обучить перлу.


      1. dmrt
        31.08.2016 09:42

        А в описании вакансии, Perl чаще всего встречается в таком контексте:
        Требуется знание одного из скриптовых языков Python/PHP/Ruby/Perl


  1. Pilat
    31.08.2016 01:51

    Я с удовольствием посмотрел некоторые фрагменты, но всё-таки этот видеокурс плохо вводит в перл. За кадром остаётся, похоже, больше половины — например домашние задания, вопросы-ответы. Стоило бы? наверно, ещё один ролик сделать — разработка более-менее сложной программы целиком, чтобы из разрозненных кусочков увидеть цельную картину.
    Не упоминается Modern Perl в какой-то форме, например perl5i.

    Вопрос к авторам: вы действительно используете Moose как обязательный метод для оформления ООП?


    1. Snay
      04.09.2016 17:41

      Не опровергаю мысль о том, что курс длинных и сложных лекций — не самое удачное введение в язык, но неожиданно нашлись доп.материалы и домашние задания. Может кому-то пригодятся.
      https://github.com/Nikolo/Technosfera-perl


  1. yamatoko
    31.08.2016 04:13

    это 5 или 6 перл?


  1. Diaskhan
    31.08.2016 07:07

    Перл мертв, да здравствует Перл…


  1. ncuxomozg
    01.09.2016 00:20

    Этот курс открытый — на него может записаться любой студент или аспирант МГУ имени М.В. Ломоносова

    Мне кажется, это взаимоисключающие понятия. Данный курс открыт только для студентов и аспирантов МГУ имени М.В. Ломоносова. Это называется — доступен для определенного круга лиц. Для всех открыта лишь запись годичной давности.
    С другой стороны, после смерти «Pragmatic Perl» и «Moscow.pm», это лучше чем ничего. Спасибо.


  1. Pilat
    01.09.2016 01:57
    +1

    Есть одна тема, которая практически не освящалась, как ни странно. Чем же плох Perl, что вызвало снижение его популярности. Может быть, если изучить именно это вопрос, можно вернуть ему былую славу.


    1. alaska332
      01.09.2016 15:35

      ничем не плoх, поэтому нечего освещать.


    1. saboteur_kiev
      02.09.2016 11:31
      -1

      Perl хорош, просто у него раньше практически не было конкурентов в его нише.

      Потом появился php, на котором активно писали сайты, и появились те, кто знают лучше php чем перл.
      Потом раскрутился python, на котором даже стали писать энтерпрайз, снова появились те, кто знает лучше python чем perl.
      Затем написали nodejs, и в эту нишу влезли те, кто писали на javascript, и знали его гораздо лучше чем perl.

      А так, в своем деле perl превосходен, но не настолько, чтобы показать явное преимущество перед всеми конкурентами.


      1. alaska332
        02.09.2016 19:19
        -1

        Perl = плохой, это такая же аксиома, как Путин = Россия.
        Кто-то верит.


  1. it_fareast_vl
    05.09.2016 14:38

    Спасибо Вам за материал. А почему Вы ДЗ вырезали? Их выполнение принесло бы гораздо больше пользы, чем просмотр теоретического материала. Я понимаю, что можно и самому себе задания придумать, или пойти на github и применить там теорию на каком-нибудь проекте, но тем кто смотрит материал было бы удобно выполнять задачи с возрастающей сложностью. А то тортиком поманили, а откусить не дали.


    1. Pilat
      05.09.2016 16:51

      Выше есть ссылка на https://github.com/Nikolo/Technosfera-perl с заданиями