User GuitarFactor
GuitarFactor
30 уровень
Санкт-Петербург

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

Статья из группы Архив info.javarush.ru
Хочу поделиться с вами полезными ссылками, хинтами и советами, которые помогут при выполнении тестового задания на стажировку в реальный проект на 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. Когда справитесь, наращивайте функционал вашего приложения на основе примеров в интернете: создайте БД, модель, сервисные классы, настройте работу контроллера... И всё обязательно получится!) Надеюсь, эта статья будет кому-то полезна и сэкономит время на изучение материала. Если хотите поделиться своими полезными ссылками – буду рад увидеть их в комментариях!
Комментарии (50)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
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 отличный продукт, вопрос зачем он, если можно из идеи подключить бд и там с ней работать.
Core Уровень 35 Екатеринбург Россия
8 марта 2017
Кто пробовал разные тулы для MySQL? У меня DbForge не ставится, ибо пользую XP, на которую в свою очередь не ставится NET. framework 4.5.2, являющийся требованием для DbForge. есть альтернативные тулы, но кто-нибудь может посоветовать конкретную? Я прорсто «сварщик ненастоящий» и не пробовал пока ни одну из них, а фигню ставить не хочется

Из этого кто-нибудь что-нибудь узал?
Вот Ссыл Ссылыч
32xlevel Уровень 37 Россия
6 марта 2017