Новое: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 источников: карьерные страницы компаний и джоб-борды.

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

Как понять, что команда использует Dart идиоматично, а не переносит привычки из другого языка?

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

Идиоматичный Dart: sealed classes + pattern matching, коллекционные литералы с if/for, extension methods вместо utils, повсеместный const, async/await вместо .then(), и Records для множественных возвратов.

1. Null safety используется полноценно, не обходится

Признак переноса привычек: повсеместное использование ! (bang operator) и dynamic.

// НЕ идиоматично — Java/Python-привычки
String name = getData()!;  // force unwrap везде
dynamic config = loadConfig();

// Идиоматично
final String? name = getData();
final displayName = name ?? 'Anonymous';

// Или через pattern matching (Dart 3.0+)
switch (result) {
  case Success(:final data): print(data);
  case Failure(:final error): print(error);
}

Признаки идиоматичного Dart в команде

Идиоматичный Dart — это не просто синтаксис, это использование языковых конструкций так, как задумано разработчиками Dart. Ниже конкретные сигналы, которые показывают состояние кодовой базы.

2. Коллекционные литералы с if/for/spread

Java/Kotlin-разработчики пишут императивные циклы там, где Dart предлагает декларативный синтаксис.

// НЕ идиоматично
List<String> tags = [];
for (final item in items) {
  if (item.isActive) tags.add(item.tag);
}

// Идиоматично
final tags = [
  for (final item in items)
    if (item.isActive) item.tag,
];

3. Использование sealed classes и pattern matching (Dart 3.0+)

Команды, перенёсшие JS-привычки, используют String-enum или magic strings вместо sealed-иерархий.

// НЕ идиоматично
class ApiResult {
  final String status; // 'success' | 'error'
  final dynamic data;
  ApiResult(this.status, this.data);
}

// Идиоматично
sealed class ApiResult<T> {}
final class ApiSuccess<T> extends ApiResult<T> {
  final T data;
  const ApiSuccess(this.data);
}
final class ApiError<T> extends ApiResult<T> {
  final String message;
  const ApiError(this.message);
}

// Использование с exhaustive switch
String describe(ApiResult result) => switch (result) {
  ApiSuccess(:final data) => 'OK: $data',
  ApiError(:final message) => 'Error: $message',
};

4. Extension-методы вместо utility-классов

Java-разработчики создают статические utility-классы. Dart предлагает extension methods прямо на типах.

// НЕ идиоматично
class StringUtils {
  static String capitalize(String s) => s[0].toUpperCase() + s.substring(1);
}

// Идиоматично
extension StringExtensions on String {
  String get capitalized => this[0].toUpperCase() + substring(1);
}

// Использование
final name = 'dart'.capitalized; // 'Dart'

5. Правильный async — StreamSubscription, StreamController

Dart async-экосистема строится на Stream, а не только на Future. Команды с JS-фоном часто злоупотребляют Future.then() вместо async/await и Stream.

// НЕ идиоматично — callback hell из JS
fetchUser().then((user) {
  fetchPosts(user.id).then((posts) {
    display(posts);
  });
});

// Идиоматично
Future<void> loadAndDisplay() async {
  final user = await fetchUser();
  final posts = await fetchPosts(user.id);
  display(posts);
}

6. Records и destructuring (Dart 3.0+)

Признак идиоматичности в 2026: использование Records для возврата нескольких значений вместо Map или самодельных классов.

// НЕ идиоматично
Map<String, dynamic> getNameAndAge() => {'name': 'Alice', 'age': 30};

// Идиоматично
(String name, int age) getNameAndAge() => ('Alice', 30);

void main() {
  final (name, age) = getNameAndAge();
  print('$name is $age');
}

7. const везде, где возможно

Dart позволяет compile-time constants не только для primitives, но и для объектов. В Flutter это напрямую влияет на производительность.

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

  • Переход на sealed classes требует Dart 3.0+ — в старых проектах (Dart 2.x) этого паттерна нет, не стоит ожидать его как признак идиоматичности.
  • Extension methods из разных файлов могут конфликтовать при импорте — нужно явное сокрытие через show/hide.
  • Exhaustive switch на sealed class не проверяется компилятором для обычных switch-statements в старом синтаксисе — только для switch-выражений.
  • cascade operator (..) не идиоматичен для функциональных объектов — только для builder-паттернов с мутацией.
  • Records не поддерживают именованные поля через деструктуризацию так же гибко, как Kotlin data class — есть ограничения.
  • Команды часто путают mixin и abstract class — мixin не может иметь конструктор с параметрами.
  • Идиоматичность =/= наличие кодстайла; важно проверять именно использование языковых фич, а не только форматирование (dartfmt/dart format автоматизирует форматирование).
  • Чрезмерное использование функционального стиля (where/map/reduce цепочки) без readable имён — антипаттерн даже если синтаксически идиоматично.

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

  • В чём разница между var, dynamic и явными типами в Dart?
  • Как работает null safety в Dart? В чём разница между ?, ! и ???
  • Что такое isolates в Dart и чем они отличаются от потоков (threads)?
  • В чём разница между Future и Stream в Dart?

Что портит ответ

  • Сразу обвинять Dart, не проверив соседние слои системы
  • Чинить симптом без минимального воспроизведения и evidence
  • Не учитывать версии, конфигурацию, окружение и recent changes

Что слушает интервьюер

  • Умеет локализовать проблему вокруг Dart
  • Двигается от симптома к гипотезам и проверкам
  • Отличает баг инструмента от ошибки использования или окружения

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

Проверить себя по теме Dart →
←Предыдущий вопросПредставьте, сервис на Dart стал медленнее или нестабильнее после релиза. Какие language/runtime-specific причины вы проверите?Следующий вопрос→Какие особенности runtime, type system или memory model Dart реально влияют на архитектуру приложения?

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

DartDebuggingtechnical-communicationtechnology-selectiontrade-off-analysis