Pull to refresh
-2
0
Send message
Разве Angular не позволяет отключить анимацию? Такое было в AngularJS и странно, что они не сделали тоже самое в новой версии Angular
Смысл статьи: Автор продолжит писать говняный код приправленный типами и передергивать между компиляциями
/messages/:listController:id/:docController не будет работать если hostname или часть пути содержит `id`.

Например:

$resource('http://foo-id.com/messages/:listController:id/:docController', {id: 2});

Выдаст

foo-id.com/messages:listController2
Для тех кто использует `mocha` и `this` в `beforeEach` лучше чистить контекст после каждого теста,
это позволить быть тестам более предсказуемыми:

var clearContext = function(context){
  for (var prop in context) {
    if(context.hasOwnProperty(prop){
      delete context[prop];
    }
  }
};

...

afterEach(function(){
  this.sinon.restore();
  clearContext(this);
});
Напишу своё видение React-а.

React позволяет не думать о `точечной` перерисовки компонентов.
setState на root-овой компоненте, можно сравнить с перезагрузкой страницы,
только в случае React-а это делается без перезагрузки и обновляются только те узлы, которые изменились.

Вот, упрощённый, пример о чем я говорю:

Window = React.createClass
reload: (cb)-> @forceUpdate(cb) 
render: ->
@transferPropsTo(Document())

Document = React.createClass
render: -> @transferPropsTo(Html)

Html = React.createClass
render: -> React.DOM.div(null, Head, Body)


# etc.

window = React.renderComponent(new Window({global: this}), document.body);

# now you write your business logic
# and when model changed you simple reload all page

user.on('change', window.reload);


Такой подход, когда вам не надо хранить состояние представления,
позволяет вам писать в функциональном стиле.

React можно использовать с Angular, Ember и др. framework-ами. React решает
конкретную проблему — синхронизация состояния приложения с представлением, и вроде справляется с этим
не плохо.

Есть проблемы с инфраструктурой jshint, подсветка, completion и др., но решаемые так или иначе.

Сам активно изучаю React.
React довольно низкоуровневый, что может быстро привести к не читаемому коду.
Количество Best/Bads Practice не так много, поэтому приходится набивать `шишки`.
Для себя завел небольшой gist где собираю все, что показалось интересным, по React-у. Возможно найдете что-то полезное.
Есть плагни для karmakarma-benchmark,
кажется делает тоже самое, но имеет интеграцию с karma
А как у вас зависимости определяются для модуля? (что то я не вижу… ткните пальцем если это описано)
А как обстоят дела с отладкой? Слышал что не так хорошо как с синтаксисом.

Хотя мне тоже импонирует CoffeScript из-за того что убирает кучу ненужной работы, а следовательно
дает время для творчества)
Пока что я чаще видел как его используют в тестах, чем в качестве основного языка.
Есть очень полезный (по крайней мере для меня) npm модуль «matchdep». Который позволяет
заргужать grunt модули разом (ну и не только grunt).

    // load all grunt tasks
    require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
Вот тут есть ссылка на обсуждение и попытка реализовать что-то похожее :)
+ 1. Кажется довольно перспективный фреймворк.

Предлагаю, использовать github wiki.
Например github.com/maksimr/docs.angularjs.ru/wiki.

Как будет свободное время подключусь к переводу!
Возможно стоит еще подумать о русском комьюнити в google+.
Спасибо за содержательный ответ.

Nodejs.
Ваш код в nodejs работает в одном потоке. Сам nodejs является отдельным процессом.
Про одно ядро я бы не стал вообще упоминать тут.

Вы улавливаете разницу между потоком, процессом и ядром?
Если да, то пожалуйста расскажите не поленитесь, я думаю
многим будет интересно, мне точно, особенно в контексте
javascript-а.

MongoDB.
Хорошо ваше право считать что MongoDB не модно.
Но хотелось бы услышать альтернативы.
И почему у вас сформировалось такое мнение про MongoDB,
возможно после того как вы опишите те проблемы с которыми
вы столкнулись в MongoDB мне тоже покажется
что это не модно.

WebSocket.
Спасибо за ссылку про WebSocket, прочитал.
Но появились вопросы:
— Что для вас означает 'коннекшн'?
— Как nodejs-у мешает 'коннекшн'?
— Как вас спасает WebSocket от 'коннекшн'-а?

Спасибо.
А можно по подробней про nodejs, целый 'коннекшн', WebSocket, одно ядро и почему же всё таки MongoDB 'не модно'.
По поводу кавычек в javascript-е не совсем понятно. Они обозначают литеральное представление строки и тут как не крути без них не обойтись, а по ссылке выше просто показано какие названия переменных валидны в js.
Ключ может быть как числовой(нумерованный), так и буквенный(именованный)


В JavaScript-е ключи имеют строковой тип!. Поэтому все что вы передаете в качестве ключа приводится к строке, будь то number, object, boolean, undefined или null.

И как я их называю «философские типы»:
— null (v = null)
— undefined (u=undefined)


Null и Undefined — можно еще называть тривиальными типами данных, т.е. они имеют только одно значение.

12. toString(); //число не станет переменной но его уже можно использовать как объект


Тут ошибка!

v4 = String(2); //строковая глобальная переменная вызванная через конструктор. Создаст переменную window.v4


Не глобальная переменная, а свойство глобального объекта (window как частный случай глобального объекта).

Они есть для всех примитивов (Number(), Boolean(), String(), Object())


Причем здесь Object? Вы же сами написали что Object не примитивный тип данных.
Да и функции-обертки тоже как то странно звучит, это конструкторы (если применять их с оператором new, Object можно и без new).

На самом деле, забегая наперёд, во время оборачивания примитива в объект, выстраивается целая цепочка наследования (как это организовано мы поговорим позже), но по сути получается такая вот «матрёшка»:

Object(Number(<примитив>)).


Не будет такой матрешки не вводите в заблуждение! Посмотрите в спецификации.
Number(param) — возвращает числовое примитивное значение соответствующее переданному значению.
Object(param) — возвращает объектное представление соответствующее переданному параметру (Встроенная фабрика), если передан объект то он просто возвращается.

Проще:
Object() и new Object() всегда возвращает object
Number() всегда возвращает number
new Number() всегда возвращает object ([Object Number])


(ECMAScript v3)

P.S.

Это то что мне бросилось в глаза, если я не прав где то, то
обязательно поправьте меня!


Надеюсь что польза от этого комментария будет.
Можно еще назвать 'Ассоциативный массив', но лучше называть все своими иенами, в javascript-е это объект.
Спасибо, действительно лучше было бы написать частичное применение, но эта функция может быть использована и для каррирования.
В вашей реализации отсутствует карринг.

Вот пример вашей реализации с каррингом:
Function.prototype.bind = function(bind) {
    var slice = Array.prototype.slice, self = this, args = slice.call(arguments,1);
    return function(){
        return self.apply(bind || null, args.concat(slice.call(arguments)));
    };
};
В Ecmascript 3, оператор 'new' это единственный способ создать объект, прототип которого мы можем контролировать через свойство функции(конструктора) 'prototype'. Т.е. в этом случае функция ведет себя именно как конструктор, а не как кусок кода, который возвращает произвольный объект(хотя такая возможность тоже есть).

Information

Rating
Does not participate
Registered
Activity