Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Извините что создаю еще одну тему, но мне нужна помощь и ваше мнение (https://javascript.ru/forum/offtopic/38294-izvinite-chto-sozdayu-eshhe-odnu-temu-no-mne-nuzhna-pomoshh-i-vashe-mnenie.html)

megaupload 26.05.2013 22:51

Извините что создаю еще одну тему, но мне нужна помощь и ваше мнение
 
Короче синтаксис такой


Если модуль не имеет айдишника, то ему как айдишник дается уникальный порядковый номер от 0, если имеет то имеет.

У виджетов то же самое, айдишники виджетов уникальны для каждого модуля. Айдишники модулей уникальны для всего проекта.

оранжевым показаны айдишники модулей
зеленым показаны параметры конструктора модуля ^__^
голубым показаны обсерверы модуля
сиреневым показан айдишник виджета

Айдишники модулям нужны вот зачем



Как нам обратиться к внешнему модулю?

а вот так


как нам обратиться к глобальному модулю mouse который навешан на body??

а вот так


все глобальные модули имеют айдишник Global (с большой буквы для наглядности)


Зачем модулям нужны параметры? Ну вот пример:
первым аргументом принимает класс который будет присваиваться активный пунктам)




и еще кое что, ЭТО - один уровень и одна область видимости.



И немного по поводу обсерверов.

так работает обычный чат, в свойстве input хранит значение виджета input



Добавив туда какой нибудь модуль мы можем повесить на него обсервер и сделать даже так



Крута)?

Так пасоны, еще я разработал спецификацию обсерверов из 0.4

Всего существует 4 вида обсерверов.

1) свойство -> свойство
2) функция -> функция
3) функция -> свойство
4) свойство -> функция


1) свойство -> свойство
изменение свойства href модуля location засунет значение этого свойства в свойство active модуля slider и вызовет перерендеринг.




2) функция -> функция
вызов этой функции модуля menu (то есть если модуль menu или сам или кто-то вызовет эту функцию у себя) вызовет функцию next у слайдера, и первым аргументом передаст в неё то, что вернула функция onchange


3) функция -> свойство
вызов функции onchange модуля menu положит в свойство next слайдера то, что вернула эта функция


4) свойство -> функция
если свойство onchange сменит свое значение, то вызовется функция next и первым аргументом в неё передастся это значение.


Видите как круто)? Модули соединяются друг к другу без каких либо прослоек, так что у вас не выйдет прикрутить неподходящий модуль к неподходящему. придется изворачиваться и это послужит положительным делом. Я чуть позже обьясню в чем положительность)

вы научитесь разрабатывать модули так, чтобы все они имели четкие оговоренные интерфейсы. вы научитесь айдишники давать так, чтобы они везде соответствовали друг другу. (ко коко зависимость - нет блять ты просто не так мня понял) Я обьясню:



вот это вот



аналог этого


просто айдишники ставятся автоматически (да да, по этому запрещено использовать цифры если указываешь айдишник руками)

так вот, айдишник активного пункта меню хранится в свойстве active этого модуля то есть там в коде this.active = "2" например

так вот если мы делаем так



то айдишники раздаются так



и например если выбран пункт с айдишником home то в свойстве this.active = 'home'

так вот, я буду пилить стандартные модули по таким условностям и договоренностям, например если в модуле что-то переключается, то это будет храниться в свойства active, итемы иметь имя виджета item и.т.п.

и буду призывать чтобы и сторонние модули так же писали используя этот стиль.

Так вот, зачем это нужно спросите вы? А вот зачем)



ТАДААААААААААМ, слайдер переключается от пунктов меню)!!!

melky 26.05.2013 22:53

зачем нужны айдишники и почему нужно их самому указывать?

melky 26.05.2013 23:07

Цитата:

Сообщение от megaupload
Зачем модулям нужны параметры? Ну вот пример:
первым аргументом принимает класс который будет присваиваться активный пунктам)

этого не должно быть в вёрстке.

суй настройки модуля в другое место, но не в представление

айдишники, конечно, спасают ситуацию в общении между модулями, но я не могу придумать ни одного реального случая, когда это потребуется

megaupload 26.05.2013 23:08

И да, разумеется вы можете сделать (я - сделаю) модули достаточно умными)

например модуль меню если не обнаружит ни одного виджета item то применит свою "менюшность" к порсто вложенным элементам



^__^

Цитата:

Сообщение от melky
айдишники, конечно, спасают ситуацию в общении между модулями, но я не могу придумать ни одного реального случая, когда это потребуется

на всякий случай оставлю. так как раз я ввел области видимости и скопы то нужно дать возможность обращаться с ней. разумеется это просто возможность.

Цитата:

Сообщение от melky
суй настройки модуля в другое место, но не в представление

я вот и думаю, логика в яваскрипте, внешность в css а где все это соединять? структурировать! по моему HTML как раз для этого и нужен.

И вообще есть идеи где описывать такие зависимости модулей от стилей?

Цитата:

Сообщение от melky
но я не могу придумать ни одного реального случая, когда это потребуется

в принципе да, обычно логики ТАКОГО УРОВНЯ описываются в js коде модулей и иногда проще новый модуль создать и применить. но мне кажется надо дать возможность делать нечто такое не залазя в яваскрипт.

megaupload 26.05.2013 23:19

И кстати вопрос, похоже это на ангуляр? и сильно ли? хуже ли это или лучше?

megaupload 27.05.2013 02:02

проверял тут работу парсера в извращеных условиях)



тестил на баги))
как думаете, к какому модулю отнесется этот виджет)?
к верхнему window или к тому что с ним на одном уровне)?

а тогда вот тут, мы обьавили 2 модуля, и на один повесили обсервер который считывает свойство другого

какой модуль должен подцепить обсервер?
внешний или который на этом же уровне?

monolithed 27.05.2013 10:52

Можете тебе на форуме раздел выделить ? ;)

megaupload 27.05.2013 11:08

я уже выделил) а если серьезно то все ровно ни кто не пишет в оффтопике. но меня самого уже бесит что не могу найти нужную тему про свой x-ui.js
вот я хочу поговорить про обсерверы, где мне можно это сделать? Добавь вообще возможность удалять темы создателям, я бы давно все свои темы удалил если честно.

simple 27.05.2013 11:28

Цитата:

Сообщение от megaupload (Сообщение 253022)
я уже выделил) а если серьезно то все ровно ни кто не пишет в оффтопике. но меня самого уже бесит что не могу найти нужную тему про свой x-ui.js
вот я хочу поговорить про обсерверы, где мне можно это сделать? Добавь вообще возможность удалять темы создателям, я бы давно все свои темы удалил если честно.

что написана пером, не вырубишь и топором, думать надо прежде чем что то писать :)

megaupload 27.05.2013 11:30

Цитата:

Сообщение от simple
что написана пером, не вырубишь и топором, думать надо прежде чем что то писать

удалил бы я не потому что стыжусь этого а потому что это все можно обьединить в один пост. :stop:


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