читать на Go код определенных проектов, для этого в учебных целях делаю тестовый блог, чтобы научиться и самому языку, и общепринятым архитектурным решениям.
Есть простой блог, в нем есть сервисы: user (регистрация, логин, апдейт профайла и т.п.) и post (создания поста, поиск по постам и прочее).
Я вижу тут два варианта к организации этих сервисов:
1) Используем пакеты.
Например пакет user, в нем методы типа Login(), Register(), UpdateProfile() и прочее.
2) Используем структуры и в них создаем методы. Т.е. создаем пакет service, а в нем две структуры UserService и PostService. И уже все эти методы прикручиваем к соотвествующим структурам.
Я начал с первого варианта, т.е. просто исопльзовал пакеты типа user. Но начало раздражать, что у меня из-за того что пакеты называются user и post, переменные приходится называть как-то более сложно и осознанно. А я привык в коротких функциях использовать простые названия просто post. А тут это имя занято уже названием пакета и приходится что-то усложнять.
Какой вы считаете подход более распостраненный для реализации сервисов на Го?
В самих сервисах у меня из внутренних состояний есть лишь коллекция базы данных (монгодб), которая инициализируется при запуске сервера.
Пакеты, структуры и интерфейсы распространены :) Это большая тема, но, если коротко, можно ориентироваться на удобство тестироаания
Обсуждают сегодня