Хочу поділитися з вами корисними посиланнями, хінтами та порадами, які допоможуть при виконанні тестового завдання на стажування у реальний проект JavaRush. Звичайно, можна просто бездумно накопичувати рішення тестового завдання з інтернету, благо прикладів вистачає, але ми хочемо розібратися, що робимо:) Цей пост для тих, хто не виявив серед стека технологій, потрібних за завданням, знайомих слів і хоче це виправити) Кілька тижнів тому я дістався до 30 рівня і нарешті отримав доступ до тестового завдання на стажування. Спочатку я був у ступорі і просто не знав, з чого почати і що роблять усі ці спринги та хібернейти. Тільки почавши копати, я зіткнувся з проблемою: дуже багато ресурсів та статей мають на увазі, що ви вже маєте уявлення про предметну область. Простіше кажучи, вони надто розумні для новачків і замість розуміння викликають реакцію "це занадто складно!". Тому нижче я спробую на основі свого нехай і невеликого досвіду поділитися вдалими посиланнями, які допомогли мені отримати базові уявлення про необхідні технології. Ті, хто нив під час навчання на JavaRush, що багато треба вивчати самому - готуйтеся, тут на вас чекає справжнє пекло))

Отже, як підійти до виконання завдання?

1. Зрозуміти, навіщо потрібні всі ці технології (я б почав вивчення в такому порядку, як зазначено нижче):

1.1. Maven

Його роль у проекті – створення структури каталогів вашого веб-проекту (вона стандартизована) із спеціального темплейту, званого “archetype” + підтягування бібліотек у ваш проект (додавання dependency у pom.xml). Хто проходив бонусне завдання про парсинг на основі soup – там ми самі ручками завантажували бібліотеку з інтернету та підчіплювали її в ідею. 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. Коли впораєтеся, нарощуйте функціонал вашої програми на основі прикладів в інтернеті: створіть БД, модель, сервісні класи, налаштуйте роботу контролера... І все обов'язково вийде! Якщо хочете поділитися своїми корисними посиланнями – радий побачити їх у коментарях!