Bootstrap

Язык программирования Elixir

Язык программирования Elixir

Алгоритм обучения

Я буду следовать такой структуре для каждой темы:

  1. Теоретическая часть - объяснение концепций
  2. Примеры кода - практическая демонстрация
  3. Упражнения - задачи для закрепления
  4. Ключевые моменты - резюме для запоминания

Начнем с Недели 1, Темы 1.


НЕДЕЛЯ 1: Основы Elixir и функционального программирования

Тема 1: Введение в Elixir и экосистему (2 часа)

1.1 История и философия языка

Elixir - это функциональный язык программирования, созданный José Valim (бывший core contributor Rails) в 2011 году.

Ключевые особенности:

  • Функциональный язык с неизменяемыми данными
  • Работает на Erlang VM (BEAM)
  • Отличная поддержка конкурентности
  • Fault-tolerance (устойчивость к сбоям)
  • Метапrogrammирование через макросы
  • Современный синтаксис, вдохновленный Ruby

Зачем Elixir?

  • Масштабируемость - легко обрабатывать миллионы одновременных соединений
  • Надежность - системы с 99.9999999% uptime (9 девяток!)
  • Производительность - low latency, высокая пропускная способность
  • Удобство разработки - приятный синтаксис, отличный tooling

1.2 Beam VM и Erlang

BEAM (Bogdan's Erlang Abstract Machine) - виртуальная машина, на которой работает Elixir.

Преимущества BEAM:

  • Легковесные процессы (можно запустить миллионы)
  • Preemptive scheduling - справедливое распределение CPU
  • Изолированные процессы с garbage collection для каждого
  • Hot code reloading - обновление без остановки системы
  • Распределенные системы out of the box

Связь с Erlang:

  • Elixir полностью совместим с Erlang
  • Можно использовать любые Erlang библиотеки
  • Доступ к 30+ летней экосистеме Erlang

1.3 Установка и настройка окружения

Шаг 1: Установка Elixir

macOS:

Terminal:

  
brew install elixir
    

Ubuntu/Debian:

Terminal:

  
# Добавить Erlang Solutions repo
wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
sudo dpkg -i erlang-solutions_2.0_all.deb
sudo apt-get update
sudo apt-get install esl-erlang elixir
    

Windows:

  • Скачать installer с

Шаг 2: Проверка установки

Terminal:

  
elixir --version
# Должно показать что-то вроде:
# Erlang/OTP 26
# Elixir 1.15.7
    

Шаг 3: Настройка редактора

Рекомендуемые редакторы:

  • VS Code + ElixirLS extension
  • IntelliJ IDEA + Elixir plugin
  • Vim/Neovim + elixir-ls

1.4 Mix - build tool для Elixir

Mix - это инструмент для:

  • Создания проектов
  • Компиляции кода
  • Запуска тестов
  • Управления зависимостями
  • Создания задач (tasks)

Основные команды Mix:

Terminal:

  
# Создать новый проект
mix new my_project

# Войти в директорию
cd my_project

# Компиляция проекта
mix compile

# Запуск тестов
mix test

# Интерактивная консоль с проектом
iex -S mix

# Форматирование кода
mix format

# Получить зависимости
mix deps.get
    

Структура Mix проекта:

Terminal:

  
my_project/
├── lib/
│   └── my_project.ex       # Основной код
├── test/
│   ├── my_project_test.exs # Тесты
│   └── test_helper.exs     # Настройки тестов
├── mix.exs                 # Конфигурация проекта
└── README.md
    

1.5 Интерактивная консоль IEx

IEx (Interactive Elixir) - REPL для Elixir.

Terminal:

  
# Запуск IEx
iex

# В консоли можно выполнять любой Elixir код:
iex(1)> 1 + 1
2

iex(2)> "Hello" <> " World"
"Hello World"
    

Полезные команды IEx:

Terminal:

  
# Помощь
h()

# Документация по функции
h(Enum.map)

# Информация о типе
i("hello")

# Скомпилировать файл
c("path/to/file.ex")

# Перекомпилировать проект
recompile()

# Выход
# Ctrl+C два раза или:
System.halt()
    

Практическое задание 1.1

Задача: Создайте свой первый Elixir проект

Terminal:

  
# 1. Создайте проект
mix new hello_elixir

# 2. Откройте файл lib/hello_elixir.ex
# 3. Замените содержимое на:
    

Terminal:

  
defmodule HelloElixir do
  @moduledoc """
  Мой первый модуль на Elixir
  """

  def hello do
 "Hello, Elixir World!"
  end

  def greet(name) do
 "Hello, #{name}!"
  end
end
    

Terminal:

  
# 4. Запустите в IEx
iex -S mix

# 5. Протестируйте:
iex> HelloElixir.hello()
iex> HelloElixir.greet("Студент")
    

Резюме Темы 1

Ключевые понятия:

  • ✅ Elixir - функциональный язык на BEAM VM
  • ✅ BEAM обеспечивает конкурентность и fault-tolerance
  • ✅ Mix - основной инструмент для работы с проектами
  • ✅ IEx - интерактивная консоль для экспериментов

Следующий шаг: Тема 2 - Базовые типы данных и неизменяемость

Свежие статьи

Зачем нужен <code>mix</code> и как он работает
19
ноя

Зачем нужен mix и как он работает

Что такое mix?

mix — это инструмент сборки и управления проектами в экосистеме Elixir (аналог npm в Node.js, cargo в Rust, lein в Clojure).

Он входит в поставку Elixir и генерирует структуру проекта. Как проходит тестирование проекта.

Прочитать
Полный пошаговый план: обновление asdf и установка среды Elixir + Phoenix
08
ноя

Полный пошаговый план: обновление asdf и установка среды Elixir + Phoenix

полный пошаговый план, который позволит:

  1. Обновить asdf до версии на Go.
  2. Установить Erlang + Elixir через asdf.
  3. Установить Hex и Phoenix installer без прямого доступа к hex.pm через сеть.
  4. Создать первый Phoenix проект.
Прочитать
Установка Elixir в Alt Linux
05
ноя

Установка Elixir в Alt Linux

Установка Elixir в Alt Linux может быть выполнена через пакетный менеджер или компиляцию из исходников. Вот как это сделать более подробно, с помощью пакетного менеджера

Прочитать

крипто-донат, на развитие сайта itdid.ru:

В новом окне с терминалом itdid.ru, введите любую сумму: