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

Терміни, нюанси та джерела

Приклад коду · 3:00

Instance state через self та __init__

page є instance attribute: кожен PageObject отримує власний стан через __init__, а method читає його через self.

Команда друкує Page: checkout і assertion проходить.

__init__, self, page та принципи ООП →

Термін · 0:00

self

Загальноприйнята назва першого параметра instance method. Python передає bound instance неявно під час виклику obj.method(), але ім’я self саме по собі не є keyword.

__init__, self, page та принципи ООП →

Нюанс · 4:00

Self-hosted runner не є isolation boundary

GitHub попереджає, що код workflow на self-hosted runner може скомпрометувати машину та доступні secrets. Один runner виконує одну job одночасно, але це не гарантує ізоляцію між послідовними jobs; для untrusted workflows потрібні ephemeral runners або інша isolation strategy.

Інфраструктура автотестів та її нюанси →

Приклад коду · 0:00

Мінімальний Playwright Page Object із readiness check

Class name позначає page, methods описують actions, locators зберігаються в одному місці, а open завершується мінімальною readiness check.

Після open() test продовжується лише коли heading Sign in видимий; fill_email() приховує locator details від test code.

Неймінг та структура automation-проєкту →

Java · Сесії: AMA та PMP · 0:00–3:00

`self` і область видимості

`self` — явний параметр instance method, через який код звертається до конкретного екземпляра класу. `self.card` означає атрибут цього екземпляра, тоді як локальна змінна `card` живе лише у своїй функції або блоці видимості. Однакові назви технічно можливі, але збільшують когнітивне навантаження. Префікс `self.` одночасно потрібен Python для правильного доступу до instance attribute і показує читачеві, де зберігається стан.

__init__, self, page та принципи ООП →

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

Мережевий доступ і self-hosted runners

Відкривати приватне середовище для широкого діапазону IP хмарного CI дорого в підтримці й збільшує поверхню атаки. Практичніший варіант — runner усередині контрольованої мережі: GitHub або GitLab передає йому job, а сам runner уже має потрібний маршрут до тестової інфраструктури. Доступ усе одно обмежують мережевими правилами й мінімальними правами конкретного runner.

Інфраструктура автотестів та її нюанси →

Java · Сесії: AMA та PMP · 0:00–2:00

CI runners, agents і вартість виконання

GitHub і GitLab називають виконавців jobs runners, Jenkins — agents. Хмарні runners зручні, але в приватних організаціях хвилини виконання можуть тарифікуватися. Self-hosted runner працює всередині інфраструктури компанії, дає більше контролю над ресурсами й доступами та часто зменшує операційну вартість регулярних прогонів.

Інфраструктура автотестів та її нюанси →

Java · Сесії: AMA та PMP · 3:00–6:00

`__init__` задає обов’язковий стан об’єкта

Через `__init__` клас отримує залежності й початковий стан, без яких його методи не мають сенсу. Наприклад, компонент приймає кореневий locator, а Page Object — Playwright `page`; наступні методи перевикористовують ці значення через `self`. У повсякденній мові `__init__` часто називають constructor. Технічно екземпляр створює `__new__`, а `__init__` ініціалізує вже створений об’єкт. Для звичайного Page Object достатньо реалізувати саме `__init__`.

__init__, self, page та принципи ООП →

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

Технічна й управлінська робота вимагають різного хисту

Робота з людьми може бути хаотичною й емоційно складною; глибока технічна робота дає інший тип задоволення. Немає універсально вищої ролі — важливо чесно визначити, який характер задач підходить саме зараз. Корисно пробувати різні професійні ролі й хобі та дізнаватися про труднощі designer, developer, DevOps і manager. Навіть якщо роль не стане основною, цей досвід покращує співпрацю й допомагає розуміти мотиви інших учасників команди.

Перехід із менеджменту в технічну роль і sabbatical →

Java · Сесії: AMA та PMP · 8:00–10:00

Швидка перевірка реального масштабу досвіду

Якщо кандидат описує CI pipeline, parallelization, sharding, self-hosted runners і підготовку database state перед deployment, окреме базове опитування синтаксису може не додати сигналу. Натомість interviewer просить пояснити, як саме було реалізовано рішення, які trade-offs виникли й що кандидат робив особисто.

Методики проведення співбесід →

Java · Сесії: AMA та PMP · 28:00–32:00

Quality feedback як інженерний сигнал

[Дивитися з 28:00](https://www.youtube.com/watch?v=jAl2Qf8Zlyg&t=1680s). QA має помічати, коли після змін конкретного contributor-а різко збільшується кількість defects або regression effort. Це не привід для особистої атаки, а measurable signal: planning, self-review або verification недостатні. Feedback краще передавати через узгоджений management channel із прикладами impact. Незалежно від AI, engineer зобов’язаний перевіряти власну роботу; перекладання всієї відповідальності на QA є слабкою engineering culture.

Vibe coding, склад команди та нова роль тестувальника →
Запитати в чаті про «self» →