Подтвердить что ты не робот

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

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

Основные функции

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

Дополнительные функции

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

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

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

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

Итак, идем:

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

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


jquery/UI + backbonejs

В целом

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

интерфейс

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

javascriptMVC

В целом

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

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

интерфейс

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

knockoutjs

В целом

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

интерфейс

Бланк в настоящий момент

Dojo и ExtJS

В целом

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

интерфейс

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

Капучино

В целом

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

интерфейс

Бланк в настоящий момент

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

4b9b3361

Ответ 1

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

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

ExtJS 4 также позволяет вам "обмениваться" с вашим пользовательским интерфейсом, чтобы дополнительно настроить внешний вид.

Если вы новичок в JavaScript и устраиваете Java, вы можете даже взглянуть на серверное решение, такое как GWT, JSF или даже Vaadin

Ответ 2

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

Ответ 3

- все это ярость в наши дни (самая полнофункциональная полнотекстовая инфраструктура JavaScript на GitHub и Meteorpedia - это движок вики, написанный в Meteor.

запуск видео позволит вам подключиться к 1:28.

Это агностик в отношении пользовательского интерфейса, и он был широко протестирован с помощью Bootstrap и Famo.us. Он также создает мобильные приложения из одной и той же базы кода.

Ответ 4

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

Ответ 5

Вы не одиноки!

VanillaJS и Ampersand .. являются прекрасными примерами серьезного привода для более простого и модульного JavaScript.

Там даже Книга об этом.

Простота управляется с помощью функции es6 с низким рейтингом: Modules и SystemJS. Он даже может использоваться для систем non-es6.

Как здорово это!

Ответ 6

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

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

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

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

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

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

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

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

Учебник по маршрутизатору Ui: http://cacodaemon.de/index.php?id=57

Редактор WYSIWYG

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

http://textangular.com/

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

Директивы

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

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

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

Ответ 7

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

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

Здесь у вас отличный разговор, который заставил меня принять решение: https://www.youtube.com/watch?v=qWr7x9wk6_c

И здесь у вас есть демонстрационный прототип, который также имеет элемент перетаскивания и другие связанные с ним js libs. Хотелось бы услышать, что вы думаете о моем коде, так как у меня 1,5 года работы над веб-разработкой... я все еще новичок: https://github.com/Drasky-Vanderhoff/marionette-demo/

О нокауте, действительно хорошо, если вы хотите взаимодействовать с содержимым, которое у вас уже есть, и вы не будете постоянно подключаться к серверу. Я работал с ним в течение 6 месяцев, и мне нужно использовать множество других js lib для маршрутизации; плюс я в конечном итоге повторяю много структур, которые в конечном итоге имеют Backbone и другие JS Framework. Что я скажу, так это то, что он вообще не будет на вашем пути и станет инструментом, а не ограничителем. Также это было почти год назад, поэтому несколько вещей изменились.

Одна вещь, если вы найдете Knockback (Knockout + Backbone)... избегайте этого, документация не так хороша, как должна быть, и вам потребуется гораздо больше времени, чтобы изучить ее. Если вы хотите пойти на это, сначала сделайте быстрый прототип, чтобы убедиться, что вы хотите.