Refactor server.c with decomposition for better maintainability #62
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Улучшенная версия кода сохраняет минималистичный подход, но делает его более надежным и поддерживаемым за счет четкой декомпозиции логики. Теперь инициализация сервера, обработка подключений и парсинг запросов разделены на изолированные функции, что упрощает чтение и модификацию кода. Например, koil_server_parse_request стала чистой функцией, которую легко протестировать отдельно, а da_append теперь безопасно обрабатывает перераспределение памяти. Добавлены проверки на ошибки для системных вызовов (socket, bind, accept) и освобождение ресурсов (close, free), что предотвращает утечки памяти и файловых дескрипторов. При этом стиль остался таким же лаконичным — без лишних абстракций или зависимостей. Код по-прежнему собирается в один файл, но его структура позволяет легче добавлять новые фичи (например, роутинг или middleware) без переписывания всей логики. Важно, что эти изменения не ломают обратную совместимость — сервер работает как прежде, но теперь он устойчивее к ошибкам и проще в развитии.