Хочу поделиться с вами полезными ссылками, хинтами и советами, которые помогут при выполнении тестового задания на стажировку в реальный проект на 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 в картинках — см. здесь.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Может кто пояснить по пунктам, как что запускается и в какой последовательности? Какой файл запускать?
Например вот этот проект github.com/andreichernov/CrudAppTry
Использую Intellij Idea Ultimate 2017.3.1
До этого читал туториалы на официальном сайте, там так много воды и нудно, и местами не понятно о чем речь.
А тут все супер кратко и сразу явно, что к чему. Еще мне помогли лекции Головача, он тоже очень хорошо объясняет этот в целом не сложный инструмент
Установление связи с базой осуществляется посредством JDBC-драйвера.
Но сама база ведь находится у меня на машине, а не у проверяющего.
Но у него (проверяющего) есть база с таким же именем и паролем (test и root), то есть мой код приведёт к соединению фактически с его базой данных. Тогда правильно ли я понял, что таблицу базы нужно создать(добавить и сконфигурировать корлонки) не вне проекта, а уже в самом проекте после соединения с бд?