Цитата:
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, время: 03:50. |