Как работатет javaRush, Codecademy?

Здравствуйте!

Интересует такой простой(или не очень) вопрос: как работают сервисы по типу javaRush, Codecademy? Мне очень захотелос сделать в учебных целях что-то похожое

Как я это вижу сейчас:
Есть форма, где я пишу код. При нажатии на кнопку к ним на сервер отправляется POST-запрос, который содержит этот код. Далее этот код должен быть проанализирован или пропущен через тесты. И в результат тестов будет выведен пользоователю

Сама большая проблема, с которой я столкнулся - анализ кода при запущеном сервере. Я использую Tomcat&Java Servlets, код анализирую в спомощью Java Reflection, а для самого сайта использую JSP(Spring я не знаю)

Вся эта возня с рефлексией, jsp и сервлетами довольно муторная. И в случае с несколькими классами, которые вместе связаны я вообще в замешательстве. Меня все время не покидает чувство, что я делаю что-то неправильно.

Так вот вопрос: какие технологии использует JavaRush например? Может есть что-то вроде готовых решений\движков\фреймворков для реализации на Java моей задумки? Заранее благодарю
  • Вопрос задан
  • 931 просмотр
Пригласить эксперта
Ответы на вопрос 2
Robur
@Robur
Знаю больше чем это необходимо
Зачем вам анализировать код? что вы хотите в нем найти? Если ошибки синтаксиса - пропустите через компилятор он вам всё скажет. Ошибки выполнения вылезут при запуске.

Такое делается обычно в песочнице - делаете безопасное окружения для запуска кода, запускаете его там, если какие-то ошибки - вам компилятор или среда выполнения все скажут, если нет - вывод скрипта проверяете и отправляете обратно в браузер результат.
Как делать песочницу - отдельный вопрос. Возможно есть какие-то готовые решения для запуска java кода в изоляции, тут гугл вам в помощь. Я бы для простоты запускал в изолированном докере - тяжеловато и не слишком ограничено там внутри но быстро и надежно. Для учебных целей подойдет. Можно и свою песочницу нагородить, если уверены в безопасности.
Ответ написан
@BMaks_N1
Можно крч через ANTLR прогнать) для каждой задачки написать парсер) если разбор строки происходит правильно, то пробуем скомпилить и прогнать через тесты, если и тут все ок, отправляем, что все ок) но это мб чутка муторно, хотя если приловчиться)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы