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