Эффект внутренней платформы
![]() | Эта статья написана как личное размышление, личное эссе или аргументативное эссе , в котором излагаются личные чувства редактора Википедии или представлен оригинальный аргумент по определенной теме. ( Март 2017 г. ) |
Эффект внутренней платформы — это тенденция архитекторов программного обеспечения создавать систему, настолько настраиваемую, что она становится точной копией, а часто и плохой копией платформы разработки программного обеспечения, которую они используют. Как правило, это неэффективно, и такие системы часто считаются примерами анти-шаблона .
Примеры
[ редактировать ]Примеры можно увидеть в программном обеспечении на основе плагинов, таком как некоторые текстовые редакторы и веб-браузеры , в которых разработчики часто создают плагины, воссоздающие программное обеспечение, которое обычно работает поверх самой операционной системы. Механизм надстроек Firefox использовался для разработки ряда FTP- клиентов и файловых браузеров , которые эффективно копируют некоторые функции операционной системы , хотя и на более ограниченной платформе.
В мире баз данных у разработчиков иногда возникает соблазн обойти СУБД , например, сохранив все в одной большой таблице с тремя столбцами , помеченными идентификатором объекта, ключом и значением. Хотя эта модель «сущность-атрибут-значение» позволяет разработчику выйти за рамки структуры, навязанной базой данных SQL , она теряет все преимущества: [ 1 ] поскольку вся работа, которую могла бы эффективно выполнить СУБД, вместо этого переносится на приложение. Запросы становятся гораздо более запутанными, [ 2 ] индексы больше не и оптимизатор запросов могут работать эффективно, а ограничения достоверности данных не применяются. Производительность и ремонтопригодность могут быть крайне низкими.
Подобный искушение существует и для XML , где разработчики иногда предпочитают общие имена элементов и используют атрибуты для хранения значимой информации. Например, каждый элемент может называться item и иметь атрибуты type и value . Эта практика требует объединения нескольких атрибутов для извлечения значения. В результате выражения XPath становятся более запутанными, вычисления менее эффективными, а структурная проверка дает мало пользы.
Эффект
[ редактировать ]Разработчики программного обеспечения обычно создают библиотеку пользовательских функций, относящихся к их конкретному проекту. Эффект внутренней платформы возникает, когда эта библиотека расширяется за счет включения функций общего назначения, которые дублируют функциональность, уже доступную как часть языка программирования или платформы. Поскольку каждая из этих новых функций обычно вызывает несколько исходных функций, они, как правило, работают медленнее, а при плохом кодировании — менее надежны. [ нужна ссылка ]
С другой стороны, такие функции часто создаются для предоставления более простого (и часто более переносимого) уровня абстракции поверх сервисов более низкого уровня, которые либо имеют неудобный интерфейс, либо слишком сложны, непереносимы или недостаточно переносимы, либо просто плохо работают. соответствует коду приложения более высокого уровня.
Надлежащее использование
[ редактировать ]Внутренняя платформа может быть полезна по причинам переносимости и разделения привилегий — другими словами, чтобы одно и то же приложение могло работать на самых разных внешних платформах, не влияя ни на что за пределами « песочницы» , управляемой внутренней платформой. Например, компания Sun Microsystems разработала платформу Java для достижения обеих этих целей.
См. также
[ редактировать ]- Сквозной принцип
- Десятое правило Гринспена
- Закон Конвея
- Здесь не придумали
- Обычный старый объект Java
- Эффект второй системы
- Закон оболочки программного обеспечения Завинского.
Ссылки
[ редактировать ]- ^ Селко, Джо (1 февраля 2011 г.). «Справочные таблицы в SQL» . Архивировано из оригинала 23 сентября 2016 года . Проверено 25 апреля 2016 г.
- ^ Петерсон, Дон (8 сентября 2004 г.). «Безумие по справочной таблице» . Проверено 1 мая 2023 г.
Внешние ссылки
[ редактировать ]- Исходное определение и пример
- Пример: механизм корпоративных правил
- Пример: я думаю, что назову их «транзакциями».
- Антипаттерны: рефакторинг программного обеспечения, архитектуры и проектов в условиях кризиса Уильям Дж. Браун и др.