В программировании , то правило наименьшего мощности является дизайн принцип «предлагает выбрать наименее мощный [компьютер] язык , подходящий для данной цели». [1] В качестве альтернативы, учитывая выбор между компьютерными языками , классы которых варьируются от описательных (или декларативных ) до процедурных , чем менее процедурный, более описательный язык выбирается, тем больше можно делать с данными, хранящимися на этом языке.
Это правило является применением принципа наименьших привилегий к разработке протокола. [2]
Обоснование
Первоначально предложенный как аксиома хорошего дизайна, этот термин является расширением принципа KISS, применяемого к выбору языков в диапазоне от
- просто описательные (например, содержание большинства баз данных или HTML ),
- логические языки с ограниченной логикой высказываний (например, списки контроля доступа ),
- декларативные языки на грани Тьюринга ,
- те, которые на самом деле являются полными по Тьюрингу, хотя никто не может использовать их таким образом ( XSLT , SQL ),
- те, которые являются функциональными и полными по Тьюрингу языками программирования общего назначения , чтобы
- те, которые «беззастенчиво необходимы ». [1]
Как объяснил Тим Бернерс-Ли : [3]
Компьютерные науки в 1960–80-е годы приложили немало усилий для создания максимально мощных языков. В настоящее время мы должны понимать причины выбора не самого мощного решения, а наименее мощного. Причина этого в том, что чем менее мощный язык, тем больше вы можете делать с данными, хранящимися на этом языке. Если вы напишете его в простой декларативной форме, любой сможет написать программу, чтобы анализировать ее разными способами. Semantic Web является попыткой, в основном, для отображения большого количества существующих данных на общий язык , так что данные могут быть проанализированы таким образом , никогда не снились его создателями. Если, например, на веб-странице с данными о погоде есть RDF, описывающий эти данные, пользователь может получить его в виде таблицы, возможно, усреднить, построить график, вывести что-то из него в сочетании с другой информацией. На другом конце шкалы находится информация о погоде, отображаемая хитрым Java-апплетом. Хотя это может позволить получить очень крутой пользовательский интерфейс, его вообще невозможно проанализировать. Поисковая система, находящая страницу, не будет иметь представления о том, что это за данные или о чем они. Единственный способ узнать, что означает Java-апплет, - это запустить его перед человеком.
Рекомендации
- ^ а б W3C. «Правило наименьшей мощности» . Проверено 24 февраля 2016 .
- ^ Мередит Л. Паттерсон (28 декабря 2011 г.). Наука незащищенности . 28-й Конгресс коммуникаций Хаоса.
- ^ Бернерс-Ли, Тим . «Аксиомы веб-архитектуры» . Проверено 14 января 2002 .
- Правило наименьшей мощности , W3C , вывод TAG 23 февраля 2006 г.
- Б. Карпентер, редактор: "Принципы архитектуры Интернета" Совет по архитектуре Интернета, июнь 1996 г., RFC 1958