Фреймворк — Документация Webasyst
Как в большинстве современных фреймворков, ядро Вебасиста реализовано в соответствии с принципом проектирования MVC («модель–представление–контроллер»). Принцип MVC подразумевает разделение логики приложения на три слабо связанных составляющих (слоя):
- слой работы с данными (модель)
- cлой представления
- слой бизнес-логики (контроллер) — прием/валидация/обработка данных, полученных от пользователя, получение данных от модели, их подготовка и передача в представление для отображения в браузере пользователя
Такой подход улучшает организацию кода, повышает его читаемость, облегчает разделение задач между разработчиками и поддержку кода (в частности позволяет вносить изменения в один из слоев, не затрагивая или незначительно затрагивая другие слои).
Процесс обработки HTTP-запросов
- Запрос поступает на обработку в скрипт-диспетчер.
- Система маршрутизации определяет, какое приложение должно запуститься и какую операцию это приложение должно выполнить.
- Для соответствующей операции определяется соответствующий контроллер, которому передается управление.
- Контроллер выполняет необходимую бизнес-логику, при необходимости обращаясь к данным приложения через классы модели.
- Для формирования кода веб-страницы контроллер вызывает код одного или нескольких последовательных экшенов.
- Для формирования HTML-кода каждый экшен передаёт полученные данные в шаблонизатор.
- Шаблонизатор на основе соответствующих шаблонов формирует код веб-страницы с использованием полученных данных.
Взаимодействие с базой данных
Техническая реализация взаимодействия с базой данных разделяется на два уровня: системный и прикладной.
Системный уровень
Системный уровень отвечает непосредственно за установление и поддержание соединений (пула соединений) к конкретной базе данных, отправку SQL-запросов и получение результатов от СУБД. Его работа зависит от типа сервера баз данных, поэтому для каждой СУБД требуется своя реализация этого слоя в виде плагинов-адаптеров. В текущей версии фреймворка имеется адаптер только для MySQL.
Прикладной уровень
Прикладной уровень абстрагирован от особенностей конкретной СУБД и технически может не зависеть от ее вида. Иными словами, код приложения может быть не привязан, например, именно к MySQL, а одинаково успешно выполняться с использованием различных СУБД. В таких случаях обязательным требованием является наличие соответствующего адаптера.
В состав фреймворка входит набор инструментов для взаимодействия с базой данных без составления SQL-запросов вручную в исходном коде приложения. Это позволяет приложению абстрагироваться от особенностей конкретной СУБД. Вместо использования SQL-запросов, приложение может вызывать соответствующие методы модели, например, «получить экземпляр с заданным значением ключа», «сохранить экземпляр объекта»,«получить список объектов» и т.
Контроллеры и экшены
Слой контроллера MVC во фреймворке Вебасист разделен на два более тонких слоя: контроллеры и экшены (в действительности к этом слою также относятся скрипт-диспетчер и система маршрутизации, но они не влияют на процесс прикладной разработки приложений).
Контро́ллер — это часть приложения, реализующая логику обработки запросов. Именно здесь определяется, из каких блоков состоит веб-страница,
формируемая в ответ на запрос пользователя. В сложных приложениях для большей читаемости кода разумно разбивать логику генерации страницы на несколько частей. Каждая
такая часть (например, генерация отдельного информационного блока на странице) называется
Экшен — это часть приложения, отвечающая за генерацию фрагмента HTML-кода. Это может быть как код всей страницы, так и код отдельного информационного
блока на странице. Экшен всегда вызывается из кода контроллера. При обработке запроса контроллер определяет, какие экшены необходимо вызвать для генерации страницы, и
последовательно их вызывает. В распространенном случае, когда на странице есть только один динамический блок (результат работы какого-то одного экшена), задача контроллера
сводится вызову единственного имеющегося экшена. Во фреймворке предусмотрен
Некоторые виды HTTP-запросов являются командой для выполнения какой-либо операции, в ответ на которую клиент не ожидает получения отдельной страницы. Результатом выполнения экшена также может являться перенаправление на другую страницу — например, при удалении записи или сохранения данных, указанных в веб-форме. В подобных случаях вся логика реализуется в контроллере и отдельные экшены не используются.
Шаблоны страниц
С каждым экшеном связан шаблон для формирования HTML-кода страницы. Для реализации слоя представления фреймворк Вебасист по умолчанию использует шаблонизатор Smarty. Однако требование использования Smarty не является жестким. Существует возможность подключать другие шаблонизаторы или даже использовать в качестве шаблонов чистый PHP-код. Для подключения альтернативного шаблонизатора достаточно создать класс-адаптер и внести его в системный конфигурационный файл.
Приложения
Фреймворк Вебасист спроектирован таким образом, что в рамках одного экземпляра скриптов (общая база данных, общее адресное пространство, общая база пользователей, единая система авторизации и аутентификации) в системе может быть установлено несколько приложений. Одна из целей создания фреймворка — это именно организация тесной интеграции и взаимодействия нескольких приложений. У каждого приложения есть свой уникальный идентификатор (APP_ID) в рамках системы.
Таблицы приложения в базе данных снабжаются уникальным префиксом, что позволяет избежать конфликта имен. Список установленных приложений содержится в системном
конфигурационном файле wa-config/apps.php
.
Пользователи, права, авторизация, бекенд и фронтенд
Фреймворк Вебасист разработан в первую очередь для создания бизнес-приложений. По этой причине глобальные сущности «контакт», «пользователь» и понятие прав доступа являются частью системы и глубоко интегрированы в архитектуру. Фреймворк без установленных приложений уже содержит полную инфраструктуру с интерфейсом авторизации, управлением пользователями, правами доступа, разделением на бекенд и фронтенд.
Аутентификация и проверка прав доступа пользователя являются частью обработки любого HTTP-запроса. Эти операции выполняются автоматически на системном уровне и не требуют дополнительных действий от разработчика прикладного приложения.
Интерфейс любого приложения Вебасист состоит из двух основных частей — бекенда и
Беке́нд предназначен для использования внутри организации, которой принадлежат установленные скрипты. Доступ в бекенд имеют только авторизованные пользователи. Здесь обычно располагаются инструменты управления данными.
Фронте́нд предназначен для использования клиентами компании, посетителями сайта и другими сторонними лицами. Это та часть приложения, которая публикуется на сайте и может быть доступна без авторизации. В рамках фронтенда могут существовать и защищенные паролем личные кабинеты посетителей сайта (однако автоматически доступ в бекенд доступ посетителям сайта в этом случае не предоставляется). Контроль доступа к фронтенду приложения осуществляется самим приложением и на системном уровне автоматически не регулируется. Разделение приложения на бекенд и фронтенд не является обязательным.
Что такое фреймворк | Медиа Нетологии
Skip to contentSearch for:
Просто о сложном
1 июня 2023
1 июня
Поговорили с Александром Мищенко, тимлидом Нетологии, преподавателем и программистом, о том, что такое фреймворки. Объясняем термин, который часто ставит в тупик людей, только начинающих знакомиться с программированием.
Александр Мищенко
Тимлид направления «Контент и методология» в Нетологии
Фреймворк — это набор правил, шаблонов и инструментов, которые используются для построения продуктов или процессов как в программировании, так и в других областях.
Фреймворки помогают упорядочить и стандартизировать процессы, облегчают командную работу и повышают эффективность достижения целей. Они предлагают готовые решения и методики, которые можно адаптировать и применять в различных проектах и областях деятельности.
Фреймворки вначале возникли в сфере программирования, а затем расширили своё применение и вышли за его пределы. Один из примеров фреймворков, широко применяемый как в программировании, так и в управлении проектами, — это Scrum, часть Agile-практик. Scrum представляет собой набор технологий, которые позволяют организовывать встречи и процессы в команде для достижения определённых целей.
Если говорить о программировании, то фреймворков существует огромное количество. Есть веб-фреймворки, такие как Ruby on Rails, Django или FastAPI: предоставляют набор инструментов, библиотек и шаблонов для разработки веб-приложений. Они упрощают создание серверной части приложений и обеспечивают стандартизированный подход к разработке.
С другой стороны, есть фреймворки, которые специально предназначены для разработки фронтенда, такие как React или Vue. js. Их используют немного иначе. В основном фронтенд-фреймворки предоставляют набор инструментов и шаблонов, которые помогают разработчику быстрее и проще создавать интерфейсы пользовательского взаимодействия. Они также обеспечивают стандартизацию разработки, что упрощает совместную работу и переход между разработчиками.
Однако фреймворки не ограничиваются только программированием. Они применяются в разных областях, в особенности в управлении проектами и развитии бизнес-процессов. Фреймворки помогают структурировать работу, устанавливать правила и использовать лучшие практики для достижения целей и повышения эффективности.
Фреймворк можно рассматривать как некую рамку или набор инструментов, которые применяются для выполнения определённой задачи. Чтобы получить представление о фреймворке, нужно обратиться к его документации, где описаны основы работы и порядок выполнения задач.
Чтобы лучше представить, как выглядят фреймворки, можно привести аналогию с постройкой здания. У нас есть два фреймворка — наборы инструментов для строительства жилого дома и гаража. В каждом случае мы начинаем с документации, чтобы понять, какие компоненты нам нужны. Например, в случае с домом нам нужны стены, которые могут быть построены из разных материалов. Аналогично и в программировании: существуют различные фреймворки, и программисты выбирают их в зависимости от того, какие задачи перед ними стоят и что нужно разработать. Это можно рассматривать как список рекомендаций и правил, которые помогают нам создавать приложения.
Иногда фреймворк требует выполнения определённых действий, без которых он не будет работать. В таких случаях документация указывает на необходимость выполнения этих действий. Однако иногда это имеет рекомендательный характер, то есть мы предполагаем, что это будет лучшим подходом, но мы всегда можем внести изменения.
Давайте рассмотрим простой пример. Допустим, каждый день мы проводим 15 минут на встрече команды, где обсуждаем наши достижения, проблемы и планы. Но сегодня нам потребуется немного больше времени, чтобы обсудить отдельную тему. Таким образом, мы отклонились от общей рекомендации, но при этом остались в рамках фреймворка.
У нас есть цель, к которой мы стремимся, и инструменты — фреймворки, которыми мы пользуемся. Давайте разберёмся, как используются фреймворки для достижения поставленной цели.
Мы выбираем инструмент в зависимости от задачи, а не задачу в зависимости от инструмента. Мы не берём отвёртку, а потом думаем, где бы её использовать. Мы сначала ставим перед собой задачу, а затем выбираем инструменты, которые помогут решить её более эффективно. Например, если нам просто нужно сделать отверстие в стене, мы можем взять отвёртку и попробовать проковырять дырку, но специализированный инструмент справится с задачей лучше.
При выборе фреймворка всё тоже зависит от задачи. Если вы сталкиваетесь с необходимостью переписывать фреймворк в основных аспектах и выкручивать его наизнанку, то это может быть признаком того, что выбор был сделан неправильно, и лучше воспользоваться альтернативным вариантом.
Представим, что вам нужно выбрать между Django и FastAPI для Python-разработки.
Django — это крупный фреймворк с большим набором функциональности. Django был очень популярен в конце 2000-х годов и в начале 2010-х, и он хорошо подходил для разработки веб-приложений, когда разработчику было необходимо создать сайт с нуля.
Однако с течением времени веб-разработка изменилась, и теперь создание сайтов разделилось на две части — фронтенд и бэкенд. Чтобы обеспечить обмен данными между этими частями, можно сделать более лёгкий и удобный выбор — взять FastAPI.
Когда мы говорим о фреймворках, часто звучит термин «библиотека». Это набор функций, который можно использовать в любом проекте. Библиотека — это готовый код, который можно использовать по мере необходимости. Библиотеки обычно предоставляются в виде независимых компонентов и не накладывают ограничений на архитектуру проекта.
Если представить фреймворк как ящик с инструментами, то библиотека — это набор отвёрток или ключей, которые можно взять и применить в нужном месте в нужное время.
В программировании переиспользование кода является ключевым аспектом — с этим связано примерно 90% работы. Фреймворки и библиотеки помогают в этом. Библиотеки дают готовый код, а фреймворки структурируют готовые библиотеки.
- Попробуете себя в роли программиста и научитесь писать код
- Познакомитесь с популярными языками программирования
- Создадите реальный проект, который сможете добавить в портфолио.
Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.
Александр Мищенко
Тимлид направления «Контент и методология» в Нетологии
Оцените статью
Средняя оценка 4. 9 / 5. Всего проголосовало 7
Темы: программирование
Фреймворк | Ремонт бытовой электроники
Ноутбук Framework Торговая площадка Сообщество Поддержка местный_молл евро евро Образец содержимого ссылкизакрыть
Ноутбук Framework
/ 11 шт.
Ноутбук Framework 13 (Intel® Core™ 12-го поколения)
Начинается с 1199 евро 1099 евро
Предварительный заказНоутбук Framework 13 (Intel® Core™ 13-го поколения)
Начинается с 1199 евро
Предварительный заказНоутбук Framework 13 (серия AMD Ryzen™ 7040)
Начинается с 1199 евро
Предварительный заказНоутбук Framework 13 DIY Edition (Intel® Core™ 13-го поколения)
Начинается с €979
Предварительный заказНоутбук Framework 13 DIY Edition (серия AMD Ryzen™ 7040)
Начинается с €979
РаспроданоНоутбук Framework 13 DIY Edition (Intel® Core™ 11-го поколения)
Начинается с 1069 евро
РаспроданоНоутбук Framework 13 DIY Edition (Intel® Core™ 12-го поколения)
Начинается с 1469 евро
ВскореFramework для ноутбуков Chromebook Edition (Intel® Core™ 12-го поколения)
Ноутбук Framework 13 (Intel® Core™ 11-го поколения)
Начинается с 1599 евро 1199 евро
РаспроданоВосстановленный ноутбук Framework 13 DIY Edition (Intel® Core™ 11-го поколения)
Начинается с €799
РаспроданоВосстановленный ноутбук Framework 13 DIY Edition (Intel® Core™ 12-го поколения)
Начинается с €869
Платы расширения
/ 11 шт.
Карта расширения на 1 ТБ
€160
Карта расширения на 250 ГБ
€75
Карта расширения USB-C
€10
Аудио карта расширения
€20
Плата расширения DisplayPort (1-го поколения)
€20 €10
Плата расширения Ethernet
€45
Плата расширения HDMI (1-го поколения)
€20 €10
Карта расширения MicroSD
€20
Карта расширения USB-A
€10
ВскореПлата расширения DisplayPort (2-го поколения)
€20
ВскореПлата расширения HDMI (3-го поколения)
€20
Системные платы
/ 13 шт.
Предварительный заказМатеринская плата (Intel® Core™ 13-го поколения) — i5-1340P
€509
Предварительный заказМатеринская плата (Intel® Core™ 13-го поколения) — i7-1360P
€799
Предварительный заказМатеринская плата (Intel® Core™ 13-го поколения) — i7-1370P
1189 евро
Предварительный заказМатеринская плата (AMD Ryzen™ серии 7040) — Ryzen™ 5 7640U
€509
Предварительный заказМатеринская плата (серия AMD Ryzen™ 7040) — Ryzen™ 7 7840U
€799
Предварительный заказКомплект материнской платы (серия AMD Ryzen™ 7040)
Начинается с €574
Материнская плата (Intel® Core™ 11-го поколения) — i7-1165G7
€799 €439
Материнская плата (Intel® Core™ 11-го поколения) — i7-1185G7
1189 евро €619
Материнская плата (Intel® Core™ 12-го поколения) — i7-1260P
€799 €619
Материнская плата (Intel® Core™ 12-го поколения) — i7-1280P
1189 евро €899
Комплект обновления (Intel® Core™ 12-го поколения)
Начинается с €588
ВскореМатеринская плата (Intel® Core™ 11-го поколения) — i5-1135G7
€489 €329
ВскореМатеринская плата (Intel® Core™ 12-го поколения) — i5-1240P
€489 €449
Память и хранилище
/ 21 шт.
DDR4-3200 — 16 ГБ (1 x 16 ГБ)
€90 €70
DDR4-3200 — 16 ГБ (2 x 8 ГБ)
€90 €70
DDR4-3200 — 32 ГБ (1 x 32 ГБ)
€180 €140
DDR4-3200 — 32 ГБ (2×16 ГБ)
€180 €140
DDR4-3200 — 64 ГБ (2 x 32 ГБ)
€360 €280
DDR4-3200 — 8 ГБ (1 x 8 ГБ)
€45 €35
Предварительный заказDDR5-5600 — 16 ГБ (1 x 16 ГБ)
€90
Предварительный заказDDR5-5600 — 16 ГБ (2 x 8 ГБ)
€90
Предварительный заказDDR5-5600 — 32 ГБ (1 x 32 ГБ)
€180
Предварительный заказDDR5-5600 — 32 ГБ (2 x 16 ГБ)
€180
Предварительный заказDDR5-5600 — 64 ГБ (2 x 32 ГБ)
€360
Предварительный заказDDR5-5600 — 8 ГБ (1 x 8 ГБ)
€45
WD_BLACK™ SN770 NVMe™ — M.
2 2280 — 1 ТБ€145 €125
WD_BLACK™ SN770 NVMe™ — M.2 2280 — 250 ГБ
€72 €45
WD_BLACK™ SN770 NVMe™ — M.2 2280 — 2 ТБ
€295 €235
WD_BLACK™ SN770 NVMe™ — M.2 2280 — 500 ГБ
€85 €65
WD_BLACK™ SN850X NVMe™ — M.2 2280 — 1 ТБ
€185 €139
WD_BLACK™ SN850X NVMe™ — M.2 2280 — 2 ТБ
€319 €269
WD_BLACK™ SN850X NVMe™ — M.2 2280 — 4 ТБ
€690
Вскоре2 ТБ — Western Digital SN740 NVMe™ — M.2 2230
Вскоре500 ГБ — WD_BLACK™ SN850 NVMe™
€115
Клавиатуры
/ 31 шт.
Комплект входной крышки — пустой ANSI
€119
Комплект входной крышки — чистый ISO
€119
Комплект входной крышки — британский английский
€109
Комплект входной крышки — английский международный
€109
Комплект входной крышки — французский
€109
Комплект входной крышки — канадский франкоязычный
€109
Комплект входной крышки — немецкий
€109
Комплект входной крышки — итальянский
€109
Комплект входной крышки — испанский (Испания)
€109
Комплект входной крышки — традиционный китайский (Cangjie & Zhuyin)
€109
Комплект входной крышки — английский (США)
€109
Клавиатура — пустая ANSI
€55
Клавиатура — пустой ISO
€55
Клавиатура — британский английский
€45
Клавиатура — чистый ANSI
€55
Клавиатура — очистить ISO
€55
Клавиатура — английский международный
€45
Клавиатура — французский
€45
Клавиатура — немецкий
€45
Клавиатура — испанский (Испания)
€45
ВскореКомплект входной крышки — прозрачный ANSI
€119
ВскореКомплект входной крышки — прозрачный ISO
€119
ВскореКомплект входной крышки — японский
€109
ВскореКомплект входной крышки — корейский
€109
РаспроданоКлавиатура — бельгийская
€45
ВскореКлавиатура — французский канадский
€45
РаспроданоКлавиатура — итальянский
€45
РаспроданоКлавиатура — корейская
€45
РаспроданоКлавиатура — испанский (латиноамериканский)
€45
РаспроданоКлавиатура — традиционный китайский (Цанцзе и Чжуинь)
€45
ВскореКлавиатура — английский (США)
€45
Детали
/ 32 шт.
Антенный модуль
€15
Аккумулятор — 55 Втч
€65 €55
Комплект дисплея — оригинальный
€195
Комплект крепежа — нижняя крышка и материнская плата
€6
Комплект креплений — крышка ввода и клавиатура
€6
Комплект крепежа — верхняя крышка
€6
Комплект радиатора и вентилятора (Intel® Core™ 11-го поколения)
€45
Комплект радиатора и вентилятора (Intel® Core™ 12-го поколения)
€45
Комплект петель — 3,3 кг
€25 €17
Комплект петель — 4,0 кг
€25
Адаптер питания — 60 Вт — Австралия
€49
Адаптер питания — 60 Вт — ЕС
€49
Адаптер питания — 60 Вт — Великобритания
€49
Комплект динамиков
€20
Комплект динамиков — 80 дБ
€20
Комплект сенсорной панели
€45
Модуль веб-камеры
€30
Предварительный заказAMD RZ616 Wi-Fi 6E
€20
Комплект звуковой платы
€15
Корпус материнской платы Cooler Master
€45
Комплект считывателя отпечатков пальцев
€30
Комплект петель (2-го поколения) — 3,5 кг
€25
Intel® Wi-Fi 6E AX210 без vPro®
€20
Intel® Wi-Fi 6E AX210 vPro®
€30
Комплект верхней крышки — оригинал
€109
Кабель сенсорной панели
€15
Кабель USB-C
€10
ВскореАккумулятор — 61 Втч
€79
РаспроданоКомплект дисплея — матовый
€195
ВскореКомплект радиатора и вентилятора (серия AMD Ryzen™ 7040)
€45
ВскореКомплект нижней крышки
€109
РаспроданоВерхняя крышка (ЧПУ)
€99
Персонализация
/ 7 шт.
Безель — черный
€45
Безель — серый
€55
Безель — оранжевый
€55
ВскореБезель — зеленый
€55
ВскореБезель — Лаванда
€55
ВскореБезель — Красный
€55
ВскореБезель — полупрозрачный
€55
Инструменты
/ 3 шт.
Улавливание углерода
€93
Каркасная отвертка
€5
Термопаста
€6
Программное обеспечение
/ 2 шт.
Windows 11 домашняя (скачать)
€145
Windows 11 Pro (скачать)
€259
Наверх
Ноутбук Framework 13, теперь с опциями AMD и Intel, и
Образец содержимого ссылкизакрыть
Теперь доступно с процессорами AMD Ryzen™ серии 7040 и процессорами Intel® Core™ 13-го поколения
Выберите свой ноутбук Framework 13
Еще не нужен новый ноутбук? Следите за информационным бюллетенем Framework, когда мы запускаем новые продукты
Спасибо за подписку!
Ежемесячно
Поступит в продажу в этом году: Ноутбук Framework 16
Модернизируемая модульная графика и реконфигурируемый ввод в высокопроизводительном 16-дюймовом ноутбуке
Узнать больше
Последнее поколение дешевле
С каждым новым запуском мы снижаем цены на оставшиеся запасы предыдущего поколения. Вы можете присоединиться к экосистеме Framework Laptop за меньшие деньги сегодня и обновить любой модуль в будущем, если вам когда-нибудь понадобится.
Магазин предыдущих поколений
скидка 25% Ноутбук Framework 13 (Intel® Core™ 11-го поколения)Готов к использованию сразу после установки, с предустановленной Windows.
скидка 45% Материнская плата (Intel® Core™ 11-го поколения)Выберите один из процессоров Intel Core i5 и i7 11-го поколения.
Новые материнские платы
Повышение производительности вашего ноутбука Framework 13 с новейшими процессорами Intel и AMD.
Предзаказ на новые материнские платы
Интел Материнская плата (Intel® Core™ 13-го поколения)Доступны три конфигурации процессоров Intel Core i5 и i7 13-го поколения.
AMD Комплект материнской платы (серия AMD Ryzen™ 7040)Доступно с процессорами AMD Ryzen 7 7840U и Ryzen 5 7640U.
Linus Tech Tips
«Модульный ноутбук, подобный [ноутбуку Framework], является настолько важной миссией, что он будет работать только в том случае, если все согласны с тем, что пришло время выйти за рамки одноразовой электроники и сосредоточиться на ремонте и экологичности. И Framework стремится к этому во многих отношениях». — Линус Технические советы
Смотреть видео
Dave2D
«Это так круто. Идея [ноутбука Framework 16] и то, что она представляет для будущих высокопроизводительных ноутбуков, — это, серьезно, самая крутая вещь, которую я видел в этом году, когда речь идет о мобильных устройствах. компьютерное пространство». – Dave2D
Смотреть видео
Премия «Лучший из лучших дизайнеров»
Чрезвычайно редкий показатель ремонтопригодности 10/10.
TIME Лучшие изобретения 2021
Наша миссия
Пришло время потребительской электроники, рассчитанной на долгий срок службы: продуктов, которые дают вам возможность обновлять, настраивать и ремонтировать их. Мы рады возможности вместе исправить ситуацию в отрасли бытовой электроники.
Подробнее
Последние новости
Мы знаем, что вы рады узнать больше о ноутбуке Framework 16.