HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>16 фев 2021</li>
2 <ul><li>16 фев 2021</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Программисты не любят сложный код и придумывают правила, чтобы сделать его проще. Разбираемся, что это за правила и как их соблюдать.</p>
4 </ul><p>Программисты не любят сложный код и придумывают правила, чтобы сделать его проще. Разбираемся, что это за правила и как их соблюдать.</p>
5 <p> vlada_maestro / shutterstock</p>
5 <p> vlada_maestro / shutterstock</p>
6 <p>Автор статей о программировании. Изучает Python, разбирает сложные термины и объясняет их на пальцах новичкам. Если что-то непонятно - возможно, вы ещё не прочли его следующую публикацию.</p>
6 <p>Автор статей о программировании. Изучает Python, разбирает сложные термины и объясняет их на пальцах новичкам. Если что-то непонятно - возможно, вы ещё не прочли его следующую публикацию.</p>
7 <p>Ситуация: разработчик не понял задачу, запутался в коде и сорвал дедлайн проекта. Такое может случиться по разным причинам, но часто проблемы возникают из-за нарушения принципа KISS. Разберёмся, что это значит.</p>
7 <p>Ситуация: разработчик не понял задачу, запутался в коде и сорвал дедлайн проекта. Такое может случиться по разным причинам, но часто проблемы возникают из-за нарушения принципа KISS. Разберёмся, что это значит.</p>
8 <p>Принцип KISS - это когда вы берёте задачу и решаете её простым способом:</p>
8 <p>Принцип KISS - это когда вы берёте задачу и решаете её простым способом:</p>
9 <ul><li>Не подключаете всю библиотеку, если нужна всего пара функций.</li>
9 <ul><li>Не подключаете всю библиотеку, если нужна всего пара функций.</li>
10 <li>Не закладываете избыточные функции, если о них не просил заказчик.</li>
10 <li>Не закладываете избыточные функции, если о них не просил заказчик.</li>
11 <li>Не используете избыточные классы и методы.</li>
11 <li>Не используете избыточные классы и методы.</li>
12 <li>Не перегружаете интерфейс и не делаете сложную бизнес-логику.</li>
12 <li>Не перегружаете интерфейс и не делаете сложную бизнес-логику.</li>
13 <li>Не выполняете другие действия, если они не влияют на работу проекта.</li>
13 <li>Не выполняете другие действия, если они не влияют на работу проекта.</li>
14 </ul><p>Когда вы не делаете лишнего, появляются простой понятный код и надёжная программа, которая решает проблему заказчика.</p>
14 </ul><p>Когда вы не делаете лишнего, появляются простой понятный код и надёжная программа, которая решает проблему заказчика.</p>
15 <p>Аббревиатура KISS расшифровывается "keep it short and simple" - "делай кратко и просто". Её придумал авиаконструктор Кларенс Джонсон незадолго до Второй мировой. Он требовал от своих инженеров простых чертежей и инструкций - было важно, чтобы по этим документам фронтовые авиамеханики смогли самостоятельно разобраться с большинством повреждений и починить самолёт.</p>
15 <p>Аббревиатура KISS расшифровывается "keep it short and simple" - "делай кратко и просто". Её придумал авиаконструктор Кларенс Джонсон незадолго до Второй мировой. Он требовал от своих инженеров простых чертежей и инструкций - было важно, чтобы по этим документам фронтовые авиамеханики смогли самостоятельно разобраться с большинством повреждений и починить самолёт.</p>
16 <p>Для этого инженерам пришлось отбросить сложную терминологию и писать настолько просто, насколько это было возможно. Позже принцип KISS перекочевал в проектную документацию ВМС США, распространился на разные сферы, а теперь стал неотъемлемой частью программирования.</p>
16 <p>Для этого инженерам пришлось отбросить сложную терминологию и писать настолько просто, насколько это было возможно. Позже принцип KISS перекочевал в проектную документацию ВМС США, распространился на разные сферы, а теперь стал неотъемлемой частью программирования.</p>
17 Принцип KISS: если что-то можно сделать проще - так и делайте. Мы говорим о коде, но это годится в любой другой области<p>Часто программисты измеряют свой успех не качеством готового приложения, а числом строк кода - смотрят на объём проделанной работы. Если программа получается короткой - автор чувствует неудовлетворённость и забывает о времени, которое потратил на изучение, алгоритмы и тестирование.</p>
17 Принцип KISS: если что-то можно сделать проще - так и делайте. Мы говорим о коде, но это годится в любой другой области<p>Часто программисты измеряют свой успех не качеством готового приложения, а числом строк кода - смотрят на объём проделанной работы. Если программа получается короткой - автор чувствует неудовлетворённость и забывает о времени, которое потратил на изучение, алгоритмы и тестирование.</p>
18 <p>Если использовать принцип KISS, внимание переносится с рабочего процесса на результат. Когда программа работает и справляется с поставленной задачей, неважно, сколько в ней строчек.</p>
18 <p>Если использовать принцип KISS, внимание переносится с рабочего процесса на результат. Когда программа работает и справляется с поставленной задачей, неважно, сколько в ней строчек.</p>
19 <p>Если ты принимаешь это для себя, то начинаешь пользоваться простыми решениями, которых раньше избегал. Так появляется качественный компактный код, который удобно обслуживать. Если не принимаешь - скорее всего, просто не хочешь делать работу, смысл которой тебе не очень понятен.</p>
19 <p>Если ты принимаешь это для себя, то начинаешь пользоваться простыми решениями, которых раньше избегал. Так появляется качественный компактный код, который удобно обслуживать. Если не принимаешь - скорее всего, просто не хочешь делать работу, смысл которой тебе не очень понятен.</p>
20 <p>Каждый выбирает, что ему больше подходит. Например:</p>
20 <p>Каждый выбирает, что ему больше подходит. Например:</p>
21 <p>❌ Написать код, и все сразу увидят, какой я крутой разработчик и сколько знаю. Не зря же я оканчивал курсы по программированию и решал задачки.</p>
21 <p>❌ Написать код, и все сразу увидят, какой я крутой разработчик и сколько знаю. Не зря же я оканчивал курсы по программированию и решал задачки.</p>
22 <p>❌ Я уже сеньор, и мой код должен чем-то отличаться от кода джуна. Не могу же я написать обычную программу, с которой справится каждый стажёр.</p>
22 <p>❌ Я уже сеньор, и мой код должен чем-то отличаться от кода джуна. Не могу же я написать обычную программу, с которой справится каждый стажёр.</p>
23 <p>✅ Написать код, который решит поставленную задачу и будет понятен другим разработчикам. Вдруг я заболею - надо же, чтобы его кто-то обслуживал.</p>
23 <p>✅ Написать код, который решит поставленную задачу и будет понятен другим разработчикам. Вдруг я заболею - надо же, чтобы его кто-то обслуживал.</p>
24 <p><strong>Шаг 1.</strong>Выучите общепринятые стандарты своего языка программирования. Например, для Python это<a>руководство по стилю PEP 8</a> - без базовых знаний вы не сможете создавать простой код, понятный всем участникам команды.</p>
24 <p><strong>Шаг 1.</strong>Выучите общепринятые стандарты своего языка программирования. Например, для Python это<a>руководство по стилю PEP 8</a> - без базовых знаний вы не сможете создавать простой код, понятный всем участникам команды.</p>
25 Так оформляют отступы в Python по стандарту PEP 8. Похожие стандарты есть для каждого языка программирования<p><strong>Шаг 2.</strong>Научитесь правильно разбираться в задаче: вы должны понимать, при каких условиях работа будет считаться выполненной.</p>
25 Так оформляют отступы в Python по стандарту PEP 8. Похожие стандарты есть для каждого языка программирования<p><strong>Шаг 2.</strong>Научитесь правильно разбираться в задаче: вы должны понимать, при каких условиях работа будет считаться выполненной.</p>
26 <p>Например, тема этой статьи - принцип KISS в программировании. Пишем её для новичков, поэтому важно ответить всего на три вопроса: что такое принцип KISS, зачем он нужен и как им пользоваться при написании кода. Если в тексте с этим всё понятно - работа считается выполненной и можно заканчивать.</p>
26 <p>Например, тема этой статьи - принцип KISS в программировании. Пишем её для новичков, поэтому важно ответить всего на три вопроса: что такое принцип KISS, зачем он нужен и как им пользоваться при написании кода. Если в тексте с этим всё понятно - работа считается выполненной и можно заканчивать.</p>
27 <p>С программами похожая ситуация: сначала определяем конечную цель, затем составляем список шагов для её достижения, выбираем инструменты и только после этого переходим к работе. Так мы будем знать, что и зачем делать и какую простейшую версию кода использовать для решения задачи.</p>
27 <p>С программами похожая ситуация: сначала определяем конечную цель, затем составляем список шагов для её достижения, выбираем инструменты и только после этого переходим к работе. Так мы будем знать, что и зачем делать и какую простейшую версию кода использовать для решения задачи.</p>
28 <p>Когда будете разбираться в задаче, не поступайте как многие новички: не замыкайтесь в себе и не донимайте коллег чрезмерно.</p>
28 <p>Когда будете разбираться в задаче, не поступайте как многие новички: не замыкайтесь в себе и не донимайте коллег чрезмерно.</p>
29 <p>❌ Новичок не понимает задачу и не обращается к коллегам за помощью: пишет неправильный код, получает много замечаний и постоянно всё переделывает. Это тормозит разработку продукта.</p>
29 <p>❌ Новичок не понимает задачу и не обращается к коллегам за помощью: пишет неправильный код, получает много замечаний и постоянно всё переделывает. Это тормозит разработку продукта.</p>
30 <p>❌ Новичок не пытается разобраться в задаче и сразу обращается за помощью к опытным коллегам - эксплуатирует soft skills и ставит других в положение, когда отказывать неудобно.</p>
30 <p>❌ Новичок не пытается разобраться в задаче и сразу обращается за помощью к опытным коллегам - эксплуатирует soft skills и ставит других в положение, когда отказывать неудобно.</p>
31 <p>✅ Чтобы разобраться в задаче, нужен баланс между hard и soft skills: сначала попробовать справиться самому, отметить проблемные моменты, поискать ответы, составить компактный список непонятных вопросов и уже с ними идти за помощью к коллегам. Программисты - лояльный и дружелюбный народ без предвзятого отношения к джунам. Но человеческий фактор остаётся: никому не хочется быть нянькой, если человек даже не пробовал вникнуть в задачу.</p>
31 <p>✅ Чтобы разобраться в задаче, нужен баланс между hard и soft skills: сначала попробовать справиться самому, отметить проблемные моменты, поискать ответы, составить компактный список непонятных вопросов и уже с ними идти за помощью к коллегам. Программисты - лояльный и дружелюбный народ без предвзятого отношения к джунам. Но человеческий фактор остаётся: никому не хочется быть нянькой, если человек даже не пробовал вникнуть в задачу.</p>
32 <p><strong>Шаг 3.</strong>Проанализируйте готовый проект: нужно понимать, какую функцию выполняет каждый фрагмент кода и как он устроен. Оставьте простой код, а сложный перепишите или отправьте на <a>рефакторинг</a>.</p>
32 <p><strong>Шаг 3.</strong>Проанализируйте готовый проект: нужно понимать, какую функцию выполняет каждый фрагмент кода и как он устроен. Оставьте простой код, а сложный перепишите или отправьте на <a>рефакторинг</a>.</p>
33 Принцип KISS - это код с ясным предназначением и структурой<p>Для анализа подойдёт метод визуального скрининга - когда вы скроллите проект и отмечаете каждый экран своим цветом:</p>
33 Принцип KISS - это код с ясным предназначением и структурой<p>Для анализа подойдёт метод визуального скрининга - когда вы скроллите проект и отмечаете каждый экран своим цветом:</p>
34 <ul><li>если код простой и удобочитаемый - это зелёный экран;</li>
34 <ul><li>если код простой и удобочитаемый - это зелёный экран;</li>
35 <li>есть небольшие проблемы - жёлтый;</li>
35 <li>есть небольшие проблемы - жёлтый;</li>
36 <li>для понимания нужна помощь тимлида или других разработчиков - экран нужно отметить серым цветом;</li>
36 <li>для понимания нужна помощь тимлида или других разработчиков - экран нужно отметить серым цветом;</li>
37 <li>код невозможно прочесть - это красный цвет.</li>
37 <li>код невозможно прочесть - это красный цвет.</li>
38 </ul><p>В любом проекте нужно стремиться к тому, чтобы окрасить большинство экранов в зелёный цвет. Это значит, что код соответствует принципу KISS:</p>
38 </ul><p>В любом проекте нужно стремиться к тому, чтобы окрасить большинство экранов в зелёный цвет. Это значит, что код соответствует принципу KISS:</p>
39 Матрица визуального скрининга<p>Возьмём три проекта, разделим каждый проект на девять экранов и составим цветовую карту - найдём проблемные зоны, где не соблюдается принцип KISS:</p>
39 Матрица визуального скрининга<p>Возьмём три проекта, разделим каждый проект на девять экранов и составим цветовую карту - найдём проблемные зоны, где не соблюдается принцип KISS:</p>
40 <p>А если коротко и по-простому, то нужно запомнить и начать применять на практике три основные вещи:</p>
40 <p>А если коротко и по-простому, то нужно запомнить и начать применять на практике три основные вещи:</p>
41 <ul><li>Принцип KISS - это когда вы делаете просто и только то, что просит заказчик или работодатель.</li>
41 <ul><li>Принцип KISS - это когда вы делаете просто и только то, что просит заказчик или работодатель.</li>
42 <li>Принцип KISS - это когда вы пишете код, который будет понятен другим разработчикам даже через десять лет.</li>
42 <li>Принцип KISS - это когда вы пишете код, который будет понятен другим разработчикам даже через десять лет.</li>
43 <li>Принцип KISS - это когда вы разбираетесь в задаче и чётко понимаете, когда работу можно считать выполненной.</li>
43 <li>Принцип KISS - это когда вы разбираетесь в задаче и чётко понимаете, когда работу можно считать выполненной.</li>
44 </ul><p>Попробуйте - всё получится!</p>
44 </ul><p>Попробуйте - всё получится!</p>
45 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
45 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>