HTML Diff
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