elixir_course
elixir_course copied to clipboard
Elixir language training course, part 1
Учебный курс по языку программирования Эликсир. Часть 1.
Курс рассчитан на программистов, уже владеющих каким-либо языком программирования, и желающим изучить Эликсир. Однако я верю, что он будет полезен и новичкам в программировании.
Курс содержит большое количество упражнений, домашних заданий и курсовой проект.
Курс доступен в формате видео-лекций и live coding на моём ютуб-аккаунте.
Формат электронной книги есть в планах, но пока не реализован.
Поддержать работу над курсом можно на Boosty.
Часть 1. Основы языка.
Урок №1. Первое знакомство с Elixir.
01.01. Решаем задачу FizzBuzz.
01.02. Интерактивная консоль (iex).
Урок №2. История, мотивация.
02.01. Немного истории.
02.02. Важные свойства BEAM.
02.03. Свойства Эликсир.
02.04. Недостатки BEAM.
02.05. Сфера применения.
Урок №3. Типы данных и операции над ними.
03.00. Типы данных.
03.01. Целые числа (Integer).
03.02. Числа с плавающей точкой (Float).
03.03. Булевые значения (Boolean).
03.04. Атомы и кортежи (Atom & Tuple).
03.05. Списки (List).
03.06. Словари (Map).
03.07. Строки и бинарные данные (String & Binary).
03.08. Системные типы (System Types).
03.09. Сложные типы (Complex Types).
Урок №4. Управление потоком выполнения.
04.01. Pattern Matching.
04.02. Pattern Matching для Map.
04.03. Конструкция case, тела функций, охранные выражения.
04.04. Конструкции cond и if.
04.05. Keyword list, синтаксический сахар и макросы.
Урок №5. Устройство списков. Рекурсивные функции с аккумуляторами.
05.01. Иммутабельность.
05.02. Устройство списков.
05.03. Рекурсия.
05.04. Хвостовая рекурсия.
05.05. Рекурсивные функции с аккумуляторами.
05.06. Неограниченная рекурсия (Unbounded recursion).
Урок №6. Функции высшего порядка.
06.01. Map, Filter.
06.02. Reduce (Fold).
06.03. Модуль Enum.
06.04. Конструкторы списков.
06.05. Модуль Stream.
Урок №7. Пользовательские типы данных.
07.01. Создание проекта и моделирование предметной области.
07.02. Использование Map.
07.03. Использование Struct.
07.04. Struct с указанием типов.
07.05. Алгебраические типы данных.
07.06. Протокол.
07.07. Record.
07.08. Что такое функциональное программирование?
Урок №8. Обработка ошибок.
08.01. Исключения.
08.02. Классы исключений.
08.03. Пользовательские типы исключений.
08.04. Defensive Programming vs Let It Crash.
Урок №9. Композиция функций.
09.01. Задача на композицию функций.
09.02. Решение 1. Вложенные case.
09.03. Решение 2. Каждый case в отдельной функции.
09.04. Решение 3. Использование исключений.
09.05. Решение 4. Монада Result и оператор bind.
09.06. Решение 5. Pipeline.
09.07. Решение 6. do-нотация.
09.08. Что такое монада?
Курсовой проект Work Report.
Часть 2. Многопоточность и OTP.
Находится здесь.