Python мануфактураJavaDesign Patterns для автоматизаторів

Java · Сесії: AMA та PMP · 4:30–7:30

Структуровані config-файли й config server

Наступний рівень — JSON, YAML, XML або інший структурований формат, який можна десеріалізувати у типізований config object. Це допомагає групувати налаштування за сервісами й середовищами, але файл із секретами все одно не можна публікувати в Git. У складнішій системі конфігурацію може віддавати централізований config server. Він дозволяє сервісам отримувати актуальні домени, ключі й feature flags, інколи без повного redeploy. Тестовий код не повинен створювати паралельне джерело правди, якщо може безпечно використати той самий контрольований механізм, що й продукт.

Юзер менеджмент та костилі з якими ви стикнетесь в житті →

Java · Сесії: AMA та PMP · 7:30–11:30

Кілька середовищ і поступова еволюція конфігурації

Для dev, staging, UAT та інших середовищ можуть існувати окремі локальні файли, і кожен із них має бути проігнорований. Якщо файл випадково додали до індексу, простого нового правила в `.gitignore` недостатньо: треба забрати його зі staged/tracked стану й тільки тоді перевірити ignore. Середовище не завжди визначається окремим доменом. Маршрутизація може залежати від path, cookie, custom header або feature flag; у production подібний механізм використовується для canary release. У тестах ці параметри мають бути явною конфігурацією, а не розкиданими константами. Ланцюжок розвитку у відео: hardcode → `.env` → структурований config → централізований config server. Перехід потрібен лише тоді, коли попередній варіант уже створює вимірювану незручність або ризик.

Юзер менеджмент та костилі з якими ви стикнетесь в житті →

Java · Сесії: AMA та PMP · 9:50–12:00

Feature flags та A/B experiments

B2C UI регулярно змінюється через experiments, feature flags і runtime configuration. Якщо тест не контролює variant через cookie, local storage, seed або інший узгоджений механізм, він може випадково бачити різні версії інтерфейсу й падати лише в частині запусків. Спочатку треба зробити variant детермінованим, а не перебирати дедалі складніші selectors.

Пріоритети селекторів та їхня надійність →
Запитати в чаті про «feature-flags» →