Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 210новых вакансий за сутки·93 612вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 266
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 401 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 126
  • Облачные технологии14 083
  • QA вакансии3 456
  • Backend вакансии2 115
  • Инженер данных1 809
  • Продакт-менеджер1 261

Разработка

  • Android1 862
  • iOS1 700
  • Fullstack вакансии986
  • AI вакансии950
  • Frontend вакансии744
  • Mobile вакансии44

По стеку

  • Go8 688
  • Java6 537
  • Node.js2 026
  • .NET1 722
  • Kotlin1 611
  • Rust1 458
  • C#710
  • PHP682
  • C++571

DevOps и инфраструктура

  • Kubernetes7 772
  • DevOps вакансии6 054
  • Linux-инфраструктура5 493
  • Terraform / IaC4 275
  • CI/CD3 239
  • Мониторинг и Observability1 790
  • SRE568
  • Кибербезопасность458

Аналитика и данные

  • Data Scientist1 143
  • Бизнес-аналитик923
  • Аналитик данных857
  • Системный аналитик152

Другие направления

  • Проджект-менеджер620
  • UI/UX дизайн146
  • Ручное тестирование14

По регионам

  • Вакансии в США44 276
  • Вакансии в Европе23 819
  • Вакансии в Канаде4 471
  • Работа в России3 904

По формату

  • Удалённые вакансии74 928
  • Релокация в США44 273
  • Гибридная работа12 388
  • Офисная работа7 083

По уровню

  • Senior вакансии42 625
  • Middle вакансии20 854
  • Junior вакансии6 721

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis39 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме Phoenix (Elixir)Все вопросы
Phoenix (Elixir)JuniorТеория

Что такое Phoenix Framework и каковы его основные преимущества?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Phoenix — Elixir-фреймворк на BEAM с MVC-архитектурой, LiveView для реактивного UI без JS-фронтенда и Channels для WebSocket. Даёт высокую конкурентность, отказоустойчивость и предсказуемую производительность под нагрузкой.

Минимальное приложение (mix new)

mix archive.install hex phx_new
mix phx.new my_app --database postgres
cd my_app
mix ecto.create
mix phx.server

Что такое Phoenix Framework

Phoenix — веб-фреймворк на Elixir, построенный поверх виртуальной машины Erlang (BEAM). Он следует паттерну MVC, но добавляет LiveView для реактивного UI без написания JavaScript, а также Channels для WebSocket-коммуникации в реальном времени. Первый релиз вышел в 2014 году; актуальная версия — 1.7.x.

Ключевые концепции

  • Plug — стандартный интерфейс для middleware; каждый компонент конвейера (парсер, CSRF, роутер) — это Plug.
  • Router — декларативный, с поддержкой pipeline-ов (:browser, :api), scope-ов и вложенных ресурсов.
  • Controller / View / Template — классический MVC; шаблоны компилируются в Elixir-функции и не требуют рефлексии в runtime.
  • LiveView — сервер-рендеринг с удержанием WebSocket-соединения; diff-алгоритм пересылает только изменившиеся части DOM.
  • Channels — PubSub-абстракция над WebSocket и Long Polling; масштабируется через Phoenix.PubSub с Redis-адаптером.
  • Ecto — ORM/Query DSL для работы с БД; отдельная библиотека, но плотно интегрируется с Phoenix-генераторами.

Пример роутера и контроллера

# router.ex
scope "/api", MyAppWeb do
  pipe_through :api

  resources "/users", UserController, only: [:index, :show, :create]
end

# user_controller.ex
defmodule MyAppWeb.UserController do
  use MyAppWeb, :controller

  alias MyApp.Accounts

  def index(conn, _params) do
    users = Accounts.list_users()
    render(conn, :index, users: users)
  end

  def create(conn, %{"user" => user_params}) do
    case Accounts.create_user(user_params) do
      {:ok, user} ->
        conn
        |> put_status(:created)
        |> render(:show, user: user)

      {:error, changeset} ->
        conn
        |> put_status(:unprocessable_entity)
        |> render(:error, changeset: changeset)
    end
  end
end

Преимущества Phoenix

  • Высокая конкурентность: BEAM обрабатывает миллионы лёгких процессов; каждый запрос — отдельный процесс с изолированной памятью.
  • Отказоустойчивость: супервизорные деревья перезапускают упавшие процессы; «let it crash» — рабочая стратегия.
  • LiveView без SPA: интерактивный UI без отдельного JavaScript-фронтенда и без REST/GraphQL прослойки.
  • Предсказуемая производительность: функциональный иммутабельный код, нет GC-пауз Java-масштаба.
  • Встроенный PubSub: горизонтальное масштабирование WebSocket через Phoenix.PubSub без сторонних брокеров.
  • Генераторы: mix phx.gen.json, mix phx.gen.live создают готовые CRUD-модули с тестами.

Подводные камни

  • Elixir — редкий язык: небольшой рынок труда; нанять Elixir-разработчика сложнее, чем Python/Java-специалиста.
  • Ecto не ActiveRecord: нет lazy-загрузки ассоциаций; все join-ы нужно описывать явно через preload, иначе получите %Ecto.Association.NotLoaded{}.
  • LiveView и SEO: первый рендер серверный, но для поисковиков нужно проверять, что метатеги корректно проставляются ещё до WebSocket-апгрейда.
  • Горячее обновление кода: BEAM поддерживает hot code reloading, но Phoenix не использует его в production по умолчанию; неправильное использование ломает состояние GenServer-ов.
  • Паттерн matching как замена if/switch: новички пишут длинные case-ветки вместо pattern matching на уровне функций, теряя читаемость.
  • Конфигурация compile-time vs runtime: использование config :app, key: System.get_env(...) в config/prod.exs читает env при компиляции, а не при старте; нужен config/runtime.exs с System.fetch_env!/1.
  • Большой overhead для простых CRUD-сервисов: если нет LiveView/Channels и нагрузка невысокая, Phoenix избыточен; FastAPI или Express проще развернуть и поддерживать.

Частые вопросы на собеседовании

  • Как планировать zero-downtime deploy Phoenix-приложения с Ecto migrations и rolling releases?
  • Что такое Plugs в Phoenix и как работает plug-конвейер?
  • Чем Phoenix отличается от Rails или Django по архитектуре?
  • В чём разница между Phoenix templates (.heex) и традиционными EEx-шаблонами?

Типичные ошибки

  • Сводить framework overview к названию метода без lifecycle и failure path.
  • Игнорировать модель runtime: Phoenix 1.8 работает поверх Plug, Endpoint, Router, Controllers/LiveViews, PubSub и OTP supervision.
  • Не отделять validation, authorization, transaction boundary и business logic.

Что проверяет интервьюер

  • Объясняет framework overview через конкретную точку lifecycle в Phoenix (Elixir).
  • Приводит корректный минимальный пример без вымышленных методов или callbacks.
  • Называет edge cases: пустые значения, ошибки, транзакции, безопасность или concurrency.

Как вы знаете этот вопрос?

Проверить себя по теме Phoenix (Elixir) →

Источники

  • https://hexdocs.pm/phoenix/overview.html
  • https://hexdocs.pm/phoenix/
←Предыдущий вопросВ чём разница между Phoenix templates (.heex) и традиционными EEx-шаблонами?Следующий вопрос→В каких backend-проектах Phoenix (Elixir) является сильным выбором, а где лучше выбрать более простой или другой стек?

Связанные темы

Phoenix (Elixir)Backend-Engineeringphoenix-ecosystem