Русская Википедия:Circumflex (Scala)
Шаблон:Другие значения Шаблон:Infobox Software
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-подобной лицензии.
Ссылки
развернутьПартнерские ресурсы |
---|