У меня сложилось впечатление, что в обществе все же есть предубеждение против использования глобальных переменных в служебных целях. В связи с этим, хочу дать некоторые разъяснения с примерами, которые снимут всякие сомнения и будут полезны всем, кто жаждет модульности и гибкости в JavaScript разработке. Я не могу проследить источники всех идей, приведенных ниже, но я не претендую на их авторство, а лишь на творческое обобщение. Так же я отказываюсь от претензий на один универсальных паттерн определения модйлей для всех случаев жизни, надеюсь, всем ясно, что такого не может быть никогда. Все это существенно отличается от подходов RequireJS, CommonJS и того, как модули оформляются в node.js через module.exports, однако, каждый из этих паттернов имеет свое место, если подходить к задаче без фанатизма и предубеждений.
Читать полностью »
Метка «Asynchronous Module Definition»
Паттерны JavaScript модулей в Impress для node.js и браузеров
2013-06-13 в 14:04, admin, рубрики: amd, Asynchronous Module Definition, javascript, node.js, nodejs, require, requirejs, метки: amd, Asynchronous Module Definition, javascript, node.js, nodejs, pattern, require, requirejsМодульный подход к разработке web-приложений с использованием JavaScript: AMD и RequireJS
2012-09-29 в 21:03, admin, рубрики: Asynchronous Module Definition, best practices, javascript, requirejs, Веб-разработка, метки: Asynchronous Module Definition, best practices, javascript, requirejsПри разработке приложений с модульной структурой на JavaScript возникает две проблемы:
- описание и удовлетворение зависимостей различных частей приложения, необходимость организации подключения зависимостей на серверной стороне;
- экспорт переменных в глобальную область видимости и их коллизия.
Обе эти задачи решаются при использовании подхода Asynchronous Module Definition. Он сводится к описанию модулей функцией define и подключению их с помощью require. На данный момент есть несколько инструментов, реализующих AMD. Я начал своё знакомство с ними с RequireJS и был удивлён, на сколько удобно и просто можно описывать зависимости модулей. Расскажу, как это работает, на простом примере.Читать полностью »