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

Python мануфактура · Програма курсу · 2:01–3:30

Нумерація через `enumerate`

`enumerate(browsers, start=1)` одночасно повертає людський номер і значення. Це простіше за ручний counter і корисне для diagnostic messages: можна вказати, на якому саме елементі впала перевірка. Без `start=1` індексація починається з нуля.

4 цикли →

Python мануфактура · Сесії: AMA та PMP · 3:30–6:30

Entity, DAO, repository та ORM

Entity object відображає таблицю або persistence-модель, DAO інкапсулює низькорівневий доступ до даних, а repository формулює операції мовою домену, наприклад `findUserByEmail`. Межі цих назв різняться між ecosystem, тому важливіше розуміти відповідальність, а не механічно відтворювати всі шари. ORM перетворює об'єкти на relational data та генерує SQL. Він зменшує кількість ручних queries для стандартного CRUD, але не скасовує знання schema, indexes, transactions і joins. Для невеликого test-support helper достатньо вже наявного driver/repository; окремий ORM-шар лише для тестів часто створює дублювання production model.

Автомтизація баз даних та що з тим робити та що знати →

Python мануфактура · Сесії: AMA та PMP · 16:30–21:30

Читабельний CSS як практичний fallback

Якщо стабільного test ID або accessible name немає, припустимий короткий CSS selector через зрозумілий parent і тип дочірнього елемента. Locator повинен читатися; складний вираз варто сховати за змінною з предметною назвою. Не слід використовувати generated hashes, випадкові class names, positional indexes або повні DOM paths. Якщо ID має стабільний префікс і випадковий suffix, можна шукати за контрольованим частковим збігом.

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