stringtranslate.com

Обнаженные объекты

Голые объекты — это архитектурный шаблон , используемый в программной инженерии . Он определяется тремя принципами:

  1. Вся бизнес-логика должна быть инкапсулирована в доменные объекты . Этот принцип не является уникальным для голых объектов; это сильная приверженность инкапсуляции .
  2. Пользовательский интерфейс должен быть прямым представлением объектов домена, при этом все действия пользователя должны состоять из создания, извлечения или вызова методов на объектах домена. Этот принцип не является уникальным для голых объектов: это интерпретация объектно -ориентированного пользовательского интерфейса .

Инновационная особенность модели обнаженного объекта возникает путем объединения 1-го и 2-го принципов в 3-й принцип:

  1. Пользовательский интерфейс должен быть полностью автоматически создан из определений объектов домена. Это может быть сделано с помощью рефлексии или генерации исходного кода .

Паттерн «голые объекты» был впервые формально описан в докторской диссертации Ричарда Поусона [1] , которая включает исследование предшественников и источников вдохновения для этого паттерна, включая, например, пользовательский интерфейс Morphic .

Первая полная платформа с открытым исходным кодом , реализовавшая этот шаблон, была названа Naked Objects. [2] В 2021 году Поусон объявил, что впоследствии применил тот же шаблон к парадигме функционального программирования в качестве альтернативы парадигме объектно-ориентированного программирования , создав вариант платформы Naked Objects под названием Naked Functions. [3]

Преимущества

В своей диссертации [1] Поусон утверждает четыре преимущества этой модели:

  1. Более быстрый цикл разработки , поскольку требуется разрабатывать меньше слоев. В более традиционном дизайне разработчик должен определить и реализовать три или более отдельных слоя: слой объектов домена, слой представления и сценарии задач или процессов, которые их соединяют. (Если шаблон голых объектов объединить с объектно-реляционным отображением или базой данных объектов , то можно создать все слои системы только из определений объектов домена; однако это не является частью шаблона голых объектов как такового .) Диссертация включает в себя исследование случая, сравнивающее две различные реализации одного и того же приложения: одна основана на традиционной реализации «4 слоя»; другая использует голые объекты.
  2. Большая гибкость , относящаяся к легкости, с которой приложение может быть изменено для соответствия будущим изменениям в бизнес-требованиях. Частично это возникает из-за сокращения количества разработанных слоев, которые должны поддерживаться в синхронизации. Однако также утверждается, что принудительное соответствие 1:1 между представлением пользователя и моделью домена заставляет более качественное моделирование объектов , что в свою очередь повышает гибкость.
  3. Более мощный стиль пользовательского интерфейса . Это преимущество на самом деле связано с полученным объектно-ориентированным пользовательским интерфейсом (OOUI), а не с голыми объектами как таковыми, хотя утверждается, что голые объекты значительно облегчают разработку и реализацию OOUI.
  4. Более простой анализ требований . Аргумент здесь в том, что с шаблоном голых объектов объекты домена образуют общий язык между пользователями и разработчиками, и что этот общий язык облегчает процесс обсуждения требований, поскольку нет других представлений для обсуждения. В сочетании с более быстрым циклом разработки становится возможным прототипирование функциональных приложений в реальном времени.

Использовать

Департамент социальной защиты (DSP) (ранее известный как Департамент по социальным и семейным вопросам) в Ирландии создал набор корпоративных приложений, использующих шаблон обнаженных объектов. В рамках своей программы модернизации предоставления услуг (SDM) DSP разработал новую корпоративную архитектуру как для удовлетворения запланированных новых бизнес-требований, так и для обеспечения большей гибкости в долгосрочной перспективе. Шаблон обнаженных объектов является ключевым элементом архитектуры SDM. [4] В ноябре 2002 года DSP запустил новое приложение для замены существующей системы администрирования детских пособий. Считается, что это первое операционное применение шаблона обнаженных объектов где-либо. Опыт DSP в создании этого первого приложения, включая реакцию пользователей на радикальный пользовательский интерфейс, подробно описан в диссертации Поусона [1] и совсем недавно в презентации на QCon London 2011. [5]

