Что я собираюсь изучить
- Watchdog — библиотеку, которая позволяет отслеживать изменения в файловой системе: добавление, удаление или редактирование файлов. Это будет первая точка входа.
- Коалесинг событий — как объединять лавину сигналов от ОС в более полезные и осмысленные данные.
- Многопоточность и асинхронность — реакции на события должны быть быстрыми и независимыми.
- Структура проекта — с самого начала хочу строить код так, чтобы его можно было расширять: база данных, логирование, уведомления, интеграция с другими системами.
- Взаимодействие с ОС — моя цель не только написать код, но и понять, что именно делает операционная система, когда мы создаём или удаляем файлы.
- Кроссплатформенность — работать я буду на macOS, но проект задуман так, чтобы одинаково функционировать и на Linux, и на Windows. Если понадобится, буду разбираться и в низкоуровневых API:
inotify(Linux),FSEvents(macOS),ReadDirectoryChangesW(Windows).
Пути применения
- Резервное копирование — простая, но полезная основа. Отслеживаешь изменения — получаешь автоматический бэкап.
- CI/CD-пайплайны — запуск тестов или сборки при изменении файлов.
- Мониторинг системы — статистика активности в каталогах.
- Безопасность — контроль над директориями: если появился новый файл — получаешь уведомление.
- Сервис для совместной разработки — хранение информации о том, кто и когда внёс изменения в проект.
- GUI-интерфейс — удобная визуальная оболочка для работы с событиями.
- Интеграция с Telegram — уведомления о подозрительных изменениях. Например: «В проекте произошли изменения. Хотите ли вы остановить работу сервера?»
Почему я пишу об этом
PyWatch для меня — это не один проект, а целая серия шагов. Я хочу step by step изучить всё возможное. Статьи в блоге будут моими заметками и напоминаниями. В будущем я смогу вернуться к ним и быстро освежить память. А в конце пути, накопив знания, я сделаю полноценный проект для портфолио — инструмент, который объединит весь функционал PyWatch и станет частью моей публичной работы.