Circumflex (Scala)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Circumflex
Тип

Web-Фреймворк, ORM

Разработчик

Окунский Б.С., Лахтин С.Е.

Написана на

Scala

Операционная система

Cross-platform (JVM)

Аппаратная платформа

Java Virtual Machine

Последняя версия

2.3 (3 апреля 2012)

Лицензия

BSD-like

Сайт

circumflex.ru

Circumflex — общее название программных компонентов для языка программирования Scala, предназначенных для ускорения и повышения эффективности разработки Web-приложений и приложений, основанных на работе с реляционными базами данных. Circumflex представляет собой два независимых каркаса приложений: Circumflex Web Framework для разработки Web-приложений и Circumflex ORM для решения задач объектно-реляционного проецирования (object-relational mapping — ORM).

Ключевые концепции[править | править код]

Circumflex Web Framework[править | править код]

Circumflex Web Framework представляет язык описания маршрутов Web-приложения. Каждый маршрут осуществляет сопоставление тех или иных параметров HTTP-запроса и содержит блок, выполняющийся в случае успешного сопоставления. Ниже приведен пример простейшего Web-приложения, построенного с использованием Circumflex Web Framework.

class Main extends RequestRouter {
  get("/") = "Hello world!" 
  post("/form") = {
    // произвести обработку формы
    ftl("/complete.html.ftl")
  }
}

При получении запроса GET / клиенту возвращается текст «Hello world!»; при получении POST /form выполняется блок обработки формы, а для отправки ответа компилируется соответствующий шаблон Freemarker.

Целью Circumflex Web Framework не является создание всеобъемлющего фреймворка, предназначенного для решения абсолютно всех задач, с которыми сталкиваются разработчики. Напротив, набор функциональности минимален, что позволяет разработчикам использовать библиотеки и программные средства, которые наилучшим образом подходят для решения их конкретных задач. Circumflex Web Framework также не ориентирован на конкретную технологию отображения, поскольку является контроллером приложения по архитектуре MVC. Однако, в состав модулей Circumflex входит вспомогательный компонент «Circumflex Freemarker View», обеспечивающий интеграцию с FreeMarker — одним из мощнейших процессоров шаблонов для платформы Java. Благодаря «лояльному» подходу к технологии отображений, Circumflex Web Framework оптимально подходит для создания REST Web сервисов.

Circumflex ORM[править | править код]

Circumflex ORM предназначен для решения задач объектно-реляционного проецирования в приложениях, основанных на работе с базами данных, и представляет собой абстракцию над языками определения данных (Data Definition Language, DDL), языками манипулирования данными (Data Manipulation Language, DML) и языками запросов (Structured Query Language, SQL) различных диалектов SQL баз данных.

Основной целью Circumflex ORM является обеспечения прозрачного управления взаимодействием с базой данных, в отличие от большинства других ORM, скрывающих детали SQL от разработчика (см. Peter Becker’s Blog Post «ORM: The Leaky Abstraction»).

Circumflex ORM ориентирован как на простые приложения, так и на так называемые «data-centric» приложения (приложения, основанные на работе с данными), часть бизнес-логики которых реализована непосредственно на системе хранения. Circumflex ORM поддерживает генерацию сложных объектов схемы (включая представления, триггеры и хранимые процедуры), запросы любой сложности, прозрачный переход по ассоциациям (lazy fetching и eager fetching), кэширование объектов на уровне транзакции, гибкую валидацию данных, а также импорт данных из XML.

Лицензия[править | править код]

Circumflex является свободным программным обеспечением с открытым исходным кодом (open source) и распространяется на условиях BSD-подобной лицензии.

См. также[править | править код]

Ссылки[править | править код]