Skip to content

Deny7676yar/URL_shortener

Repository files navigation

URL_shortener

URL_SHORTENER

URL shortener (“сокращатель ссылок”) - это сервис, позволяющий пользователю генерировать для произвольного URL’a его короткую версию, которую удобно вставлять в различные публикации, сообщения, новости, промо-материалы и так далее.

Особенности функциональности сервис позволяет получать статистику переходов по каждому сгенерированному URL’у, что будет полезно, если его владелец захочет узнать сколько людей перешло по короткой ссылке из конкретного источника.

Каждой ссылке присваивается индекс, для быстрого поиска рейтинга, поиск осуществляется с помощью динамического пула воркеров, используя механизмы Go для синхронизации: channal(каналы), пакета sync, пакет atomic(примитив синхронизации)

В качестве архитектуры проекта я выбрал hexagonal архитектуру, по моему мнению она больше подходит для нашего проекта, так как мы будем создавать отдельные компоненты. Компоненты определяется как инкапсулированный автономный блок. Компоненты общаться друг с другом с помощью интерфейсов. Такой подход к проектированию тесно связан с SOLID принципами и предлагает нам гибкость для свободного изменения или даже замены реализации компонентов в любой момент на протяжении всего проекта разработки

В качестве роутера я выбрал роутер GIN(https://github.com/gin-gonic/gin)

Причины выбора:

  1. Роутер GIN иапользует свой контекст.
  2. У него много вспомагательных функций в контексте(различные парсинги например с JSON).
  3. Он очень популярен, а значит будет поддерживаться еще долгое время.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published