Вы находитесь на старой версии проекта. Новая версия доступна по ссылке
Проект #1

Казино

Java-программист

Познакомитесь с экосистемой Java, научитесь настраивать рабочее окружение. Подружитесь с Build-tool (maven, gradle), для управления зависимостями, сборки, и линтером SonarLint. После проекта сможете настраивать свои проекты, подключать новые библиотеки, получите базовые навыки отладки.

2-4
недели

Цель

Первый проект нацелен на знакомство с экосистемой Java. Она достаточно сложна по сравнению с языками вроде PHP, Ruby или Python и сравнима по сложности с JavaScript-проектами на Node. Количество понятий, инструментов и их связок настолько большое, что даже у опытных разработчиков иногда голова идет кругом. Чтобы стартануть по всем канонам даже простейший проект придется как следует повозиться. Вот неполный перечень ключевых компонентов любого современного java-приложения:

  • Build-tool (maven, gradle). Управляет зависимостями, выполняет сборку и описывает проект.
  • SonarLint - линтер. Проверяет корректность кода на соответствие стандартам кодирования, а так же признанным в сообществе разработчиков лучшим практикам.

После прохождения проекта вы сможете легко настраивать свои собственные проекты, подключать новые библиотеки, ориентироваться в структуре кода, а также получите базовые навыки отладки. Вы прокачаете себя в использовании пакетов java, работе с исполняемыми файлами и предоставите всем доступ к своему первому пакету в github через сервис jitpack.io.

Описание

В рамках проекта необходимо реализовать набор мини-игр, запускаемых из консоли. Эти игры взяты из казино - "Однорукий бандит", "Пьяница" и "Очко".

Пример вывода из самой первой игры:

У Вас 100$, ставка - 10$
Крутим барабаны! Розыгрыш принёс следующие результаты:
первый барабан - 3, второй - 3, третий - 6
Проигрыш 10$, ваш капитал теперь составляет: 90$
У Вас 90$, ставка - 10$
Крутим барабаны! Розыгрыш принёс следующие результаты:
первый барабан - 4, второй - 3, третий - 2
Проигрыш 10$, ваш капитал теперь составляет: 80$
...
У Вас 20$, ставка - 10$
Крутим барабаны! Розыгрыш принёс следующие результаты:
первый барабан - 6, второй - 0, третий - 3
Проигрыш 10$, ваш капитал теперь составляет: 10$
У Вас 10$, ставка - 10$
Крутим барабаны! Розыгрыш принёс следующие результаты:
первый барабан - 4, второй - 1, третий - 4
Проигрыш 10$, ваш капитал теперь составляет: 0$

Наставники

Вячеслав Аксёнов
Java Developer, Tinkoff
Александр Павкин
Java Developer, Leroy Merlin
Никита Гордеев
Java Developer, Technaxis
Никита Мишнев
Java Developer, OpenWay
Егор Яковлев
Java Developer, Sber
Александр Руднев
Java Developer, Piano
Валентин Исипчук
Java Developer, Cyoda

Впечатления

Спасибо большое за проект! Было очень полезно поразбираться с окружением. Ваши комментарии были понятными и исчерпывающими. Касаемо сроков проверки — уже все забылось. Главное, я дошел до конца, с понимаем того, как можно делать лучше.

Спасибо! Проект оказался интересным и очень полезным с точки зрения приобщения к командной строке, окружению и сопутствующим технологиям (maven, CI и т.п.). Надеюсь второй проект всё же выйдет и удастся пройти и его тоже)

Так как закончил проект, хотел бы поделиться обратной связью, наверно не будет лишним :) Интересный проект, из сложных моментов могу выделить первые два шага, в первой курсе по js как-то попроще было инструменты настроить... И пятый шаг, у меня, как мне кажется, по итогу мудрёное решение получилось из-за учёта курсоров, постоянно было ощущение, что по новой начал указатели в с++ изучать...Ну это субъективные ощущения. Очень порадовала отзывчивость ментора, всегда развернутые ответы даже на мои частенько дурацкие вопросы и глупенькие ошибки :) Ещё приятным бонусом выступила развернутость самих шагов (подробное содержание и чёткость формулировок)! В целом ощущение сугубо положительные, с нетерпением жду и готовлюсь к следующим проектам! А так же спасибо за менторство!

Сколько стоят проекты?

Проекты входят в стоимость обучения в любом формате: самостоятельном, групповом и индивидуальном. Дополнительно платить не нужно.

Зачем проходить проекты?

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

Проекты — портфолио программиста. Их код останется в вашем аккаунте на GitHub и будет преимуществом при поиске работы.

Чтобы узнать о том, что такое проекты и в чём их польза, прочитайте нашу статью «Анатомия проектов Хекслета».

Что делать, если возникли трудности во время выполнения проекта?

Задавайте вопросы в разделе «Обсуждение» на странице шага, на котором возникли трудности, или вашему наставнику. Изучите вопросы других студентов в «Обсуждениях»: там собрана большая база знаний, ей можно и нужно пользоваться. Попросите о помощи в нашем Slack-чате в канале #hexlet-projects.

Кто проверяет проекты?

Автоматизированные тесты и линтер. В групповом и индивидуальном форматах наставник дополнительно проверит то, что тестами проверить невозможно (архитектуру проекта, правильность именования, удачность решений), и проведёт код-ревью, чтобы сделать проект ещё качественнее.

У меня другой вопрос

Нажмите на виджет в правом нижнем углу экрана и поищите ответ в нашей справке. Или сразу пишите на support@hexlet.io — вам ответит живой человек из команды Хекслета.