Основы ООП на PHP 7

Первая часть цикла статей "ООП в PHP 7" будет посвящена философии объектно-ориентированной парадигмы. Но, прежде чем приступать к рассмотрению ООП, мы рассмотрим, какие еще парадигмы бывают.

Что такое парадигма программирования? Это, в каком-то роде, образ мышления в программировании, стиль программирования, совокупность правил и принципов. И чтобы понять, откуда появились парадигмы, попробуем проследить историю о том, как к ним пришли.

История возникновения парадигм программирования

На момент создания компьютеров, когда они занимали целые помещения, программисты работали напрямую с компонентами этих компьютеров: реле, лампы, транзисторы, регистры и т.д. И необходимо было обладать заурядной незаурядностью, чтобы читать и набирать бинарным кодом длинные километры перфокарт. А сам код выглядел таким образом:

Такой код понять очень и очень сложно. А именно таким кодом программировали микросхемы. И чтобы все это вбить в перфокарты, нужно было такой код перевести в нули и единицы.

Таким кодом писать всем надоело и придумали ассемблер - низкоуровневый язык программирования. И от байтов-битов перешли к такому коду:

Такой код стал более понятным, нежели бинарный, к тому же дополнялся комментариями. И ассемблер выступал некой "прослойкой" между программистом и компьютером, так как все равно такой код компилировался в нули и единицы.

  1. Но все равно возникали проблемы с пониманием такого кода: что в целом этот код выполняет. Хотелось получить код более человеко-понятный. А с годами код на ассемблере вырастал в большие полотна, и понимать его становилось все сложнее и сложнее. Да и операции на ассемблере было описывать очень тяжело. Например, чтобы на ассемблере выполнить умножение одного числа на другое, нужно было взять и положить одно значение в один регистр, потом последовательно положить второе значение во второй регистр, вызвать несколько раз сумму этих значений, потом ее выгрузить, опять просуммировать это дело и т.д. То есть приходилось постоянно таким образом работать с регистрами, "жонглируя" ими своеобразно. И чтобы вот так не заморачиваться над низкоуровневыми операциями, придумали высокоуровневые языки программирования.

Такие языки представляли из себя работу с более человекопонятными переменными, управляющими конструкциями, функциями, циклами и так далее. А сам код уже мог выглядеть следующим образом:

a := 10;
print a;

И многие программисты вздохнули спокойно, так как больше не нужно было напрямую работать с регистрами памяти. Благодаря высокоуровневым языкам программирования можно было легко моделировать ситуации из математики и физики. Но ведь программирование - это не только наука и игры. Да и не только математика и физика. И программисты начали моделировать реальный мир. Но здесь возник ряд проблем, так как реальный мир намного и намного сложнее, чем предполагали на тот момент.

Моделирование основано на том, что вместо реального объекта (предмета) мы представляем его урезанную модель. Хотя многие программисты, услышав слово "модель" ассоциируют ее с Active Record. Но "модель" - это просто модель, ее необходимо понимать в общем смысле. И когда мы будем рассматривать парадигму MVC, мы этой темы обязательно коснемся, и разберем, что же такое на самом деле модель, контроллер, а что - представление.

Модель захватывает абсолютно все, что связано с реальной жизнью: процессы, сущности и многое другое. А на этом и основано проблемно-ориентированное проектирование (Domain-driven design, DDD) - проектирование на основе предметной области.

Так что получили: ушли от байт-кода и пришли к реальному программированию. Но и тогда пришли к тому, что появилось такое понятие, как социальный кодинг.

Основные парадигмы программирования

В итоге, пока развивалось программирование, появлялись следующие основные парадигмы программирования:

  1. императивное программирование
  2. декларативное программирование
  3. структурное программирование
  4. процедурное программирование
  5. функциональное программирование
  6. объектно-ориентированное программирование

Каждую из парадигм разберем отдельно. А объектно-ориентированной посвятим большую часть времени.


Вы можете поделиться этой статьей в любой из соцсетей, представленных ниже:


Чтобы добавить свой комментарий, необходимо пройти аутентификацию
Комментарии
Показаны записи 1-2 из 2.
64x64
Администратор 25.08.2018 07:28

Coder Yii, продолжение, конечно, будет


64x64
Coder Yii 23.08.2018 23:24

день добрый! продолжение планируете?