💀
Второй курс РПО
Язык UML
Язык UML
  • Сложности при разработке программного обеспечения
  • Почему появилось ООП и в чём его смысл?
  • Как программировали до ООП и почему это стало проблемой?
  • Как появился ООП и почему он спас программирование
  • Как планировать код до его написания: ООАП
  • Системный анализ и моделирование: как понимать сложные системы
  • Что такое объекты?
  • Экскурс в Диаграммы
  • История развития языка UML
  • 56-я Практическая
  • Диаграмма развёртывания
  • Диаграмма сотрудничества
  • Паттерны - что это?
  • Для второкурсников
Powered by GitBook
On this page
  • Процедурное программирование: как всё начиналось
  • Структурное программирование: попытка решить проблему
  • Пример хорошего процедурного кода на C++
  • Главная проблема: процедурный код плохо управляет сложностью

Как программировали до ООП и почему это стало проблемой?

04.02.2025

Процедурное программирование: как всё начиналось

Когда компьютеры только появились, программисты писали код так, словно давали жёсткие инструкции машине:

  1. Введи данные

  2. Обработай их

  3. Выполни расчёты

  4. Выведи результат

Эти инструкции представляли собой алгоритм – чёткий порядок действий, который нужно выполнить для решения задачи. Такой подход казался естественным и удобным.

Языки программирования, поддерживающие этот стиль, – Assembler, C, Pascal – стали основой всей индустрии. В процедурном программировании код писался как последовательность функций (процедур), каждая из которых выполняла свою часть работы.

Почему процедурный код стал проблемой?

Когда программы были маленькими – всё было ок. Но со временем размер кода рос, проекты усложнялись, и появились серьёзные проблемы:

  • Невозможно удержать всё в голове. В больших программах столько функций, что помнить, кто за что отвечает, стало невозможно.

  • Спагетти-код. Разработчики начали использовать goto (команда безусловного перехода), что приводило к запутанным программам, где код прыгал туда-сюда, и разобраться в нём было нереально. Такой код прозвали "спагетти-кодом".

  • Проблемы с масштабированием. Если программу нужно было расширить, приходилось менять код в 100 местах, что часто ломало работу всей системы.

  • Код трудно переиспользовать. В отличие от сборки машин или домов, где используют готовые детали, программисты каждый раз писали всё с нуля.

Структурное программирование: попытка решить проблему

В 70-х появился структурный подход, который стал эволюцией процедурного программирования.

Основные идеи:

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

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

  • Используем отступы и вложенность для лучшей читаемости кода.

Пример хорошего процедурного кода на C++

#include <iostream>
using namespace std;

// Функция для сложения двух чисел
int sum(int a, int b) { 
    return a + b;
}

int main() {
    int x = 5, y = 10;
    cout << "Сумма: " << sum(x, y) << endl;
    return 0;
}

Этот код уже читабельный, но даже с таким стилем работы большие проекты всё равно были сложными.

Главная проблема: процедурный код плохо управляет сложностью

  • Если у вас есть 100 функций, следить за их вызовами очень трудно.

  • Если функция изменяет глобальные переменные, это ломает код в других местах.

  • Масштабировать проекты трудно – чем больше кода, тем больше хаоса.

Так что, несмотря на развитие структурного программирования, код оставался трудноуправляемым.

И вот тут появился ООП, который предложил совершенно новый взгляд на программирование.

PreviousПочему появилось ООП и в чём его смысл?NextКак появился ООП и почему он спас программирование

Last updated 3 months ago