Системное программирование на Perl

Цель курса — получить навыки разработки в Unix-like ОС и практику системного программирования. Особое внимание уделяется взаимодействию процессов в операционной системе, сетевому программированию (как классическому, так и асинхронно-событийному), детально рассматривается устройство и реализация событийного цикла и работа с популярным протоколом HTTP

- Понимание устройства и принципов работы Unix-like систем
- Опыт системного программирования под Linux на Perl
- Умение писать сетевые сервисы
- Tips&tricks в работе с распространёнными инструментами профессиональных программистов, таких как консоль, редактор, система контроля версий и многое другое
- Опыт проектирования программного обеспечения с консультациями архитектора Облака@Mail.Ru
 

Подробнее

Если тебе интересны:
- разработка низкоуровневых сервисов,
- разработка сетевых приложений,
- создание высоконагруженных систем на языке Perl,
то будем рады видеть тебя на нашем курсе.

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

Самых успешных ждёт возможность попасть на работу в лучшие проекты Mail.Ru Group.

Индивидульаные домашние работы

Подробнее

Преподаватели

Владимир Перепелица Владимир Перепелица

Архитектор Облака@Mail.ru

Владислав Грубов Владислав Грубов

Разработчик в проекте Облако@Mail.Ru

Программа

занятие Часы в ауд. + сам. работа

Лекция №1: Введение в Perl   + ДЗ №1

1. История языка Perl
2. Сфера применения
3. Сравнение производительности
4. Необходимые знания
5. Документация
6. Синтаксис языка
7. Однострочники
8. Настройка окружения
Домашнее задание №1: Однострочники
* вывести уникальные символы в ssh ключе
* вывести список пользователей, у которых шелл bash (по файлу /etc/passwd)
* посчитать кол-во пустых строк в файле и убрать их (perl -i)
* посчитать количество установок пакетов на машине (по yum history)
4 часа + 4 часа СР

Семинар №1: Мастер-класс  

shell, ssh, git, ed
4 часа

Лекция №2: Синтаксис и данные   + ДЗ №2

...
Домашнее задание №2: Консольный клиент
Реализовать скрипт, который на вход принимает путь к локальной директории и запускает интерактивную сессию
4 часа + 4 часа СР

Лекция №3: Модульность и ООП   + ДЗ №3

...
Домашнее задание №3: Объектный клиент
Структуризировать код клиента и разбить на классы
4 часа + 4 часа СР

Лекция №4: Регулярные выражения и юникод   + ДЗ №4

...
Домашнее задание №4: Обработка ввода
Используя регулярные выражения, поддержать работу с шаблонами имен файлов
4 часа + 4 часа СР

Лекция №5: Взаимодействие с ОС   + ДЗ №5

...
Домашнее задание №5: Бэкенд хранилища
Реализовать класс, представляющий собой хранилище, поверх произвольной директории на файловой системе
4 часа + 4 часа СР

Семинар №2: Мастер-класс  

Пишем ps с комментариями
4 часа

Хакатон №1: Хакатон  

Создание утилиты запросов к структурированным табличным файлам
9 часа

Лекция №6: Сетевое программирование   + ДЗ №6

...
Домашнее задание №6: Клиент и сервер
Реализовать файловый сервер и научитсья взаимодействовать с ним из клиента
4 часа + 4 часа СР

Лекция №7: Протокол HTTP и Web   + ДЗ №7

...
Домашнее задание №7: HTTP сервер
Реализовать HTTP сервер к файловому хранилищу
4 часа + 4 часа СР

Лекция №8: Ассинхронно-событийное программирование  

...
4 часа + 4 часа СР

Лекция №9: Демонизация в Unix   + ДЗ №7

...
Домашнее задание №7: Асинхронный сервер
Реализовать асинхронный сервер
4 часа + 4 часа СР

Хакатон №2: Хакатон  

Распределённое сетевое приложение
9 часа

Лекция №10: Кооперативная многозадачность  

Coro
4 часа + 4 часа СР

Семинар №3: Мастер-класс  

Coro HTTP Server
4 часа

Лекция №11: Низкоуровневое взаимодействие и профилирование  

XS
4 часа + 4 часа СР

Семинар №4: Практическое занятие  

...
4 часа

Экзамен №1: Экзамен  

Подведение итогов
4 часа + 4 часа СР