Эффект внутренней платформы - Inner-platform effect

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

Примеры

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

в база данных мире, разработчики иногда пытаются обойти СУБД, например, храня все в одном большом Таблица с тремя столбцы помечены идентификатор объекта, ключ и значение. Пока это модель значения атрибута объекта позволяет разработчику вырваться из структуры, навязанной SQL база данных, она теряет все преимущества,[1] поскольку вся работа, которая может быть эффективно выполнена с помощью СУБД, вместо этого выполняется приложением. Запросы становятся более запутанными,[2] то индексы и оптимизатор запросов не может больше работать эффективно, и ограничения достоверности данных не применяются. Производительность и ремонтопригодность могут быть крайне низкими.

Подобное искушение существует для XML, где разработчики иногда предпочитают общие имена элементов и используют атрибуты для хранения значимой информации. Например, каждый элемент может быть назван предмет и иметь атрибуты тип и ценность. Эта практика требует присоединяется через несколько атрибутов, чтобы извлечь смысл. Как результат, XPath выражения более запутаны, оценка менее эффективна, а структурная проверка дает мало пользы.

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

В Шаблон спецификации создает логические объекты, которые комбинируются с функциями And (), которые сложно объединить в группы с предложениями Or (). Обычно это легче сделать с помощью базовых логических условных операторов.

Эффект

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

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

Соответствующее использование

Внутренняя платформа может быть полезна по причинам переносимости и разделения привилегий - другими словами, чтобы одно и то же приложение могло работать на самых разных внешних платформах, не затрагивая ничего за пределами песочница управляется внутренней платформой. Например, Sun Microsystems разработала Платформа Java для достижения обеих этих целей.

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

Рекомендации

  1. ^ Целко, Джо (1 февраля 2011 г.). «Таблицы поиска в SQL». Архивировано из оригинал 23 сентября 2016 г.. Получено 25 апреля 2016.
  2. ^ Петерсон, Дон (8 сентября 2004 г.). "Безумие таблицы поиска". Архивировано из оригинал 10 августа 2018 г.. Получено 25 апреля 2016.