godfather/README.md
2020-05-16 09:30:00 +03:00

46 lines
3.0 KiB
Markdown
Raw Permalink 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>
```