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

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

Что такое MicroProfile Config и как он работает в Quarkus?

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

MicroProfile Config — стандарт для управления конфигурацией; Quarkus реализует его через SmallRye Config. Свойства инъектируются через @ConfigProperty, группируются в @ConfigMapping интерфейсы и берутся из нескольких источников с приоритетами (env > .env > application.properties).

Базовое использование

@ApplicationScoped
public class EmailService {
    // Обязательное свойство — упадёт при старте, если не задано
    @ConfigProperty(name = "email.smtp.host")
    String smtpHost;

    // Со значением по умолчанию
    @ConfigProperty(name = "email.smtp.port", defaultValue = "587")
    int smtpPort;

    // Optional — свойство может отсутствовать
    @ConfigProperty(name = "email.from")
    Optional<String> fromAddress;

    // Список через запятую
    @ConfigProperty(name = "email.allowedDomains")
    List<String> allowedDomains;
}
# application.properties (или application.yaml)
email:
  smtp:
    host: smtp.resend.com
    port: 587
  from: noreply@example.com
  allowed-domains: example.com,acme.org

MicroProfile Config в Quarkus

MicroProfile Config — стандарт (спецификация Eclipse MicroProfile) для управления конфигурацией в Java-приложениях. Quarkus реализует эту спецификацию через расширение quarkus-smallrye-config, которое входит в quarkus-core по умолчанию. Конфигурация агрегируется из нескольких источников с разным приоритетом и доступна через инъекцию @ConfigProperty или программно через ConfigProvider.

Источники конфигурации (ConfigSource) и их приоритет

  • 400 — системные свойства JVM (-Dkey=value)
  • 300 — переменные окружения (MY_APP_HOST=localhost)
  • 295 — файл .env в рабочей директории
  • 250 — application.properties (или application.yaml если подключить quarkus-config-yaml)
  • 100 — значения по умолчанию из аннотации @ConfigProperty(defaultValue=...)

Чем выше число — тем выше приоритет. Переменная окружения всегда перекрывает application.properties.

Группировка через @ConfigMapping

SmallRye Config (реализация в Quarkus) добавляет @ConfigMapping — type-safe интерфейс для конфигурационных групп. Это предпочтительный подход для сложных конфигураций.

@ConfigMapping(prefix = "database")
public interface DatabaseConfig {
    String host();
    int port();
    String name();
    PoolConfig pool();

    interface PoolConfig {
        int minSize();
        int maxSize();
        Duration timeout();
    }
}
database:
  host: localhost
  port: 5432
  name: mydb
  pool:
    min-size: 5
    max-size: 20
    timeout: 30S
@Inject
DatabaseConfig dbConfig;

void connect() {
    String url = "jdbc:postgresql://" + dbConfig.host() + ":" + dbConfig.port() + "/" + dbConfig.name();
    int maxConn = dbConfig.pool().maxSize();
}

Профили конфигурации

Quarkus поддерживает встроенные профили dev, test, prod и кастомные. Активный профиль задаётся переменной окружения QUARKUS_PROFILE или системным свойством -Dquarkus.profile=staging.

# Значения для всех профилей
database.host: prod-db.internal

# Переопределение только для dev
%dev.database.host: localhost

# Переопределение только для test
%test.database.host: testcontainer-host

# Кастомный профиль staging
%staging.database.host: staging-db.internal

Программный доступ

// Без CDI инъекции, например в утилитном коде
Config config = ConfigProvider.getConfig();
String host = config.getValue("database.host", String.class);
Optional<Integer> port = config.getOptionalValue("database.port", Integer.class);

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

  • Маппинг имён свойств из env. Переменная окружения EMAIL_SMTP_HOST соответствует свойству email.smtp.host. Правило: точки и дефисы → подчёркивания, всё в верхний регистр. Ошибки в этом маппинге — самая частая причина «свойство не подхватилось».
  • Eager validation при старте. Если обязательное @ConfigProperty не найдено — приложение не запустится с DeploymentException. Это хорошо в проде, но требует заглушек в тестах.
  • @ConfigMapping — интерфейс, не класс. @ConfigMapping работает только с интерфейсами. Попытка использовать abstract class вызовет ошибку генерации кода в build time.
  • Инъекция в статический контекст. @ConfigProperty — CDI-механизм, работает только в managed бинах. В статических методах или утилитных классах используйте ConfigProvider.getConfig().
  • Секреты в application.properties. Файл попадает в Docker image и git. Для секретов используйте переменные окружения или подключайте Vault через quarkus-vault.
  • Тип Duration в @ConfigMapping. Формат Duration в MicroProfile Config — PT30S (ISO-8601), но SmallRye также принимает 30S. Смешивание форматов при разных версиях может дать неожиданный результат.
  • List через запятую теряет пробелы. Значение a, b, c даёт элементы ["a", " b", " c"] — с пробелом в начале. Trim не применяется автоматически.

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

  • Как Quarkus достигает быстрого времени запуска и низкого потребления памяти?
  • Что такое Quarkus и какие проблемы он решает по сравнению с традиционными Java-фреймворками?
  • Как Quarkus поддерживает разработку RESTful API с помощью RESTEasy Reactive?
  • В чём разница между JVM-режимом и native-режимом Quarkus?

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

  • Путать термин «microprofile config» с соседним механизмом Quarkus.
  • Не называть границу lifecycle, transaction, thread или request для «microprofile config».
  • Игнорировать production-эффекты «microprofile config»: latency, SQL shape, memory, security или observability.

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

  • Попросить объяснить механизм «microprofile config» на минимальном примере.
  • Проверить, видит ли кандидат failure mode и диагностику для «microprofile config».
  • Уточнить, какие настройки или API меняют «microprofile config» в реальном сервисе.

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

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

Источники

  • https://quarkus.io/guides/config-reference
←Предыдущий вопросЧто такое MicroProfile Fault Tolerance и какие аннотации он предоставляет (`@Retry`, `@CircuitBreaker`, `@Fallback`)?Следующий вопрос→Как Quarkus поддерживает реактивное программирование и что такое Mutiny?

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

Quarkusbackend-designtechnical-communication