0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Определение</a></li>
1
<ul><li><a>Определение</a></li>
2
<li><a>Для чего нужен</a><ul><li><a>Ключевые принципы</a></li>
2
<li><a>Для чего нужен</a><ul><li><a>Ключевые принципы</a></li>
3
</ul></li>
3
</ul></li>
4
<li><a>Виды</a></li>
4
<li><a>Виды</a></li>
5
<li><a>Ключевые проблемы</a></li>
5
<li><a>Ключевые проблемы</a></li>
6
<li><a>Где реализуется</a></li>
6
<li><a>Где реализуется</a></li>
7
<li><a>Отличие от микросервисов и библиотек</a></li>
7
<li><a>Отличие от микросервисов и библиотек</a></li>
8
</ul><p>Существуют различные методы создания программ. Каждый предусматривает свои особенности, а также принципы организации работы. Пример - объектно-ориентированное программирование. В данном случае код строится на взаимоотношениях и связях различных компонентов, а не только на логике и абстракциях.</p>
8
</ul><p>Существуют различные методы создания программ. Каждый предусматривает свои особенности, а также принципы организации работы. Пример - объектно-ориентированное программирование. В данном случае код строится на взаимоотношениях и связях различных компонентов, а не только на логике и абстракциях.</p>
9
<p>Огромную роль для разработки играет<strong>архитектурный подход</strong>, носящий название "<strong>модульное программирование</strong>". Рассмотрим его подробнее.</p>
9
<p>Огромную роль для разработки играет<strong>архитектурный подход</strong>, носящий название "<strong>модульное программирование</strong>". Рассмотрим его подробнее.</p>
10
<h2>Определение</h2>
10
<h2>Определение</h2>
11
<p>Модуль в информатике и программировании - блок программы. Он имеет конкретное функциональное значение. Характеризуется своей полной логической завершенностью.</p>
11
<p>Модуль в информатике и программировании - блок программы. Он имеет конкретное функциональное значение. Характеризуется своей полной логической завершенностью.</p>
12
<p>Так принято называть метод создания программного обеспечения через объединение имеющихся модулей (блоков) в единую общую структуру.</p>
12
<p>Так принято называть метод создания программного обеспечения через объединение имеющихся модулей (блоков) в единую общую структуру.</p>
13
<p>Такое программирование нацелено на:</p>
13
<p>Такое программирование нацелено на:</p>
14
<ul><li>повышение скорости создания ПО;</li>
14
<ul><li>повышение скорости создания ПО;</li>
15
<li>обеспечение надежности приложения;</li>
15
<li>обеспечение надежности приложения;</li>
16
<li>упрощение процедуры тестирования.</li>
16
<li>упрощение процедуры тестирования.</li>
17
</ul><p>Программирование "по модулям" особо удобно для ситуаций, когда в команде разработчиков много участников. Там, где в основе заложен командный труд. Каждый человек сможет сконцентрироваться на собственной задаче, не переключаясь к проблемам остальных.</p>
17
</ul><p>Программирование "по модулям" особо удобно для ситуаций, когда в команде разработчиков много участников. Там, где в основе заложен командный труд. Каждый человек сможет сконцентрироваться на собственной задаче, не переключаясь к проблемам остальных.</p>
18
<h2>Для чего нужен</h2>
18
<h2>Для чего нужен</h2>
19
<p>Каждый проект в программировании - это специально составленный код. Его может быть очень много. Даже небольшой объем исходного кода иногда приводит к проблемам обновления, поддержки и исправления ошибок. Запутаться в нем легко, если нет строгой структуризации.</p>
19
<p>Каждый проект в программировании - это специально составленный код. Его может быть очень много. Даже небольшой объем исходного кода иногда приводит к проблемам обновления, поддержки и исправления ошибок. Запутаться в нем легко, если нет строгой структуризации.</p>
20
<p>Разбиение будущего приложения на модули - наиболее рациональный подход. Он помогает решать определенные проблемы программирования:</p>
20
<p>Разбиение будущего приложения на модули - наиболее рациональный подход. Он помогает решать определенные проблемы программирования:</p>
21
<ol><li>Код становится более читаемым, понятным и прозрачным. Для этого требуется грамотно классифицировать модули.</li>
21
<ol><li>Код становится более читаемым, понятным и прозрачным. Для этого требуется грамотно классифицировать модули.</li>
22
<li>Разрешение конфликтов имен. Такая ситуация неизбежна, если в коде присутствуют десятки идентификаторов. Все они обычно расположены в одной области видимости. Путем деления на модули можно "отсекать" лишние блоки кода. Этот прием устраняется конфликты идентификаторов.</li>
22
<li>Разрешение конфликтов имен. Такая ситуация неизбежна, если в коде присутствуют десятки идентификаторов. Все они обычно расположены в одной области видимости. Путем деления на модули можно "отсекать" лишние блоки кода. Этот прием устраняется конфликты идентификаторов.</li>
23
<li>Повышение надежности. Рассматриваемая концепция способствует осуществлению инкапсуляции программного кода. Каждый блок будет изолирован от другого. </li>
23
<li>Повышение надежности. Рассматриваемая концепция способствует осуществлению инкапсуляции программного кода. Каждый блок будет изолирован от другого. </li>
24
</ol><p>В информатике и программировании модуль - важный компонент. Далее соответствующий процесс создания программ будет рассмотрен более подробно.</p>
24
</ol><p>В информатике и программировании модуль - важный компонент. Далее соответствующий процесс создания программ будет рассмотрен более подробно.</p>
25
<h3>Ключевые принципы</h3>
25
<h3>Ключевые принципы</h3>
26
<p>Метод модулей в разработке появился благодаря канадскому программисту - Дэвиду Парнасу. Он предположил, что для создания "отдельного блока кода" достаточно минимального набора знаний о содержании других. На подобном высказывании базируется концепция сокрытия информации и программировании.</p>
26
<p>Метод модулей в разработке появился благодаря канадскому программисту - Дэвиду Парнасу. Он предположил, что для создания "отдельного блока кода" достаточно минимального набора знаний о содержании других. На подобном высказывании базируется концепция сокрытия информации и программировании.</p>
27
<p>Сокрытие - это метод проектирования, который предусматривает разграничение доступа разных частей (модулей) продукта к внутренним элементам друг друга.</p>
27
<p>Сокрытие - это метод проектирования, который предусматривает разграничение доступа разных частей (модулей) продукта к внутренним элементам друг друга.</p>
28
<p>Процесс написания контента подобным образом будет выглядеть так:</p>
28
<p>Процесс написания контента подобным образом будет выглядеть так:</p>
29
<ol><li>Описание информации/данных.</li>
29
<ol><li>Описание информации/данных.</li>
30
<li>Проектирование. Осуществляется по нисходящему принципу.</li>
30
<li>Проектирование. Осуществляется по нисходящему принципу.</li>
31
<li>Модульное программирование.</li>
31
<li>Модульное программирование.</li>
32
<li>Описание и создание главного программного обеспечения.</li>
32
<li>Описание и создание главного программного обеспечения.</li>
33
<li>Сборка готовой утилиты.</li>
33
<li>Сборка готовой утилиты.</li>
34
</ol><p>Структурными единицами здесь выступают совершенно разные компоненты - от сервисов до фреймворков. Главное, чтобы они отвечали за конкретные функции. А еще - могли предоставить к ней непосредственный доступ.</p>
34
</ol><p>Структурными единицами здесь выступают совершенно разные компоненты - от сервисов до фреймворков. Главное, чтобы они отвечали за конкретные функции. А еще - могли предоставить к ней непосредственный доступ.</p>
35
<h2>Виды</h2>
35
<h2>Виды</h2>
36
<p>Если говорить об информатике, то она предусматривает еще несколько определений модуля:</p>
36
<p>Если говорить об информатике, то она предусматривает еще несколько определений модуля:</p>
37
<ul><li>команды, которые обладают собственным обозначением и возможностью вызова по имени;</li>
37
<ul><li>команды, которые обладают собственным обозначением и возможностью вызова по имени;</li>
38
<li>совокупность программных операторов с идентификаторами и граничными элементами.</li>
38
<li>совокупность программных операторов с идентификаторами и граничными элементами.</li>
39
</ul><p>Существуют разные виды модулей:</p>
39
</ul><p>Существуют разные виды модулей:</p>
40
<ol><li>Малоразмерные. На реализацию таких модулей отдается единственная заданная функция. Большинство языков программирования определяют в качестве своего элементарного компонента процедуру или заданную операцию.</li>
40
<ol><li>Малоразмерные. На реализацию таких модулей отдается единственная заданная функция. Большинство языков программирования определяют в качестве своего элементарного компонента процедуру или заданную операцию.</li>
41
<li>Среднеразмерные. Представлены небольшим набором операций или функций.</li>
41
<li>Среднеразмерные. Представлены небольшим набором операций или функций.</li>
42
<li>Крупные. Они предусматривают включение в свой состав нескольких малоразмерных и среднеразмерных модулей.</li>
42
<li>Крупные. Они предусматривают включение в свой состав нескольких малоразмерных и среднеразмерных модулей.</li>
43
</ol><p>Примеры последних - это наборы пакетов в Java или Ada.</p>
43
</ol><p>Примеры последних - это наборы пакетов в Java или Ada.</p>
44
<h2>Ключевые проблемы</h2>
44
<h2>Ключевые проблемы</h2>
45
<p>Несмотря на то, что рассматриваемый вариант к созданию программного обеспечения является удобным и эффективным, он имеет некоторые недостатки. К таковым относят следующие моменты:</p>
45
<p>Несмотря на то, что рассматриваемый вариант к созданию программного обеспечения является удобным и эффективным, он имеет некоторые недостатки. К таковым относят следующие моменты:</p>
46
<ul><li>требования к памяти устройства - она должна быть увеличенной;</li>
46
<ul><li>требования к памяти устройства - она должна быть увеличенной;</li>
47
<li>более долгая компиляция и загрузка софта;</li>
47
<li>более долгая компиляция и загрузка софта;</li>
48
<li>медленное исполнение исходного кода - особо актуально для крупных приложений;</li>
48
<li>медленное исполнение исходного кода - особо актуально для крупных приложений;</li>
49
<li>риски создания слишком сложных алгоритмов взаимодействия.</li>
49
<li>риски создания слишком сложных алгоритмов взаимодействия.</li>
50
</ul><p>Лишь грамотный и основательный подход к ТЗ и составлению структуры утилиты поможет устранить последний недостаток. В умелых руках модульное программирование дает одни только плюсы.</p>
50
</ul><p>Лишь грамотный и основательный подход к ТЗ и составлению структуры утилиты поможет устранить последний недостаток. В умелых руках модульное программирование дает одни только плюсы.</p>
51
<h2>Где реализуется</h2>
51
<h2>Где реализуется</h2>
52
<p>Для того, чтобы пользоваться рассматриваемой парадигмой, разработчику предстоит выучить конкретные языки. Концепция модулей поддерживается в:</p>
52
<p>Для того, чтобы пользоваться рассматриваемой парадигмой, разработчику предстоит выучить конкретные языки. Концепция модулей поддерживается в:</p>
53
<ul><li>Кобол;</li>
53
<ul><li>Кобол;</li>
54
<li>Ада;</li>
54
<li>Ада;</li>
55
<li>Фортран;</li>
55
<li>Фортран;</li>
56
<li>Паскаль;</li>
56
<li>Паскаль;</li>
57
<li>Оберон;</li>
57
<li>Оберон;</li>
58
<li>Модула-2;</li>
58
<li>Модула-2;</li>
59
<li>Zonnon;</li>
59
<li>Zonnon;</li>
60
<li>Erlang;</li>
60
<li>Erlang;</li>
61
<li>Perl;</li>
61
<li>Perl;</li>
62
<li>Ruby.</li>
62
<li>Ruby.</li>
63
</ul><p>Еще один довольно интересный вариант - это Python. Данный язык является одним из наиболее популярных в 21 веке. Поэтому модульное программирование нельзя назвать устаревшим. Оно весьма активно применяется на практике.</p>
63
</ul><p>Еще один довольно интересный вариант - это Python. Данный язык является одним из наиболее популярных в 21 веке. Поэтому модульное программирование нельзя назвать устаревшим. Оно весьма активно применяется на практике.</p>
64
<h2>Отличие от микросервисов и библиотек</h2>
64
<h2>Отличие от микросервисов и библиотек</h2>
65
<p>Модуль - это не микросервис и не библиотека, хотя определения напоминают соответствующие компоненты. Вот ключевые различия с предложенными элементами кода:</p>
65
<p>Модуль - это не микросервис и не библиотека, хотя определения напоминают соответствующие компоненты. Вот ключевые различия с предложенными элементами кода:</p>
66
<ul><li>отсутствие горячей замены части кода в работающей утилите;</li>
66
<ul><li>отсутствие горячей замены части кода в работающей утилите;</li>
67
<li>невозможность запуска независимо от программы;</li>
67
<li>невозможность запуска независимо от программы;</li>
68
<li>отсутствие масштабируемости отдельно от остальных модулей;</li>
68
<li>отсутствие масштабируемости отдельно от остальных модулей;</li>
69
<li>модуль не предоставляет функции, которые могут вызывать другие блоки кода;</li>
69
<li>модуль не предоставляет функции, которые могут вызывать другие блоки кода;</li>
70
<li>обладает собственными изолированными хранилищами информации и параметрами.</li>
70
<li>обладает собственными изолированными хранилищами информации и параметрами.</li>
71
</ul><p>Дистанционные онлайн курсы помогут быстрее разобраться в выбранном направлении с нуля.</p>
71
</ul><p>Дистанционные онлайн курсы помогут быстрее разобраться в выбранном направлении с нуля.</p>
72
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
72
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
73
73