Erased types
TypeScript type annotations використовуються під час static checking, але стираються з emitted JavaScript і не змінюють runtime behavior.
Який рівень програмування потрібен automation engineer →Відеобібліотека
Пошук у нотатках курсу Java з переходом на потрібну секунду.
TypeScript type annotations використовуються під час static checking, але стираються з emitted JavaScript і не змінюють runtime behavior.
Який рівень програмування потрібен automation engineer →POJO описує fields, accessors, equality/hash і string representation. Моделі можна згенерувати з real JSON через jsonschema2pojo або RoboPOJOGenerator, обравши Jackson annotations і, за потреби, Lombok. `@JsonProperty` зв’язує JSON name з Java field, Jackson Databind serialization/deserialization перетворює DTO у request body і response назад у object. `null`, missing field, empty object і empty array — різні contract states і потребують окремих tests.
Java і C# формально перевіряють `public`, `private` та `protected`, тоді як Python використовує переважно conventions. Водночас суворіші мови скорочують boilerplate, а Python і JavaScript додають type hints та інструменти статичного аналізу. Python annotations допомагають IDE й type checker, але самі по собі не перетворюють Python на статично типізовану мову та не гарантують runtime-перевірку. Їхня користь — ранній зворотний зв’язок і краща навігація по API.
Тест описується як method всередині class і позначається JUnit 5 annotation `@Test`. Важливо вибрати імпорт саме з `org.junit.jupiter.api`, бо IDE може запропонувати однаково названі типи з інших package. Java-класи називаються у PascalCase, methods — у camelCase; блоки обмежуються фігурними дужками, а statements завершуються `;`. IDE formatting і optimize imports прибирають механічні помилки, але не замінюють розуміння структури.
Demo показує real failures: missing generated client, incompatible Spring types, Jackson/Gson annotations, date/time mappings і auxiliary dependencies. Проблема не завжди у spec — generator version, selected library і dependency graph мають суміщатися. Потрібно pin generator version, зберігати config у repository і перевіряти clean generation в CI. Якщо generated code вимагає постійних manual edits, generator не виконує свою роль.
Live Templates генерують repetitive test annotations, Allure steps і method skeletons. Вони доречні для stable project conventions, а не для business logic. Шаблони можна зберігати в project settings і розділяти з командою. Якщо convention змінилася, template також має змінитися; generated boilerplate не слід розмножувати без review.
Одна model для request і response придатна лише тоді, коли wire shapes справді збігаються. Якщо response має generated id/timestamps або request забороняє server-owned fields, потрібні separate `PetRequest` і `PetResponse`. Невдала deserialization найчастіше означає incorrect DTO shape/type або Jackson configuration. Виправлення — звірити модель з real JSON/OpenAPI contract, а не додавати random annotations, доки exception не зникне.