Сегодня хотим поговорить про принцип KISS. Что это такое, зачем он нам нужен и нужен ли, и как мы можем его использовать при разработки проекта.



Этот принцип был разработан ВМС США в 1960 году и его автором считают авиаконструктора Кларена Джонсона. KISS утверждает, что большинство систем работают лучше всего, если они остаются простыми, а не усложняются.



Поэтому в проектировании простота должна быть одной из ключевых целей, следует избегать ненужной сложности.



Существует два варианта расшифровки аббревиатуры: «keep it simple, stupid» и более корректный «keep it short and simple».



Как это использовать...



👉 Не разрабатывайте дополнительные функции, которых нет в ТЗ проекта.

Нет смысла реализовывать дополнительные функции, которые не будут использоваться или их использование маловероятно. Большинству пользователей достаточно базового функционала, а усложнение только вредит удобству приложения.



👉 Не пытайтесь предусмотреть всё.

Бессмысленно разрабатывать сложную бизнес-логику, которая учитывает абсолютно все возможные варианты поведения системы и пользователя. Это просто невозможно или очень усложняет проект, делая его сложным для последующей поддержки и расширения.



👉 Не подключайте стороннюю библиотеку, если вам от неё нужно только пара функций.

Для примера возьмём популярную библиотеку Lodash. Не нужно делать так import _ from "lodash". Возьмите только то, что вам нужно на проекте. Например, так import isEmpty from "lodash/isEmpty"



👉 Декомпозиция.

Разбивайте что-то сложное на простые составляющие — это архитектурно верный подход. Тут принцип KISS перекликается с DRY. Если нужно рассказать подробнее про DRY — дайте нам знать в комментариях.



Большая часть программ или приложений необоснованно перегружены практически ненужными функциями. Это ухудшает удобство их использование пользователями, а также усложняет их поддержку и развитие разработчиками.



Следование принципу «KISS» позволяет разрабатывать решения, которые просты в использовании, в сопровождении, и которые удобны для использования пользователями.