KISS (принцип)

Поделись знанием:
Перейти к: навигация, поиск

KISS (акроним для «Keep it short and simple») — принцип проектирования, принятый в ВМС США в 1960[1][2]. Принцип KISS утверждает, что большинство систем работают лучше всего, если они остаются простыми, а не усложняются. Поэтому в области проектирования простота должна быть одной из ключевых целей и следует избегать ненужной сложности. Фраза ассоциировалась с авиаконструктором Кларенсом Джонсоном (1910—1990)[3]. В 1970-х гг. широко использовался термин «KISS-принцип» (англ. KISS principle)[4]. Вариации на фразу включают «англ. Keep it Simple, Silly», «keep it short and simple», «keep it simple and straightforward»[5] и «keep it small and simple».[6]





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

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

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

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

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

Варианты

Принцип, скорее всего, происходит от похожих концепций, таких как бритва Оккама, «Simplicity is the ultimate sophistication» Леонардо да Винчи, «Less is more» Мис ван дер Роэ, «Make Simple Tasks Simple!» Бьёрна Страуструпа или «It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away» Антуана де Сент-Экзюпери. Колин Чепмен, основатель Lotus Cars, призывал своих дизайнеров «Simplify, then add lightness». Машины Робинсона и машина Голдберга, имеющие намеренно чрезмерно усложненные решения для простых задач или проблем, — юмористические примеры «не-KISS» решений.

Альтернативная точка зрения — «Сделать всё как можно более простым, но не проще» — приписывается Альберту Эйнштейну, хотя это может быть и редакторское изложение своими словами лекции, которую дал Эйнштейн[8].

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

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

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

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

KISS-принцип (от англ. keep it simple, stupid — «делай это проще, дурачок») — принцип, запрещающий использование более сложных средств, чем необходимо[9]. Изречение часто вызываемое при обсуждении вопросов проектирования с целью парирования нарастающей функциональности и управления сложностью разработки. Возможно, связано с изречением Keep It Short and Simple[10]. Принцип декларирует простоту системы в качестве основной цели и/или ценности. Эрик Рэймонд в своей книге резюмирует философию UNIX как широко используемый принцип KISS.[11]

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

— Filip Hanik, Senior Software Engineer в SpringSource Division VMware, Inc. [people.apache.org/~fhanik/kiss.html Полный текст]

См. также

Напишите отзыв о статье "KISS (принцип)"

Ссылки

  • [people.apache.org/~fhanik/kiss.html Kiss Principle]
  • [www.softwaretree.com/v1/KISSPrinciples.html KISS Principles for ORM Products]

