Читать книгу Мастерство Программирования - - Страница 5
▍Мыслить как компьютер: Базовое понимание того, как машина "видит"код
ОглавлениеНаш мозг – это удивительный инструмент. Он способен на абстракции, на "чтение между строк", на догадки, на интуицию. Компьютер не может ничего из этого (ну, по крайней мере, пока ИИ не захватил мир окончательно).
Представьте, что вы даете рецепт блюда очень дотошному, но невероятно глупому и буквально воспринимающему всё существу. Если вы скажете: "Потушите овощи до мягкости", человек поймёт. Компьютер спросит: "Что значит 'мягкость'? Сколько градусов? Сколько минут? Какой консистенции должна быть морковь?"
Компьютер – это невероятно быстрый, но абсолютно буквальный исполнитель. Он не понимает вашей "идеи". Он понимает только последовательность строго определенных инструкций.
Каждая строчка вашего кода – это четкая, пошаговая инструкция для машины. Ваша задача – быть ему идеальным начальником: давать ясные, недвусмысленные, эффективные и полныеинструкции. Когда вы пишете код, постарайтесь представить себя этим компьютером:
• "Вот мне пришло такое-то значение. Что я с ним сделаю дальше?"
• "А если значение будет другим, например, пустым или очень большим?"
• "Смогу ли я выполнить эту операцию максимально быстро и без лишних телодвижений?"
Что это значит для нас?
• Полная однозначность: Каждая ваша команда должна быть недвусмысленной. Компьютер не додумает за вас.
• Пошаговое мышление: Мы должны разбить свою большую идею на мельчайшие, атомарные шаги, которые компьютер может выполнить.
• Предвидение всех сценариев: Что если данные придут неправильные? Что если файл не найден? Что если сеть отвалится? Компьютер не "пожмёт плечами", он просто выдаст ошибку или сломается, если вы не предусмотрели эту ситуацию.
• Отсутствие интуиции: Компьютер не сделает "как лучше", если вы ему этого явно не сказали. Он сделает ровно то, что вы написали.
Мой опыт показывает: чем лучше вы умеете "прикидываться"компьютером в своей голове, тем меньше ошибок вы совершаете. Когда вы пишете код, попробуйте шаг за шагом проиграть его выполнение в своей голове: "Так, вот сюда приходит это значение, потом оно умножается на это, результат сохраняется здесь… А что если значение будет отрицательным? А что если это будет нуль?"Это простая, но мощная техника, которая позволит вам видеть проблемы еще до того, как они станут багами.