Содержание

Фреймворк — Документация Webasyst

Как в большинстве современных фреймворков, ядро Вебасиста реализовано в соответствии с принципом проектирования MVC («модель–представление–контроллер»). Принцип MVC подразумевает разделение логики приложения на три слабо связанных составляющих (слоя):

  • слой работы с данными (модель)
  • cлой представления
  • слой бизнес-логики (контроллер) — прием/валидация/обработка данных, полученных от пользователя, получение данных от модели, их подготовка и передача в представление для отображения в браузере пользователя

Такой подход улучшает организацию кода, повышает его читаемость, облегчает разделение задач между разработчиками и поддержку кода (в частности позволяет вносить изменения в один из слоев, не затрагивая или незначительно затрагивая другие слои).

Процесс обработки HTTP-запросов

  1. Запрос поступает на обработку в скрипт-диспетчер.
  2. Ядро фреймворка выполняет анализ запрашиваемого URL.
  3. Система маршрутизации определяет, какое приложение должно запуститься и какую операцию это приложение должно выполнить.
  4. Для соответствующей операции определяется соответствующий контроллер, которому передается управление.
  5. Контроллер выполняет необходимую бизнес-логику, при необходимости обращаясь к данным приложения через классы модели.
  6. Для формирования кода веб-страницы контроллер вызывает код одного или нескольких последовательных экшенов.
  7. Для формирования HTML-кода каждый экшен передаёт полученные данные в шаблонизатор.
  8. Шаблонизатор на основе соответствующих шаблонов формирует код веб-страницы с использованием полученных данных.

Взаимодействие с базой данных

Техническая реализация взаимодействия с базой данных разделяется на два уровня: системный и прикладной.

Системный уровень

Системный уровень отвечает непосредственно за установление и поддержание соединений (пула соединений) к конкретной базе данных, отправку SQL-запросов и получение результатов от СУБД. Его работа зависит от типа сервера баз данных, поэтому для каждой СУБД требуется своя реализация этого слоя в виде плагинов-адаптеров. В текущей версии фреймворка имеется адаптер только для MySQL.

Прикладной уровень

Прикладной уровень абстрагирован от особенностей конкретной СУБД и технически может не зависеть от ее вида. Иными словами, код приложения может быть не привязан, например, именно к MySQL, а одинаково успешно выполняться с использованием различных СУБД. В таких случаях обязательным требованием является наличие соответствующего адаптера.

В состав фреймворка входит набор инструментов для взаимодействия с базой данных без составления SQL-запросов вручную в исходном коде приложения. Это позволяет приложению абстрагироваться от особенностей конкретной СУБД. Вместо использования SQL-запросов, приложение может вызывать соответствующие методы модели, например, «получить экземпляр с заданным значением ключа», «сохранить экземпляр объекта»,«получить список объектов» и т.

 п.

Контроллеры и экшены

Слой контроллера MVC во фреймворке Вебасист разделен на два более тонких слоя: контроллеры и экшены (в действительности к этом слою также относятся скрипт-диспетчер и система маршрутизации, но они не влияют на процесс прикладной разработки приложений).

Контро́ллер — это часть приложения, реализующая логику обработки запросов. Именно здесь определяется, из каких блоков состоит веб-страница, формируемая в ответ на запрос пользователя. В сложных приложениях для большей читаемости кода разумно разбивать логику генерации страницы на несколько частей. Каждая такая часть (например, генерация отдельного информационного блока на странице) называется

экшеном.

Экшен — это часть приложения, отвечающая за генерацию фрагмента HTML-кода. Это может быть как код всей страницы, так и код отдельного информационного блока на странице. Экшен всегда вызывается из кода контроллера. При обработке запроса контроллер определяет, какие экшены необходимо вызвать для генерации страницы, и последовательно их вызывает. В распространенном случае, когда на странице есть только один динамический блок (результат работы какого-то одного экшена), задача контроллера сводится вызову единственного имеющегося экшена. Во фреймворке предусмотрен 

контроллер по умолчанию, который отрабатывает, если специализированный контроллер для обработки запроса не был найден, но класс экшена, который соответствует инструкции, полученной от системы маршрутизации, существует.

Некоторые виды HTTP-запросов являются командой для выполнения какой-либо операции, в ответ на которую клиент не ожидает получения отдельной страницы. Результатом выполнения экшена также может являться перенаправление на другую страницу — например, при удалении записи или сохранения данных, указанных в веб-форме. В подобных случаях вся логика реализуется в контроллере и отдельные экшены не используются.

Шаблоны страниц

С каждым экшеном связан шаблон для формирования HTML-кода страницы. Для реализации слоя представления фреймворк Вебасист по умолчанию использует шаблонизатор Smarty. Однако требование использования Smarty не является жестким. Существует возможность подключать другие шаблонизаторы или даже использовать в качестве шаблонов чистый PHP-код. Для подключения альтернативного шаблонизатора достаточно создать класс-адаптер и внести его в системный конфигурационный файл.

Приложения

Фреймворк Вебасист спроектирован таким образом, что в рамках одного экземпляра скриптов (общая база данных, общее адресное пространство, общая база пользователей, единая система авторизации и аутентификации) в системе может быть установлено несколько приложений. Одна из целей создания фреймворка — это именно организация тесной интеграции и взаимодействия нескольких приложений. У каждого приложения есть свой уникальный идентификатор (APP_ID) в рамках системы.

Исходный код каждого приложения размещается в отдельном подкаталоге в общей файловой структуре.

Таблицы приложения в базе данных снабжаются уникальным префиксом, что позволяет избежать конфликта имен. Список установленных приложений содержится в системном конфигурационном файле wa-config/apps.php.

Пользователи, права, авторизация, бекенд и фронтенд

Фреймворк Вебасист разработан в первую очередь для создания бизнес-приложений. По этой причине глобальные сущности «контакт», «пользователь» и понятие прав доступа являются частью системы и глубоко интегрированы в архитектуру. Фреймворк без установленных приложений уже содержит полную инфраструктуру с интерфейсом авторизации, управлением пользователями, правами доступа, разделением на бекенд и фронтенд.

Аутентификация и проверка прав доступа пользователя являются частью обработки любого HTTP-запроса. Эти операции выполняются автоматически на системном уровне и не требуют дополнительных действий от разработчика прикладного приложения.

Интерфейс любого приложения Вебасист состоит из двух основных частей — бекенда и

фронтенда.

Беке́нд предназначен для использования внутри организации, которой принадлежат установленные скрипты. Доступ в бекенд имеют только авторизованные пользователи. Здесь обычно располагаются инструменты управления данными.

Фронте́нд предназначен для использования клиентами компании, посетителями сайта и другими сторонними лицами. Это та часть приложения, которая публикуется на сайте и может быть доступна без авторизации. В рамках фронтенда могут существовать и защищенные паролем личные кабинеты посетителей сайта (однако автоматически доступ в бекенд доступ посетителям сайта в этом случае не предоставляется). Контроль доступа к фронтенду приложения осуществляется самим приложением и на системном уровне автоматически не регулируется. Разделение приложения на бекенд и фронтенд не является обязательным.

Например, у приложения Стикеры, входящего в комплект поставки фреймворка, есть только бекенд.

Что такое фреймворк | Медиа Нетологии

Skip to content

Search 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.