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></li>
2 <li><a>Термины и понятия - что может пригодиться</a></li>
3 <li><a>Модуль - определение</a><ul><li><a>Что можно делать через модули</a></li>
3 <li><a>Модуль - определение</a><ul><li><a>Что можно делать через модули</a></li>
4 <li><a>Несколько слов о преимуществах</a></li>
4 <li><a>Несколько слов о преимуществах</a></li>
5 </ul></li>
5 </ul></li>
6 <li><a>Паттерн "Модуль"</a><ul><li><a>Анонимное замыкание</a></li>
6 <li><a>Паттерн "Модуль"</a><ul><li><a>Анонимное замыкание</a></li>
7 <li><a>Глобальный импорт</a></li>
7 <li><a>Глобальный импорт</a></li>
8 <li><a>Объектный интерфейс</a></li>
8 <li><a>Объектный интерфейс</a></li>
9 <li><a>Раскрывающиеся модули</a></li>
9 <li><a>Раскрывающиеся модули</a></li>
10 </ul></li>
10 </ul></li>
11 <li><a>Подходы к реализации</a><ul><li><a>CommonJS - только начало</a></li>
11 <li><a>Подходы к реализации</a><ul><li><a>CommonJS - только начало</a></li>
12 <li><a>AMD - как название процессора</a></li>
12 <li><a>AMD - как название процессора</a></li>
13 <li><a>UMD</a></li>
13 <li><a>UMD</a></li>
14 </ul></li>
14 </ul></li>
15 <li><a>NodeJS - полноценный движок</a><ul><li><a>Больше о модулях в Node</a></li>
15 <li><a>NodeJS - полноценный движок</a><ul><li><a>Больше о модулях в Node</a></li>
16 </ul></li>
16 </ul></li>
17 </ul><p>JavaScript - язык программирования, который легко выучить, но без должного опыта достаточно трудно применить. Пользоваться им рекомендуется при создании веб-контента, включая серверные приложения.</p>
17 </ul><p>JavaScript - язык программирования, который легко выучить, но без должного опыта достаточно трудно применить. Пользоваться им рекомендуется при создании веб-контента, включая серверные приложения.</p>
18 <p>При создании сложных утилит рекомендуется пользоваться так называемым модульным программированием. В данной статье зайдет речь о том, как применять соответствующую особенность в JS. Также будет рассмотрен один из самых популярных движков, позволяющих реализовывать модули без особых навыков в программировании.</p>
18 <p>При создании сложных утилит рекомендуется пользоваться так называемым модульным программированием. В данной статье зайдет речь о том, как применять соответствующую особенность в JS. Также будет рассмотрен один из самых популярных движков, позволяющих реализовывать модули без особых навыков в программировании.</p>
19 <h2>Модульное программирование - это…</h2>
19 <h2>Модульное программирование - это…</h2>
20 <p>Модульным программированием называется некая организация приложения, которая позволяет рассматривать утилиту в виде нескольких самостоятельных блоков. Структура и поведение оных будут подчиняться тем или иным правилам.</p>
20 <p>Модульным программированием называется некая организация приложения, которая позволяет рассматривать утилиту в виде нескольких самостоятельных блоков. Структура и поведение оных будут подчиняться тем или иным правилам.</p>
21 <p>Данный вариант коддинга позволяет:</p>
21 <p>Данный вариант коддинга позволяет:</p>
22 <ul><li>упростить процедуру написания софта;</li>
22 <ul><li>упростить процедуру написания софта;</li>
23 <li>быстрее и проще обнаруживать ошибки;</li>
23 <li>быстрее и проще обнаруживать ошибки;</li>
24 <li>отделять аппаратно-зависимые задачи в отдельную "категорию";</li>
24 <li>отделять аппаратно-зависимые задачи в отдельную "категорию";</li>
25 <li>создавать утилиты, обладающие высоким уровнем мобильности.</li>
25 <li>создавать утилиты, обладающие высоким уровнем мобильности.</li>
26 </ul><p>Также посредством данной особенности программер на JS или любом другом языке сможет упростить чтение имеющейся кодификации.</p>
26 </ul><p>Также посредством данной особенности программер на JS или любом другом языке сможет упростить чтение имеющейся кодификации.</p>
27 <h2>Термины и понятия - что может пригодиться</h2>
27 <h2>Термины и понятия - что может пригодиться</h2>
28 <p>JS выступает языком веб-утитил, но при определенных обстоятельствах можно сделать его универсальным. В реализации соответствующей задачи поможет определенный движок, который будет рассмотрен позже.</p>
28 <p>JS выступает языком веб-утитил, но при определенных обстоятельствах можно сделать его универсальным. В реализации соответствующей задачи поможет определенный движок, который будет рассмотрен позже.</p>
29 <p>Для начала рекомендуется освежить познания в терминологии коддинга. Без нее изучить модули и написание кодов посредством "блоков" будет весьма проблематично:</p>
29 <p>Для начала рекомендуется освежить познания в терминологии коддинга. Без нее изучить модули и написание кодов посредством "блоков" будет весьма проблематично:</p>
30 <ul><li>алгоритм - инструкции/правила/принципы, используемые для решения поставленных задач;</li>
30 <ul><li>алгоритм - инструкции/правила/принципы, используемые для решения поставленных задач;</li>
31 <li>объект - связанные между собой переменные, которые можно выбирать, а затем производить их обработку;</li>
31 <li>объект - связанные между собой переменные, которые можно выбирать, а затем производить их обработку;</li>
32 <li>классы - объекты, связанные друг с другом, наделенные общими характеристиками;</li>
32 <li>классы - объекты, связанные друг с другом, наделенные общими характеристиками;</li>
33 <li>компиляция - процесс создания из кода на JS или другом "синтаксисе" работающей утилиты;</li>
33 <li>компиляция - процесс создания из кода на JS или другом "синтаксисе" работающей утилиты;</li>
34 <li>константа - значение, не подлежащее корректировке в процессе работы кода;</li>
34 <li>константа - значение, не подлежащее корректировке в процессе работы кода;</li>
35 <li>тип данных - классификация информации того или иного типа;</li>
35 <li>тип данных - классификация информации того или иного типа;</li>
36 <li>массив - группы/перечни схожих друг с другом значений данных, которые можно группировать;</li>
36 <li>массив - группы/перечни схожих друг с другом значений данных, которые можно группировать;</li>
37 <li>исключение - неожиданное/нестандартное/аномальное/нехарактерное поведение программного кода;</li>
37 <li>исключение - неожиданное/нестандартное/аномальное/нехарактерное поведение программного кода;</li>
38 <li>фреймворк - готовый модуль (блок) программного кода, используемый при создании сложных приложений;</li>
38 <li>фреймворк - готовый модуль (блок) программного кода, используемый при создании сложных приложений;</li>
39 <li>переменная - элементарная единица хранилища данных;</li>
39 <li>переменная - элементарная единица хранилища данных;</li>
40 <li>итерация - один полный проход через набор имеющихся операций, работающих с соответствующим кодом;</li>
40 <li>итерация - один полный проход через набор имеющихся операций, работающих с соответствующим кодом;</li>
41 <li>пакет - организованный модуль интерфейсов и классов, связанных между собой.</li>
41 <li>пакет - организованный модуль интерфейсов и классов, связанных между собой.</li>
42 </ul><p>Все перечисленные понятия пригодятся не только при коддинге на JS. Они используются во всех языках программирования и являются своеобразной "базой". Только после осваивания перечисленных понятий можно приступить к полноценному созданию программных кодов.</p>
42 </ul><p>Все перечисленные понятия пригодятся не только при коддинге на JS. Они используются во всех языках программирования и являются своеобразной "базой". Только после осваивания перечисленных понятий можно приступить к полноценному созданию программных кодов.</p>
43 <h2>Модуль - определение</h2>
43 <h2>Модуль - определение</h2>
44 <p>JS является способом создания всевозможных современных быстрых приложений и утилит. Большинство из них относят к серверным. Раньше данный вариант общения с программным и аппаратным обеспечением являлся узконаправленным. Теперь JS с легкостью выступает в качестве универсального средства коддинга. Немаловажную роль в нем играет модульное программирование.</p>
44 <p>JS является способом создания всевозможных современных быстрых приложений и утилит. Большинство из них относят к серверным. Раньше данный вариант общения с программным и аппаратным обеспечением являлся узконаправленным. Теперь JS с легкостью выступает в качестве универсального средства коддинга. Немаловажную роль в нем играет модульное программирование.</p>
45 <p>Модуль - это функционально законченная часть или фрагмент имеющегося приложения. Обычно оформляется как самостоятельный файл с исходным кодом или поименованная непрерывная ее часть. Иногда допускается объединение модулей в так называемые пакеты.</p>
45 <p>Модуль - это функционально законченная часть или фрагмент имеющегося приложения. Обычно оформляется как самостоятельный файл с исходным кодом или поименованная непрерывная ее часть. Иногда допускается объединение модулей в так называемые пакеты.</p>
46 <p>Модулем называют переиспользуемую часть кода, которая содержит в себе:</p>
46 <p>Модулем называют переиспользуемую часть кода, которая содержит в себе:</p>
47 <ul><li>особенности реализации;</li>
47 <ul><li>особенности реализации;</li>
48 <li>предоставление открытого API;</li>
48 <li>предоставление открытого API;</li>
49 <li>возможность применения модуля в другом программном коде.</li>
49 <li>возможность применения модуля в другом программном коде.</li>
50 </ul><p>С помощью модульного программирования составление всевозможных утилит становится более удобным, а иногда - быстрым.</p>
50 </ul><p>С помощью модульного программирования составление всевозможных утилит становится более удобным, а иногда - быстрым.</p>
51 <p>Модули в JS не являются обязательными. Выполнить большинство задач удается и без разбиения кода на "блоки". Большие утилиты лучше всего создавать посредством модулей. Этот процесс позволит даже новичку не запутаться в весьма сложных задачах.</p>
51 <p>Модули в JS не являются обязательными. Выполнить большинство задач удается и без разбиения кода на "блоки". Большие утилиты лучше всего создавать посредством модулей. Этот процесс позволит даже новичку не запутаться в весьма сложных задачах.</p>
52 <h3>Что можно делать через модули</h3>
52 <h3>Что можно делать через модули</h3>
53 <p>Модули в ДжавеСкрипт позволят создать сложный проект "с нуля", а затем использовать имеющиеся "блоки" в будущем. Модульный подход нужно применять, чтобы:</p>
53 <p>Модули в ДжавеСкрипт позволят создать сложный проект "с нуля", а затем использовать имеющиеся "блоки" в будущем. Модульный подход нужно применять, чтобы:</p>
54 <ol><li>Обеспечить абстрагирование кодификации. Функциональные возможности будут передаваться сторонним библиотекам. В их реализации не придется разбираться долгое время.</li>
54 <ol><li>Обеспечить абстрагирование кодификации. Функциональные возможности будут передаваться сторонним библиотекам. В их реализации не придется разбираться долгое время.</li>
55 <li>Провести инкапсуляцию. Данный вариант предусматривает сокрытие кодификации внутри имеющегося модуля. Это помогает "обезопасить" участок приложения от возможных корректировок.</li>
55 <li>Провести инкапсуляцию. Данный вариант предусматривает сокрытие кодификации внутри имеющегося модуля. Это помогает "обезопасить" участок приложения от возможных корректировок.</li>
56 <li>Переиспользовать имеющийся исходный код. Больше не придется снова осуществлять запись одинаковых функций и возможностей JS вручную.</li>
56 <li>Переиспользовать имеющийся исходный код. Больше не придется снова осуществлять запись одинаковых функций и возможностей JS вручную.</li>
57 <li>Производить управление зависимостями. При подобных обстоятельствах нет никакой необходимости в переписи имеющихся фрагментов кодификации.</li>
57 <li>Производить управление зависимостями. При подобных обстоятельствах нет никакой необходимости в переписи имеющихся фрагментов кодификации.</li>
58 </ol><p>Отсюда следует, что, если разработчик хотел или хочет создавать схожие утилиты, сократить время коддинга удается за счет модулей.</p>
58 </ol><p>Отсюда следует, что, если разработчик хотел или хочет создавать схожие утилиты, сократить время коддинга удается за счет модулей.</p>
59 <h3>Несколько слов о преимуществах</h3>
59 <h3>Несколько слов о преимуществах</h3>
60 <p>Модульная разработка обладает огромным количеством плюсов, и не только на Джаве. В случае с JS модули выделяются следующими моментами:</p>
60 <p>Модульная разработка обладает огромным количеством плюсов, и не только на Джаве. В случае с JS модули выделяются следующими моментами:</p>
61 <ol><li>Хорошая поддержка. Модуль в JS выступает в виде самостоятельной части кодификации. Хорошо и грамотно написанный, он во время использования уменьшает зависимости частей кодовой базы. Делается это в максимально возможных объемах. Программу удастся расширять без полной переписи "внутренностей".</li>
61 <ol><li>Хорошая поддержка. Модуль в JS выступает в виде самостоятельной части кодификации. Хорошо и грамотно написанный, он во время использования уменьшает зависимости частей кодовой базы. Делается это в максимально возможных объемах. Программу удастся расширять без полной переписи "внутренностей".</li>
62 <li>Простое обновление. Модуль легко обновляется и не требует значительных изменений в исходной написанной базе. Связано это с обособленностью.</li>
62 <li>Простое обновление. Модуль легко обновляется и не требует значительных изменений в исходной написанной базе. Связано это с обособленностью.</li>
63 <li>Наличие пространства имен. В JS переменные, расположенные за пределами функций верхнего уровня, носят название глобальных. К ним подключаются все желающие, когда в этом возникает потребность. Модули позволяют миновать так называемого загрязнения пространства имен. Достигается такой результат путем загрузки приватных пространств для имеющихся хранилищ информации.</li>
63 <li>Наличие пространства имен. В JS переменные, расположенные за пределами функций верхнего уровня, носят название глобальных. К ним подключаются все желающие, когда в этом возникает потребность. Модули позволяют миновать так называемого загрязнения пространства имен. Достигается такой результат путем загрузки приватных пространств для имеющихся хранилищ информации.</li>
64 <li>Повторное применение. Невозможно встретить два приложения, которые выполняют схожие между собой операции, но сильно отличаются написанной "базой". Особенно если утилиты составлены на одном и том же языке. В JS и других способах общения с ПО и устройствами за счет так называемых модулей могут быть получены готовые "блоки" кода, с легкостью переносимые в иной контент.</li>
64 <li>Повторное применение. Невозможно встретить два приложения, которые выполняют схожие между собой операции, но сильно отличаются написанной "базой". Особенно если утилиты составлены на одном и том же языке. В JS и других способах общения с ПО и устройствами за счет так называемых модулей могут быть получены готовые "блоки" кода, с легкостью переносимые в иной контент.</li>
65 </ol><p>Не стоит думать, что module programming - это только копирование и перенос. Данный вариант развития событий требует от программера определенных навыков и багажа знаний.</p>
65 </ol><p>Не стоит думать, что module programming - это только копирование и перенос. Данный вариант развития событий требует от программера определенных навыков и багажа знаний.</p>
66 <h2>Паттерн "Модуль"</h2>
66 <h2>Паттерн "Модуль"</h2>
67 <p>При создании кодификаций в JS нередко используются так называемые паттерны. Это - шаблоны ООП. Служат неотъемлемой частью разработки текущего поколения. Выступают в виде повторяемой архитектурной конструкции, которая помогает решает разнообразные задачи проектирования.</p>
67 <p>При создании кодификаций в JS нередко используются так называемые паттерны. Это - шаблоны ООП. Служат неотъемлемой частью разработки текущего поколения. Выступают в виде повторяемой архитектурной конструкции, которая помогает решает разнообразные задачи проектирования.</p>
68 <p>Паттерн - это типовое решение для часто встречающихся на практике операций. В Java Script паттерн под называнием "Модуль" применяется при имитации концепции классов, ведь изначально эти "объекты" в языке не найдете. Они не предусматриваются "по умолчанию".</p>
68 <p>Паттерн - это типовое решение для часто встречающихся на практике операций. В Java Script паттерн под называнием "Модуль" применяется при имитации концепции классов, ведь изначально эти "объекты" в языке не найдете. Они не предусматриваются "по умолчанию".</p>
69 <p>Pattern "Модуль" позволяет:</p>
69 <p>Pattern "Модуль" позволяет:</p>
70 <ul><li>осуществлять хранение публичных и приватных методов внутри одного объекта;</li>
70 <ul><li>осуществлять хранение публичных и приватных методов внутри одного объекта;</li>
71 <li>создавать публичные API;</li>
71 <li>создавать публичные API;</li>
72 <li>давать возможность обращения к публичным методам, изолируя приватные путем замыкания.</li>
72 <li>давать возможность обращения к публичным методам, изолируя приватные путем замыкания.</li>
73 </ul><p>Существуют различные вариации реализации в системе паттернов "Модуль". Их необходимо учитывать, если хочется полноценно программировать.</p>
73 </ul><p>Существуют различные вариации реализации в системе паттернов "Модуль". Их необходимо учитывать, если хочется полноценно программировать.</p>
74 <h3>Анонимное замыкание</h3>
74 <h3>Анонимное замыкание</h3>
75 <p>Выше дан вариант программирования на JS с использованием так называемого замыкания. Добавлю еще и то, что такое решение на практике применяется достаточно часто. Позволяет системе задействовать локальные переменные внутри функций, не беспокоясь за случайную перезапись глобальных "значений" с аналогичными именами.</p>
75 <p>Выше дан вариант программирования на JS с использованием так называемого замыкания. Добавлю еще и то, что такое решение на практике применяется достаточно часто. Позволяет системе задействовать локальные переменные внутри функций, не беспокоясь за случайную перезапись глобальных "значений" с аналогичными именами.</p>
76 <p>Работает по следующему принципу:</p>
76 <p>Работает по следующему принципу:</p>
77 <ol><li>Объявляется анонимная функция.</li>
77 <ol><li>Объявляется анонимная функция.</li>
78 <li>Устанавливается зона видимости или замыкание.</li>
78 <li>Устанавливается зона видимости или замыкание.</li>
79 <li>Происходит сокрытие переменных из родительных областей видимостей.</li>
79 <li>Происходит сокрытие переменных из родительных областей видимостей.</li>
80 </ol><p>Доступ к переменным глобального характера будет подключать можно так:</p>
80 </ol><p>Доступ к переменным глобального характера будет подключать можно так:</p>
81 <p>Здесь обязательно проставлять круглые скобки близ анонимных функций. Связано это с тем, что задействованная инструкция, начинающаяся с function всегда выступает в качестве объявлении функции. JS не предусматривает такой вариант, если отсутствует имя. Значит, скобки обеспечивают "соединение" с функцией в процессе выполнения кодификации.</p>
81 <p>Здесь обязательно проставлять круглые скобки близ анонимных функций. Связано это с тем, что задействованная инструкция, начинающаяся с function всегда выступает в качестве объявлении функции. JS не предусматривает такой вариант, если отсутствует имя. Значит, скобки обеспечивают "соединение" с функцией в процессе выполнения кодификации.</p>
82 <h3>Глобальный импорт</h3>
82 <h3>Глобальный импорт</h3>
83 <p>Глобальный импорт использует разнообразные библиотеки. Примером выступает jQuery. Напоминает замыкание, но при подобных обстоятельствах ссылка на глобальные переменные выступает параметрами:</p>
83 <p>Глобальный импорт использует разнообразные библиотеки. Примером выступает jQuery. Напоминает замыкание, но при подобных обстоятельствах ссылка на глобальные переменные выступает параметрами:</p>
84 <p>Здесь:</p>
84 <p>Здесь:</p>
85 <ul><li>GlobalVariable - глобальная переменная, которая является единственной;</li>
85 <ul><li>GlobalVariable - глобальная переменная, которая является единственной;</li>
86 <li>преимущество - хранилища данных объявляется заранее, делая чтение кодификации максимально доступным.</li>
86 <li>преимущество - хранилища данных объявляется заранее, делая чтение кодификации максимально доступным.</li>
87 </ul><p>Такой подход применяется, когда на передовой стоит прозрачность приложения JS.</p>
87 </ul><p>Такой подход применяется, когда на передовой стоит прозрачность приложения JS.</p>
88 <h3>Объектный интерфейс</h3>
88 <h3>Объектный интерфейс</h3>
89 <p>Чтобы программер увидел разницу в модульном программировании, стоит рассмотреть максимальное количество возможных способов подключения оного. Еще один подход - это использование объектного интерфейса:</p>
89 <p>Чтобы программер увидел разницу в модульном программировании, стоит рассмотреть максимальное количество возможных способов подключения оного. Еще один подход - это использование объектного интерфейса:</p>
90 <p>Позволяет выбирать переменные и методы для дальнейшего использования в качестве приватных. Также таким способом удается создавать публичные методы/хранилища информации через перемещение оных в возвращаемые объекты.</p>
90 <p>Позволяет выбирать переменные и методы для дальнейшего использования в качестве приватных. Также таким способом удается создавать публичные методы/хранилища информации через перемещение оных в возвращаемые объекты.</p>
91 <h3>Раскрывающиеся модули</h3>
91 <h3>Раскрывающиеся модули</h3>
92 <p>Данный подход отличается от предыдущего тем, что здесь все методы и переменные будут приватными до тех пор, пока их не раскроют явным способом.</p>
92 <p>Данный подход отличается от предыдущего тем, что здесь все методы и переменные будут приватными до тех пор, пока их не раскроют явным способом.</p>
93 <h2>Подходы к реализации</h2>
93 <h2>Подходы к реализации</h2>
94 <p>Подключение модулей - не самая трудная задача, но сначала стоит определиться с реализацией оной. Помимо предложенных выше примеров на серверах активно применяются различные приемы:</p>
94 <p>Подключение модулей - не самая трудная задача, но сначала стоит определиться с реализацией оной. Помимо предложенных выше примеров на серверах активно применяются различные приемы:</p>
95 <ul><li>CommonJS;</li>
95 <ul><li>CommonJS;</li>
96 <li>AMD;</li>
96 <li>AMD;</li>
97 <li>UMD;</li>
97 <li>UMD;</li>
98 <li>запуск через nodejs.</li>
98 <li>запуск через nodejs.</li>
99 </ul><p>Эти варианты позволят осуществлять подключение к блокам JS без обращения к глобальной области видимости.</p>
99 </ul><p>Эти варианты позволят осуществлять подключение к блокам JS без обращения к глобальной области видимости.</p>
100 <h3>CommonJS - только начало</h3>
100 <h3>CommonJS - только начало</h3>
101 <p>Представлена фрагментами JS, которые применяются многократно. Создан модуль независимой группой разработчиков на благих началах. Запуск позволяет экспортировать специальные объекты, которые обеспечивают доступность оных другим модулям. Часто встречается в nodeJS.</p>
101 <p>Представлена фрагментами JS, которые применяются многократно. Создан модуль независимой группой разработчиков на благих началах. Запуск позволяет экспортировать специальные объекты, которые обеспечивают доступность оных другим модулям. Часто встречается в nodeJS.</p>
102 <p>Выделяется:</p>
102 <p>Выделяется:</p>
103 <ul><li>отсутствием загрязнения глобального пространства имеющихся имен;</li>
103 <ul><li>отсутствием загрязнения глобального пространства имеющихся имен;</li>
104 <li>определение зависимостей более явными методами.</li>
104 <li>определение зависимостей более явными методами.</li>
105 </ul><p>Соответствующие встроенные модули обладают простым синтаксисом, поэтому легко осваиваются.</p>
105 </ul><p>Соответствующие встроенные модули обладают простым синтаксисом, поэтому легко осваиваются.</p>
106 <p>Выше представлен пример определения.</p>
106 <p>Выше представлен пример определения.</p>
107 <h3>AMD - как название процессора</h3>
107 <h3>AMD - как название процессора</h3>
108 <p>Модули в JS могут работать асинхронно. В этом случае для вызова "готовых блоков" используется AMD. Загружается так:</p>
108 <p>Модули в JS могут работать асинхронно. В этом случае для вызова "готовых блоков" используется AMD. Загружается так:</p>
109 <p>Работает следующим образом:</p>
109 <p>Работает следующим образом:</p>
110 <ol><li>Функция определения модуля принимает первым аргументом имеющийся массив зависимостей.</li>
110 <ol><li>Функция определения модуля принимает первым аргументом имеющийся массив зависимостей.</li>
111 <li>Происходит загрузка оных в фоновом режиме, который является не блокирующим.</li>
111 <li>Происходит загрузка оных в фоновом режиме, который является не блокирующим.</li>
112 <li>Осуществляется работа функции обратного вызова, переданной вторым аргументом.</li>
112 <li>Осуществляется работа функции обратного вызова, переданной вторым аргументом.</li>
113 <li>Соответствующий элемент в виде аргументов принимает загруженные ранее зависимости, позволяя использование оных.</li>
113 <li>Соответствующий элемент в виде аргументов принимает загруженные ранее зависимости, позволяя использование оных.</li>
114 </ol><p>Все зависимости в AMD определяются ключевым словом define.</p>
114 </ol><p>Все зависимости в AMD определяются ключевым словом define.</p>
115 <h3>UMD</h3>
115 <h3>UMD</h3>
116 <p>Новый подход к особо сложным задачам. Позволяет пользоваться одновременно всеми перечисленными ранее модулями. Универсальное объединение "готовых шаблонов".</p>
116 <p>Новый подход к особо сложным задачам. Позволяет пользоваться одновременно всеми перечисленными ранее модулями. Универсальное объединение "готовых шаблонов".</p>
117 <p>Работают и на клиентах, и на серверах. Имеет поддержку определения модулей посредством глобальных переменных.</p>
117 <p>Работают и на клиентах, и на серверах. Имеет поддержку определения модулей посредством глобальных переменных.</p>
118 <h2>NodeJS - полноценный движок</h2>
118 <h2>NodeJS - полноценный движок</h2>
119 <p>NodeJS - это некая программная платформа, которая базируется на движке V8. Позволяет сделать из узкоспециализированного JS язык общего назначения. В основе работы используется модульное программирование.</p>
119 <p>NodeJS - это некая программная платформа, которая базируется на движке V8. Позволяет сделать из узкоспециализированного JS язык общего назначения. В основе работы используется модульное программирование.</p>
120 <p>За все время существований поддерживались несколько версий node. Сейчас работают разработки:</p>
120 <p>За все время существований поддерживались несколько версий node. Сейчас работают разработки:</p>
121 <ul><li>12.x;</li>
121 <ul><li>12.x;</li>
122 <li>14.x;</li>
122 <li>14.x;</li>
123 <li>16.x;</li>
123 <li>16.x;</li>
124 <li>17.x.</li>
124 <li>17.x.</li>
125 </ul><p>В апреле 2022 года планируется выпуск новой версии. Вот пример Hello, World, который отражает запуск и создание HTTP-сервера:</p>
125 </ul><p>В апреле 2022 года планируется выпуск новой версии. Вот пример Hello, World, который отражает запуск и создание HTTP-сервера:</p>
126 <p>Задумываясь, как пользоваться платформой Node JS, стоит отметить - это довольно простой процесс, если разобраться с основами программирования. И подключить "готовые блоки" кодификаций не составит никакого труда.</p>
126 <p>Задумываясь, как пользоваться платформой Node JS, стоит отметить - это довольно простой процесс, если разобраться с основами программирования. И подключить "готовые блоки" кодификаций не составит никакого труда.</p>
127 <h3>Больше о модулях в Node</h3>
127 <h3>Больше о модулях в Node</h3>
128 <p>Запустить NodeJS - это только половина дела. Главное грамотно подключить к платформе "готовые блоки". Их здесь несколько:</p>
128 <p>Запустить NodeJS - это только половина дела. Главное грамотно подключить к платформе "готовые блоки". Их здесь несколько:</p>
129 <ul><li>require - для подключения модулей;</li>
129 <ul><li>require - для подключения модулей;</li>
130 <li>module - для организации работы "готовых блоков".</li>
130 <li>module - для организации работы "готовых блоков".</li>
131 </ul><p>Подключаем рассматриваемые элементы через console примерно так:</p>
131 </ul><p>Подключаем рассматриваемые элементы через console примерно так:</p>
132 <p>Когда запускаем очередной "блок", вызывая функцию require, важно учитывать, что:</p>
132 <p>Когда запускаем очередной "блок", вызывая функцию require, важно учитывать, что:</p>
133 <ul><li>resolving - отвечает за определение абсолютного пути к файлу;</li>
133 <ul><li>resolving - отвечает за определение абсолютного пути к файлу;</li>
134 <li>loading - определение типа файла;</li>
134 <li>loading - определение типа файла;</li>
135 <li>wrapping - создание области видимости;</li>
135 <li>wrapping - создание области видимости;</li>
136 <li>evaluating - выполнение кодификации;</li>
136 <li>evaluating - выполнение кодификации;</li>
137 <li>caching - кэширование.</li>
137 <li>caching - кэширование.</li>
138 </ul><p>Это принцип scripts modules. Больше наглядных примеров<a>здесь</a>.</p>
138 </ul><p>Это принцип scripts modules. Больше наглядных примеров<a>здесь</a>.</p>
139 <p>А для того, чтобы не пришлось думать, что собой представляет файл package, как осуществляется log, каким образом работать в командной строке и подключать шаблоны в Джаве, стоит закончить специализированные курсы. С ними подключение модулей в node JS не доставит никаких хлопот. По завершению обучения гарантируется выдача электронного именного сертификата.</p>
139 <p>А для того, чтобы не пришлось думать, что собой представляет файл package, как осуществляется log, каким образом работать в командной строке и подключать шаблоны в Джаве, стоит закончить специализированные курсы. С ними подключение модулей в node JS не доставит никаких хлопот. По завершению обучения гарантируется выдача электронного именного сертификата.</p>
140 <a></a>
140 <a></a>