Русская Википедия:KISS (принцип)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Другие значения

Файл:Keep it Simple.jpg
Надпись «Keep it Simple»

KISS (акроним для «Keep it simple, stupid» — «Делай проще, тупица») — принцип проектирования, принятый в ВМС США в 1960 году[1][2].

Впервые частично встречается в американском английском по крайней мере в 1938 году. Принцип KISS утверждает, что большинство систем работают лучше всего, если они остаются простыми, а не усложняются. Поэтому в области проектирования простота должна быть одной из ключевых целей и следует избегать ненужной сложности. Фраза ассоциировалась с авиаконструктором Кларенсом Джонсоном (1910—1990)[3]. В 1970-х годах широко использовался термин «KISS-принцип» (Шаблон:Lang-en)[4]. Вариации на фразу включают (обычно как эвфемизм для более грубого «stupid»): «Шаблон:Lang-en2», «Шаблон:Lang-en2», «Шаблон:Lang-en2», «Шаблон:Lang-en2», «Шаблон:Lang-en2»[5], «Шаблон:Lang-en2»[6], «Шаблон:Lang-en2», «Шаблон:Lang-en2», «Шаблон:Lang-en2»[7], «Шаблон:Lang-en2» и «Шаблон:Lang-en2».

Происхождение

По имеющимся сообщениям, акроним был придуман Кларенсом Джонсоном, ведущим инженером Lockheed Skunk Works (создатели Lockheed U-2, SR-71 Blackbird и многих других самолётов)[3].

В то время как уже несколько десятилетий популярно использование расшифровки «Keep it simple, stupid», Джонсон расшифровал KISS как «Keep it simple stupid» (без запятой), и эта трактовка до сих пор используется многими авторами[8] (в английском языке, в отличие от русского, запятая используется для обособления (выделения) обращения достаточно редко). В ней не было никакого скрытого смысла, что инженер был глуп; как раз наоборот[3].

Этот принцип лучше всего иллюстрируется историей, когда Джонсон вручил команде инженеров-авиаконструкторов набор инструментов, поставив им условие: механик среднего уровня должен суметь отремонтировать реактивный самолёт, который они проектировали, в полевых условиях только с этими инструментами. Таким образом, «stupid» относится к отношению между тем, что всё ломается, и сложностью необходимого для этого ремонта.

Акроним часто используется в ВВС США и в области разработки программного обеспечения.

Варианты

Принцип, скорее всего, происходит от похожих концепций, таких как:

Машины Робинсона и машина Голдберга, имеющие намеренно чрезмерно усложнённые решения для простых задач или проблем, — юмористические примеры «не-KISS» решений.

«Keep it simple and straightforward» — используемый в маркетинге вариант[5].

Использование

В анимационных фильмах

Аниматор Ричард Уильямс объясняет принцип KISS в своей книге The Animator’s Survival Kit, и девятка диснеевских стариков также пишут об этом в «The Illusion of Life: Disney Animation». Проблема в том, что неопытные аниматоры «чрезмерно одушевляют» в своих работах, то есть персонаж может двигаться слишком много и делать слишком много. Уильямс призывает аниматоров следовать «KISS».

В разработке ПО

Принцип, запрещающий использование более сложных средств, чем необходимо[10]. Изречение, часто вызываемое при обсуждении вопросов проектирования с целью парирования нарастающей функциональности и управления сложностью разработки. Возможно, связано с изречением Шаблон:Lang-en2[11]. Принцип декларирует простоту системы в качестве основной цели и/или ценности.

Шаблон:Начало цитаты

  • Разбивайте задачи на подзадачи, написание кода для решения которых не должно, по вашему мнению, длиться более 4—12 часов.
  • Разбивайте задачу на множество более маленьких задач, каждая задача должна решаться одним или парой классов.
  • Делайте ваши методы маленькими. Каждый метод должен состоять не более чем из 30—40 строк. Каждый метод должен решать одну маленькую задачу, а не множество случаев. Если в вашем методе множество условий, разбейте его на несколько. Это повысит читаемость, позволит легче поддерживать код и быстрее находить ошибки в нём. Вы полюбите улучшать код.
  • Делайте ваши классы маленькими. Здесь применяется та же техника, что и с методами.
  • Сначала придумайте решение задачи, потом напишите код. Никогда не поступайте иначе. Многие разработчики придумывают решение задачи во время написания кода, и в этом нет ничего плохого. Вы можете делать так и при этом придерживаться правила, обозначенного выше. Если вы можете в уме разбивать задачу на более мелкие части, когда вы пишете код, делайте это любыми способами. И не бойтесь переписывать код ещё, ещё и ещё… В счёт не идёт число строк, до тех пор пока вы считаете, что можно ещё меньше/ещё лучше.
  • Не бойтесь избавляться от кода. Изменение старого кода и написание нового решения — два важных момента. Если вы столкнулись с новыми требованиями или не были оповещены о них ранее, тогда порой лучше придумать новое, более изящное решение, решающее и старые, и новые задачи.

Шаблон:Конец цитаты

См. также

Примечания

Шаблон:Примечания

Комментарии

Шаблон:Комментарии

Ссылки

Внешние ссылки

  1. Ошибка цитирования Неверный тег <ref>; для сносок TDal не указан текст
  2. Ошибка цитирования Неверный тег <ref>; для сносок EPar не указан текст
  3. 3,0 3,1 3,2 Ошибка цитирования Неверный тег <ref>; для сносок BRich не указан текст
  4. Ошибка цитирования Неверный тег <ref>; для сносок Pit не указан текст
  5. 5,0 5,1 Шаблон:Cite web
  6. Шаблон:Cite web
  7. Sunday Post-Crescent (Appleton, WI) 4 ноября, 1973.
  8. Ram B. Misra (2004), «Global IT Outsourcing: Metrics for Success of All Parties», Journal of Information Technology Cases and Applications, volume 6 issue 3, page 21. Online version Шаблон:Wayback. Retrieved 2009-12-19.
  9. Шаблон:Cite web
  10. Шаблон:Книга
  11. Шаблон:Cite web
  12. Шаблон:Книга

Шаблон:Выбор языка