Lessons: Intermediate

Building on upon our foundation these lessons introduce topics like concurrency, error handling, and interoperability.

Пользовательские Mix-задачи

Создание пользовательских Mix-задач для ваших Elixir проектов.

Взаимодействие с Erlang

Одним из достоинств построения языка на инфраструктуре Erlang VM (BEAM) является изобилие готовых библиотек. Совместимость позволяет нам использовать все эти библиотеки (включая стандартную библиотеку Erlang) в нашем коде на Elixir. В этом уроке мы рассмотрим, как получить доступ к функциональности стандартной библиотеки вместе со сторонними пакетами Erlang.

Обработка ошибок

Несмотря на то, что функции обычно возвращают кортеж вида {:error, reason}, Elixir поддерживает исключения. В этом уроке мы узнаем как обрабатывать ошибки и познакомимся с различными доступными для нас методами.

Общепринятый в Elixir способ — создать функцию (example/1), возвращающую {:ok, result} и {:error, reason} и отдельную функцию (example!/1), возвращающую необернутый result или порождающую ошибку.

В этом уроке мы сосредоточимся на взаимодействии с последней.

Исполняемые файлы

Для сборки исполняемых файлов в Elixir мы будем использовать escript. Escript создаёт исполняемый файл, который может быть запущен на любой системе с предустановленным Erlang.

Параллелизм

Одна из сильных сторон Elixir — поддержка параллелизма. Благодаря Erlang VM (BEAM) параллелизм в Elixir легче, чем вы думали. В основе модели параллелизма лежат акторы — процессы, взаимодействующие с другими процессами путём передачи сообщений.

В этом уроке мы познакомимся с модулями параллелизма, поставляемыми вместе с Elixir. В следующей части мы также узнаем, каким способом они реализованы в OTP.