На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

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

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

      "Эталонной" реализацией стандарта Java EE API считается серверная платформа Glassfish (https://glassfish.java.net/), разработываемая в Sun/Oracle вместе со стандартом и включающая в себя отдельные модули. Так называемая Java EE SDK -- фактически, тот же самый Glassfish + примеры. Если цель изучить Java EE для карьеры, а не повторить Delphi-приложение -- стоит почитать официальную документацию http://docs.oracle.com/javaee/7/index.html

      Проектирование надо начинать точно так же с БД. Альтернативой может быть автогенерация БД по ORM-классам, но, ИМХО, не лучший метод.
      ORM в контексте Java EE API называется Java Percistence API (JPA). Основные реализации: EclipseLink (входит в Glassfish по умолчанию) и Hibernate (вроде, проще интегрируется в десктопные приложения и имеет больше дополнительных функций).

      EE-модули под бизнес-логику называются Enterprice Java Beans (EJB). Насколько я знаю, этот термин имеет смысл только в контексте серверной платформы.
      Для обращения к ним снаружи можно использовать Web-сервисы (для протокола SOAP -- Jax-WS, он же Grizzly, для протокола RESTful -- и Jax-RS, он же Jersey). Так же можно оснастить EJB сетевым интерфейсом и обращаться к нему напрямую.

      Для GUI актуальны JavaFX и Swing. Я давно не писал GUI-приложений на Java, деталей не знаю. Но, как минимум, оно будет отдельно от EE-приложения (если его ипользовать). Соответственно, можно написать серверное приложение на Java EE и поместить побольше логики туда, а графическое подключать по понравившемуся интерфейсу (мы используем преимущественно SOAP). Можно написать монолитное приложение без сервера (если хочется с ORM -- использовать Hibernate), но как в таком случае "фреймворкать" логику не подскажу.

      Добавлено
      Кстати, насчёт выбора между клиент-серверным и монолитным графическим приложением. Если база данных не стоит на одном компьютере (или, по крайней мере, в одной защищённой сети) с этим приложением -- сервер (сама БД) будет по-любому, а передавать между клиентом и сервером команды Web-интерфейса с авторизацией и, желательно, по HTTPS всяко лучше, чем голые SQL-запросы: и безопаснее, и трафика меньше.
        чот мне подсказывает что сразу пересаживаться на сервер приложений и jee автор не готов
        а самое тяжкое будет - компонентов для датабиндинга в стиле дельфей в джаве очень не густо, не жалуем :)
          Спасибо за ответ.
          Цитата kopilov @
          Можно написать монолитное приложение без сервера (если хочется с ORM -- использовать Hibernate), но как в таком случае "фреймворкать" логику не подскажу.

          Нет, монолитное не нужно. Как раз-то хотелось бы разделить приложение на слои.
          1. На сколько я понял БД проектируем ручками с помощью SQL (какую бы СУБД посоветовали под Java - альтернатива Firebird).
          2. ORM делаем с помощью Hybernate
          3. Бизнес-логику через Springa или EJB (кстати, что лучше и востребованнее)
          4. Интерфейс делаем через JSF или Swing (опять же, что что лучше и востребованнее. Что-нибудб знаете об ADF фреймворке -технологию от оракла. Мол типа схожа концепция с delphi, DataSet подцепляется к DataSource, а он в свою очередь к гридушке DBGrid)

          Также я имел ввиду, что слой пользовательского интерфейса хотел бы заделать не под desktop, а под web, т.е. с возможность работать с программой через браузер.
          Цитата kopilov @
          Если цель изучить Java EE для карьеры, а не повторить Delphi-приложени

          Конечная цель перейти с Delphi на Java в основном под Enterprice-приложения

          Добавлено
          Цитата wind @
          компонентов для датабиндинга в стиле дельфей в джаве очень не густо, не жалуем

          Вот и хотелось бы понять как вы слой бизнес-логики натягивает на "морду" web-приложения, какими библиотеками?
          Сообщение отредактировано: usrjava -
            БД надо выбирать, прежде всего, по планируемым нагрузкам, а в отношении Java главное, чтобы был JDBC-драйвер. Для Firebird он есть.

            ORM, если не будете использовать Glassfish, то на Hibernate, если будете -- сперва попробовать EclipseLink, который по умолчанию.

            Spring я не пробовал. Изучать Java EE начал с чтения вешеуказанной документации (которая написана с упором на Glassfish, что не удивительно), взял Glassfish и на нём остался. Нравится. Про Spring где-то пишут, что "он лучше, т.к. потребляет меньше ресурсов (Java EE избыточен)", где-то что "Spring при нынешнем Java EE актуален только для поддержки старых приложений, зачатых, когда Java EE не был так хорош". За всех говорить не буду, но если поискать по вакансиям -- Spring встречается на порядок чаще -- может, потому, что тех самых "старых приложений", написанных на нём, на порядок больше, чем новых стартапов. Java EE, кроме Glassfish, полностью реализован в JBoss, но его тоже не пробовал. Своё приложение на Glassfish начал делать два года назад (сейчас оно успешно используется), тогда были актуальны Glassfish 3.2 и Java EE 6, сейчас Glassfish 4.1 и Java EE 7.

            JSF (Java Server Faces) -- фреймворк для Web-приложений, весьма специфический. Может использоваться, как шаблонизатор, но общие возможности шире. Заточен именно под Enterprice. Работать будет хорошо, если пользователь будет только нажимать на "его" кнопки и не будет смотреть на адресную строку. Иначе, например, после отправки данных из формы и отображения новой страницы в адресной строке останется URL старой. Это ещё ничего, но если там будет новая подобная форма, ведущая на третью страницу -- при переходе мы увидим URL предыдущей (второй), что окончательно сбивает с толку.

            В качестве более простого шаблонизатора есть JSP, может, что ещё.
            Так же можно обратить внимание на GWT (Google Web Toolkit).

            Swing -- библиотека для настольных графических приложений, поэтому сравнению с JSF не подлежит.
              Цитата usrjava @
              Вот и хотелось бы понять как вы слой бизнес-логики натягивает на "морду" web-приложения, какими библиотеками?

              наверное вам нужен grails
                Цитата kopilov @
                Google Web Toolkit

                на сколько востребован и заморочен?
                  Цитата usrjava @
                  на сколько востребован и заморочен?

                  Я, опять же, не использовал. (Вообще, разработка Web-приложений под браузеры не входит в мои обязанности: пишу только backend с SOAP и RESTful-интерфейсами. Тот же JSF поковырял только в качестве эксперимента.)

                  Впервые узнал о нём на первых курсах по Java -- это был 2008 год, я учился на 3 курсе. Сделать задание по GWT предлагалось по желанию в конце курса, у меня тогда хватало других заморочек.

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

                      Цитата usrjava @
                      не знающая ничего о UI, она только предоставляет доступ к данным и функциям их обработки (используются протоколы REST).

                      Вы понимаете, что это взаимоисключающие параграфы? Либо вы ищите то, что реализовано для java, либо реализуете по отдельности на
                      Цитата usrjava @
                      AngularJS, JQuery.

                      и пишите на очень удобном и предназначенном для написания UI джаваскрипте.
                        Цитата usrjava @
                        Очень не удобные - приходится писать по сути на JavaScript.

                        Ну так браузеры java байт-код то выполнять не умеют.
                        Умеют JavaScript.

                        В GWT - там код клиентской части, написанной на Java, компилируется в JavaScript - и браузер выполняет уже этот скомпилированный js.

                        Ну еще есть апплеты (это для которых плагин в браузеры надо ставить), но копать в эту сторону в 2014 году попахивает легкой некрофилией :D
                        Сообщение отредактировано: @@@ -
                          Цитата Астарот @
                          на очень удобном и предназначенном для написания UI джаваскрипте.

                          проблема в том, что раньше программист по сути в одном лице мог сделать полное ПО от начала до конца (ему досточно было знать сам язык (C++, Object Pascal), IDE (VS C++, Delphi), SQL + Субд(какую-либо)) сейчас же приходится использовать целый зоопарк технологий. Как было бы здорово если мы берем и дизайн web-приложения клепаем как в Delphi. В Google сидят не дураки, поэтому и предпринимались попытки сделать подобное - фреймворк GWT. Т.е. Java-программист продолжает писать на java и не заморачивается с html, javascript, php, ccs
                            Цитата usrjava @
                            Как было бы здорово если мы берем и дизайн web-приложения клепаем как в Delphi

                            Дельфи мертв. Задумайтесь над этим фактом.
                              Цитата usrjava @
                              В Google сидят не дураки, поэтому и предпринимались попытки сделать подобное - фреймворк GWT. Т.е. Java-программист продолжает писать на java и не заморачивается


                              Так а чем он вам в итоге не угодил то? :popcorn:
                                Цитата Астарот @
                                Дельфи мертв. Задумайтесь над этим фактом.

                                Да, кстати. Пара полезных статей на эту тему:
                                Визуальное программирование
                                Зоопарк технологий -- зоопарк специалистов

                                И стоит облазить этот сайт в поисках других полезных советов, я сам с него начинал. Это было в 2008 году (примерно тогда многие статьи и написаны), но большинство статей если и устарели, то не сильно.
                                  А Скипи все еще активен, или уже вышел в тираж? В смысле сайт обновляет, статьи новые пишет?
                                      Цитата @@@ @
                                      Ну так браузеры java байт-код то выполнять не умеют.

                                      Просто писать клиента, работающий в браузере хотелось бы именно на Java + его фреймворк, а уже он бы компилил в html+js+css.
                                      GWT - на сколько я понял так и сделан был, но он сейчас не развивается, поэтому не хотелось юзать, то станет не востребованным.
                                        Цитата Астарот @
                                        А Скипи все еще активен, или уже вышел в тираж? В смысле сайт обновляет, статьи новые пишет?

                                        Похоже, неактивен с 2013 года. На сайте http://skipy.ru/ последняя крупная статья 2011 года, запись в http://skipy-ru.livejournal.com/ -- от 2013, не считая пары обсуждений. Активность профиля на нашем форуме -- тоже 2013.
                                        Интересно, что в 2014 он пишет, что "выгнали с CyberForum.ru, прошу на http://javatalks.ru/", но там постов новее 2013 года тоже не найти.

                                        Пока смотрел, попалась когда-то виденная статейка со сравнением Tomcat+Spring с полноценными Java EE серверами http://articles.javatalks.ru/articles/24
                                          Просто писать клиента, работающий в браузере хотелось бы именно на Java + его фреймворк, а уже он бы компилил в html+js+css.
                                          GWT - на сколько я понял загибается.
                                            Цитата Астарот @
                                            Дельфи мертв. Задумайтесь над этим фактом.

                                            Цитата usrjava @
                                            GWT - на сколько я понял загибается.

                                            Задумайтесь над этим фактом :D
                                              я чот не разобрал, как от гуёвого standalone-приложения пришли к gwt и, прости господи, ui на javascript :huh:
                                                Цитата wind @
                                                я чот не разобрал, как от гуёвого standalone-приложения пришли к gwt и, прости господи, ui на javascript :huh:

                                                Цитата usrjava @
                                                Также я имел ввиду, что слой пользовательского интерфейса хотел бы заделать не под desktop, а под web, т.е. с возможность работать с программой через браузер.
                                                ...
                                                Вот и хотелось бы понять как вы слой бизнес-логики натягивает на "морду" web-приложения, какими библиотеками?

                                                В ответе я упомянул GWT, как знакомую с первых курсов технологию. Далее ТС-у пытались растолковать, что WebUI лучше всё-таки писать на чём-нибудь более близком к браузеру.
                                                  я бы честно не советовал новичку связываться в вебовским гуём с интерфейсами сложнее одной кнопки; я как столкнулся с этим явлением, так до сих пор волосы во всех местах дыбом и глаза треугольные :P
                                                    Цитата usrjava @
                                                    GWT - на сколько я понял загибается.

                                                    Ой ли?

                                                    Цитата kopilov @
                                                    WebUI лучше всё-таки писать на чём-нибудь более близком к браузеру

                                                    А почему GWT далек от браузера? :popcorn:
                                                      wind, а что не так с ui на js?
                                                        Цитата zera @
                                                        skipy

                                                        Последняя активность на форуме 8 июля 2013

                                                        Добавлено
                                                        Цитата kopilov @
                                                        Похоже, неактивен с 2013 года. На сайте http://skipy.ru/ последняя крупная статья 2011 года, запись в http://skipy-ru.livejournal.com/ -- от 2013, не считая пары обсуждений. Активность профиля на нашем форуме -- тоже 2013.
                                                        Интересно, что в 2014 он пишет, что "выгнали с CyberForum.ru, прошу на http://javatalks.ru/", но там постов новее 2013 года тоже не найти.

                                                        Вот и я грущу - толковейшие статьи же человек пишет... писал...

                                                        Цитата wind @
                                                        я бы честно не советовал новичку связываться в вебовским гуём с интерфейсами сложнее одной кнопки; я как столкнулся с этим явлением, так до сих пор волосы во всех местах дыбом и глаза треугольные :P

                                                        Держаться нужно подальше от jsp и прочих подобных технологий прячущих js под капот. Пока все работает оно мобыть и ничего, но как только что-то идет не так понять откуда что растет решительно невозможно. А веб сто лет как развивается без java даже не думая о ней, так что не вижу ни одной причины, по которой от веб-технологий стоит отказываться только потому, что бэкенд внезапно написан на жаве :-?
                                                          Цитата Астарот @
                                                          Держаться нужно подальше от jsp и прочих подобных технологий прячущих js под капот

                                                          здрасьте, а как jsp может js спрятать? оно не умеет ничего (чем, собственно, и прекрасно)
                                                          может ты про jsf?
                                                            Цитата zera @
                                                            здрасьте, а как jsp может js спрятать? оно не умеет ничего (чем, собственно, и прекрасно)
                                                            может ты про jsf?

                                                            *опасливо косится на книжку где что-то читал про первое и второе* Путаю я их... Я вообще в последнее время стал исповедовать принцип одностраничного приложения - сначала грузим статику, а потом по ajax набиваем ее данными, и так же обновляем - клиент от сервера получается ваще совсем оторван, бери и заменяй при нужде.
                                                              Цитата zera @
                                                              wind, а что не так с ui на js?

                                                              невыполнимо, неотлаживаемо, неподдерживаемо, и вообще оксюморон.
                                                                Цитата wind @
                                                                невыполнимо, неотлаживаемо, неподдерживаемо, и вообще оксюморон.

                                                                Поперхнулся :blink: :blink: :blink: Мы точно об одном и том же js?
                                                                  Цитата wind @
                                                                  невыполнимо, неотлаживаемо, неподдерживаемо, и вообще оксюморон.

                                                                  я, конечно, видел примеры подобных реализаций, но отвратительно писать фронтенд совсем не обязательно.
                                                                    а как ни пиши, инструменты, не предназначенные для, дают очень слабо удовлетворительный результат
                                                                      Цитата wind @
                                                                      а как ни пиши, инструменты, не предназначенные для, дают очень слабо удовлетворительный результат

                                                                      Это js не предназначен для создания веб-UI? Ты чего-то сильно не знаешь о js в целом и web-UI в частности :scratch:
                                                                        так ведь джава с браузером дает слабо удовлетворительный результат в плане создания толстого клиента. инструмент не предназначен, расходимся.
                                                                          ну мы для себя окончательно переключились на модель Java backend + JS frontend с JSON между ними. Просто не заморачиваемся с написанием фронтенда сами, а отдаем js-спецам или на аутсорс - у них неплохо получается.
                                                                            И это - правильный подход.
                                                                              Вообще меня интересует сейчас клиентский web, но ориентированный только для корпоративных приложения т.е. по сути десктопное ПО с СУБД, но работающее в браузере.
                                                                              Что касается разработки сайтов и информационных ресурсов - мне это мало интересно так скажем сваять несложный сайт на php я умею.
                                                                              Поэтому и хочу уйти от явного javascript т.е. использовать подход основанный на использовании компонентов. Но и тут не могу понять, чем больше всего пользуется народ (GWT, Vaadin, sencha (www.sencha.com), ExtGWT, и мн. др.). Хотелось бы понять, что наиболее востребовано на рынке - это тоже важно т.к. работу предлагает рынок)
                                                                                Цитата usrjava @
                                                                                клиентский web, но ориентированный только для корпоративных приложения т.е. по сути десктопное ПО с СУБД, но работающее в браузере.

                                                                                эээ, ничего не понял.
                                                                                  Цитата usrjava @
                                                                                  Поэтому и хочу уйти от явного javascript т.е. использовать подход основанный на использовании компонентов.

                                                                                  jsf. Море боли гарантированно.


                                                                                  Цитата usrjava @
                                                                                  т.е. по сути десктопное ПО с СУБД, но работающее в браузере.

                                                                                  http://www.bindows.net/demos/
                                                                                    Цитата usrjava @
                                                                                    Но и тут не могу понять, чем больше всего пользуется народ (GWT, Vaadin, sencha (www.sencha.com), ExtGWT, и мн. др.)

                                                                                    До ухода в вышеописанный подход мы использовали ZK. Ничем не лучше других.
                                                                                      Цитата batigoal @
                                                                                      До ухода в вышеописанный подход мы использовали ZK. Ничем не лучше других.

                                                                                      Я планирую уйти в Java именно в backend и его эко-систему. Чтобы быстрее учиться этому хочу один из проектов на Delphi частично (т.к. проект большой) перевести на Java. Но было бы глупо мне написать только backend часть проекта без frontend'a. Т.к. приоритет на последний я не ставлю, то хотелось из кучи стека технологий для frontend'a с одной стороны выбрать тот один фреймворк frontend'a, который с одной стороны востребован у работодателей, а с другой не являлся бы потомком JavaScript - т.е. больше связан все таки с языком Java, т.е. фреймворк с компонентным подходом, который позволял нарожать вменяемый web-дизайн: gwt, vaadin и т.п. - просто не могу понять какой из них более востребован и требуется меньший времени для его изучения.
                                                                                        бекендом займитесь для начала. чтобы не было предположений, что бекенд это то же самое десктопное приложение, только без ui
                                                                                          Цитата usrjava @
                                                                                          не являлся бы потомком JavaScript

                                                                                          Технология являющаяся потомком JavaScript :facepalm: Вы имеете представление о том, что такое js, где работает и для чего используется?

                                                                                          Добавлено
                                                                                          Цитата usrjava @
                                                                                          просто не могу понять какой из них более востребован

                                                                                          Востребованность проистекает из решаемых задач, а не является абстрактной самодостаточной величиной.

                                                                                          Вообще чем сложнее фронтэнд - тем менее применимы всякие "обертки скрывающие сущность" в силу их неповоротливости.
                                                                                            Цитата zera @
                                                                                            бекендом займитесь для начала. чтобы не было предположений, что бекенд это то же самое десктопное приложение, только без ui

                                                                                            Согласен. Я этому товарищу уже скинул через личку свой рабочий проект (немного урезанный и очищенный от коммерческих тайн) и был готов консультировать дальше. Он сказал спасибо, а дальше, похоже, заигнорил, узнав, что я работаю в маленькой (7 человек) и не очень богатой компании, что не помешало, а скорее помогло мне освоить Java EE с нуля самостоятельно.
                                                                                              Цитата zera @
                                                                                              , что бекенд это то же самое десктопное приложение

                                                                                              а в чем разница-то, архитектура проектирования приложения в целом имеет одну и туже суть!
                                                                                                Цитата kopilov @
                                                                                                Я этому товарищу уже скинул через личку свой рабочий проект (немного урезанный и очищенный от коммерческих тайн) и был готов консультировать дальше. Он сказал спасибо, а дальше, похоже, заигнорил, узнав, что я работаю в маленькой (7 человек) и не очень богатой компании

                                                                                                Слушай, скинь лучше мне! :D Не говорю, что брошусь грызть, но иметь пример рабочего кода с выходом на человека, который готов подсказать что по чем это весьма для меня ценно - самому надо как-то на жабу-таки уже переползать :D

                                                                                                Добавлено
                                                                                                Цитата usrjava @
                                                                                                а в чем разница-то, архитектура проектирования приложения в целом имеет одну и туже суть!

                                                                                                Суть имеет может и одну, а программируется совсем по-разному. И да, на всякий случай - я работаю в богатой и успешной компании со штатом в пару тысяч человек.
                                                                                                  Цитата Астарот @
                                                                                                  Вообще чем сложнее фронтэнд - тем менее применимы всякие "обертки скрывающие сущность" в силу их неповоротливости.

                                                                                                  вот, кстати, было бы интересно пообщаться с кем-нибудь, кто смог бы опровергнуть высказывание.
                                                                                                  Цитата kopilov @
                                                                                                  Согласен. Я этому товарищу уже скинул через личку свой рабочий проект (немного урезанный и очищенный от коммерческих тайн) и был готов консультировать дальше.
                                                                                                  святой человек.
                                                                                                  Цитата kopilov @
                                                                                                  узнав, что я работаю в маленькой (7 человек) и не очень богатой компании, что не помешало, а скорее помогло мне освоить Java EE с нуля самостоятельно.
                                                                                                  тоже предпочитаю мелкие и небогатые конторы. диапазон задач куда шире, а бюрократии и разгильдяйства меньше.
                                                                                                  хотя самостоятельное изучение накладывает свои особенности
                                                                                                    Цитата Астарот @
                                                                                                    Вы имеете представление о том, что такое js, где работает и для чего используется?

                                                                                                    Имею, выразился простым языком - для вас поясню отдельно. Технологии в основе, которых по-сути лежит javascript в расширенном так сказать виде
                                                                                                      Цитата usrjava @
                                                                                                      Имею, выразился простым языком - для вас поясню отдельно. Технологии в основе, которых по-сути лежит javascript в расширенном так сказать виде
                                                                                                      в браузере есть html, есть css, есть javascript. есть еще флеш.
                                                                                                      все
                                                                                                      больше там нет ничего
                                                                                                      "технологий в основе, которых по сути лежит javascript в расширенном так сказать виде" в браузере не бывает.
                                                                                                      зы особо отмечу прекрасную расстановку запятых
                                                                                                        Александр, я Вам благодарен. Масштаб компании не имел и не имеет значение. Сейчас активно самостоятельно занимаюсь изучением. Просто не хочу за что-то браться прямо таки с нуля. Хочу немного въехать
                                                                                                        Сообщение отредактировано: usrjava -
                                                                                                          Цитата zera @

                                                                                                          вот, кстати, было бы интересно пообщаться с кем-нибудь, кто смог бы опровергнуть высказывание.

                                                                                                          Ради интереса можем с тобой поспорить :D Сначала ты нападаешь с пол часика, потом меняемся местами :D

                                                                                                          Цитата usrjava @
                                                                                                          Имею, выразился простым языком - для вас поясню отдельно. Технологии в основе, которых по-сути лежит javascript в расширенном так сказать виде

                                                                                                          Для меня отдельно вы сказали какую-то совершенную глупость - нет никаких "технологий в основе, которых по-сути лежит javascript в расширенном так сказать виде". Боюсь вы банально плохо понимаете состав предметной области.
                                                                                                            Цитата Астарот @
                                                                                                            Боюсь вы банально плохо понимаете состав предметной области.

                                                                                                            все я правильно понимаю.
                                                                                                            К примеру есть jQuery, а есть GWT - теперь понятно, что я имел ввиду
                                                                                                              Цитата usrjava @
                                                                                                              К примеру есть jQuery, а есть GWT - теперь понятно, что я имел ввиду

                                                                                                              что из них соответствует моей подписи?
                                                                                                                Цитата usrjava @
                                                                                                                все я правильно понимаю.

                                                                                                                Прочитав это:
                                                                                                                Цитата usrjava @
                                                                                                                К примеру есть jQuery, а есть GWT - теперь понятно, что я имел ввиду

                                                                                                                стало понятно, что понимаете вы не правильно. jQuery есть библиотека, gwt - фреймворк. jQuery написан на чистом js, gwt написан на java. jQuery используется в основном для манипуляцией DOM и асинхронных запросов к серверу, gwt - для построения конечного UI. jQuery работает совместно с кодом клиентской части, gwt генерит его из java и скрывает от разработчика. jQuery чисто клиентская технология, gwt - нет.

                                                                                                                Достаточно что б убедить вас в том, что вы НЕ понимаете что с чем сравниваете?
                                                                                                                Сообщение отредактировано: Астарот -
                                                                                                                  Цитата usrjava @
                                                                                                                  К примеру есть jQuery, а есть GWT

                                                                                                                  Мне молчать о том, что видел их совместное использование в одном проекте? :whistle:
                                                                                                                    кстати, а что вы думаете про sencha (sencha.com)?
                                                                                                                      Здесь вот утверждают, что при разработке клиентской части enterprice-приложения лучше уйти от компон. ориентированных фреймворков и использовать в связке html+css+js (jQuery, Angular).
                                                                                                                      Скажите а как с помощью последнего реализовать, например обычный грид (таблицу), в ячейках которой можно было бы сразу производить редактирование данных, такое вообще возможно?
                                                                                                                        конечно не возможно. обычную таблицу, да еще чтобы сразу редактирование данных производить.
                                                                                                                          Никак. Пользуйтесь компон. ориентированными фреймворками.
                                                                                                                            Цитата Астарот @
                                                                                                                            Пользуйтесь компон. ориентированными фреймворками.

                                                                                                                            Получается при создании клиентской части enterprice-приложения, работающие с БД и имеющее DB-awar'ные контролы в этом случае лучше использовать компонентно-ориентированный фреймворк?!
                                                                                                                            И какой GWT - если в Интернете будет работать и Vaadin - если Интранет сеть?
                                                                                                                              очень важно понимать основную суть энтерпрайса: ввод денег. он так и называется: введите цену или enterprice.
                                                                                                                                Цитата zera @
                                                                                                                                очень важно понимать основную суть энтерпрайса: ввод денег. он так и называется: введите цену или enterprice.

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

                                                                                                                                    Да вот отвечают отвечают - но так и не понятно. Можно ли однозначно, а не размыто ответить?
                                                                                                                                      Нельзя однозначно ответить.
                                                                                                                                        что-то судя по формулировке задачи можно брать любой фреймворк. один хрен уже понятно, что серверную сторону вы запороли
                                                                                                                                          zera, вы категоричны, я повторю для вас вопрос
                                                                                                                                          Есть прикладное приложение подобие учета в 1С, стоит задача из десктопного-приложения на Delphi, сделать web-приложение на Java, работающее в Интернете.
                                                                                                                                          Т.е. пользователь имеет свой личный кабинет, входя в который он указывается в программе, где видит свои данные по предприятию, различные документы и т.п.
                                                                                                                                          В этой программе много окон в которых есть гриды (таблицы), поля ввода, отчеты и т.п.
                                                                                                                                          Вопрос - в моем примере, какой фреймворк лучше всего использовать для построения клиентской части?
                                                                                                                                            Вы уже реально утомили выносить мозг :facepalm: Вам уже ответили на поставленный вопрос, вы с доводами не согласились. Ок, делайте так, как считаете нужным, ваше решение - ваша ответственность. Хуже или лучше от него будет только вам. Вообще мне не трудно, могу повторить - клиентскую часть для интернета лучше делать на технологиях прянятых для работы в интернете. Angular/React/Knockout/что-душе-угодно со всеми вытекающими. Но вы можете делать на gwt, не возбраняется.
                                                                                                                                              usrjava, повторю еще раз, если уж с первой попытки вы не понимаете.
                                                                                                                                              судя по формулировке задачи можно брать любой фреймворк. один хрен уже понятно, что серверную сторону вы уже запороли
                                                                                                                                                Цитата zera @
                                                                                                                                                судя по формулировке задачи можно брать любой фреймворк. один хрен уже понятно, что серверную сторону вы уже запороли

                                                                                                                                                да уж, пользуйтесь Html+CSS+jQuery это правильно, так все делают, usrjava - вы же не фига не понимаете, запороли серверную часть - фигею.
                                                                                                                                                А то что сделать обычную таблицу с возможностью редактировать на указанном г..не целый геморой - и это "forever"?
                                                                                                                                                  Да-да, вы совершенно правы и меня убедили. Я был не прав. Делайте на gwt!
                                                                                                                                                    клиника какая. теперь я понял, почему нельзя дельфистов к джаве подпускать. они, гляжу, все такие.
                                                                                                                                                      Цитата zera @
                                                                                                                                                      клиника какая. теперь я понял

                                                                                                                                                      да-да, заниматься мозохизмом это ваш метод
                                                                                                                                                        дядя петя, ты дурак? ©
                                                                                                                                                        почему вообще ни капли не волнует как серверную часть реализовывать?
                                                                                                                                                        вот и получится, что вся клиентская халабуда ломится на десктопную аппликуху, которая с многопоточностью работать не приспособлена никак, которая бизнес-логику ждет с клиента, в которой security реализовано черт-те как. но вас же это совсем не волнует, вам важно как вы к этому безобразию прицепите браузер.
                                                                                                                                                        post от get хотя бы отличить способны?

                                                                                                                                                        Добавлено
                                                                                                                                                        кто пояснит с чего вдруг пинать бестолкового джуниора стало называться мазохизмом?
                                                                                                                                                          Цитата zera @
                                                                                                                                                          кто пояснит с чего вдруг пинать бестолкового джуниора стало называться мазохизмом?

                                                                                                                                                          zera, на правах ТС прошу вас не участвовать в обсуждении моего вопроса.

                                                                                                                                                          p.s. вам напоследок как "Senior Developer'у" расскажу истину, вся логика по безопасности, многопоточности и т.п. ляжет на сервере как отдельные модели. А клиентская часть это "тупая" веб-страница с кнопочками и рюшечками, имеющая примитивные формы обработки. И я не хочу заниматься мозохизмом и писать на клиенте простыню кода, чтобы завести элементартую таблицу.
                                                                                                                                                          Сообщение отредактировано: usrjava -
                                                                                                                                                            Цитата usrjava @
                                                                                                                                                            p.s. вам напоследок как "Senior Developer'у" расскажу истину, вся логика по безопасности, многопоточности и т.п. ляжет на сервере как отдельные модели.

                                                                                                                                                            когда вы говорите, такое впечатление, что вы бредите ©
                                                                                                                                                            так кладите на клиенте все как отдельные модели. делов-то: логику отдельными моделями накласть и все.
                                                                                                                                                              Цитата usrjava @
                                                                                                                                                              И я не хочу заниматься мозохизмом

                                                                                                                                                              Да не занимайтесь уже - gwt в руки, и - вперед! Чего вы еще от этой темы хотите-то? Вы убедительно доказали, что вы правы, а мы нет. zera'е при следующей личной встрече я объясню, как он ошибался, не беспокойтесь на этот счет.
                                                                                                                                                                Меня тоже интересует вопрос, ведь наверное уже продвинулось далее angular и GWT? Какой-нибудь WYSIWYG толковый?

                                                                                                                                                                Зря на человека накинулись, серверная часть действительно может быть банальной, CRUD не более, а вся заморочка в интерфейсе.
                                                                                                                                                                  Всем привет! У кого какие мысли появились по данному топику. Быть может, что -то появилось нового из технологий проектирования frontend'a за это время?
                                                                                                                                                                    Цитата TheMachine @
                                                                                                                                                                    Какой-нибудь WYSIWYG толковый?

                                                                                                                                                                    визвиг - это как раз наоборот огромный шаг назад, или даже в пустоту. Это тебе не javafx, где анкорами раскидал, растянул и всё ок, в нормальной вёрстке всё значительно сложнее, что доказал смерть ASP, как технологии, так и идеи.

                                                                                                                                                                    Добавлено
                                                                                                                                                                    Цитата usrjava @
                                                                                                                                                                    Всем привет! У кого какие мысли появились по данному топику. Быть может, что -то появилось нового из технологий проектирования frontend'a за это время?

                                                                                                                                                                    да, есть такая штука, как веб-компонентс (стек теневого дома, темплейтов, обсерваблов и т.д.). Как пример можно посмотреть Polymer, там есть свои костыли (т.к. всё же сыровато), но в целом такая себе ничего бомба

                                                                                                                                                                    Добавлено
                                                                                                                                                                    но это не за это время, это за последний год как

                                                                                                                                                                    Добавлено
                                                                                                                                                                    З.Ы. сама технология чем-то напоминает тот же javafx + fxml, где DOM-элемент представляет собой инстанс одноимённого класса с инкапсулированной логикой.
                                                                                                                                                                      Цитата kopilov @
                                                                                                                                                                      Java EE предполагает разработку серверных приложений, без интерфейсных окон. Если речь именно о ней -- графическое приложение можно разработать отдельно и связать клиент-серверной архитектурой. Если делать монолитное -- может потребоваться "велосипедить" с бизнес-логикой.

                                                                                                                                                                      "Эталонной" реализацией стандарта Java EE API считается серверная платформа Glassfish (https://glassfish.java.net/), разработываемая в Sun/Oracle вместе со стандартом и включающая в себя отдельные модули. Так называемая Java EE SDK -- фактически, тот же самый Glassfish + примеры. Если цель изучить Java EE для карьеры, а не повторить Delphi-приложение -- стоит почитать официальную документацию http://docs.oracle.com/javaee/7/index.html

                                                                                                                                                                      Проектирование надо начинать точно так же с БД. Альтернативой может быть автогенерация БД по ORM-классам, но, ИМХО, не лучший метод.
                                                                                                                                                                      ORM в контексте Java EE API называется Java Percistence API (JPA). Основные реализации: EclipseLink (входит в Glassfish по умолчанию) и Hibernate (вроде, проще интегрируется в десктопные приложения и имеет больше дополнительных функций).

                                                                                                                                                                      EE-модули под бизнес-логику называются Enterprice Java Beans (EJB). Насколько я знаю, этот термин имеет смысл только в контексте серверной платформы.
                                                                                                                                                                      Для обращения к ним снаружи можно использовать Web-сервисы (для протокола SOAP -- Jax-WS, он же Grizzly, для протокола RESTful -- и Jax-RS, он же Jersey). Так же можно оснастить EJB сетевым интерфейсом и обращаться к нему напрямую.

                                                                                                                                                                      Для GUI актуальны JavaFX и Swing. Я давно не писал GUI-приложений на Java, деталей не знаю. Но, как минимум, оно будет отдельно от EE-приложения (если его ипользовать). Соответственно, можно написать серверное приложение на Java EE и поместить побольше логики туда, а графическое подключать по понравившемуся интерфейсу (мы используем преимущественно SOAP). Можно написать монолитное приложение без сервера (если хочется с ORM -- использовать Hibernate), но как в таком случае "фреймворкать" логику не подскажу.

                                                                                                                                                                      Добавлено
                                                                                                                                                                      Кстати, насчёт выбора между клиент-серверным и монолитным графическим приложением. Если база данных не стоит на одном компьютере (или, по крайней мере, в одной защищённой сети) с этим приложением -- сервер (сама БД) будет по-любому, а передавать между клиентом и сервером команды Web-интерфейса с авторизацией и, желательно, по HTTPS всяко лучше, чем голые SQL-запросы: и безопаснее, и трафика меньше.

                                                                                                                                                                      Всем привет!
                                                                                                                                                                      Если вернуться к моему вопросу, заданный 4 года назад - что изменилось за это время в мире java enterprice, как Spring - набирает обороты или что-то новое появилось, есть ли улучшения и с т.зр. простаты разработки Frontend'a web-приложений?

                                                                                                                                                                      p.s. я тогда начинал изучать экосистему java - много в чем разобрался, но вынужден был приостановить по ряду причин - теперь жизнь развивается так, что необходимо вернуться (да и честно говоря, желание большое)
                                                                                                                                                                      забыл пароль от логина usrjava, пришлось завести новый usrjava3
                                                                                                                                                                        Цитата usrjava3 @
                                                                                                                                                                        Всем привет!
                                                                                                                                                                        Если вернуться к моему вопросу, заданный 4 года назад - что изменилось за это время в мире java enterprice, как Spring - набирает обороты или что-то новое появилось, есть ли улучшения и с т.зр. простаты разработки Frontend'a web-приложений?

                                                                                                                                                                        p.s. я тогда начинал изучать экосистему java - много в чем разобрался, но вынужден был приостановить по ряду причин - теперь жизнь развивается так, что необходимо вернуться (да и честно говоря, желание большое)
                                                                                                                                                                        забыл пароль от логина usrjava, пришлось завести новый usrjava3

                                                                                                                                                                        Привет!

                                                                                                                                                                        Есть ли улучшения с т.зр. простаты разработки Frontend'a web-приложений — сказать не могу, т.к. простатит пока ещё не одолевает :)

                                                                                                                                                                        В экосистеме Java главное, на что следует обратить внимание — язык Kotlin. Ещё Ceylon пытался заявить о себе, но не смог.

                                                                                                                                                                        Я, по ряду причин, окончательно отдалился от web-а в целом и от Frontend'a тем более. сервисы с HTTP иногда поднимаю, но стучатся туда вовсе не браузеры.
                                                                                                                                                                        А именно, с 2016 года работаю в департаменте математической оптимизации и моделирования компании BIA-Technologies, где занимаюсь интеграцией и масштабированием кода, который пишут аналитики-математики.

                                                                                                                                                                        Со Spring-ом сталкивался только в контексте настройки Apache Ignite, на котором делаю один из текущих проектов. (Выложить исходники не имею права по трудовому договору, суть: распараллеливание ранее написанных математических расчётов на несколько машин).

                                                                                                                                                                        Для постройки HTTP-сервисов мне, со времён нашего предыдущего диалога, очень нравится Jersey (JaxRS API). В своём последнем проекте я запустил его на Kotlin-е и без лишней обвески Glassfish-а. Каркас проекта без модулей заказчика выглядит так: https://github.com/Kopilov/testrest_kt

                                                                                                                                                                        В общую кучу, моя библиотечка на Ceylon-е: https://github.com/Kopilov/abstractpool — написанная в качестве подложки для другого сервиса.
                                                                                                                                                                        Где-то год назад я ещё порекомендовал бы использовать Ceylon, как хороший инструмент, но сейчас он перестал развиваться.

                                                                                                                                                                        Добавлено
                                                                                                                                                                        Всех с новым рабочим годом!

                                                                                                                                                                        Извиняюсь, что в прошлом ответить руки не доходили (а на каникулах — тем более :) )
                                                                                                                                                                        Сообщение отредактировано: kopilov -
                                                                                                                                                                          kopilov,спасибо за ответ!
                                                                                                                                                                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                                                                                                          0 пользователей:


                                                                                                                                                                          Рейтинг@Mail.ru
                                                                                                                                                                          [ Script execution time: 0,1525 ]   [ 16 queries used ]   [ Generated: 19.04.24, 00:05 GMT ]