Я понимаю, почему вы думаете, что они могут быть похожими, но на практике это не совсем так ... во всяком случае, не для больших приложений. Если вы создаете простое приложение в стиле, аналогичном веб-формам, вы увидите похожие проблемы. Отрывки фрагментов в некоторых отношениях аналогичны пользовательским элементам управления веб-форм, но последние, как правило, злоупотребляют объединением всех способов или содержимого, запросов, состояний и т. Д., Которые действительно могут затруднить тестирование. Это также возможно сделать с помощью Lift, так как фреймворк не остановит вас. Однако, по идее, я бы не стал этого делать, так как я стараюсь, чтобы мои фрагменты (пользовательские элементы управления, если вам нравится) были ссылочно прозрачными функциями NodeSeq => NodeSeq (xml to xml). Фрагменты очень тесно связаны с отображением контента, и на этом все. Кроме того, вас может заинтересовать более пристальное внимание к функции карты сайта (многие люди упускают ее из виду), поскольку есть несколько интересных способов использования ее в качестве мини-контроллера с входящим запросом.
Таким образом, чтобы попытаться получить некоторую квалификацию, вы действительно могли бы сделать некрасивый, непроверяемый код с помощью Lift - многие это делают - но если вы будете правильно отделять свою бизнес-логику от веб-уровня и использовать дисциплину разработчика, это управляемая проблема. В основном, преимущества в значительной степени перевешивают минусы - особенно в свете отсутствия других веб-фреймворков Scala, реализующих виды безопасности или кометные функции, которые имеет Lift.
Суть в том, что если вы создаете приложение CRUD, то весьма вероятно, что Lift не для вас. Тем не менее, если вы создаете многофункциональное, ajax или кометное приложение, то его, безусловно, стоит посмотреть.
Надеюсь, это поможет.
PS: Вас может заинтересовать проверка «Lift in Action»; он охватывает некоторые из этих тем - http://www.manning.com/perrett/