WikiDer > Мохито (каркас)
Мохито не зависит от окружающей среды, Модель-представление-контроллер (MVC) каркас веб-приложений. Он был разработан Риком Аллинсоном.
особенности
Мохито поддерживает гибкое развитие веб-приложений. Mojito имеет встроенную поддержку модульное тестирование, Интернационализация, проверки синтаксиса и кодирования. И серверные, и клиентские компоненты написаны на JavaScript.[1]
Mojito позволяет разработчикам, создающим веб-приложения, использовать служебные программы конфигурации и инфраструктуры MVC. Mojito может работать как на JavaScript с поддержкой веб-браузеры и серверы, использующие Node.js потому что они оба используют JavaScript.
Приложения Mojito в основном состоят из двух компонентов:
- JSON Файлы конфигурации: они определяют отношения между компонентами кода, активами, путями маршрутизации и настройками фреймворка по умолчанию и доступны на уровне приложения и mojit.[2]
- Справочники: они отражают архитектуру MVC и используются для разделения ресурсов, таких как активы, библиотеки, промежуточное ПО, так далее.
Архитектура
В Mojito сценарии на стороне сервера и клиента выполняются в JavaScript, позволяя ему работать как на клиенте, так и на сервере, тем самым преодолевая «барьер внешнего интерфейса». Он имеет время выполнения как клиента, так и сервера.
Время выполнения сервера
Этот блок содержит операции, необходимые для серверных компонентов. Услуги включают: правила маршрутизации, HTTP-сервер, загрузчик конфигурации и загрузчик на диске.
Клиентская среда выполнения
Этот блок содержит операции, вызываемые при запуске компонентов на стороне клиента. Услуги включают доступ к локальному хранилищу / кешу и на основе JSON /URL основанный загрузчик
Ядро
Доступ к основной функции можно получить на клиенте или сервере. Услуги включают Реестр, Диспетчер, Фронт-контроллер, Магазин ресурсов.
Контейнер
На фото появляется объект мохит. Этот контейнер также включает сервисы, используемые моджитами. Сервисы API и Mojito - это блоки, которые обслуживают сервисы, необходимые для выполнения мохитов.
API (контекст действия)
Сервисы Mojito - это настраиваемый сервисный блок. Он предлагает мохитам ряд услуг, которые могут понадобиться мохитам для выполнения определенных действий. Этим сервисам можно воспользоваться как на стороне клиента, так и на стороне сервера. Здесь можно создавать многоразовые сервисы и объединять их в ядро.
Мохитс
Мохиты - это модули приложения Mojito. Приложение состоит из одного или нескольких моджитов. Mojit включает в себя модель, представления и контроллер, определяемые файлами конфигурации JSON. Он включает фабрику представлений, в которой представления создаются в соответствии с моделью, и кеш представления, в котором хранятся часто запрашиваемые представления для повышения производительности.
Архитектура приложения
Приложение Mojito - это набор мохитов, поддерживаемых настраиваемыми файлами JSON, которые определяют код для модели, представления и контроллера. Эта структура MVC работает с блоком API и сервисами Mojito и может быть развернута как на стороне клиента, так и на стороне сервера. Пока приложение развертывается на стороне клиента, оно может вызывать серверные модули с помощью связывателей. Биндеры - это коды для моджитов, которые позволяют моджитам запрашивать услуги друг у друга. Мохит Прокси действует как посредник между связывателями и блоком API моджита (контекст приложения) и другими моджитами.
Контроллеры - это блоки, выдающие команды моджитов. Модели отражают основную логику и содержат данные. Приложения могут иметь несколько моделей. К ним можно получить централизованный доступ с контроллеров. Просмотр файлов создаются в соответствии с контроллерами и моделями и размечаются перед отправкой пользователям в качестве вывода.
Структура каталога приложений
Структура каталогов приложения Mojito с одним мохитом:
[mojito_app] / | - application.json | - assets / | `- favicon.icon | - yui_modules / | `- *. {affinity} .js | - index.js | - mojits / | `- [mojit_name | | - активы / | | - yui_modules / | | `- *. {affinity} .js | | - папки / | | `- {view_name} .js | | - контроллер. {affinity} .js | | - defaults.json | | - definition.json | | - lang / | | `- {mojit_name} _ {lang} .js | | - модели / | | `- {model_name}. {affinity} .js | | - тесты / | | | - yui_modules / | | | `- {module_name}. {affinity} -tests.js | | | - контроллер. {affinity} -tests.js | | `- модели / | | `- {model_name}. {affinity} -tests.js | `- просмотры / | | - {view_name}. {view_engine} .html | `- {view_name}. {device}. {view_engine} .html | - package.json | - routes.json (устаревший) | - server.js
Модель, представление и контроллер
Модель содержит данные, к которым обращается Контроллер и которые представляются VIew. Контроллер также обрабатывает любые клиентские запросы данных, и в этом случае контроллер извлекает данные из модели и передает данные клиенту.
Все три компонента сгруппированы в мохите. Моджиты физически иллюстрируются структурами каталогов, и приложение может иметь несколько моджитов. У каждого мохита может быть один контроллер, одно или несколько представлений и ноль или более моделей.
Модель
Модель представляет данные приложения и не зависит от представления или контроллера. Модель содержит код для управления данными. Они находятся в каталоге моделей каждого мохита. Функции включают:
- Хранение информации для доступа контроллеру.
- Проверка и обработка ошибок.
- Метаданные, необходимые для представления
Контроллер
Контроллер действует как связующий агент между моделью и представлением. Он предоставляет ввод в модель и после получения данных из модели передает их в представление. Функции включают
- Перенаправление
- Контролирует аутентификацию
- Веб-безопасность
- Кодирование
Посмотреть
Представление действует как фильтр представления, выделяя одни атрибуты модели и подавляя другие. Вид можно понимать как визуальную перестановку модели. Представление отображает данные, полученные от контроллера, и отображает их конечному пользователю.
использованная литература
- ^ "Представляем Мохито". Получено 16 июн 2012.
- ^ «Приложения Mojito - Сеть разработчиков Yahoo». developer.yahoo.com. Получено 2016-09-13.