Скорее всего, когда
Брендан Айк проектировал JavaScript, он не представлял, как эволюционирует его
проект спустя двадцать лет. На данный момент вышло уже шесть основных
спецификаций языка, и работа над его улучшением до сих пор продолжается.
Не будем лукавить: JavaScript никогда не был
идеальным языком программирования. Одним из слабых мест в JS была модульность,
а точнее её отсутствие. Действительно, зачем в скриптовом языке, который
анимирует падающие на странице снежинки и валидирует форму, заботиться об
изоляции кода и зависимостях? Ведь всё может прекрасно жить и общаться между
собой в одной глобальной области — window.
С течением времени JavaScript трансформировался
в язык общего назначения, так его начали использовать для построения сложных
приложений в различных средах (браузер, сервер). При этом нельзя было
положиться на старые подходы взаимодействия компонентов программы через
глобальную область: с ростом объёма кода приложение становилось очень хрупким.
Как результат для упрощения процесса разработки создавались различные
реализации модульности.
Эта статья появилась в результате общения с
участниками TC39 и разработчиками фреймворков, а также чтения исходных кодов,
блогов и книг. Мы рассмотрим следующие подходы/форматы: Namespace, Module, Detached Dependency Definitions, Sandbox,
Dependency Injection, CommonJS, AMD, UMD, Labeled Modules, YModules и ES2015 Modules. Кроме того, мы восстановим исторический контекст их появления
и развития. https://habrahabr.ru/company/yandex/blog/192874/
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев