Не могли бы вы поделиться опытом использования Scala и Wicket вместе? Они подходят друг к другу естественным образом? Получаете ли вы преимущества использования Scala (и FP) с помощью Wicket с использованием Java? Почему вы предпочли бы Wicket над лифтом?
Ваш опыт работы с Scala + калитки
Ответ 1
Для тех, кто заинтересован в поиске кода, я повторно выполнил демонстрацию "Бронирование отеля" в Scala + Wicket здесь: Browse | SVN - версия Java + Wicket находится здесь: Browse | SVN
Я использовал (еще не окончательный) Scala 2.8 и плагин NetBeans. Был смысл блога подробно об этом (там даже реализация Groovy + Wicket на месте), но несколько показов высокого уровня ниже; в качестве примера, здесь тот же код пользовательского интерфейса в Java | Scala. Замечания:
- безусловно, намного меньше шаблонов и меньше "шума"
- Scala чувствует себя очень хорошо подходящим для Wicket, когда дело доходит до компонентов вложенности.
- например. меньше работы/строк кода для определения внутренних классов/конструкторов, поэтому можно сделать это в основном в строке и держать вложенность без лишних помех.
- и в то же время переопределить каркасные методы как однострочные. хорошо!
- Scala, казалось, хорошо работал с Wicket Generics, компилятор казался намного более строгим время от времени, может быть, это хорошо. Плагин NetBeans помогает, но по-прежнему работает с ошибками и медленнее.
- Не очень сложное приложение, поэтому не было возможности применять закрытие и FP много.
- Есть некоторые ошибки, о которых вам нужно знать: Борьба Scala - Scala с преобразованием списка Java - для время, когда мне удалось использовать коллекции Java для свойств объекта домена.
Пока еще не выполнялись тесты производительности/сравнения. Оставайтесь с нами:) Дайте мне знать, если что-нибудь, что вы хотите знать, когда я собираюсь опубликовать подробную запись в блоге по этому вопросу. О, и если у вас будет возможность просмотреть код и сообщить мне, что можно улучшить, это будет здорово!
Я еще не смотрел "Лифт", но здесь сообщение в блоге, которое может помочь OP: Поднять с перспективы разработчика Wicket
Должна сказать, что я бы выбрал Scala через Groovy на милю, если вы смешались с Wicket. Вопрос "организовать импорт" IDE сам решает вопрос. Новая поддержка внутреннего класса Groovy имеет некоторые ошибки, которые серьезно мешают при использовании Wicket. Также возникли некоторые проблемы, такие как groovy.lang.Reference not Serializable и т.д.
Ответ 2
Я немного использовал Scala + Wicket - это хороший момент, чтобы ввести несколько Scala. Закрытие может помочь уменьшить строки кода в контроллере Wicket с учетом нескольких неявных преобразований или методов полезности. Даже Дейв Поллак однажды предложил эту комбинацию, если вы предпочитаете Wicket Lift или иметь существующее приложение Wicket, которое вы хотите модифицировать Scala с помощью.
Просто будьте осторожны с типами данных, которые вы используете в любых компонентах Wicket с учетом состояния, поскольку они должны быть сериализуемыми. Иногда вы можете обойтись без этого и использовать компоненты Wicket без состояния.
Ответ 3
Они отлично работают вместе. Не говоря уже о всех бонусах использования Scala в качестве вашего языка.
По пути я достал биты, которые я сделал полезным, и создал проект Scala Wicket Extensions: http://www.mail-archive.com/[email protected]/msg40899.html Не использовали его какое-то время, но он все равно должен быть хорошим. Я был бы очень заинтересован в том, чтобы привлечь больше людей к проекту.
Репо находится здесь: https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/trunk/wicketstuff-core/scala-extensions-parent/
Это позорная калитка (и калитка) есть/не находится в Github:/
Ответ 4
Я просто хотел бы указать новые способы, в Scala 2.8, сделать Scala для конверсий java и обратно, поскольку это было указано как проблема в ответе Питера Томаса. Здесь описывается новый материал: Конверсии между сборками Java и Scala
Он должен решить проблему Scala <= > java collections, которую я думаю