Примечания

  1. The Routledge Dictionary of Modern American Slang and Unconventional English, Tom Dalzell, 2009, 1104 pages, p.595, webpage: [books.google.com/books?id=5F-YNZRv-VMC&pg=PA595 BGoogle-5F]: notes U.S. Navy "Project KISS" of 1960, headed by Rear Admiral Paul D. Stroop, Chicago Daily Tribune, p.43, 4 December 1960.
  2. The Concise New Partridge Dictionary of Slang, Eric Partridge, Tom Dalzell, Terry Victor, Psychology Press, 2007, p.384.
  3. 1 2 3 [www.nasonline.org/publications/biographical-memoirs/memoir-pdfs/johnson-clarence.pdf Clarence Leonard (Kelly) Johnson 1910—1990: A Biographical Memoir] (PDF), by Ben R. Rich, 1995, National Academies Press, Washington, DC, p. 13.
  4. Pit & Quarry, Vol. 63, July 1970, p.172, quote: "as in every other step of the development process, follow the KISS principle — Keep It Simple, Stupid."
  5. 1 2 [business.monash.edu/marketing/marketing-dictionary/k Kiss principle definition by MONASH Marketing Dictionary] (18 ноября 1994). Проверено 24 января 2016.
  6. [people.apache.org/~fhanik/kiss.html Kiss Principle].
  7. 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. [web.njit.edu/~jerry/Outsourcing/out-JITCA-6-3-2004-2.pdf Online version]. Retrieved 2009-12-19.
  8. [quoteinvestigator.com/2011/05/13/einstein-simple/#more-2363 Everything Should Be Made as Simple as Possible, But Not Simpler | Quote Investigator]
  9. KISS // Толковый словарь по информатике / Пивняк Г.Г.. — Д.: Нац. горн. ун-т, 2008. — С. 130. — 599 с. — ISBN 978-966-350-087-4.
  10. [dictionary.babylon-software.com/kiss_principle/ Kiss principle] (англ.). Babylon.com. Проверено 25 июля 2010. [www.webcitation.org/65XnGGCIE Архивировано из первоисточника 18 февраля 2012].
  11. Eric Raymond. [www.catb.org/~esr/writings/taoup/html/ch01s07.html The Unix Philosophy in One Lesson] // The Art of Unix Programming. — Addison-Wesley. — ISBN 0-13-142901-9.


Отрывок, характеризующий KISS (принцип)

– Вы какой дивизии? – кричал, подъезжая, адъютант.
– Осьмнадцатой.
– Так зачем же вы здесь? вам давно бы впереди должно быть, теперь до вечера не пройдете.
– Вот распоряжения то дурацкие; сами не знают, что делают, – говорил офицер и отъезжал.
Потом проезжал генерал и сердито не по русски кричал что то.
– Тафа лафа, а что бормочет, ничего не разберешь, – говорил солдат, передразнивая отъехавшего генерала. – Расстрелял бы я их, подлецов!
– В девятом часу велено на месте быть, а мы и половины не прошли. Вот так распоряжения! – повторялось с разных сторон.
И чувство энергии, с которым выступали в дело войска, начало обращаться в досаду и злобу на бестолковые распоряжения и на немцев.
Причина путаницы заключалась в том, что во время движения австрийской кавалерии, шедшей на левом фланге, высшее начальство нашло, что наш центр слишком отдален от правого фланга, и всей кавалерии велено было перейти на правую сторону. Несколько тысяч кавалерии продвигалось перед пехотой, и пехота должна была ждать.
Впереди произошло столкновение между австрийским колонновожатым и русским генералом. Русский генерал кричал, требуя, чтобы остановлена была конница; австриец доказывал, что виноват был не он, а высшее начальство. Войска между тем стояли, скучая и падая духом. После часовой задержки войска двинулись, наконец, дальше и стали спускаться под гору. Туман, расходившийся на горе, только гуще расстилался в низах, куда спустились войска. Впереди, в тумане, раздался один, другой выстрел, сначала нескладно в разных промежутках: тратта… тат, и потом всё складнее и чаще, и завязалось дело над речкою Гольдбахом.
Не рассчитывая встретить внизу над речкою неприятеля и нечаянно в тумане наткнувшись на него, не слыша слова одушевления от высших начальников, с распространившимся по войскам сознанием, что было опоздано, и, главное, в густом тумане не видя ничего впереди и кругом себя, русские лениво и медленно перестреливались с неприятелем, подвигались вперед и опять останавливались, не получая во время приказаний от начальников и адъютантов, которые блудили по туману в незнакомой местности, не находя своих частей войск. Так началось дело для первой, второй и третьей колонны, которые спустились вниз. Четвертая колонна, при которой находился сам Кутузов, стояла на Праценских высотах.
В низах, где началось дело, был всё еще густой туман, наверху прояснело, но всё не видно было ничего из того, что происходило впереди. Были ли все силы неприятеля, как мы предполагали, за десять верст от нас или он был тут, в этой черте тумана, – никто не знал до девятого часа.
Было 9 часов утра. Туман сплошным морем расстилался по низу, но при деревне Шлапанице, на высоте, на которой стоял Наполеон, окруженный своими маршалами, было совершенно светло. Над ним было ясное, голубое небо, и огромный шар солнца, как огромный пустотелый багровый поплавок, колыхался на поверхности молочного моря тумана. Не только все французские войска, но сам Наполеон со штабом находился не по ту сторону ручьев и низов деревень Сокольниц и Шлапаниц, за которыми мы намеревались занять позицию и начать дело, но по сю сторону, так близко от наших войск, что Наполеон простым глазом мог в нашем войске отличать конного от пешего. Наполеон стоял несколько впереди своих маршалов на маленькой серой арабской лошади, в синей шинели, в той самой, в которой он делал итальянскую кампанию. Он молча вглядывался в холмы, которые как бы выступали из моря тумана, и по которым вдалеке двигались русские войска, и прислушивался к звукам стрельбы в лощине. В то время еще худое лицо его не шевелилось ни одним мускулом; блестящие глаза были неподвижно устремлены на одно место. Его предположения оказывались верными. Русские войска частью уже спустились в лощину к прудам и озерам, частью очищали те Праценские высоты, которые он намерен был атаковать и считал ключом позиции. Он видел среди тумана, как в углублении, составляемом двумя горами около деревни Прац, всё по одному направлению к лощинам двигались, блестя штыками, русские колонны и одна за другой скрывались в море тумана. По сведениям, полученным им с вечера, по звукам колес и шагов, слышанным ночью на аванпостах, по беспорядочности движения русских колонн, по всем предположениям он ясно видел, что союзники считали его далеко впереди себя, что колонны, двигавшиеся близ Працена, составляли центр русской армии, и что центр уже достаточно ослаблен для того, чтобы успешно атаковать его. Но он всё еще не начинал дела.
Нынче был для него торжественный день – годовщина его коронования. Перед утром он задремал на несколько часов и здоровый, веселый, свежий, в том счастливом расположении духа, в котором всё кажется возможным и всё удается, сел на лошадь и выехал в поле. Он стоял неподвижно, глядя на виднеющиеся из за тумана высоты, и на холодном лице его был тот особый оттенок самоуверенного, заслуженного счастья, который бывает на лице влюбленного и счастливого мальчика. Маршалы стояли позади его и не смели развлекать его внимание. Он смотрел то на Праценские высоты, то на выплывавшее из тумана солнце.
Когда солнце совершенно вышло из тумана и ослепляющим блеском брызнуло по полям и туману (как будто он только ждал этого для начала дела), он снял перчатку с красивой, белой руки, сделал ею знак маршалам и отдал приказание начинать дело. Маршалы, сопутствуемые адъютантами, поскакали в разные стороны, и через несколько минут быстро двинулись главные силы французской армии к тем Праценским высотам, которые всё более и более очищались русскими войсками, спускавшимися налево в лощину.


В 8 часов Кутузов выехал верхом к Працу, впереди 4 й Милорадовичевской колонны, той, которая должна была занять места колонн Пржебышевского и Ланжерона, спустившихся уже вниз. Он поздоровался с людьми переднего полка и отдал приказание к движению, показывая тем, что он сам намерен был вести эту колонну. Выехав к деревне Прац, он остановился. Князь Андрей, в числе огромного количества лиц, составлявших свиту главнокомандующего, стоял позади его. Князь Андрей чувствовал себя взволнованным, раздраженным и вместе с тем сдержанно спокойным, каким бывает человек при наступлении давно желанной минуты. Он твердо был уверен, что нынче был день его Тулона или его Аркольского моста. Как это случится, он не знал, но он твердо был уверен, что это будет. Местность и положение наших войск были ему известны, насколько они могли быть известны кому нибудь из нашей армии. Его собственный стратегический план, который, очевидно, теперь и думать нечего было привести в исполнение, был им забыт. Теперь, уже входя в план Вейротера, князь Андрей обдумывал могущие произойти случайности и делал новые соображения, такие, в которых могли бы потребоваться его быстрота соображения и решительность.
Налево внизу, в тумане, слышалась перестрелка между невидными войсками. Там, казалось князю Андрею, сосредоточится сражение, там встретится препятствие, и «туда то я буду послан, – думал он, – с бригадой или дивизией, и там то с знаменем в руке я пойду вперед и сломлю всё, что будет предо мной».