Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Java (https://forum.zone-game.info/forumdisplay.php?f=126)
-   -   Создание движка сервера (L2) (https://forum.zone-game.info/showthread.php?t=7953)

pitch 05.05.2010 16:47

Создание движка сервера (L2)
 
Всем привет, есть предложение создать серверный двиг(нормальный) с использованием ORM(JPA,Hibernate), XoRM(JAXB,Xstream), Spring, SocketAPI Netty и тд. просто глядя на код l2j, хочется расстрелять тех, кто это писал. Если есть желающие с отменным знанием J2EE, Spring, Orm. Можно попробовать сделать лучше чем есть. Разработка закрытая.

[STIGMATED] 05.05.2010 17:36

Re: Создание движка сервера (L2)
 
Опишите достоинства
Цитата:

ORM(JPA,Hibernate), XoRM(JAXB,Xstream), Spring, SocketAPI Netty и тд.
в примере с l2j...

Ozzy 05.05.2010 19:40

Re: Создание движка сервера (L2)
 
STIGMATED, советую почитать это - http://l2dev.ru/my/1-no-l2j.html

Aquanox 05.05.2010 19:53

Re: Создание движка сервера (L2)
 
Цитата:

Сообщение от pitch (Сообщение 67279)
Всем привет, есть предложение создать серверный двиг(нормальный) с использованием ORM(JPA,Hibernate), XoRM(JAXB,Xstream), Spring, SocketAPI Netty и тд. просто глядя на код l2j, хочется расстрелять тех, кто это писал. Если есть желающие с отменным знанием J2EE, Spring, Orm. Можно попробовать сделать лучше чем есть. Разработка закрытая.

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


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

Добавлено через 16 минут
Цитата:

Сообщение от STIGMATED (Сообщение 67294)
Опишите достоинства в примере с l2j...

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

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


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

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

Итого - минимум велосипедов, минимум потенциально нестабильного кода.

TARAN 05.05.2010 20:55

Re: Создание движка сервера (L2)
 
Вопрос только в производительности.
Насколько снизят производительности эти фреймворки ^^

pitch 05.05.2010 21:49

Re: Создание движка сервера (L2)
 
Цитата:

Сообщение от TARAN (Сообщение 67353)
Вопрос только в производительности.
Насколько снизят производительности эти фреймворки ^^

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

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

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

Цитата:

При использовании ORM не потребуется возня с SQL запросами (они просто отпадут), будет возможность управления транзакциями.
+ при запуске сервера автоматом создается, структура таблиц на лубой базе данных... Хоть Oracle Xe, хоть postgeSQL

TARAN 05.05.2010 22:15

Re: Создание движка сервера (L2)
 
Да да, вот только напрямую ждбц пошустрее будет того же хибернейт при высоких нагрузках.

Aquanox 05.05.2010 23:28

Re: Создание движка сервера (L2)
 
У себя я использовал 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));
...
}


ginger 06.05.2010 08:34

Re: Создание движка сервера (L2)
 
Цитата:

Сообщение от pitch (Сообщение 67279)
Всем привет, есть предложение создать серверный двиг(нормальный) с использованием ORM(JPA,Hibernate), XoRM(JAXB,Xstream), Spring, SocketAPI Netty и тд. просто глядя на код l2j, хочется расстрелять тех, кто это писал. Если есть желающие с отменным знанием J2EE, Spring, Orm. Можно попробовать сделать лучше чем есть. Разработка закрытая.

а цель какая? Продавать?

[STIGMATED] 06.05.2010 09:14

Re: Создание движка сервера (L2)
 
Если получится отличная штука, то она канешно будет ценится очень дорого... И как по мне, будет меньше потребительна, так как яву поставить каждый нуб может, а новое ввдение долго будет вводится... А скачав ктонить такую сборку и не сможет её поставить из-за рук, просто тупо на тупо делитнёт её и скачает родную яву=)
ИМХО=)


Текущее время: 01:24. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot