JavaRush /Java блог /Архив info.javarush /Тестовое задание на стажировку JavaRush: Полезные ссылки ...
GuitarFactor
30 уровень
Санкт-Петербург

Тестовое задание на стажировку JavaRush: Полезные ссылки и хинты

Статья из группы Архив info.javarush
Хочу поделиться с вами полезными ссылками, хинтами и советами, которые помогут при выполнении тестового задания на стажировку в реальный проект на JavaRush. Конечно, можно просто бездумно накопировать решение тестового задания из интернета, благо примеров хватает, но мы-то хотим разобраться, что делаем:) Этот пост для тех, кто не обнаружил среди стека технологий, требующихся по заданию, знакомых слов и хочет это исправить) Пару недель назад я добрался до 30 уровня и наконец получил доступ к тестовому заданию на стажировку. По началу я был в ступоре и просто не знал, с чего начать и что делают все эти спринги и хибернэйты. Только начав копать, я столкнулся с проблемой: очень много ресурсов и статей подразумевают, что вы уже имеете представление о предметной области. Проще говоря, они слишком заумны для новичков и вместо понимания вызывают реакцию “это слишком сложно!”. Поэтому ниже я попытаюсь на основе своего пусть и небольшого опыта поделиться удачными ссылками, которые помогли мне получить базовые представления о необходимых технологиях. Те, кто ныл во время обучения на JavaRush, что много надо изучать самому – готовьтесь, тут вас ждёт настоящий ад))

Итак, как подступиться к выполнению задания?

1. Понять, зачем нужны все эти технологии (я бы начал изучение в таком порядке, как указан ниже):

1.1. Maven

Его роль в проекте – создание структуры каталогов вашего вэб-проекта (она стандартизирована) из специального тэмплэйта, называемого “archetype” + подтягивание библиотек в ваш проект (добавление dependency в pom.xml). Кто проходил бонусную задачу про парсинг на основе jsoup – там мы сами ручками скачивали библиотеку из интернета и подцепляли её в идею. Maven же позволяет вам ничего не скачивать, а просто писать в pom.xml, какую библиотеку вы хотите подтянуть и использовать в проекте. Быстрое объяснение, что делает Maven, в картинках -> тут.

1.2. MySQL

Это ваша система управления базами данных (СУБД). Каких-то глубоких познаний в SQL и СУБД по заданию не потребуется, тут могу посоветовать для облегчения жизни установить прогу dbForge, которая очень поможет вам при создании БД и работы с ней.

1.3. Spring

Этот фрэймворк будет ядром вашего вэб-приложения. Он огромный, и его архитектура состоит из многих модулей. Хорошая новость: для выполнения задания потребуется получить представление лишь о нескольких вещах в Spring: что такое Inversion of Control (IoC) и разобраться с работой Spring MVC (какая должна быть структура каталогов вашего вэб-проекта, кто такой DispatcherServlet, как он взаимодействует с контроллером, вью и моделью и т.д.). Тут особенно не хватало материалов для новичков, где объяснялось бы на пальцах. Но, слава богу, такие материалы нашлись: Очень просто об IoC, связанности кода, DI (материал излагается в несколько фривольной манере, но зато всё понятно) –> вот тут (ниже на странице листайте к следующим статьям). Далее ищите, что такое @Autowired аннотация. Spring MVC — цикл видеоуроков (первые 11 уроков, каждый в среднем минут 7-10). Здесь вы найдёте цикл видеоуроков, вообще ОЧЕНЬ рекомендую смотреть уроки этого парня! Несмотря на забавный индусский английский, объясняет всё очень подробно и понятно, с наглядными примерами. Также у него есть уроки и по другим фрэймворкам. WorkFlow приложения на Spring MVC в картинках — см. здесь.

1.4. Hibernate

Это фрэймворк для работы с базами данных. Грубо говоря, он позволяет вам вытаскивать информацию из базы данных и тут же встраивать её в объект класса, и наоборот. Начать изучение можно отсюда (до первых примеров кода).

1.5. Html & CSS

Чтобы отобразить ваши данные на вэб-страничке, необходимо будет эту страничку создать при помощи HTML и CSS в рамках ваших jsp файлов. Существует много неплохих ресурсов для того чтобы въехать в эту тему. Лично я изучал XHTML и CSS по этому циклу видеоуроков (понравилось что парень объясняет с юмором, но при этом очень последовательно и логично) Приведённые выше ссылки дают начальное представление, в процессе ознакомления у вас наверняка появятся новые вопросы. Тут важно вовремя остановиться и:

2. Начинать делать задание

