uv.lock
У uv широкі requirements живуть у pyproject.toml, а exact universal resolution — у version-controlled uv.lock.
Як працює проєктний білдер, ізоляція залежностей і впровадження нових інструментів →Відеобібліотека
Пошук у нотатках курсу Java з переходом на потрібну секунду.
У uv широкі requirements живуть у pyproject.toml, а exact universal resolution — у version-controlled uv.lock.
Як працює проєктний білдер, ізоляція залежностей і впровадження нових інструментів →Підтверджує research-уточнення цього уроку.
Як працює проєктний білдер, ізоляція залежностей і впровадження нових інструментів → Першоджерело ↗pip — базовий і простий інструмент, тоді як uv дає швидше встановлення, сучасніше керування проєктом і зручніші механізми для команд запуску та конфігурації. uv написаний на Rust і особливо помітно скорочує час відновлення залежностей у CI та після клонування репозиторію. Окрема перевага — робота з конфліктами транзитивних залежностей, коли дві бібліотеки очікують різні версії третьої. uv також дає чіткіший контроль за правилами оновлення й фіксації версій. Аналогія з Java: Maven виконує базову задачу, Gradle надає ширші можливості й за коректної конфігурації може швидше збирати проєкт. Але переваги нового інструмента треба пов’язувати з реальною проблемою команди, а не лише з його новизною.
Переписувати весь test suite з нуля зазвичай не потрібно. Коли старий тест зламався або нову задачу значно легше реалізувати новим засобом, її можна зробити на uv чи Playwright і залишити робочі старі тести на pip або Selenium. В одному репозиторії тимчасово можуть співіснувати: - pip і uv; - Maven і Gradle; - Selenium і Playwright; - pytest та інший test runner; - JUnit і TestNG. CI просто виконує окремі команди для відповідних наборів. Основний ризик — не саме співіснування, а конфлікти спільних транзитивних залежностей і додаткова вартість підтримки двох стеків. Найбезпечніший аргумент для міграції — конкретна користь на конкретному сценарії: швидше встановлення, простіша діагностика, потрібне мокання network або стабільніша робота з браузером. Після доказу підхід можна розширювати.
Middle має володіти мовою настільки, щоб писати й підтримувати UI та API tests, а також пояснити, як перевірити нову поведінку й які наявні тести варто змінити. UI automation легше показує зв'язок із діями користувача, тоді як API automation часто швидша й стабільніша, але вимагає впевнено працювати з більшими структурами даних і контрактами. Очікується знання базових типів, перетворень і наслідків звуження/розширення типів, dependency/build tool свого stack (`requirements.txt`, `pip`/`uv`, Maven/Gradle, npm), а також можливостей test runner. Важливо вміти запустити тести паралельно й розуміти, які ресурси та змінні створюються для кожного worker.
Poetry названо сучаснішим і декларативнішим за pip, хоча uv має перевагу у швидкості та простоті. Однозначної відповіді, з чого починати навчання, немає. Прості інструменти краще показують базову механіку, а сучасні швидше дають продуктивний результат. Збалансований шлях — працювати сучасним стеком, але паралельно досліджувати, що відбувається під капотом і які проблеми він вирішує. Розуміння внутрішньої механіки зменшує кількість випадкових workaround і допомагає помічати нові можливості бібліотек замість того, щоб будувати власні обхідні рішення.