Где я ошибаюсь в отношении моего проекта и этих Javascript Framework?


Answers

Не уверен в вашей временной шкале и ресурсах, но когда я пытаюсь решить несколько фреймворков / сред, я просто продолжаю и стараюсь быстро создать прототип. Даже если это всего лишь одна или две основные функции, я считаю, что все исследования и документация в мире никогда не будут соответствовать действительности, пытаясь что-то создать с помощью этих инструментов. Я говорю о том, чтобы каждый день побывать с каждым и посмотреть, как далеко вы доберетесь. Это даст вам довольно хорошее представление о том, какие инструменты соответствуют задаче и для вас наиболее удобны.

Question

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

Основные характеристики

  • создание страницы (создает и статью wiki и дискуссионный форум для этой статьи)
  • разметки и WYSIWYG ala markitup
  • на лету конверсия между разметкой / html / WYSIWYG
  • боковая панель для быстрого перехода
  • верхняя панель инструментов для выбора редактирования / просмотра

Расширенные возможности

  • настраиваемая боковая панель для навигации по другому методу
  • настраиваемая панель инструментов (возможно, добавьте язык разметки)
  • теги
  • редактируемый todo
  • перетаскивание файлов и вложений изображений

Первоначально двигатель будет состоять из самого простого создания страницы, разметки и редактирования WYSIWYG и сохранения. В конечном итоге я хотел бы расширить этот базовый движок с помощью поддержки перетаскивания изображений, загрузки файлов, графиков реальных данных и боковой панели для настройки представлений.

Я провел довольно обширный поиск достойного проекта, из которого можно было бы основать мой проект, но кроме TiddlyWiki, похоже, нет никаких хороших javascript-основанных вики-движков. Я также рассмотрел возможность применения JQuery поверх существующих движков wiki, но я считаю, что в конечном итоге я все равно переписал бы его (плюс его просто более интересно добавить функции, которые я хочу, когда я пойду). В любом случае я пришел к внедрению этого зверя с библиотекой javascript + framework.

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

Итак, вот мы идем:

Основываясь на моих собственных исследованиях и мнениях, я сузил список до пунктов ниже. Я умышленно отказался от таких вещей, как SproutCore, corMVC, YUI и другие, поскольку я, в своей ограниченной емкости, думал, что нижеуказанные предметы будут лучше подходят.

Мои параметры

jquery / UI + backbonejs

В общем и целом

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

UI

В то время как jQueryUI или jqueryTools могут быть конкурентоспособными, они, конечно же, не сравнимы с возможностями пользовательского интерфейса других фреймворков. В частности, они, по-видимому, тяжелы в отношении эффектов, но не имеют достойной поддержки режущей кромки.

javascriptMVC

В общем и целом

JavascriptMVC для меня выглядит как расширение jquery + MVC (jqueryMX), а также несколько других приложений для документирования (documentJS), функциональных тестов (funcUnit) и управления кодом и зависимостями (stealJS). Помимо преимуществ дополнительного модуля, я думаю, что функциональные дебаты действительно сводятся к backbonejs vs. jqueryMX. Я исправлю это и кто-нибудь работал с или сравнивал оба?

  • Особенности: jupiter's (производитель jMVC) обзор их features
  • Ссылка на jqueryMX

UI

JavascriptMVC добавляет элементы MXUI поверх всего, что доступно для JQuery, поэтому я думаю, что, по крайней мере, это небольшая победа в этой категории.

knockoutjs

В общем и целом

Мои мысли и опасения по этому поводу очень похожи на комментарии jquery + backbone. Оба они, похоже, предлагают похожие функции, но только с другой точки зрения. Часто упоминаемым недостатком является то, что knockoutjs слишком сильно сочетает бизнес-логику и презентацию с привязкой данных и что этот метод привязки может разрушаться для сложного взаимодействия с пользовательским интерфейсом, но мне бы хотелось услышать, почему это не проблема.

UI

Бланк в данный момент

Dojo & ExtJS

В общем и целом

