Что такое модульное программирование?

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

Важные ключевые слова

Связь

Относится к степени прямого знания одного элемента о другом.

Слабая связь

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

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

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

Связывание и инкапсуляция являются наиболее фундаментальными понятиями, касающимися SOLID, IoC, наследования и абстракции.

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

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

Развязка

Развязка — это разделение сильно связанных компонентов компьютерной программы на слабо связанные. В основном мы используем шаблоны рефакторинга для разделения.

Обеспокоенность

Проблема – это определенный набор информации, который влияет на код компьютерной программы. IBM использует термин проблемное пространство для описания секционирования концептуальной информации.

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

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

Инкапсуляция

Инкапсуляцияотносится к сокрытию логики или информации модуля или компонента для уменьшения зависимостей между модулями компьютерной программы. Таким образом, он снижает энтропию в системе. Кроме того, инкапсуляция позволяет создавать четкие и элегантные программы, которые быстро устраняют ошибки во время выполнения и более понятны в семантическом пространстве. Это помогает сохранить кодовую базу СУХОЙ и, таким образом, снижает затраты на обслуживание.

Подходы модульного программирования

  • Архитектура микросервисов
  • Архитектура микрофронтендов
  • Дизайн, управляемый доменом
  • ТВЕРДЫЕ правила
  • Шаблоны ООП
  • Сервис-Ориентированная Архитектура
  • АОП

Цели модульного программирования

  • Слабосвязанные, масштабируемые и многократно используемые компоненты
  • СУХИЕ исходные коды
  • Лучшая инкапсуляция бизнес-логики и знаний о проблемах предметной области.
  • Разделение ответственности
  • Простота отладки и обслуживания
  • Применяется с разными командами одновременно и в одном приложении.

Плюсы

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

Минусы

  • Нужно больше абстракции.
  • Архитектура приложения может легко стать слишком сложной из-за плохой абстракции.
  • Нужны более опытные программисты.
  • Требуется лучшее знание предметной области для лучшей абстракции.

использованная литература

Спасибо
Роспись Инеголлу
Фират Тиряки