Одним из наиболее поразительных аспектов опыта DSP был способ, которым техника Naked Objects допускала очень активное повторное использование. После того, как объект домена, такой как Customer, был определен для одного «приложения», он мог быть (был) легко адаптирован с минимальными изменениями и дополнениями для использования в другом месте. Это говорит о том, что подход может стать фаворитом в правительственных кругах, где повторное использование рассматривается как мощный метод для разрушения изолированных систем. Политика «Трансформационного правительства» Великобритании особенно стремится к тому, чтобы повторное использование стало стандартным требованием новых правительственных систем, как потребляя другие компоненты правительственной системы, так и делая новые доступны для использования другими. Это повторное использование часто рассматривается с точки зрения услуг, но объекты могли бы быть столь же мощным подходом.

Первоначальная архитектура «голых объектов» DSP была разработана внешним подрядчиком [6] , но впоследствии архитектура была переработана вокруг Naked Objects Framework, которая теперь составляет основу для будущей разработки приложений, как подтверждено в запросе на тендеры на четырехлетнюю программу создания дополнительных приложений с использованием голых объектов [7] .

Связь с другими идеями

Паттерн обнаженных объектов имеет отношение к нескольким другим дисциплинам и/или тенденциям, включая:

Механизмы хранения объектов

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

Гибкая разработка программного обеспечения

Naked objects совместим с тенденцией к agile-методологиям разработки во многих отношениях, но особенно с мелкозернистой итеративной разработкой. Опыт DSP (описанный выше) был, вероятно, также крупнейшим применением agile-методов разработки программного обеспечения в организации государственного сектора во всем мире. [8]

Проектирование, ориентированное на домен

Проектирование на основе домена — это идея, что развивающаяся модель домена (объекта) должна использоваться как механизм для помощи в исследовании требований, а не наоборот. Тот факт, что система голых объектов заставляет прямое соответствие между пользовательским интерфейсом и моделью домена, упрощает попытку проектирования на основе домена и делает преимущества более заметными. [9]

Архитектура на основе моделей (MDA)

Хотя обнаженные объекты не соответствуют строгому определению MDA, они разделяют многие из тех же целей. Дэн Хейвуд утверждал, что обнаженные объекты являются более эффективным подходом к достижению этих целей. [10]

Объекты, вызывающие покой

Стандарт для создания интерфейса RESTful из модели объекта домена. Хотя спецификация объектов Restful не утверждает, что интерфейс должен быть сгенерирован отражающим из модели домена, такая возможность существует.

Смотрите также

Ссылки

  1. ^ abc Поусон, Ричард (июнь 2004 г.). Обнаженные объекты (PDF) (диссертация доктора философии). Тринити-колледж, Дублин .
  2. ^ Структура обнаженных объектов
  3. ^ От голых объектов к голым функциям
  4. ^ Департамент социальных и семейных дел - Руководство по функциям и записям Департамента, веб-сайт DSFA - Свобода информации Архивировано 19 октября 2012 г. на Wayback Machine
  5. ^ Пример из практики: крупномасштабное чистое объектно-ориентированное проектирование на конференции QCon правительства Ирландии в Лондоне в 2011 г.
  6. ^ Fujitsu, Пример исследования: Департамент социальных и семейных дел Веб-сайт Fujitsu Архивировано 29 ноября 2007 г. на Wayback Machine
  7. ^ Департамент социальных и семейных дел, Текущее развитие программы модернизации предоставления услуг Департамента, 2007 г., веб-сайт электронных торгов
  8. ^ Поусон, Ричард; Уэйд, Винсент (2003). «Гибкая разработка с использованием голых объектов». Экстремальное программирование и гибкие процессы в программной инженерии . XP'03. LNCS . Том 2675. стр. 97–103. doi :10.1007/3-540-44870-5_13. ISSN  0302-9743.
  9. ^ Хейвуд, Д., Проектирование на основе предметной области с использованием обнаженных объектов, 2009, Pragmatic Programmers
  10. ^ Хейвуд, Д. (2004) MDA: Хорошая идея, жаль...