Принцип создания хороших решений - KISS

  Рет қаралды 21,777

S0ER

S0ER

2 жыл бұрын

#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - t.me/softwareengineervlog
Спонсорство - donate.s0er.ru
Сайт платным контентом - soer.pro
Зеркало для видео Дзен Видео - zen.yandex.ru/id/5f578bdf22e2...
GitHub - github.com/soerdev
Чат для программистов - / discord
Группа ВК - codeartblog

Пікірлер: 38
@S0ERDEVS
@S0ERDEVS 2 жыл бұрын
Telegram - t.me/softwareengineervlog
@nekitak3472
@nekitak3472 2 жыл бұрын
На счёт понимания простых вещей только с соотв. опытом - полностью согласен. Как по мне, кис идеален на старте. Когда мы пишем какой-нибудь бойлерплэйт для решения проблемы, лучше всего писать его с минимальным количеством примочек, в лоб, как говорится. Да, потом придется рефакторить, да говнокод, но зато его понимать будут +- все, и рефакторя мы сможем переосмыслить уже написанное, более осознанно выбрать куда рефакторить, и сама задача в голове будет более завершенной. Ведь если задуматься, то самыми простыми вариантами кода всегда были начальные бойлерплэйты, а уже потом мы накидываем и абстракций, и примочек какого-нибудь фреймворка, и т.д. )
@user-my5nw2kg6l
@user-my5nw2kg6l Жыл бұрын
Спасибо большое за доходчевое объяснение данной темы!)
@-unity-
@-unity- Жыл бұрын
Редко смотрю ролики блогеров-программистов. Потому что, как правило, эти блогеры очень агрессивны. Они постоянно всем недовольны, их речь полна оскорблений всех вокруг, а порой даже и откровенного мата. Удивительно, что у таких блогеров ещё и куча подписчиков. И тут мне попадается уже второй ролик Соера, и мне начинает нравиться этот человек! Во-первых, он говорит достаточно мягко и ненавязчиво, чем располагает к себе. Во-вторых, даже в таких казалось бы простых темах он поднимает философские вопросы. В-третьих, он высказывает мудрые мысли, которые можно применить не только в рамках программирования, но и в остальной жизни. В целом - заслуженный лайк!
@alexeyaleksandrov
@alexeyaleksandrov 2 жыл бұрын
Сделал большое видео, а потом сказал в конце - забудьте все что я сказал. Это и есть KISS. Самое понятное объяснение)))
@user-yr3gb9bh4k
@user-yr3gb9bh4k 2 жыл бұрын
Спасибо вам за контент.
@user-iy7nj4is4n
@user-iy7nj4is4n 18 күн бұрын
Спасибо большое , полностью согласен что нету панацеи от всех бед .
@user-cx1vt1kp1j
@user-cx1vt1kp1j 2 жыл бұрын
Всё гениальное просто! =)
@pavel-orlov
@pavel-orlov 2 жыл бұрын
Вся неоднозначность толкования KISS в dev-сообществе связана с самим термином "простота". Это крайне субъективный критерий оценки, который каждый понимает по-своему. Поэтому и приходится часто объяснять, что имеется в виду. Если же разобраться, то принцип изначально гласит, что не стоит реализовывать то, для чего нет разумного обоснования в текущем контексте (и это более широко, чем просто YAGNI). Частенько нарушения KISS проявляются в желании повысить уровень абстракции там, где это не требуется, подключения огромных библиотек для использования одной неосновной фичи из них, нарушения YAGNI и т.п. Кстати, правильная архитектурная декомпозиция тоже следует KISS. Сложность для новичка тут скорее в том, что без соответствующего опыта изначальная оценка возможных вариантов реализации неверна. При этом каждый раз, вспоминая про KISS, стоит помнить про расширяемость добавленного функционала, а то для некотрых KISS может превратиться в хардкод всего и вся. За свои 12 лет в коммерческой разработке постоянно встречаю тех, кто KISS понимает буквально: к примеру, пишет код так, как первая мысль в голову придет, ищет наиболее тупой вариант "в лоб" и т.п. Мидлы частенько лепят абстракции там, где это не нужно (к примеру, в c#/java хреначат везде дженерики по причине "а вдруг пригодится").
@stanislavsh6582
@stanislavsh6582 2 жыл бұрын
Частично согласен. Но как по мне - изначально подразумевалось не то, а про то что интерфейс/модуль который ты реализуешь - должен быть простым в понимании и конфигурировании. Иначе чем это от YAGNI-то отличается? Просто в контексте простых и понятных модулей/интерфейсов оно ложится нормально. На примере из жизни. Вот кто с криптографией работал на джаве или шарпе - поймет, там ты столько шагов должен проделать, чтобы банально по AES'у зашифровать строку: сертификаты, секретные ключи, причем в определенном формате, да, нужно еще чтобы нужная библиотечка где-то была, о, еще и какие-то провайдеры зарегистрируй и все такое, в результате, а обычному пользователю модуля хотелось: Aes.Encode(string text, byte[] key), Aes.Decode(string ciphered, byte[] key). В результате 95% случаев - ты для криптографии - пишешь свой враппер который как раз это все оборачивает. И с точки зрения YAGNI - не ложится, ведь зачем тебе эта обертка сдалась, если можно все эти шаги проделать не плодя сущности, но со стороны делать модули простыми - ты спрятал сложность по конфигурированию от пользователя модуля и как раз получил KISS. Может быть я не прав. Но всегда именно так воспринимал: делай так, чтобы дальше с твоим кодом легко было работать и не нужно было сотни ритуалов проделывать, чтобы получить то что от тебя хотят.
@vic7871
@vic7871 2 жыл бұрын
Спасибо!
@jankaban2871
@jankaban2871 2 жыл бұрын
вот здесь не согласен, KISS для каждого свой, для меня это как раз про велосипеды про MVP, про то что нужно избавляться от зависимостей, пользоваться готовым это совсем не просто! качество сторонних библиотек часто очень низкое, когда ты понимаешь что то что ты использовал под капотом сделано через опу и ты начинаешь допиливать чужой код это совсем не KISS, а пользоваться и так сойдет это как раз про второй перевод где про тупых ))) ... нет ничего труднее того чтобы сделать все просто, то что нужен опыт здесь да согласен на все 100%
@Mr43046721
@Mr43046721 2 жыл бұрын
Нет, KISS это когда программируешь слушая одноименную рок-группу. Вот именно это действие приводит к хорошему результату.
@soltaurus
@soltaurus 2 жыл бұрын
Хорошее видео
@artemlobanchikov2270
@artemlobanchikov2270 2 жыл бұрын
Соер, я с видео Что делает браузер, чтобы загрузить Веб-страницу?, ты там сказал в конце что запишешь видео Как работает браузер. Я только благодаря твоему ролику построил хорошую модель. Запиши пожалуйста видос про браузер ) Буду очень очень благодарен
@persim2203
@persim2203 2 жыл бұрын
Говори сразу на какой минуте будет ответ, чтоб время зря не тратить. А то искать неудобно.
@yarmiksyarmiks9543
@yarmiksyarmiks9543 2 жыл бұрын
обычно кисс, это решение после нескольких кругов рефакторинга, обдумывания и оптимизаций. а не сходу как привыкли разработчики. часто методом кисс оправдывают нежелания сделать больше, чем надо в задаче, с чего всегда удивляюсь. свел бы метод к код максимально обдуман и кажется наилучшим вариантом на данный момент
@alexlightweight
@alexlightweight 2 жыл бұрын
Наконец то вспомнили про KISS, а то достали эти умники с 150 этажными архитектурами и 1000 слоев абстракций ! Потом сами же страдают от своих "умных" архитектур и решений.
@arseniy.k8895
@arseniy.k8895 2 жыл бұрын
🧑‍🎓🧑‍🎓🧑‍🎓🧑‍🎓🧑‍🎓
@romankocherezhchenko34
@romankocherezhchenko34 2 жыл бұрын
У меня ник в бравле - kiss
@uranproject
@uranproject 2 жыл бұрын
всегда думал что KISS - keep it stupid simple. если добавить DRY, то получится SOLID =)
@skynowa2626
@skynowa2626 2 жыл бұрын
Зачем я это смотрю?
@oeaoo
@oeaoo 2 жыл бұрын
KISS и оптимизация? Камон. Притянуто за уши. Это про не переусложнение.
@jankaban2871
@jankaban2871 2 жыл бұрын
KISS это философия больше и основная идея это как раз оптимизация: оптимизация времени, производительности, сложности и т.д.
@oeaoo
@oeaoo 2 жыл бұрын
@@jankaban2871 оптимизация - это не только про сложность. Короче, снова мимо, как и у автора видео.
@jankaban2871
@jankaban2871 2 жыл бұрын
@@oeaoo причем здесь сложность, точнее почему только сложность, ты сначала научись читать не мимо потом умничай уже...
@oeaoo
@oeaoo 2 жыл бұрын
@@jankaban2871 S - simple, идея в избегании привнесения избыточности (сложности).
@jankaban2871
@jankaban2871 2 жыл бұрын
@@oeaoo Keep It Simple, Stupid, я разве спорил что S - это simple? раз сказал А давай разберемся что по твоему сложность, например при проектировании можно внести не нужную сложность? или при нехватке времени сбалансировать приложение до минимального MVP это KISS или нет? и как это противоречит тому что я написал? я вроде как написал что основная идея это оптимизация, объясни мне разницу между оптимальным решением на любом этапе разработки, и избегания привнесения избыточности?
@vadimp4012
@vadimp4012 Жыл бұрын
Всё же непонятно, зачем в задаче про сложение - дополнительная абстракция. Нам чётко была поставлена задача: сложить 5 и 6. Ни про какие абстракции и работе с другими слагаемыми сказано не было. Понятно, что пример несколько утрированный, но именно на нём и продемонстрировано прекрасно не то, чтобы непонимание, но додумывание (некорректная интерпретация, скажем так) задачи и то, чего совершенно не требовалось. Можно продолжить мысль: а автор уверен, что другие слагаемые (кроме 5 и 6) - корректные? Представьте, что на вход была передана некорректная пара, например, 5 и 7, и вот, ваша функция выдала совершенно неверный результат. Перед тем, как реализовывать подобный функционал, неплохо было бы уточнить, например, у аналитика, ожидаем ли мы другие слагаемые и будут ли они корректны. Мне кажется, автор очень сильно перемудрил в очень просто задаче, где просто требовалось сложить 5 и 6.
@stanislavsh6582
@stanislavsh6582 2 жыл бұрын
В общем, я наверное глупенький. Всегда воспринимал KISS как подход при котором твоим классом-модулем клиент может пользоваться без лишних церемоний. Допустим, вот человек хочет поднять HTTP-сервер для своих нужд. Если ему чтобы это сделать - нужно кучу кофигурации сконфигурировать, настроить размеры буффера, частоту проверки живости соединений, прости господи, свой парсер HTTP написать и множество других танцев совершить, прежде чем он увидит первый 200 OK в браузере и начнет писать код - это не кисс. Если человек пишет: HttpServer.LogErrors(MyErrorLogger); HttpServer.UseHandlers(MyHandlersCollection); HttpServer.Listen(80) HttpServer.Start(); Это скорее кисс. А то что там под капотом - стримы свои, алокаторы, кодеки, абстрактные фабрики, дергание апи ОС, парсеры протокола, механизм сессий, куки - это не так важно, пока то что там написано - выполняет свои функции в соответствии с тем что нужно потребителю модуля.
@KonstantinPrydnikov1
@KonstantinPrydnikov1 2 жыл бұрын
Ничего себе Кисс. Кисс в поднимании сервера - это нажать кнопку "поднять сервер", а система считывает твои предпочтения языки, ось и поднимает сервер. А кнопка может может быть хоть в смартфоне, хоть на чайнике. Вот это - Кисс. Самые близкие примеры- это saap-ы хероки и амазоны всякие. Следующий шаг, чтобы такие системы предлагали и реализовывали решения возникающих проблем, а не в логи падения записывали
Schoolboy - Часть 2
00:12
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 12 МЛН
Fast and Furious: New Zealand 🚗
00:29
How Ridiculous
Рет қаралды 46 МЛН
لااا! هذه البرتقالة مزعجة جدًا #قصير
00:15
One More Arabic
Рет қаралды 40 МЛН
Son ❤️ #shorts by Leisi Show
00:41
Leisi Show
Рет қаралды 9 МЛН
Разбираюсь в API крутых команд
28:01
С нуля до джуна за пять шагов
19:59
JWT токены: формирование payload
13:54
Schoolboy - Часть 2
00:12
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 12 МЛН