Матисс или Джиглоо? - PullRequest
       15

Матисс или Джиглоо?

8 голосов
/ 31 августа 2009

У нас есть дилемма; разработка настольного приложения с использованием Matisse или Jigloo ..

Matisse имеет эти XML-файлы форм, которые мы боимся поддерживать позже, мы даже не знаем, будет ли MyEclipse и дальше поддерживать Matisse, даже Netbeans - вы думаете, они откажутся от поддержки Matisse в ОС?

Более или менее Jigloo и Matisse ведут себя одинаково, хотя Jigloo подчиняется большему желанию дизайнеров, Matisse время от времени ведет себя странно.

Jigloo генерирует код Java, который можно редактировать и который, в свою очередь, может привести к тому, что визуальный редактор не сможет рисовать форму. Возможно, именно поэтому Matisse хочет получить определение элементов в более стабильной XML-форме, из которой он генерирует Java-код.

Матисс не очень поможет, если в создании экземпляра элемента GUI возникнет ошибка, поэтому размещение пользовательских элементов также может стать кошмаром.

При вводе кода в Jigloo визуальный редактор любит стирать картинку, поэтому вам нужно подождать, пока картинка не появится после редактирования кода. В Matisse вы можете иметь ошибки в классе и все еще редактировать GUI.

Пожалуйста, помогите нам, проголосовав, что вы предпочитаете больше и почему.

Ответы [ 7 ]

12 голосов
/ 09 сентября 2009

Пожалуйста, не используйте тоже! Как и в случае этого ответа , я твердо убежден (после написания графических интерфейсов Swing в течение 10 лет), что использование компоновщиков GUI во всех случаях, кроме большинства крайних случаев, плохая идея . РУЧНОЙ КОДЕКС ВАШЕГО GUI!

  • Независимо от того, выберете ли вы Матисса или Иглу, это не стандарт, он потеряет популярность и появится лучший инструмент. В этот момент у вас будет устаревший код, который почти невозможно сохранить . Это уже происходило в тяжелые времена в истории разработчиков Java GUI

  • Вы должны избегать принуждения своих разработчиков к использованию одной IDE, и очень сложно ожидать, что разработчики переключатся на конкретную IDE при просмотре кода GUI. Они будут разочарованы, поскольку не могут вспомнить привязки клавиш, настройки проекта устарели, установлена ​​неверная версия и т. Д. Люди будут быстро исправлять ошибки без компоновщика . На данный момент ваш код не поддерживается как в выбранной вами IDE, так и в GUI Builder istelf ! Все это беспорядок.

  • Разработка GUI, по моему опыту, не является особенно обременительной задачей и, вероятно, составляет не более 5-10% от общего времени разработки приложения. Даже если изначально использование Matisse или Igloo дает вам преимущество в 50% времени по сравнению с ручным кодированием GUI, это несущественно в общей схеме вещей . Это, конечно, не стоит скрытых затрат и надвигающихся бедствий, связанных с техническим обслуживанием, которые стоят впереди

  • GridBagLayout не сложно . Это просто не так! Это действительно просто, на самом деле. Это займет у вас несколько минут, чтобы учиться, и после этого вы никогда не будете оглядываться назад. Ваш графический интерфейс будет выглядеть так, как вы хотите, чтобы они выглядели, и в результате ваш код будет более понятным. Используйте GridbagLayout!

Я потратил много времени, предупреждая людей об этом раньше и доказал свою правоту.

1 голос
/ 04 сентября 2009

У меня лично было несколько случаев, когда XML-файл, поддерживающий форму Matisse, каким-то образом не синхронизировался с кодом, и мне пришлось прибегнуть к резервной копии, чтобы он снова заработал. Этого было достаточно, чтобы отпугнуть меня. У меня нет опыта работы с Jigloo.

В моих текущих проектах широко используется TableLayout . Это легко понять и (из всех менеджеров компоновки, которые я пробовал) поддерживать. Я не нашел другого решения в дизайне GUI для Java, которое бы мне было удобнее, чем программирование GUI вручную. Двигаясь вперед, это выглядит как лучший «ориентированный на будущее» способ кодирования моих графических интерфейсов.

Я согласен с Chintan в использовании Matisse или аналогичного для макета вашего дизайна, а затем преобразовать макет в другой макет (например, TableLayout). Лично мне нравится использовать карандаш и бумагу, чтобы сделать большую часть этого. Не совсем хай-тек, но он выполняет свою работу.

1 голос
/ 04 сентября 2009

Я бы предпочел Матисса, поскольку Netbeans поддерживается Sun Microsystems, и вероятность того, что проект будет свернут в ближайшем будущем, кажется блаженно низкой.

Кроме того, я не знаю размер вашего проекта, но я разработал несколько небольших, и я лично использую matisse, чтобы посмотреть, как будет выглядеть макет, а затем продолжить и кодировать все, используя библиотеку Miglayout, Это значительно увеличивает объем кодирования, но дает хороший контроль и гибкость. И есть вероятность, что эта библиотека может быть включена в Java 7, следовательно, встроена в Matisse.

1 голос
/ 02 сентября 2009

Я бы тоже не пошел. Лучшее, что я нашел на данный момент, это Instantiations Swing Designer. Это не бесплатно, но и не дорого. Он поддерживает все основные макеты Swing и НЕ создает никаких дополнительных артефактов, кроме чистого Java-кода.

Вот ссылка , если вы заинтересованы.

0 голосов
/ 04 марта 2010

Чего можно ожидать, когда вы испортите файл, созданный инструментом? Беспорядок, не так ли? Это очень и очень важно всегда забыто разработчиками.

Возьмите Матисса в качестве примера. Он генерирует файл XML для вас и файл .java для вас. Почему разработчики начинают менять эти классы? Позже они жалуются, что все испорчено, и указывают на то, что в этом виноват Матисс, потому что Матисс не делает А или не делает B. Единственное, в чем виноват Матисс, это то, что он не может исправить беспорядок, продвигаемый разработчиками. , Это проблема в области искусственного интеллекта, и я лично не ожидаю никакого решения в ближайшее время.

Для этого есть более или менее простое решение: ООП.

Я объясняю: одним из наиболее важных понятий ООП является «ответственность», что означает, что определенный класс несет ограниченную и четко определенную ответственность в более широкой и более сложной проблемной области. Итак, Матисс сгенерировал для вас пользовательский интерфейс, который в основном состоит из элементов пользовательского интерфейса, обработчиков событий и т. Д.

Тогда вы говорите: ну ... мне нужно добавить немного логики, иначе пользовательский интерфейс не работает. Правда. Это еще одна обязанность, которую нельзя никогда не реализовать в том же классе, сгенерированном Матиссом. Поскольку либо люди ленивы, либо не понимают, что означает «ответственность» в ООП, люди реализуют все, что им нужно, добавляют множество переменных и пропагандируют всякое безумие в классе, который определенно не отвечает за бизнес-логику.

С помощью такой простой вещи, как наследование, вы можете разделить бизнес-логику в расширенном классе. Базовый класс - тот, который произведен Матиссом. Расширенный - это ваш класс, реализованный вручную, который содержит реализацию обработчиков событий, инициализацию элементов пользовательского интерфейса и т. Д.

Многие разработчики испытывают желание отредактировать вручную файл .java, созданный Матиссом. Золотое правило: никогда , никогда редактируйте файл .java вручную. Матисс дает вам возможность определить, что вам нужно, и позвонить, что вам нужно. Никогда не редактируя ресурсы (как .xml, так и .java), созданные Matisse, вы гарантируете, что он (Matisse) сможет загрузить его снова, если вам потребуется изменить графический интерфейс в будущем. Возможно, у вас возникнет соблазн редактировать файл .java или даже .xml напрямую. Пожалуйста, не поддавайтесь этому искушению и обучайте себя; в будущем вы будете благодарны.

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

0 голосов
/ 03 сентября 2009

Я не пробовал Jigloo, но я бы добавил четвертый в миксе.

JFormDesigner - лучший дизайнер Swing UI, который я когда-либо использовал. Как и Матисс, он создает файлы форм XML, но это единственный недостаток этого инструмента.

Он поддерживает все стандартные менеджеры макетов, а также некоторые популярные (такие как JGoodies FormLayout). Он имеет плагины для IntelliJ и eclipse, а также может работать как самостоятельный инструмент.

Вот ссылка

НТН

Koen

0 голосов
/ 02 сентября 2009

Я предпочитаю Netbeans Matise. Даже если невозможно сгенерировать сгенерированный код, гораздо проще создавать сложные экраны с помощью Mattise (из-за разметки FreeForm).

...