Files
2026-test-labor-02/python
2026-06-22 23:15:10 +03:00
..
2026-06-22 23:15:10 +03:00

Python решения

Эта папка зарезервирована для Python реализации решений, но в данном проекте основной фокус на bash-утилиты для диагностики и тестирования сетевого доступа.

Почему только bash?

Задача этого проекта — быстрая и портативная диагностика:

  • Сравнение методов доступа к GitHub репозиторию (HTTPS, SSH, GitHub CLI)
  • Измерение скорости загрузки между разными серверами
  • Демонстрация влияния HTTP-сжатия на скорость передачи

Для этих задач bash-скрипты идеальны:

  • Не требуют установки зависимостей (только curl, bc)
  • Работают на любой Unix-системе out of the box
  • Быстрая диагностика и отладка

Почему не Python?

Любое Python решение в итоге:

  1. Использует curl через обертку (типа plumbum, subprocess) — тогда это просто Python-обертка над bash
  2. или портебует Реализации собственного HTTP-клиена, что уже никак не будет "быстрым решением" и, вдобавок, потеряется функциональность:
    • HTTPS с самоподписанными сертификатами
    • SFTP, WebDAV, SMB и другие протоколы
    • Пулинг соединений, redirect handling
    • Прокси, cookies, headers, auth методы

Python-библиотеки (requests, httpx) хороши для приложений, но для простой диагностики они избыточны и требуют:

  • Установку пакетов (pip, poetry и т.п.)
  • Управление версиями зависимостей
  • Дополнительный код для разбора результатов
  • дополнительные 120-240 мс на каждый запрос из-за интерпретатора Python, что критично для замеров скорости

Вывод: Bash + curl = минимум зависимостей + максимум функциональности + прямой доступ к инструментам системы.

Мой Python код

Если вас интересуют примеры моего Python кода, смотрите другие репозитории:

Содержимое проекта

├── bash/                    # Bash утилиты и скрипты
│   ├── speed_test.sh       # Измерение скорости интернета
│   ├── compare_modes.sh    # Сравнение методов доступа к GitHub
│   ├── compare_servers.sh  # Сравнение скорости серверов
│   └── USAGE.md            # Документация
└── python/                  # Зарезервировано для будущих решений