- PVSM.RU - https://www.pvsm.ru -

Derby.js — новый взгляд на веб-разработку

Derby.js — новый взгляд на веб разработкуВы веб-разработчик?

В чем собственно проблема?

Все веб-фреймворки можно разделить на группы. У каждой из этих групп есть свои достоинства и недостатки.

Сервер-ориентированные

Например: RoR [1], Django [2], Asp Net [3], Express.js [4]
Генерируют html на сервере.
Такой подход хорош для статических страничек.
Но как только вы хотите сделать что-то интерактивное, то начинаете утопать в jQuery-коде.

Клиент-ориентированные

Например: Backbone.js [5], Knockout.js [6], Ember.js [7], Batman.js [8]
Генерируют html прямо на клиенте из темплейтов. Код на клиенте структурирован.
Хорошо для интерактивных сайтов.
Не отменяет необходимость использовать сервер-ориентированный фреймворк, что ведет к дублированию кода (модели, валидация и т.д.)

Кросс-компилируемые

Например: GWT [9], Cappuccino [10]
Позволяют писать всё на одном языке.
Очень большой уровень абстракции.
Шаг вправо, шаг влево — расстрел.

Так же ни один из фреймворков не имеет механизмов синхронизации данных между клиентом и сервером и оставляет реализацию этого на нашу совесть.

Давайте помечтаем

Что мы хотим от веб-фреймворка?

  • Один язык (Javascript) для повторного использования кода на сервере и клиенте
  • Генерация html первый раз на сервере (для быстрой загрузки), следующие разы на клиенте (для интерактивности)
  • MVC для структуры кода
  • Реактивная привязка вида и модели (изменения модели немедленно отражаются в html и наоборот)
  • Встроенная синхронизация данных между сервером и всеми клиентами
  • Offline

Такое бывает?

Да, Derby.js [11]

github [12]
twitter [13]
Вопросы лучше всего задавать в Google Groups [14]
Пример приложения: habitrpg [15]

Создатели Derby.js: Nate [16] и Brian [17]

P.s.:
Основной конкурент — Meteor [18].
Из плюсов — ниже порог входа. Из минусов — не поддерживает npm и нет генерации html на сервере.
Подробное сравнение здесь. [19]

Автор: vmakhaev

Источник [20]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/42076

Ссылки в тексте:

[1] RoR: http://rubyonrails.org/

[2] Django: https://www.djangoproject.com/

[3] Asp Net: http://www.asp.net/

[4] Express.js : http://expressjs.com/

[5] Backbone.js: http://backbonejs.org/

[6] Knockout.js: http://knockoutjs.com/

[7] Ember.js: http://emberjs.com/

[8] Batman.js: http://batmanjs.org/

[9] GWT: https://developers.google.com/web-toolkit/

[10] Cappuccino: http://cappuccino.org/

[11] Derby.js: http://derbyjs.com/

[12] github: https://github.com/codeparty/derby

[13] twitter: https://twitter.com/derbyjs

[14] Google Groups: https://groups.google.com/forum/?fromgroups#!forum/derbyjs

[15] habitrpg: https://github.com/lefnire/habitrpg

[16] Nate: https://twitter.com/nateps

[17] Brian: https://twitter.com/briannoguchi

[18] Meteor: http://meteor.com/

[19] здесь.: http://blog.derbyjs.com/2012/04/14/our-take-on-derby-vs-meteor/

[20] Источник: http://habrahabr.ru/post/191800/