Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2015, 17:52   #1
usrjava
Пользователь
 
Регистрация: 23.02.2015
Сообщений: 20
Вопрос нужен совет в проектировании приложения

Добрый день. Много лет программировал в delphi + СУБД (firebird, oracle). Сейчас осваиваю java (базовый курс пройден).
Для более быстрого осваивания решил начать уже писать что-то конкретное на Java. В качестве разрабатываемого ПО решил взять и переписать (частично) один из проектов разрабатываемый ранее на Delphi, работающий с БД под управлением СУБД Firebird (ср. по мощности субд). Посоветуйте этапы разработки и инструменты.
На Delphi в упрощенном виде выглядело так:
1. Проектировали БД: таблицы, хранимые процедуры и т.п. (по мере развития проекта БД естественно расширялась). Проектирование делалось на живом SQL, с использованием IBExpert (удобная среда, позволяющая быстро конструировать метаданные БД).
2. Далее на Delphi писался некий слой ORM - иерархия классов, позволяющие представить таблицы БД, связи между ними в виде объектов предметной области. Также осуществлять загрузку данных из БД, сохранения данных в БД.
3. Далее писался что-то типа слоя бизнес логики: как правило он делался через пачку новых классов и так называемых датамодулей. Здесь уже конкретно подготавливались данные, которые будут выводится в конкретных окошках (формах) с таблицами (гридами), кнопками и т.п. (интерфейсное окно пользователя).
4. Создавались в том же Delphi интерфейсные окна с кнопками, гридами (таблицами) и т.п., который для единого стиля программы наследовались друг от друга и конкретная реализация уже затачивалась под конкретный справочник, редактор и т.п. Эти окна стыковались с нашими датамодулями, а те в свою очередь с классами ORM.

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

Последний раз редактировалось usrjava; 23.02.2015 в 17:54.
usrjava вне форума Ответить с цитированием
Старый 24.02.2015, 12:25   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Первое и второе можно обьеденить, с помощью аннотаций к свойствам классов фреймворка Hibernate, информация в БД сериализуются в классы Java-клас, которые можно наделить удобными методами, и наоборот десериализуется в БД. Все это прозрачно делает Hibernate. Вам тупо классы писать.

3. 4 также объединяются. Вменяемых дизанеров окон я не встречал, в NetBeans более-менее все удобно. А что самое главное, все это хранится ввиде классов, т.е. дизанер за вас пишет Java-класс. Короче говоря, нет статических форм в виде DFM. Только класс, показывающий куда пнуть вон ту хрень.

Получаете сессию у БД и тяните данные в не менее прозрачные многопоточные классы.

Для визуального компонентного, из коробки, попробуйте со Swing Framework'ом поиграться.

На хабре вагон инфы по Hibernate, Swing и прочим. Можете мельком ещё взглянуть на такого зверя как Spring Framework.

Последний раз редактировалось Человек_Борща; 24.02.2015 в 12:27.
Человек_Борща вне форума Ответить с цитированием
Старый 24.02.2015, 14:51   #3
usrjava
Пользователь
 
Регистрация: 23.02.2015
Сообщений: 20
Вопрос

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
...Для визуального компонентного, из коробки, попробуйте со Swing Framework'ом поиграться.
На хабре вагон инфы по Hibernate, Swing и прочим. Можете мельком ещё взглянуть на такого зверя как Spring Framework.
Общаясь с народом - складывается впечатление, что java-программисты только что и делают, как пишут ORM своего приложения. А где же концовка - ведь программы мы пишем для конечного пользователя, который в конечном счете работает с окнами, кнопками - одним словом с интерфейсом. Но ощущение, что java-программистов это не волнует - им самое главное сделать ORM, бизнес-логику - а интерфейс это так - фигня, какой-нить студент натянет. Или я чего-то не понимаю в разработке приложений на java и их предназначении.
usrjava вне форума Ответить с цитированием
Старый 24.02.2015, 15:04   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Вы не поняли. Свою ОРМ писать не надо. Вы пишите связку с готовой ОРМ.

берите NetBeans по вот этому мануалу, успешно напишите Swing приложение на Java с ORM Hibernate.
Человек_Борща вне форума Ответить с цитированием
Старый 24.02.2015, 15:42   #5
usrjava
Пользователь
 
Регистрация: 23.02.2015
Сообщений: 20
Вопрос

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Вы не поняли. Свою ОРМ писать не надо. Вы пишите связку с готовой ОРМ.
Я имел ввиду, что java-программисты только что и делают, что пишут backend слой.

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
берите NetBeans...
Опять же из общения с народом - что-то его не часто и берут то: в основном IDEA да Eclipse

