Об этом проекте
Tach — инструмент для Python-проектов, помогающий поддерживать модульную монолитную архитектуру путём enforcing правил зависимостей и интерфейсов. Написан на Rust, работает без влияния на время выполнения и может быть инкрементально внедрён в существующие системы.
Ключевые возможности:
- Enforcement зависимостей: гарантирует, что импорты поступают только из объявленных зависимостей и предотвращает циклы в графе зависимостей.
- Управление интерфейсами: требует, чтобы вызовы между модулями использовали определённые публичные интерфейсы.
- Визуализация: генерирует графы зависимостей через веб-интерфейс или формат GraphViz DOT.
- Инструменты анализа: предоставляет отчёты о зависимостях и использованиях конкретных путей, может генерировать JSON-карты зависимостей.
- Интеграция: поддерживает CI/CD-пайплайны, pre-commit хуки и интеграцию с VS Code.
- Расширенная конфигурация: поддерживает слоистую архитектуру, доменное владение, namespace-пакеты для monorepos и возможность депрекейта отдельных зависимостей.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.