#недельный_отчет от команды IRON PROGRAMMER
Вот обновления прошлой недели:
1. Курс "Войти в IT".
— Доработаны 7 лекций и 1 видео.
2. Курс "PRO C#. Основы программирования".
— Обновлены лекции в уроке Минимаксные задачи.
— Отредактированы 6 тестов\задач\лекций. Добавлены подсказки. обновлена информация, исправлены ошибки.
3. Курс "PRO C#. Коллекции"
— Добавлены 3 теста на закрепление лекции в модуле Лист, изменен формат модуля.
— Добавлен 1 тест в модуле Словарь
— Добавлен урок "Базовый уровень задач" в модуле Стек, добавлены 3 задачи
4. Курс "PRO C#. Эволюция языка"
— Исправлена 1 проблемный шаг с низким процентом верных решений.
— Добавлен 1 тест.
5. Курс "PRO C#. Для продвинутых"
— Добавлена 1 лекция
Вот обновления прошлой недели:
1. Курс "Войти в IT".
— Доработаны 7 лекций и 1 видео.
2. Курс "PRO C#. Основы программирования".
— Обновлены лекции в уроке Минимаксные задачи.
— Отредактированы 6 тестов\задач\лекций. Добавлены подсказки. обновлена информация, исправлены ошибки.
3. Курс "PRO C#. Коллекции"
— Добавлены 3 теста на закрепление лекции в модуле Лист, изменен формат модуля.
— Добавлен 1 тест в модуле Словарь
— Добавлен урок "Базовый уровень задач" в модуле Стек, добавлены 3 задачи
4. Курс "PRO C#. Эволюция языка"
— Исправлена 1 проблемный шаг с низким процентом верных решений.
— Добавлен 1 тест.
5. Курс "PRO C#. Для продвинутых"
— Добавлена 1 лекция
🔥9👍4❤3🎉1
Что такое баг и откуда он вообще берётся?
Ты всё сделал по уму. Код чистый. Логика железобетон. И тут… БАЦ. Всё падает. Ошибка. Паника. 🤯
⠀
Поздравляю, ты поймал баг.
Баг — это не обязательно чья-то тупость. Это просто неожиданное поведение программы. Что-то пошло не по плану. Иногда — из-за тебя. Иногда — из-за браузера. Иногда — потому что мир несовершенен.
🥷 Откуда берутся баги?
— Забыл одну строчку — и пошёл эффект бабочки
— Потянул чужой код, а он с секретиком
— Разное поведение в разных системах (да, привет Internet Explorer)
— Просто не проверил крайние случаи (а пользователь, конечно, сразу их нашёл)
Баги бывают даже в Google. Даже в Linux. Даже в тостерах.
📌 Что с этим делать?
— Привыкнуть. Баги — часть процесса.
— Учиться их ловить: логами, дебагом, логикой.
— Не бояться. Ошибки — это не провал. Это повседневность.
⠀
Ты не плохой разработчик, если у тебя баг. Ты плохой разработчик, если не ищешь, почему он появился.
💬 Напиши в комментариях, какой самый странный баг у тебя был?
#PROIT
Ты всё сделал по уму. Код чистый. Логика железобетон. И тут… БАЦ. Всё падает. Ошибка. Паника. 🤯
⠀
Поздравляю, ты поймал баг.
Баг — это не обязательно чья-то тупость. Это просто неожиданное поведение программы. Что-то пошло не по плану. Иногда — из-за тебя. Иногда — из-за браузера. Иногда — потому что мир несовершенен.
🥷 Откуда берутся баги?
— Забыл одну строчку — и пошёл эффект бабочки
— Потянул чужой код, а он с секретиком
— Разное поведение в разных системах (да, привет Internet Explorer)
— Просто не проверил крайние случаи (а пользователь, конечно, сразу их нашёл)
Баги бывают даже в Google. Даже в Linux. Даже в тостерах.
— Привыкнуть. Баги — часть процесса.
— Учиться их ловить: логами, дебагом, логикой.
— Не бояться. Ошибки — это не провал. Это повседневность.
⠀
Ты не плохой разработчик, если у тебя баг. Ты плохой разработчик, если не ищешь, почему он появился.
#PROIT
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
Ходил в офис ВК на экскурсию. Везде свои люди 😂
Это Сергей. Мой однокурсник. Работает с 2022 года в ВК iOS разработчиком в подразделении почты и облака.
Показал мне все что можно. Даже накормил😂
И даже поработал я там😎 Прекрасно🤪 Вокруг рабочая обстановка 😍
Надо чем то умным закончить пост:
верьте в себя ребята. Неважно что вы закончили и где жили. Если есть цель, то можно добиться чего угодно👌
Это Сергей. Мой однокурсник. Работает с 2022 года в ВК iOS разработчиком в подразделении почты и облака.
Показал мне все что можно. Даже накормил😂
И даже поработал я там😎 Прекрасно🤪 Вокруг рабочая обстановка 😍
Надо чем то умным закончить пост:
верьте в себя ребята. Неважно что вы закончили и где жили. Если есть цель, то можно добиться чего угодно👌
🔥44❤7👍7👎1
День отзывов🔥
Ссылки на курс, по которому оставили отзывы:
➡️ PRO C#. Основы программирования
➡️ PRO C#. Git
➡️ PRO C#. Для продвинутых
Напоминаю, что отзывы на Stepik можно оставлять только после прохождения 80% курса!
🔥 Дарю скидку за отзыв
Если вы прошли один из моих курсов и хотите получить скидку 10% на любой другой курс (кроме пакетов курсов, потоковых и профессий), то переходите по ссылке и жмите на кнопку "Скидка за отзыв»
#отзывы
Ссылки на курс, по которому оставили отзывы:
➡️ PRO C#. Основы программирования
➡️ PRO C#. Git
➡️ PRO C#. Для продвинутых
Напоминаю, что отзывы на Stepik можно оставлять только после прохождения 80% курса!
🔥 Дарю скидку за отзыв
Если вы прошли один из моих курсов и хотите получить скидку 10% на любой другой курс (кроме пакетов курсов, потоковых и профессий), то переходите по ссылке и жмите на кнопку "Скидка за отзыв»
#отзывы
🔥11❤4
Тернарный оператор
Проблема
Как быть, если очень хочется сократить код, но в задаче нужно выбрать одно из двух значений в зависимости от выполнения условия?
✅ Решение:
Тернарный оператор позволяет сделать это в одной строке, кратко и понятно. Рассмотрим код:
Условный оператор
📌Принцип работы тернарного оператора показан в картинке ниже.
Сначала указывается логическое условие, затем знак вопроса, потом результат если условие выполняется, затем двоеточие и результат если условие не выполняется.
Говоря словами, тернарный оператор работает так: «Если истина — делаем одно, если ложь — делаем другое.».
Ставьте реакцию:
🔥 — если знали о тернарном операторе
👀 — если слышите о нем впервые
PS. Недавно добавили урок про тернарный оператор в основы программирования. Да, мы этот курс еще обновляем😉
Проблема
Как быть, если очень хочется сократить код, но в задаче нужно выбрать одно из двух значений в зависимости от выполнения условия?
int a = 10;
int b = 20;
int max = 0;
if (a > b)
{
max = a;
}
else
{
max = b;
}
Console.WriteLine(max); // 20
✅ Решение:
Тернарный оператор позволяет сделать это в одной строке, кратко и понятно. Рассмотрим код:
int a = 10;
int b = 20;
int max = a > b ? a : b;
Console.WriteLine(max); // 20
Условный оператор
?:
, также называемый тернарным, вычисляет логическое выражение и в зависимости от полученного значения true или false возвращает результат одного из двух соответствующих выражений, как показано в прошлом примере.📌Принцип работы тернарного оператора показан в картинке ниже.
Сначала указывается логическое условие, затем знак вопроса, потом результат если условие выполняется, затем двоеточие и результат если условие не выполняется.
Говоря словами, тернарный оператор работает так: «Если истина — делаем одно, если ложь — делаем другое.».
Ставьте реакцию:
🔥 — если знали о тернарном операторе
👀 — если слышите о нем впервые
PS. Недавно добавили урок про тернарный оператор в основы программирования. Да, мы этот курс еще обновляем😉
🔥38👀6
День отзывов🔥
Ссылки на курс, по которому оставили отзывы:
➡️ PRO C#. Основы программирования
➡️ PRO C#. Чистый код
➡️ PRO C#. Базы данных
Напоминаю, что отзывы на Stepik можно оставлять только после прохождения 80% курса!
🔥 Дарю скидку за отзыв
Если вы прошли один из моих курсов и хотите получить скидку 10% на любой другой курс (кроме пакетов курсов, потоковых и профессий), то переходите по ссылке и жмите на кнопку "Скидка за отзыв»
#отзывы
Ссылки на курс, по которому оставили отзывы:
➡️ PRO C#. Основы программирования
➡️ PRO C#. Чистый код
➡️ PRO C#. Базы данных
Напоминаю, что отзывы на Stepik можно оставлять только после прохождения 80% курса!
🔥 Дарю скидку за отзыв
Если вы прошли один из моих курсов и хотите получить скидку 10% на любой другой курс (кроме пакетов курсов, потоковых и профессий), то переходите по ссылке и жмите на кнопку "Скидка за отзыв»
#отзывы
🔥10
Как у вас с отладкой кода?
Anonymous Poll
19%
Что это такое?
18%
Знаю, но не пользуюсь практически
63%
Активно использую
Твой код снова не работает? Хватит гадать на кофейной гуще!
Знакомая ситуация? Ты написал код, он выглядит идеально (по твоему мнению😂 ), но... не работает. Или работает, но совсем не так, как ты ожидал.
Ты начинаешь напрягать глаза, чтобы прочитать каждую строчку кода, а потом каждую букву. Ты думаешь, что так найдешь ошибку быстрее. А на самом деле проходит 20-30 минут, а ошибка не найдена.
Потом ты начинаешь злиться на себя и судорожно вставлять
Если узнал себя — этот пост для тебя. Пора прекратить быть гадалкой. Ну пожалуйста. Ну по-братски😔
Я тебе расскажу как избавиться от этой проблемы. Это классическая проблема, у которой есть классическое решение — отладчик (debugger).
Что такое отладка? 🕵️♂️
Представь, что твоя программа — это фильм. Обычно ты смотришь его от начала до конца. А теперь представь, что у тебя есть волшебный пульт, который позволяет:
— Поставить фильм на паузу в любом моменте (это называется breakpoint или точка останова).
— Прокрутить по одному кадру вперед (шаг за шагом).
— Заглянуть в карманы к героям и прочитать их мысли (посмотреть значения всех переменных в этот конкретный момент).
Отладка — это и есть этот процесс. Это не просто исправление ошибок. Это процесс поиска этих ошибок с помощью специальных инструментов, встроенных в Visual Studio.
Ты буквально говоришь программе: «Эй, остановись вот на этой строчке, я хочу посмотреть, что у тебя внутри».
Какие проблемы решает отладчик?
Вот лишь несколько классических проблем новичка, которые отладчик решает за минуты, а не за часы:
1. «Почему моя переменная пустая/неправильная?»
— Без отладчика: Ты ставишь 10
— С отладчиком: Ты ставишь breakpoint и просто смотришь, на каком шаге переменная получает не то значение, которое ты ожидал. Ты видишь всю картину целиком!
2. «Программа падает с ошибкой, но я не понимаю, где именно»
— Без отладчика: Ты читаешь ошибки и пытаешься угадать, какая из 5 функций виновата.
— С отладчиком: Он сам остановится на той самой строке, которая вызвала падение. Не нужно гадать — он тебе ее покажет.
3. «Этот сложный цикл или условие работает не так, как я задумал»
— Без отладчика: Ты пытаешься в уме прокрутить 50 итераций цикла. Мозг кипит, результат нулевой.
— С отладчиком: Ты проходишь цикл шаг за шагом (итерация за итерацией), наблюдая, как меняются переменные и по какому пути идет логика. Все тайное становится явным.
Почему тебе нужно научиться этому ПРЯМО СЕЙЧАС?
— Это экономит время. Часы мучительных поисков превращаются в минуты целенаправленной работы.
— Это снижает стресс. Пропадает чувство «я ничего не понимаю». Появляется контроль над ситуацией.
— Это делает тебя профессионалом. Умение пользоваться отладчиком — это то, что отличает новичка от опытного разработчика. На собеседованиях это ценят.
— Это углубляет понимание кода. Ты начинаешь видеть, как программа «живет» и «дышит» изнутри, а не просто как набор текста.
Перестань воевать со своим кодом. Начни с ним разговаривать. Отладчик — твой переводчик.
Ставьте реакцию:
🔥 — если я убедЗил тебя, что отладчик это твой лучший друг
👀 — если надо еще словечек накидать😏
Знакомая ситуация? Ты написал код, он выглядит идеально (
Ты начинаешь напрягать глаза, чтобы прочитать каждую строчку кода, а потом каждую букву. Ты думаешь, что так найдешь ошибку быстрее. А на самом деле проходит 20-30 минут, а ошибка не найдена.
Потом ты начинаешь злиться на себя и судорожно вставлять
Console.WriteLine("я здесь")
или Console.WriteLine("переменная x = " + x)
в каждую вторую строчку, чтобы понять, что происходит.Если узнал себя — этот пост для тебя. Пора прекратить быть гадалкой. Ну пожалуйста. Ну по-братски😔
Я тебе расскажу как избавиться от этой проблемы. Это классическая проблема, у которой есть классическое решение — отладчик (debugger).
Что такое отладка? 🕵️♂️
Представь, что твоя программа — это фильм. Обычно ты смотришь его от начала до конца. А теперь представь, что у тебя есть волшебный пульт, который позволяет:
— Поставить фильм на паузу в любом моменте (это называется breakpoint или точка останова).
— Прокрутить по одному кадру вперед (шаг за шагом).
— Заглянуть в карманы к героям и прочитать их мысли (посмотреть значения всех переменных в этот конкретный момент).
Отладка — это и есть этот процесс. Это не просто исправление ошибок. Это процесс поиска этих ошибок с помощью специальных инструментов, встроенных в Visual Studio.
Ты буквально говоришь программе: «Эй, остановись вот на этой строчке, я хочу посмотреть, что у тебя внутри».
Какие проблемы решает отладчик?
Вот лишь несколько классических проблем новичка, которые отладчик решает за минуты, а не за часы:
1. «Почему моя переменная пустая/неправильная?»
— Без отладчика: Ты ставишь 10
Console.WriteLine
-ов, чтобы отследить, где значение "испортилось".— С отладчиком: Ты ставишь breakpoint и просто смотришь, на каком шаге переменная получает не то значение, которое ты ожидал. Ты видишь всю картину целиком!
2. «Программа падает с ошибкой, но я не понимаю, где именно»
— Без отладчика: Ты читаешь ошибки и пытаешься угадать, какая из 5 функций виновата.
— С отладчиком: Он сам остановится на той самой строке, которая вызвала падение. Не нужно гадать — он тебе ее покажет.
3. «Этот сложный цикл или условие работает не так, как я задумал»
— Без отладчика: Ты пытаешься в уме прокрутить 50 итераций цикла. Мозг кипит, результат нулевой.
— С отладчиком: Ты проходишь цикл шаг за шагом (итерация за итерацией), наблюдая, как меняются переменные и по какому пути идет логика. Все тайное становится явным.
Почему тебе нужно научиться этому ПРЯМО СЕЙЧАС?
— Это экономит время. Часы мучительных поисков превращаются в минуты целенаправленной работы.
— Это снижает стресс. Пропадает чувство «я ничего не понимаю». Появляется контроль над ситуацией.
— Это делает тебя профессионалом. Умение пользоваться отладчиком — это то, что отличает новичка от опытного разработчика. На собеседованиях это ценят.
— Это углубляет понимание кода. Ты начинаешь видеть, как программа «живет» и «дышит» изнутри, а не просто как набор текста.
Перестань воевать со своим кодом. Начни с ним разговаривать. Отладчик — твой переводчик.
Ставьте реакцию:
🔥 — если я убедЗил тебя, что отладчик это твой лучший друг
👀 — если надо еще словечек накидать😏
🔥31👀5❤2
Агент, проверь снаряжение! Три условия, без которых магия не сработает
Итак, ты готов стать детективом. Лупа (твой мозг) наготове, дело (баг) ждет. Но прежде чем ринуться в бой, любой агент проверяет свое снаряжение. В мире отладки есть три простых, но обязательных условия. Если их не соблюсти, твои точки останова просто не сработают, и ты вернешься к гаданию на
Давай убедимся, что твое оборудование настроено правильно.
Условие №1. Режим «Отладка» (Debug), а не «Релиз» (Release)
Это — самая частая ловушка для новичков. У твоей программы есть два основных режима сборки:
— Debug (Отладка). Это режим для разработчика. Программа собирается со всеми "уликами" для твоего отладчика: специальными файлами (
— Release (Выпуск). Это режим для конечного пользователя. Код максимально оптимизируется, сжимается, а все отладочные "улики" выбрасываются, чтобы программа работала быстрее и весила меньше. Это версия фильма для кинотеатра — гладкая и без лишних деталей.
Твоя задача: Всегда убеждайся, что в
> Почему это важно? Если ты попытаешься отладить
Условие №2. Запуск с отладчиком (F5), а не без него (Ctrl+F5)
В
— ▶️ Пуск (F5). Это команда «Запустить и следить». Ты не просто запускаешь программу, а прикрепляешь к ней отладчик с самого старта. Он бежит рядом с твоей программой и готов остановиться по первому твоему требованию (на точке останова).
— Запуск без отладки (Ctrl + F5): Это команда «Просто работай». Программа запускается сама по себе, максимально быстро, без надзора. Отладчик в этом процессе не участвует.
Твоя задача: Для поиска ошибок всегда используй F5 или зеленую кнопку «Пуск».
> Почему это важно? Запуск через Ctrl+F5 — это как отправить агента на задание, но сказать ему ждать у входа. Он просто не будет внутри, когда что-то пойдет не так.
Условие №3. Код должен быть свежим (актуальная сборка)
Представь, что ты внес правки в код, но забыл его пересобрать. Ты смотришь на новую версию кода, а отладчик пытается работать со старой скомпилированной программой.
— Результат. Visual Studio обычно предупреждает, что «точка останова не будет достигнута, так как исходный код отличается от версии, запущенной в данный момент». Твои точки останова будут выглядеть как пустые красные кружки, а не залитые.
Твоя задача: Если ты не уверен, актуальна ли сборка, просто нажми Ctrl + Shift + B (Собрать решение) или выбери в меню «Сборка» -> «Пересобрать решение» перед запуском отладки. Обычно Visual Studio делает это автоматически при запуске по F5, но иногда что-то может пойти не так.
> Почему это важно? Это как пытаться ориентироваться в новом городе по старой карте. Отладчик просто не найдет нужные "улицы" (строки кода), потому что в его "карте" (старой сборке) их еще нет или они находятся в другом месте.
Итог для настоящего агента:
Перед каждой миссией по отлову бага, проверь свой чек-лист:
1. Режим
2. Запускаю через F5? — Есть.
3. Код свежий, сборка актуальна? — Есть.
Теперь ты во всеоружии. Ни один баг не скроется!
Как тебе такой ликбез по подготовке? Ставь 👍, если теперь все стало на свои места
Итак, ты готов стать детективом. Лупа (твой мозг) наготове, дело (баг) ждет. Но прежде чем ринуться в бой, любой агент проверяет свое снаряжение. В мире отладки есть три простых, но обязательных условия. Если их не соблюсти, твои точки останова просто не сработают, и ты вернешься к гаданию на
Console.WriteLine
.Давай убедимся, что твое оборудование настроено правильно.
Условие №1. Режим «Отладка» (Debug), а не «Релиз» (Release)
Это — самая частая ловушка для новичков. У твоей программы есть два основных режима сборки:
— Debug (Отладка). Это режим для разработчика. Программа собирается со всеми "уликами" для твоего отладчика: специальными файлами (
.pdb
), картами кода и без оптимизаций, которые могут запутать логику. Это как режиссерская версия фильма с комментариями и вырезанными сценами.— Release (Выпуск). Это режим для конечного пользователя. Код максимально оптимизируется, сжимается, а все отладочные "улики" выбрасываются, чтобы программа работала быстрее и весила меньше. Это версия фильма для кинотеатра — гладкая и без лишних деталей.
Твоя задача: Всегда убеждайся, что в
Visual Studio
выбран режим Debug. Обычно это выпадающее меню на верхней панели инструментов (скрин прикрепил снизу).> Почему это важно? Если ты попытаешься отладить
Release
-версию, отладчик будет как детектив, пришедший на пустое место преступления, где все улики уже стерли. Он не сможет сопоставить твой код с тем, что реально выполняется, и твои точки останова будут проигнорированы.Условие №2. Запуск с отладчиком (F5), а не без него (Ctrl+F5)
В
Visual Studio
есть две главные кнопки запуска:— ▶️ Пуск (F5). Это команда «Запустить и следить». Ты не просто запускаешь программу, а прикрепляешь к ней отладчик с самого старта. Он бежит рядом с твоей программой и готов остановиться по первому твоему требованию (на точке останова).
— Запуск без отладки (Ctrl + F5): Это команда «Просто работай». Программа запускается сама по себе, максимально быстро, без надзора. Отладчик в этом процессе не участвует.
Твоя задача: Для поиска ошибок всегда используй F5 или зеленую кнопку «Пуск».
> Почему это важно? Запуск через Ctrl+F5 — это как отправить агента на задание, но сказать ему ждать у входа. Он просто не будет внутри, когда что-то пойдет не так.
Условие №3. Код должен быть свежим (актуальная сборка)
Представь, что ты внес правки в код, но забыл его пересобрать. Ты смотришь на новую версию кода, а отладчик пытается работать со старой скомпилированной программой.
— Результат. Visual Studio обычно предупреждает, что «точка останова не будет достигнута, так как исходный код отличается от версии, запущенной в данный момент». Твои точки останова будут выглядеть как пустые красные кружки, а не залитые.
Твоя задача: Если ты не уверен, актуальна ли сборка, просто нажми Ctrl + Shift + B (Собрать решение) или выбери в меню «Сборка» -> «Пересобрать решение» перед запуском отладки. Обычно Visual Studio делает это автоматически при запуске по F5, но иногда что-то может пойти не так.
> Почему это важно? Это как пытаться ориентироваться в новом городе по старой карте. Отладчик просто не найдет нужные "улицы" (строки кода), потому что в его "карте" (старой сборке) их еще нет или они находятся в другом месте.
Итог для настоящего агента:
Перед каждой миссией по отлову бага, проверь свой чек-лист:
1. Режим
Debug
? — Есть.2. Запускаю через F5? — Есть.
3. Код свежий, сборка актуальна? — Есть.
Теперь ты во всеоружии. Ни один баг не скроется!
Как тебе такой ликбез по подготовке? Ставь 👍, если теперь все стало на свои места
👍17🔥1🏆1
Главное правило детектива — знай, что ты ищешь!
Ты проверил снаряжение: режим
И что дальше? 🤔
Вот тут и происходит разделение на новичков и опытных разработчиков. Новичок начинает бесцельно нажимать F10, просто наблюдая, как меняются цифры, в надежде, что ошибка сама выпрыгнет ему в лицо с криком «Это я!»😜
Опытный разработчик делает иначе. Потому что он знает главное, золотое правило отладки.
Отладчик — это не волшебная палочка, которая находит ошибку. Это инструмент, который помогает ТЕБЕ найти ошибку, проверяя твои ГИПОТЕЗЫ.
Прежде чем нажать F5, ты должен сделать самую важную вещь: остановиться и подумать.
Шаг 0. Сформулируй ожидания (ты же знаешь, что программисты считают с нуля?🙈 )
Представь себя не просто детективом, а прокурором, который уже знает, как должно было пройти «идеальное преступление» (т.е. как должен был правильно выполниться твой код).
Прежде чем лезть в отладчик, ответь себе на простой вопрос:
Что я ожидаю увидеть в этой точке кода?
— На третьей итерации этого цикла переменная
— После выполнения этой строки объект
— Когда я дойду до этого
Ты должен понимать эталонное, правильное поведение программы. Иначе как ты поймешь, что что-то пошло не так?
> Отладка — это процесс сравнения ожиданий с реальностью. Нет ожиданий — нет отладки. Есть только бесцельное блуждание по коду.
Как это выглядит на практике?
Давай возьмем простой пример. Код должен посчитать итоговую цену товара со скидкой:
Плохой подход (новичок):
Так, что-то не то. Поставлю-ка я точку останова на
Хороший подход (детектив с гипотезой):
1. Ожидание. Цена 150, скидка 20%. Я ожидаю, что
2. Гипотеза. Проблема, скорее всего, в расчете
3. Проверка с помощью отладчика:
— Ставлю точку останова ПОСЛЕ строки
— Запускаю отладку (F5). Программа останавливается.
— Навожу мышку на
— Реальность:
— Сравнение: Моя гипотеза верна! Переменная не равна
Видишь разницу? Во втором случае отладчик используется как точечный лазерный инструмент для проверки конкретной идеи, а не как дубина, которой ты размахиваешь в темноте.
❗️Запомни навсегда
Прежде чем погрузиться в отладку, задай себе главный вопрос:
Что я ожидаю здесь увидеть и почему я думаю, что этого не происходит?
Сформируй гипотезу, и только потом иди ее проверять. Это сэкономит тебе не просто минуты, а часы и целые дни работы.
Отладчик — это не волшебная палочка, а твой верный напарник. Он не найдет ошибку за тебя — он поможет проверить твои гипотезы.
Ставьте реакцию:
🔥 — Спасибо, теперь я всегда буду думать перед отладкой. Это мой новый ритуал!
👀 — Еще сложно, но интересно... Поделись в комментах. Помогу❤️🩹
👍 — Если ты уже применил это и нашел баг за 2 минуты. Расскажи, как!
Ты проверил снаряжение: режим
Debug
включен, запускаешься по F5. Ты поставил точку останова, запустил код, и... программа замерла. Строка подсвечена желтым.И что дальше? 🤔
Вот тут и происходит разделение на новичков и опытных разработчиков. Новичок начинает бесцельно нажимать F10, просто наблюдая, как меняются цифры, в надежде, что ошибка сама выпрыгнет ему в лицо с криком «Это я!»😜
Опытный разработчик делает иначе. Потому что он знает главное, золотое правило отладки.
Отладчик — это не волшебная палочка, которая находит ошибку. Это инструмент, который помогает ТЕБЕ найти ошибку, проверяя твои ГИПОТЕЗЫ.
Прежде чем нажать F5, ты должен сделать самую важную вещь: остановиться и подумать.
Шаг 0. Сформулируй ожидания (
Представь себя не просто детективом, а прокурором, который уже знает, как должно было пройти «идеальное преступление» (т.е. как должен был правильно выполниться твой код).
Прежде чем лезть в отладчик, ответь себе на простой вопрос:
Что я ожидаю увидеть в этой точке кода?
— На третьей итерации этого цикла переменная
counter
должна быть равна 3
— После выполнения этой строки объект
user
должен иметь непустое поле email
— Когда я дойду до этого
if
, условие isReady
должно быть true
Ты должен понимать эталонное, правильное поведение программы. Иначе как ты поймешь, что что-то пошло не так?
> Отладка — это процесс сравнения ожиданий с реальностью. Нет ожиданий — нет отладки. Есть только бесцельное блуждание по коду.
Как это выглядит на практике?
Давай возьмем простой пример. Код должен посчитать итоговую цену товара со скидкой:
// Цель: применить скидку 20% к цене 150
double price = 150;
double discountPercent = 20;
double finalPrice = 0;
// Расчет
double discountAmount = price / discountPercent;
finalPrice = price - discountAmount;
Console.WriteLine($"Итоговая цена: {finalPrice}"); // Ожидаем 120, но получаем 142.5. Почему?
Плохой подход (новичок):
Так, что-то не то. Поставлю-ка я точку останова на
double discountAmount
и буду жать F10, пока не пойму, что не так. *...проходит 5 минут бессмысленных шагов...*Хороший подход (детектив с гипотезой):
1. Ожидание. Цена 150, скидка 20%. Я ожидаю, что
finalPrice
будет равен 120
(150 - (150 * 0.20))2. Гипотеза. Проблема, скорее всего, в расчете
discountAmount
. Я думаю, что он рассчитывается неправильно. Он должен быть 30
, а он, видимо, какой-то другой3. Проверка с помощью отладчика:
— Ставлю точку останова ПОСЛЕ строки
double discountAmount = price / discountPercent;
. Мне не нужно смотреть, как она считается, мне нужно увидеть результат.— Запускаю отладку (F5). Программа останавливается.
— Навожу мышку на
discountAmount
.— Реальность:
discountAmount
равен 7.5
(150 / 20).— Сравнение: Моя гипотеза верна! Переменная не равна
30
. Ошибка в этой строке. Теперь я могу сфокусироваться на исправлении одной конкретной формулы (price * (discountPercent / 100)
), а не перечитывать весь код.Видишь разницу? Во втором случае отладчик используется как точечный лазерный инструмент для проверки конкретной идеи, а не как дубина, которой ты размахиваешь в темноте.
❗️Запомни навсегда
Прежде чем погрузиться в отладку, задай себе главный вопрос:
Что я ожидаю здесь увидеть и почему я думаю, что этого не происходит?
Сформируй гипотезу, и только потом иди ее проверять. Это сэкономит тебе не просто минуты, а часы и целые дни работы.
Отладчик — это не волшебная палочка, а твой верный напарник. Он не найдет ошибку за тебя — он поможет проверить твои гипотезы.
Ставьте реакцию:
🔥 — Спасибо, теперь я всегда буду думать перед отладкой. Это мой новый ритуал!
👀 — Еще сложно, но интересно... Поделись в комментах. Помогу❤️🩹
👍 — Если ты уже применил это и нашел баг за 2 минуты. Расскажи, как!
👍8👀2🔥1