— Привет, боец!

— Поздравляю тебя с повышением уровня квалификации. Нам нужны отчаянные парни.

— Уверен, у тебя есть еще много нерешенных задач. Самое время решить парочку из них!

undefined
10
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (1)
Пришло время немного поработать с информацией в инете. В этом задании ты будешь писать агрегатор java вакансий. Что у нас должно быть? Должен быть список сайтов, на которых мы ищем вакансии. Для начала возьмем https://grc.ua/ и https://hh.ru/, потом уже добавим другие сайты поиска работы. Это один и то
undefined
18
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (2)
1. Создай класс Controller, в нем будет содержаться бизнес логика. 2. В Controller добавь паблик конструктор, который будет принимать столько провайдеров, сколько в него передадут для обработки. Сохрани их в приватное поле providers. Помнишь, как это делать? Нужно нажать на аргументе конструктора A
undefined
18
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (3)
Начиная с этого задании ты начнешь писать логику получения данных с сайта. Эта логика будет полностью сосредоточена в классах, реализующих интерфейс Strategy. Провайдер в данном случае выступает в качестве контекста, если мы говорим о паттерне Стратегия. В провайдере должен быть метод, который будет вызывать
undefined
18
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (4)
Открой сайт поиска работы - https://grc.ua/ и https://hh.ru/ В строке поиска набери "java Kiev", снизу перейди на вторую страницу, т.к. урлы часто отличаются на первой странице и далее. У меня получилась такая ссылка: https://grc.ua/search/vacancy?text=java+Kiev&page=1 и https://h
undefined
18
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (5)
1. Добавь в интерфейс Strategy метод getVacancies(String searchString), который будет возвращать список вакансий. 2. Поправь ошибки в классе HHStrategy. 3. Вернись в метод getJavaVacancies класса Provider, реализуй его логику из расчета, что всех данных хватает. 4. Давай попробуем запусти
undefined
36
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (6)
1. В папке куда ты скачал либу org.jsoup:jsoup:1.9.2 из maven репозитория, найди jar-архив jsoup-1.9.2.jar или jsoup-1.9.2-sources.jar. В нем найди пакет examples, посмотри классы в этом пакете. 2. По аналогии с реализацией в примерах кода jsoup - реализуй коннекшен к урлу сайта поиска работы
undefined
18
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (7)
Чтобы сайт поиска работы знал, кто к нему коннектится, проставим Request Headers в наш запрос. Для разработчиков созданы инструменты, которые показывают различную информацию про запросы. Я расскажу тебе про два инструмента. ***Chrome**** 1. В браузере Хром пойди в Меню - Инструменты - Инст
undefined
36
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (8)
Запусти снова программу в дебаг моде. Скопируй полученное значение document.html() в созданный ранее html файл. Отформатируй его и найди теги с вакансиями. Почитай в Сообществе дополнительный материал к лекции про селекторы атрибута.
undefined
18
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (9)
Пришло время чуток порефакторить код. Почитай в инете про паттерн MVC(Model-View-Controller). Кратко - используя View(вид) пользователь генерирует события, которые обрабатывает контроллер. Контроллер принимает решение, какие данные ему нужны, и обращается к нужной модели. Модель получает данные, нап
undefined
18
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (10)
У View есть метод update, в него передается список вакансий для отображения. Очевидно, что этот метод будет вызываться моделью, т.к. только она получает данные. Пришло время создать модель. 1. Создай класс Model в пакете model. 2. Добавь два приватных поля - 1) вью, 2) массив провайдеров.
undefined
10
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (11)
В Model есть метод selectCity, в него передается название города, для которого выбираются вакансии. Очевидно, что этот метод будет вызываться контроллером, т.к. он принимает решение, какую модель использовать. 1. Добавь в Controller новое поле Model model. 2. Удали метод scan() из Controller, его
undefined
10
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (12)
Чтобы запустить приложение, нужно эмулировать событие пользователя: 1. В классе HtmlView создай публичный метод void userCitySelectEmulationMethod(). Пусть этот метод пробросит вызов в контроллер для города "Odessa". 2. Чтобы понять, что все работает, выведи что-то в консоль в методе update в HtmlV
undefined
18
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (13)
Смотри, в пакете view появились два новых файла: vacancies.html - будешь в него записывать данные, backup.html - дубликат vacancies.html для восстановления, вдруг данные в vacancies.html сотрутся. Стань слева в дереве проекта на vacancies.html, нажми правой клавишей мыши, далее "Open in Browser". Т
undefined
18
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (14)
В классе HtmlView остались два пустых метода. В этом задании я опишу, что должен делать метод updateFile. А также расскажу, как можно дебажить. Он принимает тело файла в виде строки. Нужно его записать в файл, который находится по пути filePath. Ты это хорошо умеешь делать, поэтому подробностей тут
undefined
36
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (15)
В классе HtmlView остался один пустой метод getUpdatedFileContent. В этом задании я опишу, что он должен делать. 1. В HtmlView создай protected метод Document getDocument() throws IOException, в котором распарси файл vacancies.html используя Jsoup. Кодировка файла "UTF-8", используй поле filePath.
undefined
36
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (16)
Ты молодец, большая работа позади! Теперь тебе легко будет мониторить вакансии для трудоустройства :) Сейчас Aggregator использует только одну стратегию сбора вакансий - с ХэдХантера.
undefined
10
Задача
Java Collections, 8 уровень, 15 лекция
Недоступна
Aggregator (17)
Что можешь сделать самостоятельно (тестов на этот пункт нет): 1. добавить еще 100500 других сайтов для агрегирования вакансий. Нужно всего лишь создать стратегию, а потом добавить в модель провайдер с этой стратегией. 2. отсортировать все вакансии, например, по дате создания (придется распарсить дат