Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Так можно?


Автор: XVoid 12.5.2006, 22:56
Дело такое
Настройки программы я сохраняю в XML с помощью org.apache.commons
Но меня вот посетила такая мысль (светлая или глупая не знаю, как раз хочу спросить)
Что если  
переписать некоторые классы со вставками,
"$host" "$server" в значениях переменных хранящих парметры настроек

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

Автор: tux 13.5.2006, 02:39
Думаю лучше такой код переписать на каком-то языке, не требующем компиляции, например, http://www.jython.org/ (написанный на Java интерпретатор Python) или http://www.beanshell.org/ (интерпретируемая Java). Это будет проще технологически, не потребует перекомпиляции классов, а на исходники таких скриптов легко предварительно натравить и Velocity и вообще что угодно.

Изменение исходников Java-классов на мой взгляд не есть хорошая идея. 

Автор: XVoid 13.5.2006, 05:33
Я конечно понимаю что такие языки как Python или там Ruby для  этого  и созданы. Я как раз спрашивал почему Изменение исходников Java-классов не есть хорошая идея?  
ведь софт зачастую настраивается один раз а потом годами в таком виде используется? в linux часто перед компиляцией приходится исходники подправлять только там я это вручную делаю, а тут предполагаю Velocity и программу с графической мордой для этого использовать... Собственно сам процесс собственно напоминает перекомпиляцю Linux ядра. 
Интерес чисто академический. 

Автор: LSD 13.5.2006, 10:47
Если ты будешь один раз компилировать код, а затем многократно его использовать то вполне можно ИМХО. У нас например, тоже используется автогенерация кода. Мне например доводилось генерировать Java классы с подобными параметрами настройки из SQL скрипта.

Другое дело, если ты перед каждым запуском будешь генерировать код, и перекомпилировать его, вот это уже извращение. 

Автор: batigoal 14.5.2006, 20:05
Как я понял, это некий аналог условной компиляции?

В принципе, мы используем подобную подстановку, но для генерации SQL-кода. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)