/elixir_course_junior

Учебный курс по Эликсир

Primary LanguageElixirOtherNOASSERTION

Программа курса

Урок №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. Int.

03.02. Float.

03.03. Bool.

03.04. Atom, Tuple.

03.05. List.

03.06. Map.

03.07. String, Binary.

03.08. Прочие типы.

Урок №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. Моделирование предметной области.

07.03. Struct с указанием типов.

07.04. Алгебраические типы данных.

07.05. Использование Map.

07.06. Протокол.

07.07. Record.

07.08. Что такое функциональное программирование?

Курсовой проект №1. WorkReport.

Урок №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. Что такое монада?

Урок №10. Многопоточность.

10.01. Работа с процессами на низком уровне.

10.02. Почтовый ящик.

10.03. Связь между процессами.

10.04. Мониторинг процессов.

10.05. MapReduce.

Урок №11. Абстракции над процессами: Task, Agent, GenServer.

11.01. Task.

11.02. Agent.

11.03. Создание GenServer.

11.04. Модуль GenServer.

11.05. Использование GenServer.

Урок №12. Supervisor и Application.

12.01. Supervisor.

12.02. Использование Supervisor.

12.03. Dynamic Supervisor.

12.04. Application.

12.05. Конфигурирование Application.

12.06. Observer.

Урок №13. Open Telecom Platform.

13.01. OTP.

13.02. Релиз.

13.03. Модель акторов.

13.04. Let It Crash.

Урок №14. Erlang Term Storage.

ETS, DETS, Mnesia, Persistent Term

Урок №15. TCP и UDP сокеты.

Курсовой проект №2.