Я собираюсь объединить обсуждение Dojo и ExtJS, потому что я знаю о них меньше всего, и они, похоже, играют практически в одном и том же пространстве. Большая часть информации о об этих двух, кажется, устарела. Из того, что я видел, является то, что они являются и большими каркасами, которые хороши для реализации настольных приложений калибра. Додзе упрекнул за плохую документацию, но похоже, что это уже не так. Конечно, у ExtJS есть коммерческая лицензия, но это действительно разумно для того, что вы получаете, и я бы не стал слишком сильно против этого. Виджеты в ExtJS кажутся несколько более профессионально выполненными, чем Dojo, но я, безусловно, мог бы быть исправлен там. Мне было бы интересно услышать от всех, у кого есть опыт в обоих.

UI

Dojo имеет библиотеку пользовательских интерфейсов dijit ExtJS имеет функции пользовательского интерфейса, но они не входят в Ext core. Вот documentation и вот их demos

Капучино

В общем и целом

А потом есть Капучино. Нет CSS, нет html, но также может быть сложно использовать существующие библиотеки javascript. Objective-J не кажется страшным, особенно учитывая, что они также могут писать простой javascript. Демонстрации впечатляют и, похоже, близко подходят к потребностям пользовательского интерфейса для движка вики. API-интерфейс, основанный на использовании какао, очень много подходит для тех, кто не знаком с ним, но, возможно, он того стоит. Я слышал, что механизм компоновки не всегда легко работать, но у молодых и, возможно, подрывных технологий, подобных этому, наверняка будут некоторые недостатки.

UI

Бланк в данный момент

Я прошу прощения за то, что написал так много, но, эй, по крайней мере, это не топор против вопроса, который надеется на тонны дешевых ответов. Так что ты думаешь? Что должно быть основой для моего рабочего стола, как движок вики, который, как мы надеемся, станет более многофункциональным (читаемым комплексом) со временем?




Я бы сказал, что вы ошибаетесь в своем общем выборе кандидатов, поскольку вы опускаете Angular и Ember, оба из которых лучше подходят, чем любые другие перечисленные структуры.

В целом, я бы сказал, что Angular.js является основой для этого.

Акцент на маршрутизации

Большая часть того, о чем вы говорите (несколько боковых панелей для навигации, одностраничное приложение), являются функциями маршрутизации или как интерфейс интерпретирует текст в вашей навигационной панели URL.

У Angular.js и Ember есть отличные маршрутизаторы, которые позволяют вам выполнять все, что вам требуется, без дополнительного кода.

Для вашей выгоды, вот краткий обзор функций в Angular, которые могут быть использованы для создания вашей вики-страницы

Структура самого сайта

У Angular есть удивительная библиотека под названием UI router, позволяющая вам создавать пользовательскую навигацию и настраивать дружественную SEO структуру раскрытия вашего контента. Множественные представления также позволят использовать верхнюю панель инструментов.

Учебник Ui router: http://cacodaemon.de/index.php?id=57

Редактор WYSIWYG

Угловое построено на основе двусторонней привязки (когда вы что-то меняете где-то, он автоматически меняется везде.) Поэтому он поставляется в комплекте с множеством функций, которые хорошо работают с этим видом редактора. Несколько хороших уже сделаны, и вам нужно их реализовать.

http://textangular.com/

Графики и другие полезные материалы

Угловые директивы предназначены для того, чтобы делать такие вещи, как создавать компоненты диаграммы, которые можно повторно использовать. Они не отличаются от Wordpress Widgets. Многие из них уже разработаны и могут быть отброшены в ваш проект «Угловой».

http://www.sitepoint.com/creating-charting-directives-using-angularjs-d3-js/

Что касается Эмбера, я мало знаю об этом, поэтому не могу говорить о его особенностях.




Ваш выбор структуры может не ограничивать выбор пользовательского интерфейса настолько, насколько вы можете себе представить. Эта недавняя статья Анри Бергиуса о развязывании управления контентом показывает, что гораздо лучше, чем я мог, и, кстати, ссылки на довольно симпатичный, чисто независимый (независимый от структуры) редактор содержимого на месте .