full stack javascript developer
0,0
рейтинг
18 апреля 2012 в 15:42

Разработка → TodoMVC — «Hello, world» на стероидах tutorial

Cуществует уже несколько десятков JavaScript-фреймворков для построения сложных приложений в браузере. Чтобы сравнить их между собой и выбрать наиболее подходящий, примитивного примера вроде классического «Hello, world» явно недостаточно. Более сложные и реалистичные примеры программ в книгах и документации каждого фреймворка могут сильно отличаться, и сравнивать их между собой затруднительно. Проект TodoMVC решает именно эту проблему. Это набор примеров реализации одного и того же простого, но вполне законченного веб-приложения с использованием разных фреймворков + эталонный пример на чистом JavaScript.

Приложение TodoMVC — это список дел. Дела можно добавлять, помечать как выполненные и удалять. Список должен сохраняться в локальном хранилище браузера. Приложение должно по возможности использовать стандартный шаблон HTML и CSS. Вот подробная спецификация приложения.

В текущей версии TodoMVC (0.3) есть уже 18 примеров реализации приложения на базе:

  • Backbone.js
  • Backbone.js + RequireJS (с использованием AMD)
  • Ember.js
  • JavaScriptMVC
  • Spine.js
  • Sammy.js
  • KnockoutJS (MVVM)
  • Knockback.js
  • Dojo
  • Closure
  • YUILibrary
  • AngularJS
  • Angular + PersistenceJS
  • Ext.js
  • Broke.js
  • Fidel.js
  • jQuery
  • Чистого JS

На сайте проекта можно погонять живые демки каждой реализации. Проект активно развивается: больше 2000 подписчиков на Гитхабе, последние правки 2 дня назад, в начале 2012 года к основателю проекта Addy Osmani присоединились ещё два ключевых разработчика.

Илья Сименко @ilya42
карма
526,7
рейтинг 0,0
full stack javascript developer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (17)

  • +1
    Очень странно, ибо во-первых, имплементируется разный функционал. Да, всё это to-do, но отличаются мелочами и доступными возможностями.
    Во-вторых, баги.
    • +3
      Да, есть такое дело. Если бы там абсолютно все примеры выглядели и вели себя идентично и идеально — была бы просто сказка. Как и многим открытым некоммерческим проектам, TodoMVC не хватает «вылизанности». Тем не менее, различия между разными вариантами приложения достаточно незначительны, чтобы можно было сравнивать именно фреймворки.
      • 0
        На то это и open source, чтобы в итоге получить идеальную и идентичную реализацию всех вариантов.
  • 0
    А тем временем, я не могу подобрать себе нормального ToDo с древовидными делами, регулярными делами, календарём. Нужно, чтобы работал в iPhone, Mac и PC. И при этом слабо зависил от Интернета. Обожаю MLO, но нет версии для Мак.

    Надеюсь хоть браузерные версии ToDo смогут работать на всех платформах.
    • 0
      попробуйте wunderlist
      • +1
        WunderList / WunderKit очень приятно сделаны, но нет древовидной структуры.
        Мой выбор — браузерный Todoist. Работает быстро и удобно, дерево задач, есть мобильные версии (правда они пока не особо) — и есть достаточно функциональная бесплатная версия. Если бы только в нем можно было шарить задачи между пользователями…
        • 0
          Гугловский тоже ничего. Заодно интегрируется в почту и календарь
  • 0
    Чистого JS не нашёл =(
    • +5
      Vanilla JS. «Vanilla» или «Plain vanilla» в английском означает «простой», «без наворотов». Термин происходит от белого мороженного без наполнителей и украшений. en.wiktionary.org/wiki/vanilla#Adjective
      • 0
        Илья, спасибо огромное! Честно, не знал этого. Теперь кое-что другое прояснилось ))) Спасибо!
  • 0
    jquery TODO MVC вообще яд…
    • 0
      Нравится или нет?
      • 0
        Нет, конечно. Это же не структура jQuery приложения. Где jq функции / виджеты? Где неймспейсы? Просто тупо свалка кода
        • 0
          Вроде в app.js выделены объекту Utils и App, выполняющие роль неймспейсов. Виджеты скорее всего не нужны в этом простом проекте.
  • 0
    RequireJS странно выглядит в сочетании с backbone.js, т.к. очень многие разработчики используют sprockets, uglifier и coffeescript, что позволяет компилировать всё в один сжатый файл.
    А вообще где-то год назад видел данный (или подобный) проект, неплохое сравнение синтаксиса. Позволяет новичкам выбрать какой из фреймворков ближе. Я остановился на backbone благодаря хорошей поддержке в rails и документации, в отличие, например, от бывшего sproutcore 2 — amber.js.
  • 0
    Имхо, плоский список задач плохо дает понять насколько сложно написать реальное приложение. Например, в качестве «игрушечного» проекта попытался сделать todo с тегами на backbone.js, вылезает столько косяков… и от любого изменения все ломается как карточный домик.

    LocalStorage — хорошо, но только локальное сохранение для веб приложения немного глупо, или нужна синхронизация, или только общение с сервером, использование LocalStorage не гарантирует, что с минимальными изменениями это приложение будет работать с асинхронным хранилищем.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.