2.1. Посмотрите примеры выполнения задания, в интернете их хватает, и, я полагаю, вы без труда их найдёте. Вы уже изучили основные понятия – осталось ли что-то не ясным в том, как делать задание? Если да, то ищите ответы уже на конкретные вопросы. 2.2. Скачайте бесплатный trial Intellij Idea Ultimate (на 30 дней)! По началу я долго ломал голову, как же делать задание, случайно наткнулся на форуме, что надо скачать Ultimate Edition – без этого вам будет тяжко (community edition не поддерживает JavaEE) 2.3. Создайте шаблон проекта из архетипа Maven (например, maven-archetype-webapp) или из шаблона Spring MVC в Ultimate idea (если понадобится, потом можно будет добавить поддержку нужного фрэймворка: Add Framework Support в идее). 2.4. Попытайтесь сделать простой вывод сообщения HelloWorld в ваш браузер (передать это сообщение из контроллера на jsp страницу). 2.5. Когда справитесь, наращивайте функционал вашего приложения на основе примеров в интернете: создайте БД, модель, сервисные классы, настройте работу контроллера... И всё обязательно получится!) Надеюсь, эта статья будет кому-то полезна и сэкономит время на изучение материала. Если хотите поделиться своими полезными ссылками – буду рад увидеть их в комментариях!
Комментарии (52)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Ramazan Уровень 36 Expert
8 марта 2023
Может кто подкинуть само задание, в Гите нашел только 4-5 летней давности..
AlexanderK Уровень 36
5 февраля 2023
А почему у автора уже с 30-го доступно задание на стажировку? В условиях конкретно написанно что только после 35-го уровня будет доступ. Я вот долго и нудно прохожу, есть много сложных моментов, но я бы не отказался хотябы взглянуть и попоробовать его решить. Не очень понятно как все работает и как сравнивать себя с другими обучающимися когда такие вот разные условия и колл-ва уровней в целом. (Если что я по старой программе учусь (где макс 41 уровень), которая была ещё 2 года назад).
German_lbt Уровень 35
25 января 2019
в целом для начало съедобно...но когда автор предлагает курсы с индусом...о божееее...мой интермедиэйт плюс не справился с эти квестом... претензия на оригинальность? ...вы реально решили доказать всем и донести мысль что: "вы никогда не станете программистом"? про яблоко и червя - тоже дичь...как вам это - команда "передвигайся"...на старте: собака, птица, яблоня..откуда я знаю чего они будут делать? - эндопендность ....короче в топку...ничего личного...добавлю...так-как пи#@еть - не мешки ворочать...мне прислали 12 сообщений...мой ответ сразу...вот https://www.youtube.com/watch?v=BmBr5diz8WA ...реальная тема...все понятно, доступно и бин дифинишис не такой страшный...
Джонни Уровень 35 Expert
13 января 2019
Петр Лукашев Уровень 36
10 июня 2018
Кто-нибудь моет подсказать, в чем проблема? В файле web.xml добавляю конфигурацию dispatcherservlet: <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> Но вначале у меня вот это идея отображала красным:web.servlet.DispatcherServlet, потом подключил зависимость <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.0.6.RELEASE</version> </dependency>, п после этого слово web стало синим, но вот это все равно красное, servlet.DispatcherServlet т.е. я так понял, что пакет web нашла, но класс DispatcherServlet все равно не находит(
uraplayer Уровень 37
27 января 2018
Сорри за тупой вопрос. Пробовал открыть чужие проекты для стажировки с github, посмотреть что да как, смог запустить только один, после танцев с бубном. В остальных на каждом шагу затык при запуске.
Может кто пояснить по пунктам, как что запускается и в какой последовательности? Какой файл запускать?

Например вот этот проект github.com/andreichernov/CrudAppTry

Использую Intellij Idea Ultimate 2017.3.1
Alena Уровень 35
3 июня 2017
Мне вот это описание Spring MVC понравилось
LJ_ Уровень 40
15 апреля 2017
Вдруг кому поможет, но просто отлично описана работа мавен http://www.apache-maven.ru/
До этого читал туториалы на официальном сайте, там так много воды и нудно, и местами не понятно о чем речь.
А тут все супер кратко и сразу явно, что к чему. Еще мне помогли лекции Головача, он тоже очень хорошо объясняет этот в целом не сложный инструмент
Core Уровень 35
11 марта 2017
Друзья, подскажите, правильно ли я понял.
Установление связи с базой осуществляется посредством JDBC-драйвера.
Но сама база ведь находится у меня на машине, а не у проверяющего.
Но у него (проверяющего) есть база с таким же именем и паролем (test и root), то есть мой код приведёт к соединению фактически с его базой данных. Тогда правильно ли я понял, что таблицу базы нужно создать(добавить и сконфигурировать корлонки) не вне проекта, а уже в самом проекте после соединения с бд?
imp Уровень 31
8 марта 2017
Workbench отличный продукт, вопрос зачем он, если можно из идеи подключить бд и там с ней работать.