Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Унылого треша тред (https://javascript.ru/forum/offtopic/47728-unylogo-tresha-tred.html)

iKillMaxmaxmaximus 10.07.2013 01:02

пасоны версия 0.3



^__^

iLikeMaxmaxmaximus 18.08.2013 21:54

Что бы вы хотели видеть в UI?
 

l-liava-l 18.08.2013 23:54

Кинутым в портфолио и надпись RIP...;)

KingOfMaxmaxmaximus 15.10.2013 23:25

UI.js от Maxmaxmaximus
 
Короче суть нового UI 901:

Интерфейс состоит из виджетов. Каждый виджет состоит из одного или нескольких HTML элементов и модели. Виджеты создаются так:


<div ui="name"></div>

ui['name'] = function(){

}



В функции мы описываем модель виджета, а в html элементе данные из этой модели доступны через {теги}. Например:

<div ui="name"> Числа {a} и {b} </div>

ui['name'] = function(){

  this.a = 9;
  this.b = 20;

}



За место {a} и {b} подставятся числа, изменяя числа в модели они автоматически перерисовываются в html.


В модель можно класть как просто какие-то константные значения, так и формулы. Например:

<div ui="name"> {a} + {b} = {c} </div>

ui['name'] = function() {

    this.a = 12;
    this.b = 19;
    this.c = '{a+b}';

};


Теперь в ячейке с в любой момент времени будет лежать сумма a+b. Изменив значение a или b мы МГНОВЕННО изменим значение и с. Формулы записываются как строки, только в фигурных скобках, чтобы отличаться от обычных строк.
Вот '{так}' например.

Например мы можем сделать формулу которая будет возвращать всегда актуальный массив:

ui['name'] = function() {

    this.a = 12;
    this.b = 19;
    this.c = '{a+b}';

    this.arr = '{ [a,b,c] }'; // [12, 19, 31]
    // или так
    this.arr = ['{a}', '{b}', '{c}']; // [12, 19, 31]

};


Это называется FRP, когда система в любой момент времени имеет явное и четкое состояние.

К примеру, в ячейке formData у нас всегда содержится актуальный обьект с актуальными данными. И все зависимости видны не вооруженному глазу. Мы можем аяксить этот обьект на сервер совершенно не парясь о его актуальности, абстрагируясь от необходимости следить за его наполнением. Все зависимости просчитываются автоматически.


devote 17.10.2013 10:35

Maxmaxmaximus,
для тебя почистил и переименовал. Будешь писать оскорбления, пойдешь в бан и я сам лично буду без промедления каждый твой аккаунт сразу же после создания туда отправлять, без объяснения причин!

KingOfMaxmaxmaximus 17.10.2013 13:42

devote, забань ка того кто меня оскорбил в карму. Если не забанишь то грош цена твоим словам и принципам.
Сообщение от devote: Мои слова сказаны после оскорблений. А значит они распространяются на текущее и будущее время.
Цитата:

Сообщение от devote
для тебя почистил и переименовал.

Спасибо)

devote 17.10.2013 14:23

а в чем сложность писать код таким образом?:
//************************************************************************************** Collection
/** @constructor  */
function Collection(widgets, module) {

  if (widgets instanceof Collection) return widgets;

  if (!widgets) {
    this.emptyCollection = true;
    return
  }

  arrayItemsToObject(widgets, this);

  this.template = this.eq(0).clone();
  this.module = module;

}

Collection.prototype = {
    constructor: Collection,
    each: function(callback) {
    },
    add: function(widget) {
    },
    hasElement: function(element) {
    },
    eq: function(index) {
    },
    eqElement: function(index) {
    },
    indexOfElement: function(element) {
    },
    toggle: function(propName) {
    },
    turnOn: function(prop, filter) {
    },
    clickIndex: function(propName) {
    },
    splice: function(index, count, dataArray) {
    },
    insert: function(index, dataArray, toProp) {
    },
    prepend: function(toProp, dataArray) {
    },
    append: function(toProp, dataArray) {
    },
    filter: function(filter) {
    },
    empty: function() {
    },
    remove: function(index) {
    },
    repeat: function(dataArrayProp, toProp) {
    },
    watch: function(prop, callback) {
    },
    model: function(model, b) {
    },
    bind: function(prop) {
    },
    css: function(props, value) {
    },
    width: function(value) {
    },
    on: (function() {
    }
};
и читать код проще, видя всю структуру класса, да и писать тоже куда проще создать новое свойство, чем каждый раз писать Collection.prototype.и_т_д=что_то

KingOfMaxmaxmaximus 17.10.2013 16:32

Цитата:

Сообщение от devote
а в чем сложность писать код таким образом?:

да это старый быдлокод я уже все переписал) новый код седня ночью покажу/)

l-liava-l 17.10.2013 18:56

я до сих пор не вдуплил зачем.
Это ты так скилл нарабатываешь?

KingOfMaxmaxmaximus 17.10.2013 20:38

Цитата:

Сообщение от l-liava-l
я до сих пор не вдуплил зачем.

ЧТО зачем? Зачем я пилю свой FRP MVC фреймворк с блекджеком и шлюхами? Потому что нет нормальных)


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