Цитата:
Сообщение от Visor
Я когда увидел эту жуть еще в с4 птс - то повторять это нехотелось совсем - написано все как из жопы - ни моделей ничего - куда мусора и попыток это как-то свести в систему. Это я о самом птс-е и как там хранятся данные.
По л2д формату конечно не лучше - там основные подсистемы все не оттуда начаты - но на ходу переписывать подсистемы непросто. Что вышло - l2emu enterprise server
по поводу овера - феникс с переименованными классами, с некоторой реструктуризацией методов. Дописана система листенеров и зачем-то насунут DAO - причем как-то так сбоку, вроде имя есть - а толку нет.
Но нельзя сказать что балансер сделал неправильно базовую переделку л2ж, а в том что после него особо небыло сделано - хотя классов вроде стало много - и интерфейсов - и это похоже на "умно" написанный код - и это не отнять.
Еще вариант ТСа - непросто с нуля написать эмулятор - вы не сможете предусмотреть граничные условия даже тех моделей которые сделали - мало опыта.
А все остальные бегут как обычно от шары к шаре - это нельзя изменить - л2 струя уже такова и думаю что кардинально ничего не изменится.
Игроки, если пойдут на ГоД - то могут поменяются лидеры - к примеру мы сгребем кучу шар - и портируем все на свое стабильное ядро. По ХФ уже достигнуты очень хорошие результаты в самой работе базовых подсистем.
Добавлено через 2 минуты
Я не кодил с фреймворками - но пулить хибернейтом с моделей дао - вы видимо теоретик. Я не пишу аргументов, потому что мне все равно поверит кто-то или нет. Я просто называю вещи своими именами. Если вы это не можете воспринять - у вас вероятнее мало практического опыта.
|
Что значит с боку "присунут" DAO? Настоящие мастера dev'a пишут и модель, и сервисы, и dao в одном классе? То-то код так легко рефакторить и сопровождать, в Player.java всего-то 10 тысяч строк кода. Ребята шли верным путем - нужно строго разделять сервисный слой от DAO слоя, и модель должна быть отдельно, а не все в одной куче. Не перестаю удивляться почему весь этот кошмар до сих пор не разобрали. Хотя с другой стороны все очевидно - бОльшинство гонится за новыми функциями, а не за правильной архитектурой. Ради интереса можно посмотреть как был реализован этот вопрос в aion-emu, например. И не потому, что люди там были умнее, а потому, что писали бОльшую часть с чистого листа.
По поводу хибернейта - вы не правы. Выше верно отметили - можно написать крайне нестабильный код на plain java, можно сделать отличную систему на фреймворках. У нас уже несколько лет работает система энтерпрайз-уровня, в ней 95% - хибернейт, остальное - Spring JDBC templates, по сути, plain SQL. Были проблемы с batch процессингом, но это было еще в 2008, кажется, году. Да, есть тонкости при работе через openquery, но это настолько редкий случай, что его можно не рассматривать. Нужно четко взвешивать свои временные и трудовые затраты и требуемый результат, производительность. Если говорить про л2 - там понаписано такого, что я еще готов поспорить, что правильно переписанный на ORM-фреймворке код будет работать и получше. Конечно, от оверхеда не уйти, но мы сейчас, кажется, не в 20 веке живем, когда люди приложения на асме писали, экономя каждый байт.
PS Когда только-только зарождался эмулятор Aion'a, уже были разговоры про архитектуру сервера и одним из основных вопросов был "как не повторить классы-простыни в десятки тысяч строк кода". Увы, в L2 вряд ли от этого уже кто-то уйдет, проще добавить еще 50 строк к имеющимся 15 000, когда потребуется, а не навести порядок в коде.