Что такое парадигмы в программировании?

Что такое парадигмы в программировании?
10.03.2022
Содержание

Парадигма программирования — это совокупность понятий, идей и правил, которые определяют подход к написанию кода. Она нужна для того, чтобы сделать текст программы структурированным и понятным как для других разработчиков, так и для компьютера. Пример: функциональный подход основан на использовании чистых функций, тогда как объектно-ориентированный базируется на объектах, классах и их взаимодействии друг с другом. У каждой парадигмы свой наборы методов.

Популярные подходы

Практически все современные языки программирования (далее ЯП) в той или иной мере позволяют разработчику использовать две или более различных парадигм, на первый взгляд сильно отличных друг от друга. В этом случае речь идет о так называемом мультипарадигменном создании приложений. Есть 4 популярных подхода к разработке программ, коротко рассмотрим их далее.

Объектно-ориентированный

В рамках объектно-ориентированного программирования (ООП) программа рассматривается как набор объектов и классов. Под объектом понимается сущность, которая наделена функциями и свойствами. Представьте, что самостоятельную часть обычной программы положили в коробку и накрыли крышкой — это и есть объект, к которому приложение обращается при выполнении кода.

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

В его конструкции есть кнопки, провода, нагреватель, светодиоды и другие детали. Но разве для того, чтобы включить чайник и нагреть воду, вам нужно каждый раз задумываться об устройстве прибора и знать, как именно он работает? Отсюда делаем вывод — ООП за счет классов и объектов делает сложный код более простым.
ООП строится на четырех основных постулатах:

  • Инкапсуляция. Каждый объект независим, все данные и методы содержатся внутри него.
  • Наследование. ООП позволяет создавать массу новых объектов, похожих на уже готовый.
  • Полиморфизм. Взаимодействие между участками кода строится на базе единых правил.
  • Абстракция. Программа всегда может обратиться к методам и свойствам объекта извне.

Объектно-ориентированное программирование поддерживается большим числом языков, в числе которых известные С++, C#, Java, JavaScript, Python, Swift.

Декларативный

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

Главное достоинство декларативной методики в том, что написанный в соответствии с ней код компактен и прост для понимания. Но есть и серьезные недостатки:

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

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

Императивный

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

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

  • сложи два числа и выведи результат;
  • отправь запрос на файловый сервер;
  • открой программу и сверни ее в окно;
  • выведи на экран сообщение и так далее.

Первыми языками программирования на парадигме императивного типа были машинные коды — команды, которые выполнялись вычислительной машиной сразу, без предварительной подготовки и преобразований. Далее именно они стали базой для появления широко известных ассемблеров.

Функциональный

Используя функциональный стиль, разработчик описывает не четкую инструкцию в формате последовательности действий, а взаимодействие между командами и подпрограммами. В этом плане есть сходство с ООП, однако здесь такой подход реализуется на уровне всего приложения. Функциональная разработка поддерживается языками Haskell, Lisp, Erlang, Clojure и F#.

Простыми словами, программист описывает правила, согласно которыми должна вестись работа с данными. Далее код самостоятельно разбирается в том, как применять эти догмы для получения результата программы. Для лучшего понимания рассмотрим отличия от императивного стиля:

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

Функциональная парадигма существует более 60 лет, но до сих пор применяется точечно, имеет узкую сферу применения и проигрывает по популярности объектно-ориентированному подходу.

Если вы новичок в программировании, не спешите охватить все парадигмы. Знать особенности каждого подхода полезно, но на старте обучения не так важно. Для уверенного развития в статусе программиста нужно понимать принципы ООП и иметь общее представление о функциональной парадигме. Уже этого хватит для того, чтобы подбирать методы языка под конкретную задачу.

Подай заявку на обучение

alt

Всё нужное в твоём телефоне

Скачай приложение и узнавай самую актуальную информацию
ПОДБЕРИ
ПРОГРАММУ ОБУЧЕНИЯ

Ответь на пять вопросов и узнай, где будешь учиться!

Подобрать программу
Образование для карьеры
К каким профессиям вы более склонны?
ТехническимГуманитарнымТворческимМедицинским
Какой у вас уровень образования?
Без образованияШкола 9-11 классКолледжБакалавриатМагистратураАспирантура
Какой формат обучения вам подходит?
ОчноЗаочноОнлайнПо выходным дням
Вас интересуют бюджетные места?
ДаНет
И последний вопрос. Вы из Москвы?
ДаНет

Мы подобрали вам программу обучения

Заполните форму, чтобы узнать больше о программе и наших предложениях

Задать вопрос

Уважаемый посетитель!

Если у вас есть вопрос, предложение или жалоба, пожалуйста, заполните короткую форму и изложите суть обращения в текстовом поле ниже. Мы обязательно с ним ознакомимся и в  30-дневный срок ответим на указанный вами адрес электронной почты

Array
Array
Статус Абитуриент Студент Родитель Соискатель Сотрудник Другое
Array
Филиал Абакан Актобе Алагир Алматы Алушта Анапа Ангарск Архангельск Армавир Асбест Астана Астрахань Атырау Баку Балхаш Барановичи Барнаул Белая Калитва Белгород Бельцы Берлин Бишкек Благовещенск Бобров Бобруйск Борисов Боровичи Бронницы Брянск Бузулук Чехов Челябинск Череповец Черкесск Дамаск Дербент Димитровград Дмитров Долгопрудный Домодедово Дубай Дубна Душанбе Екатеринбург Электросталь Елец Элиста Ереван Евпатория Гана Гомель Гродно Грозный Хабаровск Ханты-Мансийск Хива Худжанд Иркутск Истра Иваново Ижевск Калининград Карабулак Караганда Каракол Кашира Казань Кемерово Киев Кинешма Киров Кизляр Королев Кострома Красноармейск Краснодар Красногорск Красноярск Краснознаменск Курган Курск Кызыл Липецк Лобня Магадан Махачкала Майкоп Минеральные Воды Минск Могилев Москва Моздок Мозырь Мурманск Набережные Челны Нальчик Наро-Фоминск Нижневартовск Нижний Новгород Нижний Тагил Ногинск Норильск Новокузнецк Новосибирск Новоуральск Ноябрьск Обнинск Одинцово Омск Орехово-Зуево Орел Оренбург Ош Озёры Павлодар Пенза Пермь Петропавловск Подольск Полоцк Псков Пушкино Пятигорск Радужный Ростов-на-Дону Рязань Рыбинск Ржев Сальск Самара Самарканд Санкт-Петербург Саратов Сергиев Посад Серпухов Севастополь Северодвинск Щербинка Шымкент Симферополь Слоним Смоленск Солигорск Солнечногорск Ставрополь Сургут Светлогорск Сыктывкар Сызрань Тамбов Ташкент Тбилиси Терек Тихорецк Тобольск Тольятти Томск Троицк Тула Тверь Тюмень Уфа Ухта Улан-Удэ Ульяновск Ургенч Усть-Каменогорск Вёшенская Видное Владимир Владивосток Волгодонск Волгоград Волжск Воркута Воронеж Якутск Ярославль Юдино Жлобин Жуковский Златоуст Зубова Поляна Звенигород
Array
Тип обращения Вопрос Предложение Благодарность Жалоба
Array
Тема обращения Поступление Трудоустройство Обучение Оплата Кадровый резерв Внеучебная деятельность Работа автоматических сервисов университета Другое

* Все поля обязательны для заполнения

Университет Синергия
УниверситетУниверситет Синергия
г. Москва, просп. Ленинградский, д. 80 корп.Е, Ж, Г
+7 495 800–10–018 800 100–00–11
Общая:
Приёмная комиссия ежедневно с 11:00 до 19:00
Позвонить

Подобрать программу и поступить

DMCA.com Protection Status