| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Нужен совет в проектировании приложени |
| Автор: usrjava 23.2.2015, 17:49 |
| Добрый день. Много лет программировал в delphi + СУБД (firebird, oracle). Сейчас осваиваю java (базовый курс пройден). Для более быстрого осваивания решил начать уже писать что-то конкретное на Java. В качестве разрабатываемого ПО решил взять и переписать (частично) один из проектов разрабатываемый ранее на Delphi, работающий с БД под управлением СУБД Firebird (ср. по мощности субд). Посоветуйте этапы разработки и инструменты. На Delphi в упрощенном виде выглядело так: 1. Проектировали БД: таблицы, хранимые процедуры и т.п. (по мере развития проекта БД естественно расширялась). Проектирование делалось на живом SQL, с использованием IBExpert (удобная среда, позволяющая быстро конструировать метаданные БД). 2. Далее на Delphi писался некий слой ORM - иерархия классов, позволяющие представить таблицы БД, связи между ними в виде объектов предметной области. Также осуществлять загрузку данных из БД, сохранения данных в БД. 3. Далее писался что-то типа слоя бизнес логики: как правило он делался через пачку новых классов и так называемых датамодулей. Здесь уже конкретно подготавливались данные, которые будут выводится в конкретных окошках (формах) с таблицами (гридами), кнопками и т.п. (интерфейсное окно пользователя). 4. Создавались в том же Delphi интерфейсные окна с кнопками, гридами (таблицами) и т.п., который для единого стиля программы наследовались друг от друга и конкретная реализация уже затачивалась под конкретный справочник, редактор и т.п. Эти окна стыковались с нашими датамодулями, а те в свою очередь с классами ORM. Отличие Java от Delphi в основном в наличии стека технологий и фреймворков. Из-за чего, у начинающего разбегаются глаза. В связи с чем, просьба посоветовать с чего здесь с практич. тч. зрения в Java начать разработку приложения (этапы), какими фреймворками лучше всего воспользоваться (так сказать, что наиболее популярно для приведенного типа приложений)? |
| Автор: danilych 24.2.2015, 07:48 |
| Spring mvc - если это будет web-приложение, так же не советую использовать jsp - посмотрите в сторону freemarker, velocity, thymeleaf Spring core, если это десктоп hibernate либо MyBatis - ORM фреймворки. |
| Автор: usrjava 11.3.2015, 15:37 |
Не хотел бы реализовать модели отображения, методы ввода/вывода и само отображение (view) на сервере. Хотелось бы сделать так - реализовать серверную часть (в качестве контейнера беру сервер Tomcat), не знающая ничего о UI, она только предоставляет доступ к данным и функциям их обработки (используются протоколы REST). Затем проектируем UI и вот он уже обращается к этим сервисам и функциям на сервере. То что я нашел из технологий, позволяющие реализовать построение такого UI - это AngularJS, JQuery. Очень не удобные - приходится писать по сути на JavaScript. Есть ли что-то типа такого: мы в IDE проектируем наши web-страницы (размещаем контролы: меню, кнопки, таблицы и т.п.) и делаем связку с нашим сервером. В этом плане проектирование именно GUI очень классно сделано в Delphi. Видел на C# проектирования их *.asp-страниц по этому принципу - но все равно как-то убого. Скажите, пожалуйста, не придумали каких-либо фреймворков на Java для подобного проектирования GUI. Вроде при разработке GWT что-то похожее хотели сделать, но там обе части и серверная и клиентская должны быть, по-моему, на GWT. |
| Автор: LSD 11.3.2015, 18:31 |
| А на чем ты хочешь писать клиентскую часть? Если клиент браузер, то тут выбор не слишком большой, это или HTML+JS или апплеты. Но учитывая http://forum.vingrad.ru/forum/topic-381766.html апплетов, то лучше с ними не связываься, если хочется Java на клиенте то лучше WebStart, но тут уже и браузер не нужен. Да HTML+JS можено не писать руками и использовать, GWT или http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html, но он там все равно будет. |
| Автор: AntonSaburov 12.3.2015, 10:55 |
| GWT пока еще работает. Есть вариант ZK - http://zkoss.org |
| Автор: usrjava 12.3.2015, 11:18 |
| А как вы смотрите на Vaadin - на сколько он востребован? |
| Автор: AntonSaburov 12.3.2015, 12:38 |
| Vaadin - это более удобная надстройка над GWT. Мы с ним возились некоторое время назад, но он имел тогда большой недостаток - медленно работал. Есть еще один вариант - Sencha - http://www.sencha.com/products/gxt/ |
| Автор: usrjava 12.3.2015, 23:12 | ||
Над вид даже даже ничего. Почему тогда не вошел в массовость? Вот анализирую разработку клиентской части web-приложения и понимаю, что на сегодняшний день этот вопрос не решен. Если с серверной частью в целом все ок, то в клиентской каких-то готовых однозначных решений сейчас нет - масса разных библиотек и подходов, одни лучше так другие этак - от чего волосы становятся дыбом. Каждый работодатель требует свои знания. Не понимаю - ну почему крупной компании (не знаю там - тому же google) за столько лет не разработать нормальный фреймворк и взять его за стандарт. Не верю, что это не возможно и не верю тем, что писать на js все вручную без редактора конструктора - это круто. Круто - это когда среди фреймворком (т.е. он не обязательно один) есть один классный и удобный, что им пользуются 80% народа и столько же раз требуется при устройстве на работу. |
| Автор: AntonSaburov 13.3.2015, 11:41 |
| Sencha была изначально JavaScript - ноги росли из ExtJS. Потом его скрестили с GWT. Но у GWT есть свои "прелести" - например для портальных решений он не подходит. Если порассуждать о причинах такого количества, то скорее всего проблема во взрывном росте технологических возможностей - тот же Ajax, более крутой HTML, CSS, JavaScript. Причем нет общего понимания, что именно надо и для чего. Ну и получаем кучу различных реализаций. |
| Автор: usrjava 13.3.2015, 12:25 | ||
Вообще меня интересует сейчас клиентский web, но ориентированный только для корпоративных приложения т.е. по сути десктопное ПО с СУБД, но работающее в браузере. Что касается разработки сайтов и информационных ресурсов - мне это мало интересно так скажем сваять несложный сайт на php я умею. Поэтому и хочу уйти от явного javascript т.е. использовать подход основанный на использовании компонентов. Но и тут не могу понять, чем больше всего пользуется народ (GWT, Vaadin, sencha (www.sencha.com), ExtGWT, и мн. др.). Хотелось бы понять, что наиболее востребовано на рынке - это тоже важно т.к. работу предлагает рынок) |
| Автор: AntonSaburov 13.3.2015, 13:18 |
| Если интересен именно вариант работы, то думаю, что скорее всего это что-то на основе GWT - Vaadin, SmartGWT, ExtGWT. Есть отдельно ZK, но это достаточно специфический продукт, если судить по рынку труда. Я бы посмотрел оба продукта - наверно ничего плохого в этом не будет. |
| Автор: usrjava 13.3.2015, 14:09 | ||
согласен Вот пример: захожу на hh.ru и вижу, что тот же GWT (если мы говорим о компонентной реализации web-морды) гораздо чаще встречается в вакансиях. Спрашивается, разберусь я с Vaadin'ом, потрачу кучу времени, а он у работодателей не востребован - тогда на фига козе баян. Оба - это вы какие имели ввиду? |
| Автор: AntonSaburov 13.3.2015, 15:19 |
| GWT и Vaadin. Хотя ZK у меня вызвал очень хорошие впечатления. Но мы говорим о вакансиях. |
| Автор: usrjava 13.3.2015, 22:25 |
Более менее разобрался в чем между ними принципиальная разница, почитав статейку http://habrahabr.ru/post/115999/. В особенности после прочтения комментов пользователей |
| Автор: usrjava 14.3.2015, 00:50 |
| кстати, а что вы думаете про sencha (sencha.com)? |
| Автор: usrjava 14.3.2015, 15:40 |
| кто-либо с ней работал? |
| Автор: usrjava 14.3.2015, 20:43 |
| Здесь вот утверждают, что при разработке клиентской части enterprice-приложения лучше уйти от компон. ориентированных фреймворков и использовать в связке html+css+js (jQuery, Angular). Скажите а как с помощью последнего реализовать, например обычный грид (таблицу), в ячейках которой можно было бы сразу производить редактирование данных, такое вообще возможно? |
| Автор: LSD 16.3.2015, 14:52 |
http://jquery-plugins.net/editable-table-editable-jquery-bootstrap-spreadsheet. В любом случае это уже не вопрос по проектированию и не по Java. |
| Автор: sergioK1 24.3.2015, 21:46 | ||||
Это фактически один фрэймворк, помню первую версию юзал где то в 2007-08 годах, потом в 2011 года пришлось отказаться, жутко тормозил, форма могла строиться почти минуту, счас запустил , нормально да и жава скрипт стал проще, единсвенная проблема так и осталась, как найти нужное место в коде, то есть фактически мысленно перевести обратно жава скрипт в жаву , Да помню были проблемы с кросс браузерностью, как сейчас ? Что насчет подержки мобил? Идея писать и сервер и клиент на одном языке звучит красиво , но чтоб без накладок было я сильно сомневаюсь, лучше уже фрэймворки с готовыми готовые тэгами, Добавлено через 7 минут и 9 секунд
мы юзаем spring-jpa-data , очень удобно, http://www.petrikainulainen.net/spring-data-jpa-tutorial/ хотя ORM само по себе до ума так никто и не довел , годиться для узкого круга задач , требующих очень хорошего дизайна , |