@doktor_7878
Начинающий

Какую архитектуру клиент-серверного приложения вы посоветуете?

Я только учусь программированию, но учиться хочу сразу на собственном проекте. Хочу убить двух зайцев одним ударом - написать проект и получить профессию, на тот случай есть проект провалится.
Проект довольно "простой" это клиент-серверное приложение для заказа такси.
ТЗ, уже есть. Есть понимание организации логики, осталось реализовать в коде.)
Так как уже начал учить java, часть клиента написал на android, то хотелось бы и сервер писать на java.
Советы нужны практически с нуля. Как настроить сервер на своем компе? В какой среде писать? Какие технологии использовать? И главное как правильно построить архитектуру?
Предположим мне удастся его написать и запустить. Начало будет в маленьком городе и количество клиентов будет не большое. Предположим приложение пройдет обкатку и баги будут исправлены. Тогда, я надеюсь, программу захотят установить в других городах мира и количество клиентов может быстро возрасти.
Нужно ли об этом думать сразу или пока не заморачиваться, а работать над логикой? Если все таки думать об этом сразу, то как правильно поступать?
Нужно будет добавлять сервера и распределять между ними нагрузку? Какую в этом варианте использовать технологию?
Или со временем можно просто увеличивать мощность сервера? Хотя мне такой вариант не очень нравится. Не хотелось бы зависеть от одного сервера.
Или вообще не правильно писать на java и пока я "чайник" хоть для java, хоть для другого языка, учить и писать на другом? Тогда на каком?
Хотелось бы найти найти ментора. Сколько будут стоить такие услуги? Или, быть может, ментор захочет стать соавтором и сособственником приложения? Разжевывать не надо, хочу сам доходить. Но хотелось быстрей выходить из тупиков и главное идти в нужном направлении.

Спасибо за любые советы, кроме советов типа - "мальчик, тебе это не под силу!", "начни с азбуки" и т.д.
Заранее благодарен!
  • Вопрос задан
  • 876 просмотров
Пригласить эксперта
Ответы на вопрос 1
@frozen_coder
Java-developer
Серверное приложение пишется обычно в виде DAO-Сервисы-Контроллеры. DAO - работает с БД, Сервисы - логика и запросы к DAO, Контроллеры - принимают запросы, отправляют ответы, вызывают сервисы. С клиентом общаться по REST. Чо на мобилке будете творить я не знаю, вообще не шарю чо там в мобилках. Мне нравится Spring, вы можете использовать что-то другое (Play, Java EE). Среда на ваш вкус. IDEA хороша. Сервер выбирайте сами - WildFly (я за него), Glashfish, Tomcat, Jetty и др. Как настроить - го в гугл. Там же почитаете про распределение нагрузки на несколько серверов.
Lombok помогает на Java. Тестирование JUnit или Spoke Framework.
Из БД можно Postgres, но сойдет и Mysql.
Про ментора не знаю, мне хватает коллег по работе.
Ответ написан
Ваш ответ на вопрос

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

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