Kiss Me More
- 1 year ago
- 0
- 0
KISS ( акроним для « Keep it simple, stupid » — «Делай проще, тупица») — принцип проектирования , принятый в ВМС США в 1960 году .
Впервые частично встречается в американском английском по крайней мере в 1938 году. Принцип KISS утверждает, что большинство систем работают лучше всего, если они остаются простыми, а не усложняются. Поэтому в области проектирования простота должна быть одной из ключевых целей и следует избегать ненужной сложности. Фраза ассоциировалась с авиаконструктором Кларенсом Джонсоном (1910—1990) . В 1970-х годах широко использовался термин «KISS-принцип» ( англ. KISS principle ) . Вариации на фразу включают (обычно как эвфемизм для более грубого «stupid»): « keep it super simple », « keep it simple, silly », « keep it short and simple », « keep it short and sweet », « keep it simple and straightforward » , « keep it small and simple » , « keep it simple, soldier », « keep it simple, sailor », « keep it simple, sweetie » , « keep it stupidly simple » и « keep it sweet and simple ».
По имеющимся сообщениям, акроним был придуман Кларенсом Джонсоном, ведущим инженером Lockheed Skunk Works (создатели Lockheed U-2 , SR-71 Blackbird и многих других самолётов) .
В то время как уже несколько десятилетий популярно использование расшифровки «Keep it simple, stupid», Джонсон расшифровал KISS как «Keep it simple stupid» (без запятой), и эта трактовка до сих пор используется многими авторами (в английском языке, в отличие от русского, запятая используется для обособления (выделения) обращения достаточно редко). В ней не было никакого скрытого смысла, что инженер был глуп; как раз наоборот .
Этот принцип лучше всего иллюстрируется историей, когда Джонсон вручил команде инженеров-авиаконструкторов набор инструментов, поставив им условие: механик среднего уровня должен суметь отремонтировать реактивный самолёт, который они проектировали, в полевых условиях только с этими инструментами. Таким образом, «stupid» относится к отношению между тем, что всё ломается, и сложностью необходимого для этого ремонта.
Акроним часто используется в ВВС США и в области разработки программного обеспечения .
Принцип, скорее всего, происходит от похожих концепций, таких как:
Машины Робинсона и машина Голдберга , имеющие намеренно чрезмерно усложнённые решения для простых задач или проблем, — юмористические примеры «не-KISS» решений.
«Keep it simple and straightforward» — используемый в маркетинге вариант .
Аниматор Ричард Уильямс объясняет принцип KISS в своей книге The Animator’s Survival Kit , и девятка диснеевских стариков также пишут об этом в « The Illusion of Life: Disney Animation ». Проблема в том, что неопытные аниматоры «чрезмерно одушевляют» в своих работах, то есть персонаж может двигаться слишком много и делать слишком много. Уильямс призывает аниматоров следовать «KISS».
Принцип, запрещающий использование более сложных средств, чем необходимо . Изречение, часто вызываемое при обсуждении вопросов проектирования с целью парирования нарастающей функциональности и управления сложностью разработки. Возможно, связано с изречением Keep It Short and Simple . Принцип декларирует простоту системы в качестве основной цели и/или ценности.
- Разбивайте задачи на подзадачи, написание кода для решения которых не должно, по вашему мнению, длиться более 4—12 часов.
- Разбивайте задачу на множество более маленьких задач, каждая задача должна решаться одним или парой классов.
- Делайте ваши методы маленькими. Каждый метод должен состоять не более чем из 30—40 строк. Каждый метод должен решать одну маленькую задачу, а не множество случаев. Если в вашем методе множество условий, разбейте его на несколько. Это повысит читаемость, позволит легче поддерживать код и быстрее находить ошибки в нём. Вы полюбите улучшать код.
- Делайте ваши классы маленькими. Здесь применяется та же техника, что и с методами.
- Сначала придумайте решение задачи, потом напишите код. Никогда не поступайте иначе. Многие разработчики придумывают решение задачи во время написания кода, и в этом нет ничего плохого. Вы можете делать так и при этом придерживаться правила, обозначенного выше. Если вы можете в уме разбивать задачу на более мелкие части, когда вы пишете код, делайте это любыми способами. И не бойтесь переписывать код ещё, ещё и ещё… В счёт не идёт число строк, до тех пор пока вы считаете, что можно ещё меньше/ещё лучше.
- Не бойтесь избавляться от кода. Изменение старого кода и написание нового решения — два важных момента. Если вы столкнулись с новыми требованиями или не были оповещены о них ранее, тогда порой лучше придумать новое, более изящное решение, решающее и старые, и новые задачи.
— Filip Hanik, Senior Software Engineer в SpringSource Division VMware, Inc.