Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
18 Мар 2023
7 мин
5239

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

Пройдите тест, узнайте какой профессии подходите

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

Есть две основные парадигмы программирования: императивная и декларативная.

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

Если хотите прокачаться в IT и освоить новую профессию с нуля, пройдите курсы онлайн-университета Skypro. Например, «Аналитик данных», «Инженер по тестированию», «Веб-разработчик». Программы актуальные, соответствуют требованиям работодателей к новичкам. Соберете портфолио и найдете высокооплачиваемую работу — в этом поможет центр карьеры.

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

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

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

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

К парадигме программирования не относятся эти сущности:

  1. Языки программирования. Язык (например, Python, Java, C++) может только поддерживать разные парадигмы.
  2. Среда разработки (IDE). Инструменты Visual Studio, IntelliJ IDEA или PyCharm разработчики используют для программирования, но эти среды не определяют сам подход к разработке.
  3. Конкретные технологии и фреймворки. Например, React, Django, Spring — это инструменты для работы в определенных парадигмах.
  4. Алгоритмы и структуры данных. Они важны в программировании, но это методы решения задач, а не подход к программированию в целом.
  5. Методологии разработки ПО. Agile, Scrum, Waterfall – это процессы организации работы над проектами, но не принципы написания кода.
  6. Операционные системы. Windows, Linux, macOS – это платформы, где работают программы, но они не задают парадигму программирования.
  7. Протоколы и стандарты. HTTP, TCP/IP, REST, SOAP — это правила и соглашения, они определяют, как системы взаимодействуют между собой, но не описывают, как именно программист должен писать код.
  8. Архитектурные паттерны. MVC, MVVM, Microservices, Layered Architecture — это способы организации кода в приложении, их используют в разных парадигмах программирования. Например, MVC реализуют и в объектно ориентированном стиле, и в функциональном.
  9. Базы данных и способы их организации. Реляционные базы данных (MySQL, PostgreSQL) или NoSQL-хранилища (MongoDB, Redis) связаны с обработкой данных, но не диктуют стиль программирования.
  10. Инструменты DevOps и CI/CD. Docker, Kubernetes, Jenkins, GitHub Actions помогают автоматизировать развертывание и тестирование, но на концепцию кода не влияют.

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

Парадигма программирования — это стиль или концепция написания кода. Например:

  • Императивное программирование (процедурное, структурное).
  • Декларативное программирование (функциональное, логическое).
  • Объектно ориентированное программирование (ООП).
  • Функциональное программирование.
  • Логическое программирование.

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

Императивное программирование

мужчина стоит спиной со стрелками

Главное отличие этого типа — последовательное выполнение задач. Большая часть языков заточена именно под него.

Раньше процедурные языки были популярными и востребованными у разработчиков ПО. Сейчас распространено ООП.

📌 Процедурное программирование

Такой тип используют в языках C, Pascal, COBOL, ALGOL, BASIC, Fortran и т. д.
Базовое понятие — это функция или процедура в виде последовательно записанных и названных действий. Например, когда покупаете конструктор «Лего», его нужно собрать. Схема сборки, которая идет в комплекте, и есть функция.

Несмотря на то что понятия «процедура» и «функция» — синонимы, функциональное и процедурное программирование — разные вещи. Функциональное основано на декларативной парадигме, а процедурное — на императивной.

Когда отдаем машину в ремонт, например перебрать двигатель, то нас не интересует, какие процессы выполняет автомеханик. Главная задача — получить результат. Аналогично и с вызовом функции. Необходимо знать только наименование процедуры и технику ее использования.

📌 Объектно ориентированное программирование
1-машина, 2-автобус,3-велосипед

Этот подвид применяется в языках Java, Python, C++, Ruby, C#, Objective-C, PHP и подобных.

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

Всё это нужно, чтобы выполнять разнородные операции и разделять их между сотрудниками. А еще так легче выполнять и тестировать ПО в автоматическом режиме.

Освоить ООП можно на курсах Skypro, например «Java-разработчик». За несколько месяцев выучите базовую теорию и закрепите знания на практике. Опытные наставники и кураторы будут поддерживать и мотивировать, а специалисты центра карьеры помогут найти работу еще до завершения курса.

Декларативное программирование

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

📌 Логическое программирование

А,Б, смартфон

Здесь речь идет скорее о математике, чем о программировании. Основа — использование математических доказательств и законов логики. Всё это помогает
решать поставленные бизнес-задачи.

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

Моделирование процессов — сегмент, в котором логическое программирование наиболее популярно.

📌 Функциональное программирование

красный и синий круг позади мужчины

Этот тип близок к понятию функции в математике — особенно та часть, которая касается раздела о преобразовании данных.

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

Примеры использования парадигм программирования

Процедурная — для написания кода микрочипа

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

Объектно ориентированная

Есть много приложений для компьютеров и смартфонов, популярных интернет-сервисов, «умных» телевизоров и роутеров, которые написаны на объектно ориентированном языке.

Декларативная — для описания внешнего вида сайтов

Здесь пишут на языке CSS. Через него указывают шрифт текста, цвет фона, размер картинки.

Функциональная — для криптовалюты и блокчейна

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

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

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

Сравнение парадигм программирования

Представим, что есть массив следующих чисел:

412, 5, 625, 243, 2, 14, 30, 79, 4, 634, 367, 8, 34, 798, 159

В декларативном программировании разработчик пишет:

Получить из массива N все числа, которые больше 5 и меньше 500

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

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

Создать массив N с числами …;

объявить переменную i со значением 0;

Начало цикла:

Если значение элемента номер i больше 5 и меньше 500, то добавить его в массив N2;

Прибавить к переменной i единицу;

Повторять, пока значение переменной i меньше количества элементов массива N;

Конец цикла;

Вернуть массив N2;

То есть в декларативном программировании разработчик говорит, что ему нужно. А в императивном — как это можно получить.

Рассмотрим на примере:

Здесь код из статьи, я не понимаю, как его в док продублировать

Освойте популярные языки программирования Java и Python с нуля в онлайн-университете Skypro. Программы соответствуют требованиям работодателей, постоянно обновляются. В конце обучения вы получите диплом и новую работу: гарантию трудоустройства фиксируем в договоре или возвращаем деньги за курс.

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

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

Пройдите обучение IT-профессиям с нуля с гарантией новой работы в онлайн-университете Skypro. В программах курсов — только актуальная информация и навыки, которые ценятся работодателями. Все гарантии честно прописаны в договоре. Средняя зарплата выпускников — 72 000 ₽, а специалисты центра карьеры будут сопровождать до тех пор, пока вы не найдете работу по новой профессии.

Главное

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

Добавить комментарий