company_banner
30 августа 2016 в 15:27

Лекции Техносферы. Программирование на Perl (осень 2015)



Сегодня мы предлагаем вам ознакомиться с одним из курсов Техносферы, который посвящён программированию на 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! Там вы найдете все лекции, мастер-классы и трансляции наших образовательных проектов.
Автор: @pkruglov
Mail.Ru Group
рейтинг 611,92
Строим Интернет
Похожие публикации

Комментарии (19)

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

    P.s. Хорошая попытка научить программировать на perl и схантить себе, но нет =)
  • 0
    Забавно наблюдать такие названия Resultset, result. Search. Find, single.
    У перла тоже что ли с консистентностью проблемы(см. именования)?
    • 0
      эти названия не часть языка.
  • +2
    Не нужны мы, перловички-боровички, сейчас уже более никому…
    • 0
      Это почему же? jobs.perl.org
      • 0
        London, Santa Monica, Miami, NY USA…
        Звучит конечно очень заманчиво, но не знай возьмут ли из Россиюшки, захотят ли связываться, затрудняться с помощью в переезде, когда проще из своей страны нанять, на не самые инновационные проекты…
    • 0
      На Perl остались вакансии только в больших компаниях, которые физически (а точнее им это слишком затратно) не могут перейти на более современные платформы, чаще всего Python/PHP/Ruby.

      Ну а так, в mail.ru говорили даже, что если человек знает два скриптовых языка + имеет хороший опыт, то они готовы его взять и обучить перлу.
      • 0
        А в описании вакансии, Perl чаще всего встречается в таком контексте:
        Требуется знание одного из скриптовых языков Python/PHP/Ruby/Perl
  • 0
    Я с удовольствием посмотрел некоторые фрагменты, но всё-таки этот видеокурс плохо вводит в перл. За кадром остаётся, похоже, больше половины — например домашние задания, вопросы-ответы. Стоило бы? наверно, ещё один ролик сделать — разработка более-менее сложной программы целиком, чтобы из разрозненных кусочков увидеть цельную картину.
    Не упоминается Modern Perl в какой-то форме, например perl5i.

    Вопрос к авторам: вы действительно используете Moose как обязательный метод для оформления ООП?
    • 0
      Не опровергаю мысль о том, что курс длинных и сложных лекций — не самое удачное введение в язык, но неожиданно нашлись доп.материалы и домашние задания. Может кому-то пригодятся.
      https://github.com/Nikolo/Technosfera-perl
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Перл мертв, да здравствует Перл…
  • 0
    Этот курс открытый — на него может записаться любой студент или аспирант МГУ имени М.В. Ломоносова

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

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

      А так, в своем деле perl превосходен, но не настолько, чтобы показать явное преимущество перед всеми конкурентами.
      • –1
        Perl = плохой, это такая же аксиома, как Путин = Россия.
        Кто-то верит.
  • 0
    Спасибо Вам за материал. А почему Вы ДЗ вырезали? Их выполнение принесло бы гораздо больше пользы, чем просмотр теоретического материала. Я понимаю, что можно и самому себе задания придумать, или пойти на github и применить там теорию на каком-нибудь проекте, но тем кто смотрит материал было бы удобно выполнять задачи с возрастающей сложностью. А то тортиком поманили, а откусить не дали.
    • 0
      Выше есть ссылка на https://github.com/Nikolo/Technosfera-perl с заданиями

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка