Skip to content
View pavelmaksimov's full-sized avatar

Block or report pavelmaksimov

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
pavelmaksimov/README.md

Привет! 👋

Я Backend Engeener / Python Developer, на этой странице ты можешь ознакомиться с моими проектами.

Я увлечен проектированием ПО, изучаю паттерны и принципы, позволяющие управлять сложностью и сохранять качество кода.

Подписывайтесь на мой телеграм канал, чтобы изучать паттерны проектирования, узнавать об инструментах серверной разработки и тестирования, вместе со мной.

🚀 Мои проекты

🛠️ Статические анализаторы

Я создал несколько статических анализаторов для управления сложностью и контроля архитектурных ограничений в Python-проектах.

🍰 layers-linter - Проверяет соблюдение слоистой архитектуры. https://github.com/pavelmaksimov/layers-linter

Предназначен для проверки соблюдения архитектурных ограничений, связанных с:

  1. разделением модулей по их техническим ролям и контроль направления зависимостей между ними; Анализирует импорты между модулями и предупреждает, когда направление зависимости между слоями не соответствуют заданнам направлениям;
  2. ограничением на использование библиотек в определенных слоях; Анализирует импорты библиотек и предупреждает, если библиотека импортирована в ограниченном для неё, слое;

Для настройки используется TOML-файл, где описываются слои и направление зависимостей. Особенно полезен для командной работы над сложными проектами. Поддерживает работу как отдельный инструмент и как плагин для flake8.

💉 di-linter - Обнаруживает инъекции зависимостей (Dependency Injection). https://github.com/pavelmaksimov/di-linter

Реализует проверку соблюдения принципа инверсии зависимостей. Инструмент определяет случаи, когда зависимости создаются или используются напрямую в функциях, а не передаются извне. Подходит проектам, где нужно внедрять зависимости через DI-контейнер или поддерживать принципы чистой архитектуры, делая код более тестируемым и поддерживаемым. Линтер поддерживает настройку через TOML-файл. Поддерживает работу как отдельный инструмент и как плагин для flake8.

🏷️ domain-types-linter - Проверяет ограничение на использование приминитивных типов в аннотациях. https://github.com/pavelmaksimov/domain-types-linter

Следит за тем, чтобы в аннотациях использовались только доменно-специфичные типы, а не универсальные (str, int и т.д.). Анализирует аннотации типов и выявляет нарушения: использование универсальных типов, их алиасов или generic-типов без доменных параметров. Поддерживает работу как отдельный инструмент и как плагин для flake8.

🧱 bounded-contexts-linter - Проверяет изоляцию "ограниченных контекстов" Domain-Driven Design. https://github.com/pavelmaksimov/bounded-contexts-linter

Проверяет, что зависимости между модулями возникают только внутри одного bounded context, предотвращая несанкционированные импорты между доменами. Позволяет явно определять shared kernel и shared scope для общих модулей. Линтер поддерживает настройку через TOML-файл. Поддерживает работу как отдельный инструмент и как плагин для flake8.

⚙️ Инструменты для разработки

🏛️ project-architecture-template - Шаблон слоистой архитектуры для Python проектов. https://github.com/pavelmaksimov/project-architecture-template

Содержит предварительно настроенную структуру проекта, конфигурационные файлы и базовые модули для быстрого старта. Включает:

  • Документированную слоистую архитектуру
  • Настроенные линтеры
  • Настроенные фабрики и фикстуры для тестов
  • CI/CD конфигурации для GitLab
  • Подключение к бд Postgres
  • Alembic для миграций бд
  • и др.
🏗️ sqlalchemy-fastapi-endpoint-factory - Генератор CRUD эндпоинтов для FastAPI https://github.com/pavelmaksimov/sqlalchemy-fastapi-endpoint-factory

Инструмент для автоматической генерации CRUD-эндпоинтов FastAPI на основе моделей SQLAlchemy. Позволяет быстро создавать REST API для работы с данными без ручного описания маршрутов. Пример использования — одна строка для генерации эндпоинта по любой модели Pydantic. Подходит для прототипирования и ускорения разработки сервисов на FastAPI и SQLAlchemy.

📡 API Clients

🛍️ tapi-yandex-market - Python клиент для API Яндекс.Маркета.

📢 tapi-yandex-direct - Python клиент для API Яндекс.Директ.

📈 tapi-yandex-metrika - Python Клиент всех для API Яндекс.Метрика.

Other

🌊 FlowMaster - Фреймворк для построения ETL/ELT пайплайнов по YAML-конфигурации.

🧠 algorithms - Записывал решения и ошибки при решении алгоритмических задач

📊 attributions - Инструмент для атрибуции в маркетинговой аналитике.


📬 Контакты

Telegram: @pavel_maksimow

Pinned Loading

  1. tapi-yandex-metrika tapi-yandex-metrika Public

    Библиотека для всех API Яндекс Метрика

    Python 164 19

  2. FlowMaster FlowMaster Public

    ETL flow framework based on Yaml configs in Python

    Python 22 3

  3. tapi-yandex-direct tapi-yandex-direct Public

    Python библиотека API Яндекс Директ

    Python 61 13

  4. tapi-yandex-market tapi-yandex-market Public

    Python библиотека для API Яндекс Маркет

    Python 15 1

  5. galytics3 galytics3 Public

    Обертка над стандартной библиотекой google_api_python_client для легкой работы с API Google Analytics v3

    Python 17 5

  6. clickhousepy clickhousepy Public

    Python обертка для запросов в БД Clickhouse

    Python 9