This repository has been archived on 2024-09-28. You can view files and clone it, but cannot push or open issues or pull requests.
test2gis/Readme.md

58 lines
3.6 KiB
Markdown
Raw Permalink Normal View History

# 2gis тестовое задание (Title crawler).
# Запуск.
## (Optional) Среда сборки используя лучший под солнцем пакетник Nix.
```bash
nix develop
```
P.S. Docker тоже хорошо умею если нужно.
2024-09-23 18:28:43 +03:00
## Запуск сервера.
```bash
make
```
2024-09-23 18:28:43 +03:00
## Тестирование.
```bash
make test
```
Или вручную отправить POST/PUT запрос с URL на отдельных строках `localhost:8000/crawler_title`.
2024-09-23 20:05:47 +03:00
# Задание.
> Необходимо создать простой интернет crawler, который будет доставать из страниц информацию о названии сайта. Это должно быть приложение с http эндпоинтом. На этот эндпоинт поступает список http url'ов. Приложение должно пройтись по всем предоставленным урлам и достать оттуда название. Названием условно будем считать содержимое тэга title. После изъятия информации из всех страниц эндпоинт должен вернуть ответ, в котором каждому входному урлу соответствует найденное название. Все недостающие требования или неоднозначности начальной формулировки задачи вы должны разрешить самостоятельно - это является частью задания. Единственное требование к реализации - приложение должно быть написано на языке Scala.
2024-09-23 18:22:29 +03:00
<details>
2024-09-23 20:05:47 +03:00
<summary>Скриншот работы</summary>
2024-09-23 20:41:09 +03:00
<img src="https://i.imgur.com/ZNz7eqT.png" /><br>
</details>
<details>
<summary>Видео работы</summary>
<a href="https://cloud.voronind.com/s/AwW2Fgx5DgD4MgJ">Ссылка</a>
2024-09-23 18:22:29 +03:00
</details>
# Известные проблемы.
* Малый опыт работы со Scala, hence не знаю многих best practice. Решается просто - кто-то очень опытный проводит код ревью какое-то время. Сам язык мне нравится, но пока не инвестировал в него много времени ввиду неуверенности о наличии работы.
* `sbt` отказывается сам воспринимать JAVA_HOME. Не знаю, надо так или нет (тот же Gradle сам цепляет), но я "зашил" костыликом в Makefile.
# Источники вдохновения.
* [Simple Http Server](https://github.com/softwaremill/simple-http-server/blob/master/src/main/scala/com/softwaremill/httpserver/SimpleHttpServer.scala)
* [Scala Scraper](https://index.scala-lang.org/ruippeixotog/scala-scraper). Изначально думал парсить через регулярки, но потом вспомнил, что плохая идея.
# Прочее.
Воздержался от emoji в Readme. Заранее не знаю Ваш предпочтительный уровень профессионализма.
2024-09-23 20:11:04 +03:00
LLM не использую.
Обычно работаю через Issue, но не уверен, примут ли мой гит, а перевозить на гитхаб я их не буду. Поэтому без них, да и шип будет быстрее только :0)