From 14561b303ea0f4b33bbe46ab4281a2a5601c318e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD?= Date: Thu, 22 Jan 2026 08:38:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20nodiscard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++++++++++++++----- src/endpoints_handlers/AuthLoginExecutor.h | 2 +- src/endpoints_handlers/AuthLogoutExecutor.h | 2 +- .../AuthRegistrationExecutor.h | 2 +- src/endpoints_handlers/GetDiariesExecutor.h | 2 +- .../GetUserMedicationsExecutor.h | 2 +- .../GetUserTreatmentSchemeExecutor.h | 6 ++-- src/endpoints_handlers/IExecutor.h | 2 +- .../PostUserMedicationsExecutor.h | 2 +- .../PostUserTreatmentSchemeExecutor.h | 2 +- 10 files changed, 32 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index a5a30c5..f41554c 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,6 @@ # TODO: - ~~Сделать реальные исполнители(executors) для регистрации, авторизации, логаута~~ -- Посмотреть по поводу блокировок или тред пулла при использовании базы -- Посмотреть пулл соединений(Object pool) при использовании базы данных(посмотреть api MySQL-Connector) -- Посмотреть, что дает MySQL, какие там есть возможность -- Посмотреть и подумать, что лучше - корутины или многопоточность? - ~~Покрыть тестами класс User и AuthRegistrationExecutor~~ - ~~Добавить clang-format(через CLion)~~ - ~~Перевести GetByUUID GetByLogin на const ref/string_view в IUserDAO - также не vector, а span(погуглить)~~ - span не применим @@ -18,14 +14,31 @@ - ~~Покрыть логами~~ - ~~Сделать один класс исключений, имеющих метод HTTP code - код и сообщение записывать уже в ловушке~~ - ~~Сделать интеграционный тест по ручкам~~ -- UseCase'ы по работе с личным кабинетом -- Научиться поднимать базы данных под каждый тест - научиться Docker - docker-compose - а если тест что-то должен заполнить, то он заполняет в самом начале() -- Возможно, сделать тесты на CI/CD - приоритет - низкий - ~~Заменить internal_server_error на bad_request и перепроверить коды ошибок~~ - ~~Создание и удаление вспомогательных классов должно быть вынесено в фикстуру~~ - ~~К следующему занятию сделать ручку из кейса 3 + восстановить фикстуры из тестов~~ +- Посмотреть по поводу блокировок или тред пулла при использовании базы +- Посмотреть пулл соединений(Object pool) при использовании базы данных(посмотреть api MySQL-Connector) +- Посмотреть и подумать, что лучше - корутины или многопоточность? +- UseCase'ы по работе с личным кабинетом +- Научиться поднимать базы данных под каждый тест - научиться Docker - docker-compose - а если тест что-то должен заполнить, то он заполняет в самом начале() +- Возможно, сделать тесты на CI/CD - приоритет - низкий +- Найти слабые места в C++ -- std::forward, universal reference, просмотреть про decltype(почитать статьи) +- Написать фронтенд для MVP +- Разобрать decltype и auto по статье +До 27.01.2026 +- Подобрать сервер по параметрам. Использовать linux. +- Перевести string на string_view - Попробовать nodiscard к executoru -- Найти слабые места в C++ -- std::forward, universal reference +- Добить 2 ручки +- Сделать тесты для ручек + +# План +1)Добить бэкенд(2 ручки) (до февраля) +2)Сделать деплой(до марта) +3)Сделать фронтенд для MVP +4)Делаем веб-чат и роль доктора +5)Читать книгу Мейерса "Эффективный и современный C++" до ??? # UseCase'ы приложения: diff --git a/src/endpoints_handlers/AuthLoginExecutor.h b/src/endpoints_handlers/AuthLoginExecutor.h index e2b49ba..87931aa 100644 --- a/src/endpoints_handlers/AuthLoginExecutor.h +++ b/src/endpoints_handlers/AuthLoginExecutor.h @@ -30,7 +30,7 @@ public: { } - boost::beast::http::response operator ()( + [[nodiscard]] boost::beast::http::response operator ()( boost::beast::http::request>&& req ) override { diff --git a/src/endpoints_handlers/AuthLogoutExecutor.h b/src/endpoints_handlers/AuthLogoutExecutor.h index b78c2f9..6e07ddb 100644 --- a/src/endpoints_handlers/AuthLogoutExecutor.h +++ b/src/endpoints_handlers/AuthLogoutExecutor.h @@ -23,7 +23,7 @@ public: { } - boost::beast::http::response operator ()( + [[nodiscard]] boost::beast::http::response operator ()( boost::beast::http::request>&& req ) override { diff --git a/src/endpoints_handlers/AuthRegistrationExecutor.h b/src/endpoints_handlers/AuthRegistrationExecutor.h index 01eef68..46a9810 100644 --- a/src/endpoints_handlers/AuthRegistrationExecutor.h +++ b/src/endpoints_handlers/AuthRegistrationExecutor.h @@ -24,7 +24,7 @@ public: { } - boost::beast::http::response operator ()( + [[nodiscard]] boost::beast::http::response operator ()( boost::beast::http::request>&& req ) override { diff --git a/src/endpoints_handlers/GetDiariesExecutor.h b/src/endpoints_handlers/GetDiariesExecutor.h index 316be5d..a7e0763 100644 --- a/src/endpoints_handlers/GetDiariesExecutor.h +++ b/src/endpoints_handlers/GetDiariesExecutor.h @@ -30,7 +30,7 @@ public: { } - boost::beast::http::response operator ()( + [[nodiscard]] boost::beast::http::response operator ()( boost::beast::http::request>&& req ) override { diff --git a/src/endpoints_handlers/GetUserMedicationsExecutor.h b/src/endpoints_handlers/GetUserMedicationsExecutor.h index da98276..9f381fc 100644 --- a/src/endpoints_handlers/GetUserMedicationsExecutor.h +++ b/src/endpoints_handlers/GetUserMedicationsExecutor.h @@ -29,7 +29,7 @@ public: } - boost::beast::http::response operator ()( + [[nodiscard]] boost::beast::http::response operator ()( boost::beast::http::request>&& req ) override { diff --git a/src/endpoints_handlers/GetUserTreatmentSchemeExecutor.h b/src/endpoints_handlers/GetUserTreatmentSchemeExecutor.h index ecc960a..2513ce4 100644 --- a/src/endpoints_handlers/GetUserTreatmentSchemeExecutor.h +++ b/src/endpoints_handlers/GetUserTreatmentSchemeExecutor.h @@ -29,7 +29,7 @@ public: { } - boost::beast::http::response operator ()( + [[nodiscard]] boost::beast::http::response operator ()( boost::beast::http::request>&& req ) override { @@ -71,7 +71,7 @@ public: value response_body; response_body.emplace_object(); - response_body.as_object().emplace("user_treatment_schemes", toJSONArray(schemes)); + response_body.as_object().emplace("user_treatment_schemes", ToJSONArray(schemes)); res.body() = serialize(response_body); res.set(http::field::content_type, "application/json"); @@ -99,7 +99,7 @@ private: return scheme_json; } - boost::json::array toJSONArray(const std::vector& schemes) + boost::json::array ToJSONArray(const std::vector& schemes) { using namespace boost; using namespace boost::json; diff --git a/src/endpoints_handlers/IExecutor.h b/src/endpoints_handlers/IExecutor.h index 5505e43..16062d3 100644 --- a/src/endpoints_handlers/IExecutor.h +++ b/src/endpoints_handlers/IExecutor.h @@ -8,7 +8,7 @@ template class IExecutor { public: - virtual boost::beast::http::response operator ()( + [[nodiscard]] virtual boost::beast::http::response operator ()( boost::beast::http::request>&& req ) = 0; virtual ~IExecutor() = default; diff --git a/src/endpoints_handlers/PostUserMedicationsExecutor.h b/src/endpoints_handlers/PostUserMedicationsExecutor.h index 37aed21..142edc7 100644 --- a/src/endpoints_handlers/PostUserMedicationsExecutor.h +++ b/src/endpoints_handlers/PostUserMedicationsExecutor.h @@ -29,7 +29,7 @@ public: } - boost::beast::http::response operator ()( + [[nodiscard]] boost::beast::http::response operator ()( boost::beast::http::request>&& req ) override { diff --git a/src/endpoints_handlers/PostUserTreatmentSchemeExecutor.h b/src/endpoints_handlers/PostUserTreatmentSchemeExecutor.h index 6a7e37a..0761a09 100644 --- a/src/endpoints_handlers/PostUserTreatmentSchemeExecutor.h +++ b/src/endpoints_handlers/PostUserTreatmentSchemeExecutor.h @@ -29,7 +29,7 @@ public: { } - boost::beast::http::response operator ()( + [[nodiscard]] boost::beast::http::response operator ()( boost::beast::http::request>&& req ) override {