P.S. Просто хотелось бы, в том числе, однозначно понять чем в основном народ пользуется при разработке frontend слоя
usrjava вне форума Ответить с цитированием
Старый 24.02.2015, 16:29   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
Я имел ввиду, что java-программисты только что и делают, что пишут backend слой.
Front-end'а как бы и нет. Все пишется классами. Даже UI.
Если когда-нибудь писали Innoo Setub скрипты в расширенной редакции InnoSetup - InnoUlta , то прекрасно видели тот же механизм. Дизайнер форм генерировал код, у указывал, где поставить кнопку. Никаких статичных форм.

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

Цитата:
Опять же из общения с народом - что-то его не часто и берут то: в основном IDEA да Eclipse
Кому что. Потом определитесь с удобством.

У NetBeans практические статьи на русском и толково написаны. Для обучения можно использовать его. К тому же Maven уже встроен.

Хорошо будет если получите опыт практической работы в этих 3х IDE. У каждого работодателя свой геморой на счет IDE в проекте. Что создает нереальный баттхерт всем сразу.
Человек_Борща вне форума Ответить с цитированием
Старый 03.03.2015, 13:58   #7
usrjava
Пользователь
 
Регистрация: 23.02.2015
Сообщений: 20
По умолчанию

Ок, спасибо !
usrjava вне форума Ответить с цитированием
Старый 11.03.2015, 15:39   #8
usrjava
Пользователь
 
Регистрация: 23.02.2015
Сообщений: 20
По умолчанию

Не хотел бы реализовать модели отображения, методы ввода/вывода и само отображение (view) на сервере (в частности это предлагает Spring MVC).
Хотелось бы сделать так - реализовать серверную часть (в качестве контейнера беру сервер Tomcat), не знающая ничего о UI, она только предоставляет доступ к данным и функциям их обработки (используются протоколы REST). Затем проектируем UI и вот он уже обращается к этим сервисам и функциям на сервере. То что я нашел из технологий, позволяющие реализовать построение такого UI - это AngularJS, JQuery. Очень не удобные - приходится писать по сути на JavaScript. Есть ли что-то типа такого: мы в IDE проектируем наши web-страницы (размещаем контролы: меню, кнопки, таблицы и т.п.) и делаем связку с нашим сервером. В этом плане проектирование именно GUI очень классно сделано в Delphi. Видел на C# проектирования их *.asp-страниц по этому принципу - но все равно как-то убого. Скажите, пожалуйста, не придумали каких-либо фреймворков на Java для подобного проектирования GUI. Вроде при разработке GWT что-то похожее хотели сделать, но там обе части и серверная и клиентская должны быть, по-моему, на GWT.
usrjava вне форума Ответить с цитированием
Старый 12.03.2015, 09:50   #9
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

Есть https://vaadin.com/home.
Но оно все равно не вписывается в:
Цитата:
Сообщение от usrjava Посмотреть сообщение
Не хотел бы реализовать модели отображения, методы ввода/вывода и само отображение (view) на сервере
Если не на сервере то это только javascript (ну или flash?). Годный framework на js - ExtJS
buriat вне форума Ответить с цитированием
Старый 13.03.2015, 12:27   #10
usrjava
Пользователь
 
Регистрация: 23.02.2015
Сообщений: 20
Вопрос

Вообще меня интересует сейчас клиентский web, но ориентированный только для корпоративных приложения т.е. по сути десктопное ПО с СУБД, но работающее в браузере.
Что касается разработки сайтов и информационных ресурсов - мне это мало интересно так скажем сваять несложный сайт на php я умею.
Поэтому и хочу уйти от явного javascript т.е. использовать подход основанный на использовании компонентов. Но и тут не могу понять, чем больше всего пользуется народ (GWT, Vaadin, sencha (www.sencha.com), ExtGWT и мн. др.). Хотелось бы понять, что наиболее востребовано на рынке - это тоже важно т.к. работу предлагает рынок).
usrjava вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приложения для ios. Совет. Heming Помощь студентам 2 10.02.2012 20:03
Дайте совет по разработке приложения step-93 Общие вопросы Delphi 11 18.04.2011 23:48
UML объектно-ориентированном проектировании ... kir9kir9kir9 Фриланс 2 15.06.2010 16:41
Использование конструкторов и деструктора при проектировании пользовательского класса НеважНо Общие вопросы C/C++ 1 22.01.2010 14:56
Прошу совета в проектировании классов Sergey82 Общие вопросы C/C++ 5 02.07.2009 20:09