LINUX.ORG.RU

История изменений

Исправление vertexua, (текущая версия) :

сразу видно опытного программиста и архитектора, одного уровня с Фаулером, Бучем, Блохом

Нигде нет одновременно Cake Pattern, DRY, statically typed parsing, composite view.

Уже написал базовую реализацию, запросы парсит, связывается через cake, параметр указывается оди раз

  trait BookController{ self: Controller with BookRepository =>

  implicit def bookProvider = booksDao

  route /"store"/string/"books"/classOf[Book]/"view" -> { (storeName, book)=>
      view("index", book, "store"->storeName, new Date)
  }

  route /"compose" -> compose("page1")
}

Первое парсит запрос по шаблону, в замыкании типы storeName и book вычислены автоматически их того как написан запрос. Обратите внимание, функция строго (String,Book)=>Unit. Иначе ошибка компиляции. Book получен из своего id, который был в запросе. Если его нет, то 404. Способ конвертации кастомный, мол «используй вот это dao». Если использовать Option, то не будет 404.

view покажет jsp. Имя атрибута book вычислено из типа, для store указано явно.

Интересная штука compose. С нуля через scala xml и scala xpath написан композитинг визуально похожий facelets. Особенностью будет то, что если ваша страница статическая, то она будет собрана один раз, сжата в gzip и будет отдаваться с памяти с поддержкой Etag.

Исходная версия vertexua, :

сразу видно опытного программиста и архитектора, одного уровня с Фаулером, Бучем, Блохом

Нигде нет одновременно Cake Pattern, DRY, statically typed parsing, composite view.

Уже написал базовую реализацию, запросы парсит, связывается через cake, параметр указывается оди раз

  trait BookController{ self: Controller with BookRepository =>

  implicit def bookProvider = booksDao

  route /"store"/string/"books"/classOf[Book]/"view" -> { (storeName, book)=>
      view("index", book, "store"->storeName, new Date)
  }

  route /"compose" -> compose("page1")
}

Первое парсит запрос по шаблону, в замыкании типы storeName и book вычислены автоматически их того как написан запрос. Book получен из своего id, который был в запросе. Если его нет, то 404. Способ конвертации кастомный, мол «используй вот это dao». Если использовать Option, то не будет 404.

view покажет jsp. Имя атрибута book вычислено из типа, для store указано явно.

Интересная штука compose. С нуля через scala xml и scala xpath написан композитинг визуально похожий facelets. Особенностью будет то, что если ваша страница статическая, то она будет собрана один раз, сжата в gzip и будет отдаваться с памяти с поддержкой Etag.