project | ||
src/main/scala | ||
.editorconfig | ||
.gitignore | ||
build.sbt | ||
flake.lock | ||
flake.nix | ||
Input.txt | ||
Makefile | ||
Readme.md |
2gis тестовое задание (Title crawler).
Запуск.
(Optional) Среда сборки используя лучший под солнцем пакетник Nix.
nix develop
P.S. Docker тоже хорошо умею если нужно.
Запуск сервера.
make
Тестирование.
make test
Или вручную отправить POST/PUT запрос с URL на отдельных строках localhost:8000/crawler_title
.
Задание.
Необходимо создать простой интернет crawler, который будет доставать из страниц информацию о названии сайта. Это должно быть приложение с http эндпоинтом. На этот эндпоинт поступает список http url'ов. Приложение должно пройтись по всем предоставленным урлам и достать оттуда название. Названием условно будем считать содержимое тэга title. После изъятия информации из всех страниц эндпоинт должен вернуть ответ, в котором каждому входному урлу соответствует найденное название. Все недостающие требования или неоднозначности начальной формулировки задачи вы должны разрешить самостоятельно - это является частью задания. Единственное требование к реализации - приложение должно быть написано на языке Scala.
Скриншот работы
Видео работы
СсылкаИзвестные проблемы.
- Малый опыт работы со Scala, hence не знаю многих best practice. Решается просто - кто-то очень опытный проводит код ревью какое-то время. Сам язык мне нравится, но пока не инвестировал в него много времени ввиду неуверенности о наличии работы.
sbt
отказывается сам воспринимать JAVA_HOME. Не знаю, надо так или нет (тот же Gradle сам цепляет), но я "зашил" костыликом в Makefile.
Источники вдохновения.
- Simple Http Server
- Scala Scraper. Изначально думал парсить через регулярки, но потом вспомнил, что плохая идея.
Прочее.
Воздержался от emoji в Readme. Заранее не знаю Ваш предпочтительный уровень профессионализма.
LLM не использую.
Обычно работаю через Issue, но не уверен, примут ли мой гит, а перевозить на гитхаб я их не буду. Поэтому без них, да и шип будет быстрее только :0)