Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Создание движка сервера (L2)
#1
Всем привет, есть предложение создать серверный двиг(нормальный) с использованием ORM(JPA,Hibernate), XoRM(JAXB,Xstream), Spring, SocketAPI Netty и тд. просто глядя на код l2j, хочется расстрелять тех, кто это писал. Если есть желающие с отменным знанием J2EE, Spring, Orm. Можно попробовать сделать лучше чем есть. Разработка закрытая.
Ответ
#2
Опишите достоинства
Цитата:ORM(JPA,Hibernate), XoRM(JAXB,Xstream), Spring, SocketAPI Netty и тд.
в примере с l2j...
Web программист\разработчик

— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Ответ
#3
STIGMATED, советую почитать это - http://l2dev.ru/my/1-no-l2j.html
Ответ
#4
pitch Написал:Всем привет, есть предложение создать серверный двиг(нормальный) с использованием ORM(JPA,Hibernate), XoRM(JAXB,Xstream), Spring, SocketAPI Netty и тд. просто глядя на код l2j, хочется расстрелять тех, кто это писал. Если есть желающие с отменным знанием J2EE, Spring, Orm. Можно попробовать сделать лучше чем есть. Разработка закрытая.
Предложение это конечно хорошо, но лучше бы уже были предоставлены хоть какие-то наброски дабы люди заинтересованные могли посмотреть.
Удачи в начинаниях.


Есть предварительные наброски архитектуры?

Добавлено через 16 минут
STIGMATED Написал:Опишите достоинства в примере с l2j...

При использовании ORM не потребуется возня с SQL запросами (они просто отпадут), будет возможность управления транзакциями.
jug Написал:Вот еще несколько агрументов в пользу Hibernate:
1. Hibernate дает стойкость к модификации. Добавление одного поля в объект может повлечь изменение большого числа JDBC запросов, а в Hibernate это выливается в изменение одного xml-конфига / аннотации
2. Hibernate поддерживает множество баз данных и диалектов / нет нужды писать свои адаптеры под разные субд
3. Hibernate интегрируется с другими фреймворками (например Spring)


Spring - без комментариев, многофункциональный фреймворк, который бережет нервы и время програмиста.

Netty - слой для работы с сетью. В замену прямой работы с сокетами и каналами. Как и Spring бережет нервы и время на отладку и кодинг

Итого - минимум велосипедов, минимум потенциально нестабильного кода.
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Ответ
#5
Вопрос только в производительности.
Насколько снизят производительности эти фреймворки ^^
Ответ
#6
TARAN Написал:Вопрос только в производительности.
Насколько снизят производительности эти фреймворки ^^

Они снижают время разработки, 100% даю гарантии производительность зависит от правильного подхода к разработке. Можно писать говнокод с любыми фрейморками.

Наработки есть, неделю, как начал лопатить в свободное время (его не так уж и много) пока только Spring DAO + JPA(Hibernate) думаю может лучше чистый Hiber без jpa... Есть свн, кто хочет внести вклад милости просим Smile За основу интерлюд взят от теона.

Боюсь писать совсем с 0 будет охрененно трудно, и сил одного программиста явно мало...

Цитата:При использовании ORM не потребуется возня с SQL запросами (они просто отпадут), будет возможность управления транзакциями.

+ при запуске сервера автоматом создается, структура таблиц на лубой базе данных... Хоть Oracle Xe, хоть postgeSQL
Ответ
#7
Да да, вот только напрямую ждбц пошустрее будет того же хибернейт при высоких нагрузках.
Ответ
#8
У себя я использовал Spring JDBC Template с самодельным конструктором CRUD запросов на аннотациях javax.persistence. Велосипед, но все-же лучше чем использовать целый hibernate или jpa. И удобнее в работе.

Недостаток hibernate - то что надо с собой таскать кучу дополнительных либ slf4j, dom4j, aspectj (cglib не в счет - его у меня испольузет spring). А ради простого избавления от запросов так много брать - не очень охота.

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

ex:
Код:
class AccountBean implements SimpleBean, Serializable, Comparable<AccountBean> ... {

static {
   ACCOUNT_ADD = QueryFactory.createInsertQuery(Account.class);// String
   ...
   ACCOUNT_UPDATE = QueryFactory.createUpdateQuery(Account.class); // String
   ACCOUNT_ROW_MAPPER = QueryFactory.createMapper(Account.class); // RowMapper
   ACCOUNT_SETTER = QueryFactory.createSetter(Account.class); // PreparedStatementSetterFactory
}

}
и дальше просто использовал (использую JdbcTemplate)
Код:
public boolean update(Account a) {
getJdbcTemplate().update(ACCOUNT_UPDATE, ACCOUNT_SETTER.forObject(account));
...
}
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Ответ
#9
pitch Написал:Всем привет, есть предложение создать серверный двиг(нормальный) с использованием ORM(JPA,Hibernate), XoRM(JAXB,Xstream), Spring, SocketAPI Netty и тд. просто глядя на код l2j, хочется расстрелять тех, кто это писал. Если есть желающие с отменным знанием J2EE, Spring, Orm. Можно попробовать сделать лучше чем есть. Разработка закрытая.
а цель какая? Продавать?
Ответ
#10
Если получится отличная штука, то она канешно будет ценится очень дорого... И как по мне, будет меньше потребительна, так как яву поставить каждый нуб может, а новое ввдение долго будет вводится... А скачав ктонить такую сборку и не сможет её поставить из-за рук, просто тупо на тупо делитнёт её и скачает родную яву=)
ИМХО=)
Web программист\разработчик

— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Архитиктура mmo сервера ldgames 12 10,643 12-26-2012, 11:23 AM
Последний пост: n3k0nation
  Создание и подключение либы в Java vetal.lebed 10 4,450 12-25-2011, 01:11 AM
Последний пост: Aquanox

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)