Цитата:
YUI.add('module-name', function (Y) { // ... текст модуля ... }, 'version', { lang: ['ru'], // для каких языков есть языковые файлы requires: [ 'some-module',... // модули от которых зависит данный модуль. ] skinnable: true // присутствует CSS }); Зависимость модулей может быть иерархическая. Т.е. например: * dom * base * core * strings В модуле dom указываются только base и strings, а в base - core. |
Цитата:
|
Глобальные функции - зло. Не стоит их использовать в коде.
|
Цитата:
|
Цитата:
YUI({ groups: { 'old-scripts': { 'old-script': { base: 'http://...', // Путь к скриптам async: false, modules: { 'old-script': { path: 'old-script.js', // путь к файлу (относительно указанного выше) requires: ['another-old-script'] // файлы от которых зависит данный }, 'another-old-script': { // также сюда можно включать CSS файлы ... } } } } } }).use('old-script', function (Y) { //... Песочница, в которой доступен "старый" код }); |
Цитата:
|
Цитата:
Но по возможности, конечно, стараюсь избавляться от Legacy кода, так как глобальные переменные/функции - зло, которое неизвестно когда проявит себя. |
Пробовал я юзать стрикт - пользы от него чуть менее чем никакой, а гемора добавляет. Особенно убивает, что стрикт не просто варнинги кидает, а в корне меняет некоторые аспекты языка, из-за чего один и тот же код по разному работает в разных браузерах. Спасибо, не надо такого счастья.
|
как ты отлаживаешь свои сендбоксы? это же нечитаемая портянка. Сравни например с http://wrikeman.hyoo.ru/wman/-mix/in...b.stage=dev.js и http://wrikeman.hyoo.ru/wman/-mix/index.stage=dev.css
|
> function(global,module,core,elems,tmpl,__zAgS_)
global и module ещё понятно, но нафига остальные-то навязывать? |
Цитата:
Цитата:
|
tensh, никто вас и не заставляет делать всё это.
Просто если вовремя не подумать о проблемах, то проблемы начинают думать о вас. Пока приложение маленькое - реально удержать всё в голове/бумаге/файле. Помнить где какие глобальные переменные и функции и т.п. В какой-то критический момент времени приходится разделять код. Держать код небольшими порциями в отдельных файлах это огромный плюс. Тем более, что можно его тестировать этими частями. И я реально не представляю, каким образом можно писать большой проект (RIA приложение 500+ скриптов) не пользуясь подобными подходами. |
У меня всё автоматизировано, чего тут ещё думать?)
http://hyoo.ru/?article=%D0%9C%D0%BE...author=Nin+Jin |
У меня тоже всё автоматизировано :)
Плюс не тянется лишний код. Например, для Оперы не подтянутся патчи IE и наоборот. Плюс ленивая загрузка, когда скрипт загрузится только если пользователь будет использовать нужный функционал. Мне не нужно следить за jam файлами. И один раз написанный модуль я могу использовать в бесконечном числе проектов. Интересно, а как тестировать ваши модули ? Как в них мокать объекты ? |
Цитата:
сам модуль зависим от трех модулей [ core, elems, tmpl ] , если бы не было зависимостей то определенны были бы только две переменных global и module __zAgS_ - это часть внутренней кухни, она не в счет. |
Не всё, раз приходится столько писать руками.
А в чем проблема замочить глобальные переменные? $jin.method( function $jin_alertRandom( ){ alert( Math.random() ) } ) $jin.test( function( test ){ test.timeout( 1 ) test.mockMethod( function Math_random( ){ return 0.25 } ) test.mockMethod( function alert( value ){ test.equal( value, 0.25 ).done() } ) $jin.alertRandom() }) |
Цитата:
|
Часовой пояс GMT +3, время: 22:57. |