13_Этапы_реализации.md - YaroslavGit28/os.sys-PY GitHub Wiki

13. Этапы реализации

Этот модуль фиксирует полный путь разработки проекта от идеи до рабочего состояния.


13.1. Этап 1 — определение минимального функционала

Сначала выбирается минимум полезных функций:

  • показать содержимое папки;
  • сменить текущую директорию;
  • создать папку;
  • удалить файл или пустую папку;
  • открыть текущую директорию в файловом менеджере;
  • открыть терминал в текущей директории.

Задача этапа — не “сделать всё”, а выделить набор, максимально полезный для демонстрации os/os.system.


13.2. Этап 2 — проектирование интерфейса меню

На этом этапе проектируется поведение пользователя:

  1. Видит меню;
  2. Вводит номер;
  3. Получает результат;
  4. Нажимает Enter и возвращается в меню.

Результат этапа — понятная схема UX без сложных взаимодействий.


13.3. Этап 3 — реализация операций файловой системы

Функции:

  • list_dir()Path.iterdir;
  • change_dir() — изменение CURRENT_DIR;
  • make_dir()os.mkdir;
  • remove_item()os.remove / os.rmdir.

Основной акцент этапа:

  • проверить “базовые” сценарии;
  • встроить простые проверки ввода;
  • добавить обработку исключений.

13.4. Этап 4 — интеграция системных команд

Реализованы обёртки вокруг os.system:

  • clear_screen() для чистого экрана;
  • open_explorer() для открытия директории;
  • open_shell_here() для нового PowerShell в нужной папке.

На этом же этапе добавлена развилка по ОС:

  • os.name == "nt" для Windows;
  • sys.platform == "darwin" для macOS;
  • иначе Linux/Unix.

13.5. Этап 5 — объединение в единый цикл

Все функции подключаются в main():

  • каждое значение choice вызывает отдельную функцию;
  • после действия всегда есть пауза для чтения результата;
  • 0 корректно завершает программу.

13.6. Этап 6 — проверка и документация

Проверяется:

  • отсутствие синтаксических ошибок;
  • корректность веток меню;
  • базовая кроссплатформенная логика;
  • понятность сообщений об ошибках.

После этого оформляются:

  • README.md;
  • структурированная Wiki с примерами, схемами и графиками.

13.7. Таймлайн разработки (диаграмма)

gantt
    title Этапы реализации file_manager.py
    dateFormat  YYYY-MM-DD
    section Анализ
    Определение требований        :a1, 2026-04-01, 1d
    section Код
    Меню и каркас программы       :a2, after a1, 1d
    Файловые операции (os/pathlib):a3, after a2, 1d
    Интеграция os.system          :a4, after a3, 1d
    section Финализация
    Проверка сценариев            :a5, after a4, 1d
    README и Wiki                 :a6, after a5, 1d

13.8. Сравнение с подходом “без Python”

Если делать по шагам без Python:

  • придется отдельно документировать команды для каждой ОС;
  • повторять логику в разных скриптах;
  • сложнее поддерживать единообразие UX.

В текущем проекте весь процесс описан один раз и воспроизводится одним файлом.


13.9. Разбор кода по шагам: этап “права доступа”

if not os.path.exists(target):
    print("Такого файла/папки нет.")
    return

print(os.access(target, os.R_OK))
print(os.access(target, os.W_OK))
print(os.access(target, os.X_OK))

Что показывает этот этап:

  1. exists сначала проверяет, что объект вообще есть.
  2. os.access(..., os.R_OK) — можно ли читать.
  3. os.access(..., os.W_OK) — можно ли писать.
  4. os.access(..., os.X_OK) — можно ли исполнять.

Почему это полезно:

  • связывает тему “ошибка доступа” с конкретным инструментом os;
  • помогает объяснить, почему одни операции проходят, а другие дают OSError.