amrchnk /
balance_service
Тестовое задание на позицию стажера-бекендера компании Avito
31/100 healthLoading repository data…
Dimedrolity / repository
Тестовое задание на стажировку в Контур
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Реализовать сервис по работе с изображениями формата BMP, HTTP API, покрыть тестами. Ссылка на исходное задание. Дедлайн по сдачи решения был 20 Марта 2022 23:59 Мск.
Есть ограничение по оперативной памяти - 2 Гбайт. Было реализовано хранение изображений по частям фиксированного размера (тайлам), чтобы не помещать полное изображение в оперативную память.
Приложение разбито на слои: API, сервисы (реализация логики и бизнес логики), репозитории (хранилища). Благодаря разбиению, каждый слой, пакет, структуру можно разрабатывать и тестировать независимо.
Написаны модульные тесты для каждого пакета, итоговое покрытие ~80%.
Есть .run, Makefile, Dockerfile для простоты запуска.
Старался следовать go-project-layout, директории cmd, internal, pkg.
Зависимости хранятся в репозитории, директория vendor.
При повторном запуске проекта, данные о предыдущих созданных изображениях будут потеряны, так как они хранятся в оперативной памяти. Имеется в виду данные изображений, содержащие Id изображений, размер и т. д., а не сами изображения формата BMP.
Также при запуске через Docker, изображения хранятся в контейнере на диске и не связаны с хостом с помощью bind mount.
Реализован формат BMP и цветовая модель RGB 24-бит. Теоретически можно добавить поддержку PNG, JPEG, и т. д., и цветовых моделей RGBA32, Grayscale, и т. д.
Добавление multi-stage build в Dockerfile.
Для того, чтобы зафиксировать аргументы команд создания образа и запуска контейнера.
Что-то есть, но не критично.
Мой первый проект на Go, изучаю язык с февраля.
При решении начал с MindMap и почти сразу же создал Trello для ведения задач.
Использовал Git (must have).
На момент выполнения тестового был слабо знаком с Docker, это мой первый Dockerfile.
UPD: коммиты после дедлайна не учитывались, это сделано по желанию / для зачета по дисциплине в универе.
Selected from shared topics, language and repository description—not editorial ratings.
amrchnk /
Тестовое задание на позицию стажера-бекендера компании Avito
31/100 health