You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
4.4 KiB
37 lines
4.4 KiB
# AGENTS.md - uTun Development Guide |
|
|
|
This document provides essential information for agentic coding assistants working on the uTun VPN tunnel project. |
|
Совместимость со станым при доработках сохранять не надо. Вместо этого надо доработать остальной код чтобы работало. Важно своевременно чистить код от старых хвостов и проверять что ничего не сломалось. Т.е. код плохо нагромождать - надо стремиться к краткости, логичности и убирать то что стало неактуальным и ненужным. |
|
|
|
Если не работает - добавляй отладочную информацию чтобы быстрее найти проблемное место и не рушить работающий код. |
|
если отладочная информация будет флудить сделай ее отключаемой или подумай как ограничить ее вывод по возможности сохраняя информативность. |
|
Добавляй в код структуры для статистики (например суммируй число ошибок, вызовов и других потенциально нужных для анализа при ошибках метрик). |
|
добавляй в тест подсчет времени сколько каждый этап длился для лучшего понимания оптимизации |
|
перед запуском тестов не забывай их пересобирать |
|
|
|
веди changelog.txt: дата время: что поменялось |
|
задача протокола - обеспечивать минимальную задержку при большом трафике. т.е. держать необходимый минимум данных в очередях. |
|
дизайн - однопоточный асинхронный. |
|
все ожидающие операции - через сокеты(дескрипторы) и таймауты -> u_async |
|
все очереди через ll_queue |
|
главный модуль обслуживания подключения - connection |
|
unit-tests: для каждого теста в начале файла теста описывай что и как он тестирует - кратко но указыая на нюансы если они есть. |
|
|
|
Перед реализацией нового модуля: |
|
1. Проанализируй архитектуру проекта и существующие модули, их ответственность и точки взаимодействия. |
|
2. Определи роль нового модуля в общей архитектуре и его границы ответственности. |
|
3. Спроектируй API модуля (входные данные, выходные данные, побочные эффекты). |
|
4. Мысленно смоделируй работу модуля в нескольких типовых сценариях, включая: |
|
корректный поток выполнения |
|
граничные случаи |
|
возможные ошибки |
|
5. Сверь получившуюся логику с архитектурой проекта и существующими модулями. |
|
6. Если обнаружены противоречия, нарушения ответственности или избыточные зависимости — доработай API и логику модуля. |
|
Только после этого приступай к реализации. |
|
|
|
## Code Style Guidelines |
|
|
|
комменты в коде на русском |
|
Приоритет - простое (логически понятное, минималистичное api, но функциональное). Всегда надо думать как сделать проще и красивее. не надо нагромождать лишнего - сперва подумай действительно ли оно нужно. |
|
|
|
рассуждай на английском, остальное лучше на русском (отчёты, дальшейшие шаги и ответы на запросы всегда на русском)
|
|
|