@OldJohn

С чего начать разработку своего приложения?

Здравствуйте, уважаемые разработчики! Я учу java (прочел Шилдта) и хочу написать программу которая хранит и по требованию выводит статистику футбольных турниров, матчей, команд и игроков.
Скорее всего буду делать вэб-интерфейс так как это, как я понял, более релевантный опыт чем юзать какой нибудь javaFX.
Но речь не об этом. Я, в сущности, не понимаю с чего начинать. ТЗ я себе написал, как мог, а дальше? Планирование архитектуры приложения, базы данных, фронт или бэк? На какие шаги и последовательность вы бы разделили работу? Вообщем помогите кто чем может) Спасибо!
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
AshBlade
@AshBlade
Просто хочу быть счастливым
1. Представь, что заходишь на свой сайт:
- Что ты видишь?
- На какие кнопки нажимаешь, чтобы что-то сделать?
и т.д.
Это интерфейс.
2. Ты нажал на кнопку на сайте:
- Куда идет запрос?
- Какой обработчик/контроллер/эндпоинт?
Это общая архитектура приложения
3. Запрос пришел:
- Какой контроллер должен обработать?
- Какие интерфейсы исполняют эту бизнес логику (можно выделить несколько интерфейсов для разных юз. кейсов)?
- Какой ответ должен получить клиент?
Это уже уровень кода

На уровне кода работаешь с модельками. Тут предлагаю TDD:
- Определи методы/интерфейсы на разные юз. кейсы
- Напиши тесты на каждый юз. кейс
- Напиши реализацию
- Вставь готовый код в контроллер

В общих чертах, можно таким путем идти
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
xez
@xez Куратор тега Java
TL Junior Roo
"Выращивайте" проект.
Напишите, для начала, MVP - какую-то штуку, которая собирает статистику, хотя бы одного захардкоженного матча/турнира и выводит в консоль.
Потом расширяйте.
Ответ написан
@Wan-Derer
Зобанели на Хабре, волки́ ;((
1. Научиться получать данные с внешнего ресурса (те самые таблицы) и выводить их в консоль как есть.
2. Разобраться что за данные ты получаешь. JSON? XML? Научиться парсить (разбирать) их на отдельные поля и сохранять в коллекцию. И выводить в консоль.
3. Подключить базу данных и сохранять уже в базу, а не в коллекцию.
4. Подключить web. У Шилдта наверно есть про сервлеты. Вот на них можно. Цель - выводить данные уже не в консоль, а в браузер - в виде JSON.
5. Оставить это как версию и сделать то же самое на Spring Boot. Работодателям нужен только Spring, но то что ты делал на "низком уровне" тоже может пригодиться, типа "Я и так тоже могу".
6. Теперь думать про фронт. В любом случае, надо знать основы HTML, CSS, вёрстки. Вариантов несколько:
- интегрировать фронт прямо в Spring-приложение, используя шаблонизаторы (их "из коробки" 3 на выбор, самый популярный thymeleaf);
- сделать фронт как отдельное приложение для браузера, которое будет ходить на бэк за данными и взаимодействовать с пользователем. Самый популярный фреймворк для фронта - React, но бэкэндерам лучше заходит Angular;
- экзотика типа Vaadin.....
7. На основе кода бэка сделать бота в Telegram и/или мобильное приложение (если интересно, конечно).
Я бы советовал по мере эволюции бэка уже искать работу/стажировку. Новичкам часто дают тестовые задания - делая их ты лучше поймёшь что нужно работодателям, ну и потренируешься.
Удачи!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы