metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2008-11-14 06:52 pm

Сервера приложений

Периодически на работе всплывает вопрос: а не завести ли нам манула? а не переселить ли приложения на трехзвенную архитектуру ради большей адекватности серверной части и убирания части логики с клиентской.

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

В связи с этим, имеется вопрос: если не жаба и не дотнет, и не веб-интерфейсы, а нормальная трехзвенка - субд, аппсервер, более-менее интеллектуальный клиент и все это предпочительно кроссплатформенное - на чем такое вообще писать? И какая должна быть архитектура подобной вещи, а особенно - какая модель данных, какая парадигма программирования и в каком виде гонять данные между клиентом и аппсервером, чтобы это не оказалось очередной инкарнацией СуперУниверсальнойСистемыДляВсего, на которой сделать что-либо сложнее, чем это же склепать по быстрому с нуля вручную :)

[identity profile] metaclass.livejournal.com 2008-11-14 06:01 pm (UTC)(link)
А как вообще модно решать на жабе стандартную задачу: есть база данных, в ней таблицы, нужно сделать для этого CRUD-приложение с гуи там или с веб-интерфейсом?

Такая задача возникает чуть ли не каждый день по три раза на дню, причем иногда бывает что нужно уже существующее приложение расширить. Однообразно до жути, но автоматически плохо решается, если редактируемые сущности сложнее чем плоская запись.

[identity profile] henu3detb.livejournal.com 2008-11-14 06:22 pm (UTC)(link)
Как модно решать -- не знаю. Сколько людей столько мнений. Простой UI рисовать - есть отдельные редакторы типа JFormDesigner, ну или NetBeans. C базой работать -- JPA, или JdbcTemplate спринговый. Правда если задачи совсем простые (по три на день), то не факт что жава оптимальный выбор, хотя я другого не знаю, поэтому говорить не берусь.

[identity profile] metaclass.livejournal.com 2008-11-15 06:58 am (UTC)(link)
Задача простая - на день работы и полдня тестирования. Но она повторяющаяся изо дня в день, причем в стандартной форме "создать таблицу/написать объект/нарисовать интерфейс/соединить это все" или "добавить поле в таблицу/добавтиь поле в объект/добавить поле в интерфейс".
Вроде бы стандартно все, но средств решения автоматизированных я что-то не видел, а вручную бесит так, что я стараюсь вообще новых объектов не делать, а все сводить к уже существующим :)

[identity profile] sergiej.livejournal.com 2008-11-15 11:46 am (UTC)(link)
Вот я работаю с одним уже готовым приложением, "добавить поле в таблицу/добавтиь поле в объект/добавить поле в интерфейс", J2EE + умный фреймворк - это занимает 15 минут, я недавно именно такой сценарий демонстрировал и сам удивился :)

[identity profile] metaclass.livejournal.com 2008-11-15 11:52 am (UTC)(link)
О, а что за умный фреймворк и как это все выглядит?

[identity profile] sergiej.livejournal.com 2008-11-15 11:59 am (UTC)(link)
Секрет, да и нет возможности его использования, он поставляется исключительно с этим приложением. Уверен что есть другие, не менее хитрые, просто я ими не занимался.

[identity profile] metaclass.livejournal.com 2008-11-15 12:12 pm (UTC)(link)
Хехе, я так и знал, что все полезное это исключительно собственные разработки :)

[identity profile] sergiej.livejournal.com 2008-11-15 12:17 pm (UTC)(link)
Будет. Через несколько лет SUN будет примерно там где теперь эти фичи. Пришёл же он сегодня с глассфишем на уровень веблоджика пятилетней давности.

[identity profile] slonopotamus.livejournal.com 2008-11-14 09:03 pm (UTC)(link)
Для CRUD надо брать что-нибудь, поддерживающее scaffodling.

[identity profile] metaclass.livejournal.com 2008-11-15 07:07 am (UTC)(link)
Ага, это и нужно. Вот только большинство мейнстримных языков сопротивляются внедрению такого подхода и не содержат метапрограммирования.
Я такую хреновину пытался на .NET сделать, получилось что на каждое поле объекта навешивается с десяток атрибутов, описывающих его представление в GUI, в БД, итд. Малочитабельно и не очень удобно.

[identity profile] volodymir-k.livejournal.com 2008-11-25 03:46 pm (UTC)(link)
Для круда советую Руби. Он относительно прост и терпимо быстр.