KISS — «Keep it simple, stupid» — «Делай проще, тупица»! Очень важный принцип. И с одной стороны, кажется, кто же будет усложнять себе жизнь? На практике многие новички, да и программисты-профессионалы этим страдают
Почему программисты усложняют?
Новички часто просто не разбираются в вопросе и у них свой, дилетантский взгляд на то, что просто а что сложно. Например, для кого-то очень сложно поначалу использовать методы строк и массивов/списков в языках вроде Python или JavaScript. Многие простые и удобные инструменты в программировании кажутся, пока их не понял, очень сложными.
Так же любой программист может быть фанатом какой-то концепции или какого-то набора и тащить его в любой проект и пытаться максимально использовать. Новички при этом, как и во многих других профессиях, часто считают, что профессионалы используют сложные и навороченные способы разрешить проблему или выполнить поставленную задачу. А это не так. Профессионал любит экономить своё время. Поэтому если можно решить задачу простым путём, то профессионал решит её простым путём.
Очень нужная вещь во многих направлениях — объекты, классы, и шаблоны проектирования (как эти объекты и классы использовать). Код одной и той же программы с помощью них можно сделать как очень простым понятным, так и огромным и перегруженным.
Как следовать принципу KISS?
Используйте декомпозицию — разделяйте сложные элементы на более простые составляющие. Кстати, принцип DRY тоже несколько про это.
Вам нужны пара функций из огромной библиотеки? Не стоит подключать её всю целиком для этого. Можно найти библиотеку поменьше. В Python можно импортировать из библиотеки только то, что вам реально нужно.
Объекты и классы — не переусердствуйте с ними, уровень абстракции можно увеличивать бесконечно, но зачем?
Абсолютная точность, детализация, чёткость и вылизанность в проекте нужны не всегда. Не все же программируют медицинское оборудование, например, или самолёты? Делайте только в нужном объёме.
Не добавляйте в проект что-то на всякий случай. Даже если вы программируете что-то для атомной электростанции, вам скорее всего дадут информацию о том, что нужно а что нет. А так вы только увеличите сложность проекта и вероятность ошибиться.
Пара историй не из программирования
Для иллюстрации принципа совсем новичкам расскажу историю и притчу.
Мы как-то сидели у костра и обсуждали группу Ария. Какое-то время назад они начали использовать для пения тональности немного-ниже стандартных. На практике это значит, что надо или постоянно использовать аккорды с баррэ. Или просто немного по-другому настраивать гитары и бас.
Меня убеждали, что в группе Ария играют профессионалы(это так) и они не перенастраивают гитары. Однако на Ютубе можно найти интервью, как сами музыканты рассказывают, что они настраивают гитары чуть-чуть ниже. Это и удобнее и петь проще и гитары звучат «помясистее».
А притча же — притча про один удар. Однажды пожилой мастер боевых искусств принял вызов от более молодого мастера. И раз за разом пожилой мастер валил противника на землю одним и тем же ударом. Более молодой мастер ничего не мог с этим сделать.
Когда пожилого мастера спросили, он объяснил, что лучше идеально знать один удар, чем тысячу разных, но не очень хорошо. Тем более, что он показал на практике, что это работает.
Что важно не забывать
Принципы на то и принципы, а не законы, что иногда от них имеет смысл отходить. Принципов программирования несколько, и все их соблюсти в одном проекте не получается, так как они друг другу противоречат. Так что не переупрощайте, а иногда, если усложнить действительно нужно, то усложняйте.
Подытожим
Программирование — очень сложная штука сама по себе, так что не нужно её дополнительно усложнять. Поэтому старайтесь решать поставленные перед вами, как программистом, задачи простыми способами. Усложняя код, вы усложняете жизнь не только себе, но и другим людям.
Ссылочки на меня:
Репетитор для детей: https://vrom1990.ru/repetitor_child/
Репетитор программирования для взрослых: https://vrom1990.ru/grown-repetitor/
https://blog.vrom1990.ru
https://zen.yandex.ru/id/vrom1990
https://t.me/vrom1990pb https://pikabu.ru/@vrom1990
https://archive.org/details/python-tupyh
https://vk.com/vrom1990pb
https://www.youtube.com/c/ВячеславРоманьков
ДЛЯ ДОНАТОВ
https://yoomoney.ru/to/410012316866358 https://donate.stream/ya410012316866358
или на карту 5599 0020 1940 9582