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

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

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

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

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

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

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

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

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

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

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

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

Все подборки
  • Python9 224
  • Облачные технологии4 076
  • QA вакансии1 588
  • Android1 322
  • Инженер данных805
  • Продакт-менеджер368

Разработка

  • Backend вакансии1 317
  • iOS1 239
  • AI вакансии608
  • Fullstack вакансии523
  • Frontend вакансии456
  • Mobile вакансии28

По стеку

  • Go5 445
  • Java3 175
  • Kotlin1 119
  • Node.js1 026
  • Rust949
  • .NET666
  • PHP311
  • C#210
  • C++204

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

  • DevOps вакансии2 713
  • Kubernetes2 308
  • Linux-инфраструктура1 890
  • Terraform / IaC1 406
  • CI/CD842
  • Мониторинг и Observability645
  • SRE226
  • Кибербезопасность84

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

  • Аналитик данных483
  • Data Scientist469
  • Бизнес-аналитик349
  • Системный аналитик48

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

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

По регионам

  • Вакансии в США24 791
  • Вакансии в Европе9 439
  • Работа в России2 924
  • Вакансии в Канаде2 178

По формату

  • Удалённые вакансии43 505
  • Релокация в США24 791
  • Гибридная работа3 370
  • Офисная работа2 525

По уровню

  • Senior вакансии20 898
  • Middle вакансии12 438
  • Junior вакансии3 864

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

Все компании
  • Wise191 вакансия
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Grab134 вакансии
  • Celonis48 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

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

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

Что такое актор-модель в Actix и чем она отличается от стандартного асинхронного программирования?

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

Актор в Actix — изолированный объект с собственным состоянием, который получает сообщения через Addr<A> и обрабатывает их последовательно без Mutex. В отличие от async/await, состояние не разделяется — гонки данных исключены архитектурно.

Пример актора-счётчика

use actix::prelude::*;

struct Counter {
    count: usize,
}

impl Actor for Counter {
    type Context = Context<Self>;
}

// Сообщение — инкремент
struct Increment;
impl Message for Increment {
    type Result = usize;
}

impl Handler<Increment> for Counter {
    type Result = usize;

    fn handle(&mut self, _: Increment, _: &mut Context<Self>) -> usize {
        self.count += 1;
        self.count
    }
}

#[actix::main]
async fn main() {
    let addr = Counter { count: 0 }.start();
    let result = addr.send(Increment).await.unwrap();
    println!("Count: {}", result); // Count: 1
}

Метод send() возвращает Future с результатом. do_send() — fire-and-forget без ожидания ответа.

Актор-модель в Actix

Actix построен на актор-модели из библиотеки actix. Актор — это изолированный объект с собственным состоянием, который общается с другими только через сообщения. Каждый актор имеет почтовый ящик (Addr<A>), обрабатывает сообщения последовательно и никогда не разделяет состояние напрямую.

Ключевые типажи: Actor (жизненный цикл: started, stopping, stopped), Handler<M> (обработка конкретного типа сообщения), Message (тип с ассоциированным Result).

Отличие от стандартного async/await

В стандартном Tokio-коде вы создаёте async fn, которая выполняется на пуле потоков и может владеть любыми данными. Состояние либо клонируется, либо защищается Arc<Mutex<T>>. В актор-модели состояние принадлежит только актору — никакого Mutex не нужно, гонки данных исключены на уровне архитектуры.

  • Async/await: явный контроль await-точек, состояние — в переменных или Arc
  • Акторы: состояние инкапсулировано в структуре актора, доступ только через send() / do_send()
  • Акторы удобны для долгоживущих объектов с изменяемым состоянием (WebSocket-сессии, кэши, очереди)

Actix-web и акторы

В современном actix-web 4 обработчики маршрутов — это обычные async fn, а не акторы. Actix-сам по себе использует акторы внутренне (например, для WebSocket), но строить бизнес-логику через акторы — выбор разработчика. Для WebSocket-хендлеров реализуется StreamHandler<Result<ws::Message, ws::ProtocolError>>.

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

  • Блокирующий код внутри handle() заблокирует весь актор — используйте ctx.spawn() или выносите тяжёлые операции в actix_rt::task::spawn_blocking
  • do_send() молча теряет сообщение, если почтовый ящик переполнен — всегда мониторьте backpressure
  • Акторы работают в одном потоке своего Arbiter; для параллельной обработки создавайте пул акторов через SyncArbiter::start(n, ...)
  • Циклические ссылки через Addr не освобождаются автоматически — актор не остановится, пока жив хотя бы один Addr
  • Тестирование акторов требует #[actix::test]-рантайма, обычный #[tokio::test] не подойдёт
  • Версии actix и actix-web должны совпадать — несовместимость вызывает ошибки компиляции с неочевидными сообщениями
  • Состояние актора не персистентно — перезапуск системы уничтожает все данные в памяти

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

  • В каких backend-проектах Actix (Rust) является сильным выбором, а где лучше выбрать более простой или другой стек?
  • Представьте, endpoint на Actix (Rust) иногда отвечает за секунды вместо миллисекунд. Как вы будете искать причину?
  • Проект на Actix (Rust) вырос из MVP в большой production-сервис. Какие проблемы архитектуры и сопровождения вы ожидаете увидеть?
  • Как реализовать graceful shutdown в Actix-web?

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

  • Отвечать определением без production-сценария.
  • Не называть runtime boundary, security boundary или failure mode.
  • Игнорировать версию API, observability и тестовую проверку.

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

  • Объясняет механизм своими словами и без выдуманных API.
  • Называет реальные риски, диагностику и критерий корректности.
  • Связывает ответ с текущей документацией и миграционными ограничениями.

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

Проверить себя по теме Actix →

Источники

  • https://actix.rs/docs/

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

Actixactix-productionActix (Rust)risk-analysistechnical-depth