Java, используя Groovy (Grails) во время разработки, чтобы иметь возможность тестировать код без перекомпиляции? - PullRequest
0 голосов
/ 31 марта 2011

Я занимаюсь веб-разработкой на Java с использованием Spring MVC, и в основном я вынужден заниматься гибкой разработкой, в которой мне приходится вносить множество небольших изменений, и иногда приходится тратить много времени на компиляцию каждый раз.Я делаю изменения (я работаю в начинающей компании, и мне не дают достаточно времени для проведения модульных тестов и т. Д., Это не идеально, и я не обязательно планирую оставаться в компании в течение длительного времени, но я простоищу способы быть более адаптируемыми на данный момент).

Приложение, над которым я работаю, должно быть быстрым, оно должно обрабатывать большие объемы данных (своего рода поисковая система, но не система веб-поиска), поэтому оно должно быть регулярно скомпилированным Java дляпроизводственное приложение, но мне интересно, использовал ли я Groovy с Grails или что-то подобное для разработки, если бы я мог просто написать его как обычную Java, а затем тестировать код в режиме реального времени без перекомпиляции.Мне интересно, сколько усилий потребовалось бы для этого, чтобы заставить его работать тогда, как для скомпилированной Java.Извините, если это вопрос новичка, я просто не уверен, где искать информацию по этому вопросу, так как большинство вещей в Grails кажутся более ориентированными на эмуляцию языков сценариев, а не на то, для чего я пытаюсь его использовать.

Ответы [ 2 ]

4 голосов
/ 31 марта 2011

Ловкость - это состояние души, оно не имеет ничего общего с языком программирования или структурой.У меня никогда не было достаточно времени, чтобы НЕ выполнять модульные тесты.

Если вы пишете код на Java, код на Java, а не в Groovy.Groovy - это (почти) надмножество Java, поэтому вы можете теоретически написать свои классы в Groovy и затем скомпилировать их как Java, но у этого подхода есть ряд проблем:

1) Очень легко что-то подсунуть вВаш код, который не является правильным Java, замыкания просто НАСТОЛЬКО полезны :-) 2) Grails не так легко перевести на Spring MVC, поэтому вам придется переписать и этот бит.

Итак, ялично я бы не использовал Groovy / Grails.

Когда вы говорите «компилировать», вы действительно имеете в виду «построить войну и перераспределить»?Большинство IDE (Eclipse, Intellij и т. Д.) Перекомпилируют класс при сохранении файла, поэтому задержка отсутствует.Предполагая, что вы используете такую ​​IDE, вы можете запустить свой сервер (Tomcat) из Eclipse, и материал автоматически будет перераспределен, а при необходимости Tomcat перезапустится автоматически.

Если это все еще не достаточно быстро, ярекомендую JRebel , который был настолько хорош, что я раздобыл реальные деньги за лицензию.Использование JRebel означает, что вам (как правило) даже не нужно повторно развертывать.Вы изменяете файл Java в IDE, и изменение происходит на вашем сервере без необходимости повторного развертывания.Я очень рекомендую это.

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

1 голос
/ 31 марта 2011

Что бы я сделал здесь, это вставил бы скрипты groovy в код Java, как описано здесь:

http://groovy.codehaus.org/Embedding+Groovy

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

Groovy запускается в JVM и динамически компилируется в байт-код, поэтому не нужно беспокоиться о его «производственности».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...