Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   модульность для js (https://javascript.ru/forum/project/28264-modulnost-dlya-js.html)

tenshi 03.10.2013 22:32

Цитата:

Зависимость модулей может быть иерархическая.
Т.е.
например:
* dom
* base
* core
* strings
В модуле dom указываются только base и strings, а в base - core.
Я не хочу обо всё этом думать.

Цитата:

Сообщение от Madzi (Сообщение 274838)
YUI.add('module-name', function (Y) {
// ... текст модуля ...
}, 'version', {
    lang: ['ru'], // для каких языков есть языковые файлы
    requires: [
        'some-module',... // модули от которых зависит данный модуль.
   ]
    skinnable: true // присутствует CSS
});

И не хочу столько всего копипастить.

Madzi 03.10.2013 22:43

tensh, никто вас и не заставляет делать всё это.

Просто если вовремя не подумать о проблемах, то проблемы начинают думать о вас.

Пока приложение маленькое - реально удержать всё в голове/бумаге/файле. Помнить где какие глобальные переменные и функции и т.п. В какой-то критический момент времени приходится разделять код. Держать код небольшими порциями в отдельных файлах это огромный плюс. Тем более, что можно его тестировать этими частями.

И я реально не представляю, каким образом можно писать большой проект (RIA приложение 500+ скриптов) не пользуясь подобными подходами.

tenshi 03.10.2013 23:24

У меня всё автоматизировано, чего тут ещё думать?)

http://hyoo.ru/?article=%D0%9C%D0%BE...author=Nin+Jin

Madzi 03.10.2013 23:47

У меня тоже всё автоматизировано :)
Плюс не тянется лишний код. Например, для Оперы не подтянутся патчи IE и наоборот. Плюс ленивая загрузка, когда скрипт загрузится только если пользователь будет использовать нужный функционал.
Мне не нужно следить за jam файлами. И один раз написанный модуль я могу использовать в бесконечном числе проектов.

Интересно, а как тестировать ваши модули ? Как в них мокать объекты ?

vflash 03.10.2013 23:56

Цитата:

Сообщение от tenshi
> function(global,module,core,elems,tmpl,__zAgS_)

global и module ещё понятно, но нафига остальные-то навязывать?

этот файл часть модуля http://zzreader.com/src/cmps/cmps.cram_notify.json
сам модуль зависим от трех модулей [ core, elems, tmpl ] ,
если бы не было зависимостей то определенны были бы только две переменных global и module
__zAgS_ - это часть внутренней кухни, она не в счет.

tenshi 04.10.2013 00:17

Не всё, раз приходится столько писать руками.

А в чем проблема замочить глобальные переменные?

$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()
})

tenshi 04.10.2013 00:19

Цитата:

Сообщение от vflash (Сообщение 275009)
этот файл часть модуля http://zzreader.com/src/cmps/cmps.cram_notify.json
сам модуль зависим от трех модулей [ core, elems, tmpl ] ,
если бы не было зависимостей то определенны были бы только две переменных global и module
__zAgS_ - это часть внутренней кухни, она не в счет.

Ах да, у тебя ж зависимости хрен знает где) Тогда снимаю претензию


Часовой пояс GMT +3, время: 09:06.