godfather/README.md
2020-05-03 19:59:10 +03:00

48 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Social Core
Набор классов, которые помогут в создании абстрактных проектов для социальных сетей и месенджеров, без привязки к конкретным продуктам.
## Общая информация
Возьмем класс `Mail`, которые отвечает за сообщение. Это одновременно конкретный и абстрактный класс. Конкретный он,
потому что у него есть определенные поля и не предполагается его дальнешее расширение разработчиком, который использует
данную библиотеку. А абстрактный он, потому что не предполагает привязки к какой-либо социальной сети.
Это может быть сообщение во ВКонтакте или Telegram, на данном уровне абстракции это не важно. Из таких обобщенных
сущностей, а так же сервисов и репозиториев к ним и состоит библиотека.
Все сущности имеют свой сервис и репозиторий для сохранения. Так же реализована JPA версия репозиториев.
## Примеры использований
1. [Social Bot](https://github.com/uPagge/social-bot) - Абстрактный SDK для бота под любую социальную сеть и мессенджер.
## Пакеты проекта
- domain - доменные сущности проекта. Например, сообщение пользователя, комментарий к фотографии, сообщение в беседе.
- content
- attachment - вложения к сообщениям пользователя. Прикрепленная фотография, или аудио, или голосовое сообщение.
- keyboard - сущности для реализации клавиаутры
- button - кнопки клавиатуры разных типов
- exception - классы для объектов исключений
- repository - интерфейсы репозиториев для доменных сущностей
- impl - реализации интерфейсов
- local - Реализация на какой-либо колекции Java (Map, List и т.к.)
- jpa - Реализация для сохранения в БД.
- jpa - Интерфейсы для работы с Spring Jpa
- service - интерфейсы сервисов для доменных сущностей
- impl - реализации интерфейсов
- sender - реализации интерфейса `Sending`
- utils - прочие классы утилиты
## Dependency
```
<dependency>
<groupId>org.sadtech.social</groupId>
<artifactId>social-core</artifactId>
<version>0.6.3-RELEASE</version>
</dependency>
```