SSH key pair
GitHub SSH authentication uses a private key kept on the local machine and a corresponding public key added to the GitHub account; a passphrase protects the private key at rest.
2. Git Workflow у PyCharm/IntelliJ →Відеобібліотека
Пошук у нотатках курсу Python мануфактура та спільних матеріалах з переходом на потрібну секунду.
GitHub SSH authentication uses a private key kept on the local machine and a corresponding public key added to the GitHub account; a passphrase protects the private key at rest.
2. Git Workflow у PyCharm/IntelliJ →Звична client–server model узагальнюється термінами consumer і producer. Consumer споживає дані або можливість, producer їх надає. Така мова працює не лише для browser і web server, а й для взаємодії між сервісами. Комунікація має protocol і contract. API-документації може не бути, вона може бути написаною вручну і застарілою або code-generated з анотацій у коді. У REST сутності представлені resources, а операції над ними — endpoints з HTTP-методами `GET`, `POST`, `PUT`, `DELETE`.
У REST структура починається з resources та HTTP methods. `Pet`, `Store` або `User` задають назви controllers/clients, а дії на кшталт create, update, delete чи find by ID — назви методів. Request і response models корисно розділяти, бо server response часто містить поля, яких не було у request. У GraphQL треба повторювати назви queries, mutations, inputs і types зі schema. Code generation може дати готові типи, але базове правило те саме: не створювати паралельний словник там, де backend contract уже має точні терміни. Read-only доступ до frontend і backend repositories допомагає швидше зрозуміти систему й підтримувати automation разом зі змінами продукту.
Для API automation потрібно окремо вивчити REST semantics: methods, resources, типові status codes і їхню очікувану поведінку. Public endpoints зазвичай оптимізовані для frontend або зовнішніх clients, private endpoints можуть обслуговувати внутрішню service-to-service communication і мати інший контракт. Самого HTTP status недостатньо. Централізований error handling має повернути consumer стабільний internal error code і зрозуміле пояснення: якого поля бракує або яке значення невалідне. Власні HTTP status codes на кшталт `600` не замінюють нормального error contract.
[Дивитися з 22:13](https://www.youtube.com/watch?v=GwmAB4IvQUk&t=1333s). Backend testing охоплює не тільки response body, а й правила зберігання, видалення та повідомлення користувача про персональні дані. Навіть архітектура без окремих controllers — наприклад, REST-інтерфейс поверх PostgreSQL через PostgREST — не скасовує перевірок access control, фільтрації та дозволених операцій. Прямі CRUD-запити можуть бути простими синтаксично, але безпека й видимість rows усе одно залежать від правил у шарі даних.
Компанія — не сім’я, але здоровий менеджмент має пам’ятати, що працює з людьми. Не варто компенсувати проблеми проєкту постійним overtime. Якщо є виснаження, перший крок — зменшити scope, використати відпустку, повернути хобі й час із близькими. Sabbatical доречний, коли є фінансова подушка та реальна можливість його взяти. Матеріальний стан важливий, але його треба співвідносити з ціною для психологічного здоров’я; рішення не варто зводити лише до максимальної зарплати.
Показано спрощене застосування Model–View–Controller. `Model` описує DTO і response data; `Controller` інкапсулює запити; роль view у цьому тестовому контексті не розвивається. Кожен REST resource — projects, suites, runs, templates, tests, users — отримує власний controller з потрібними операціями `create`, `get`, `update`, `delete`. Це тримає тестовий сценарій на рівні предметних дій, а URL, headers і розбір response залишаються в одному місці.
Гексагональна архітектура пояснює, як декомпозувати сервіс за відповідальністю та способом взаємодії з довкіллям. Окремі adapters працюють з REST, WebSocket, email, SMS, database, message queue і third-party services, не змішуючи все в одному класі. Для тестувальника такий поділ дає карту ports і failure seams: можна окремо перевірити domain behavior, adapter contract і повний ланцюжок інтеграції.
Окрім REST, системи використовують WebSocket, gRPC і GraphQL. Протокол обирається під задачу, тому перед автоматизацією потрібно зрозуміти не лише endpoint, а й модель комунікації. Backend for Frontend — це gateway з контрактом, зручним для конкретного client: web frontend, mobile application або окремого screen. Зовні він відкриває потрібні resources, а всередині може агрегувати кілька services з їхніми базами і queues.