С чего начать разработку таск менеджера на Java?

Здравствуйте.
На данный момент изучаю Java. На данном этапе изучения планирую приняться за разработку чего-нибудь реального, а не продолжать дальше упражняться с консолью и файлами.
Замахнулся высоко. Хочу написать свой онлайн TaskManager для себя. Очень много идей и фишечек, работа над которыми должна дать мне опыт. Есть идеи сделать ленту планов, календарь, поддержку регистрации пользователей и еще много идей.
Проблема в следующем - не знаю, с чего начать. У меня достаточные базовые знания языка, ООП, webа. Работал около года верстальщиком. Однако я совершенно не представляю себе архитектуру такого проекта, так как не имел дела с реальными проектами. Понимаю, что замахнулся высоко, и мне еще такое рано, но времени предостаточно, так что, думаю, разберусь со всем.
Локальные вопросы решить смогу, но все же в целом не представляю с чего начинать. Посоветуйте, пожалуйста, материал. Может быть какие-то материалы по написанию интернет магазин или мини соцсеть. Чтобы я имел представление с чего начать.
Заранее огромное спасибо.
  • Вопрос задан
  • 4142 просмотра
Пригласить эксперта
Ответы на вопрос 4
vlad20012
@vlad20012
Есть 2 большие проблемы. Во-первых, "специалисты" вашего уровня обычно пишут на каком-нибудь PHP, и информации о разработки подобных проектов на PHP можно найти тонны. Инфы по Java найти гораздо сложнее, ибо если ты пишешь на Java, то ты по умолчанию специалист, и тебе не нужно объяснять такие "простые" вещи. Во-вторых, те, кто в этом реально разбираются, скорее всего скинут вам пачку непроизносимых названий, вроде EJB, JSP, JSF, Spring, Hibernate и прочее и прочее, ибо это именно те технологии и фреймворки, с которыми обычно имеют дело java-разработчики.

Лично я считаю (т.е. ИМХО, да?), что начинающему разработчику категорически противопоказано использовать какие-либо сторонние библиотеки и фреймворки. Только стандартная библиотека, только vanilla java, только хардкор. Только так можно понять, как там оно на самом деле работает, и стать действительно хорошим специалистом, а не фреймворк-разработчиком. Кстати, по поводу "упражняться с консолью и файлами". Не знаю какие книги вы читаете, но обычно там последовательно излагается все необходимое, от консоли и файлов до GUI и WEB-приложений. К примеру, есть отличная книжка Шилдта... в общем, рекомендую все-таки почитать, а не сразу рваться в бой.

Но уверен, вы, конечно же, не прислушаетесь к предыдущему совету. Так что по поводу создания WEB-приложений. Поищите в направлении servlets API. Как я и говорил изначально, довольно сложно нагуглить что-нибудь толковое, тем более на русском. Может быть, ниже кто-нибудь подкинет хорошую статеечку. Установите IDE для JavaEE и напишите простой сервлет. С его помощью можно принимать HTTP запросы от клиентов и отправлять ответы. А что дальше зависит от ваших познаний о структуре WEB-приложений, о которых я не имею представления. А статей именно с упором на Java как-то... Короче, обычно свой путь в WEB-разработке далеко не с Java начинают.
Ответ написан
@angry_bender
PHP, JS
Ну так вы уже все знаете. У вас есть ТЗ как таковое, путь даже в голове? Есть наверняка.
Значит, вы как инженер-программист можете выделить основные сущности с которыми будет вестись работа. Сущности будут соответствовать классам в коде. Дальше берем идеологию CRUD и REST - набор базовых операций над объектами: создать, изменить, выбрать список, выбрать сущность, удалить.
Добавляете дополнительные операции через сервисы, вроде поиска и тд.
Добавляете авторизацию.
Spring изучали? Там дофига готовых сервисов на все случаи жизни.
Веб интерфейс соответственно: берете AngularJS, там тоже есть DI. Удобная работа с REST и с данными.
Ответ написан
Svininykh
@Svininykh
OpenSource разработчик POS-систем
Абсолютно согласен с vlad20012, правильно надо делать, как он написал. На русском языке по JavaEE материалов практически нет, но и по тем что есть для вашей задачи вам нужно несколько лет на обучение. Но в качестве начальных материалов могу порекомендовать уроки по JavaEE в NetBeans IDE, когда для меня встал похожий на ваш вопрос, то они мне помогли.

Из относительно простых фреймворков могу порекомендовать Stripes, единственная по нему книга это Stripes: ...and Java Web Development Is Fun Again Электронный вариант поищите где-то в сети есть, но к сожалению опять на английском.
Ответ написан
@spoki
На самом деле я не согласен с vlad20012. Java не такая уж и слоная)

Многие веб приложения состоят из следующих частей:
DAO - слой для доступа к данным. для вас это скорее всего будет база данных, по этому вам будет желательно изучить следующие технологии: jdbc - пишите sql запросы к бд и получаете результат(нативный sql), и какую нибудь ORM технологию, самая популярная это Hibernate.

Далее идет слой сервисов - это так называемый слой бизнес логики. Чтобы было понятно для примера в нем могут объединяться вызовы методов из DAO под одной транзакцией.

ну а далее идет UI в вашем случает это веб слой - набор сервлетов и jsp файлов. сервлеты принимают http запросы вызывают бизнес логику для работы и отдают ответ. Если ответ это хтмл то вам понадобится какой нибудь движок для генерации хтмл. по умолчанию это jsp, но есть еще куча шаблонизаторов.

а теперь о плюшках. Есть такая хорошая штука как spring framework. в вашем случае она поможет вам на всех этапах разработки. для изучения есть очень хорошая книжка spring in action 3 издание.

ну и конечно придется научиться пользоваться системой сборки, либо maven либо gradle.

кстати каждый слой лучше выделять в отдельный модуль(подпроект) в системе сборки.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы