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

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

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

Подробнее

Разработка интернет-сервисов, высоконагруженные сетевые приложения, взаимодействие с операционной системой, устройство Linux, межпроцессное взаимодействие, асинхронно-событийное программирование. Заинтересовало?
Тогда приходите на курс «Системное программирование на Perl». У вас будет возможность:
- познакомиться с языком программирования, оказавшим значительное влияние на развитие многих языков;
- научиться быстрому прототипированию системных вещей без длительной борьбы с компилятором;
- освоить инструменты профессиональных программистов, такие как git, ssh, консоль, редактор и многое другое;

Самых успешных ждет возможность попасть на работу в лучшие проекты 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: Парсер JSON
Реализовать парсер данных в формате JSON
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   + ДЗ №8

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

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

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

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

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

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

Coro HTTP Server
4 часа

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

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

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

...
4 часа

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

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