Найти в Дзене
Охота на математику

Профессор Шалыто А.А. про ошибки

«Нельзя ошибаться. Потому что это дорого. Сложно. И опасно». И про хирургию и про управление атомной станцией.
Про настоящее программирование. То, где системы должны быть дико надёжными, потому что цена ошибки — человеческая жизнь, миллионы рублей или просто катастрофический сбой инфраструктуры. Раньше было иначе.
Не так, как у многих современных программистов, которые привыкли: «Написал — запустил — поправил — коммит». Тогда не было сотни попыток на одну задачу.
Если ты делал ошибку — работа могла затянуться на годы.
Поэтому люди думали головой, а не пальцами.
Программу нужно было отладить за два–три захода. Не больше. И вот вопрос:
Что пошло не так?
Не хватает рук? Мозгов? Или просто культуры? Предлагаю вернуться к основам.
К тому, как мы сами воспринимаем мир. Мы живём в состояниях: Технические объекты — тоже!
Дверь может быть: Шаг 1. Определяем все возможные состояния.
Шаг 2. Рисуем переходы между ними (дуги).
Шаг 3. Задаём условия, при которых переход происходит.
Шаг 4. Добавляем
Оглавление

🧠 Программирование — не рисование в Paint: почему ошибки недопустимы

«Нельзя ошибаться. Потому что это дорого. Сложно. И опасно».

И про хирургию и про управление атомной станцией.
Про
настоящее программирование. То, где системы должны быть дико надёжными, потому что цена ошибки — человеческая жизнь, миллионы рублей или просто катастрофический сбой инфраструктуры.

💥 Культура без права на ошибку

Раньше было иначе.
Не так, как у многих современных программистов, которые привыкли: «Написал — запустил — поправил — коммит».

Тогда не было сотни попыток на одну задачу.
Если ты делал ошибку — работа могла затянуться на
годы.
Поэтому люди
думали головой, а не пальцами.
Программу нужно было отладить
за два–три захода. Не больше.

И вот вопрос:
Что пошло не так?
Не хватает рук? Мозгов? Или просто культуры?

🔄 Программируем через состояния — как думают люди

Предлагаю вернуться к основам.
К тому, как мы сами воспринимаем мир.

Мы живём в состояниях:

  • Здоров
  • Болен
  • В отпуске
  • На работе

Технические объекты — тоже!
Дверь может быть:

  • Открыта
  • Закрыта
  • Открывается
  • Закрывается

Шаг 1. Определяем все возможные состояния.
Шаг 2. Рисуем переходы между ними (дуги).
Шаг 3. Задаём условия, при которых переход происходит.
Шаг 4. Добавляем действия — что делать при входе/выходе из состояния или во время перехода.

Такой подход — не просто методика. Это фундамент для создания сложного поведения, которое:

  • легко читать,
  • можно верифицировать (проверить на корректность),
  • и оформить в понятную заказчику документацию.

Представили какие возможности это открывает?

⚠️ Современный код — как лекция плохого преподавателя

Сегодняшняя манера программирования часто учит не логике, а разгильдяйству.
«Всё можно исправить потом» — звучит знакомо?

Это как лектор, который одной рукой пишет формулу, а другой — сразу её стирает.
Беспорядок становится нормой.

И психология меняется:

«Ну и что? Это же не релиз!»

Впервые я услышал эту фразу… про переплетённую диссертацию, которую человек собирался защищать через несколько дней.

📚 Вычитка — школа внимания

Многие программисты привыкли к автоматическим проверкам:
линтеры, компиляторы, тесты...
Но даже когда ошибки
явно показаны — большинство их игнорирует.

А если ошибка не найдена автоматически?
Тогда считается, что её
нет.
Или просто «не хочется напрягать мозг ради какой-то ерунды».

А ведь я до сих пор вспоминаю, как вычитывал курсовую, бакалаврскую, магистерскую.
Это —
в ТОП-5 самых полезных навыков, которые я получил за всё обучение.