новый подход к веб-разработке: запрос на рекомендации по инструментам и компонентам - PullRequest
8 голосов
/ 19 июля 2010

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

1 год назад я начал искать возможности для веб-разработки помимо PHP. Я нашел JSP и Django. Я решил пойти с Джанго. После запуска некоторых проектов с Django я пришел к выводу, что Django, для меня, не предоставляет возможности для простой веб-разработки. Мне нужно беспокоиться о слишком большом количестве функций и особенно о необходимости сохранять баланс между кодом клиента и сервера.

Итак, я снова начал поиск и нашел CouchDB, который предоставляет своего рода классный бэкэнд для приложений Ajax. Поэтому моя идея заключалась в том, чтобы использовать CouchDB в качестве сервера базы данных, который обеспечивает только проверку и хранение данных, а все остальное - клиенту. Что, по-видимому, вовсе не новая идея, но я пока не нашел хорошего примера по этому поводу. Знаете ли вы?

Я бы хотел иметь архитектуру со следующими компонентами:

  • хранение и проверка данных (CouchDB)
  • веб-сервер: который обрабатывает файлы и WebSockets или Polling (Tornado или Eventlet)
  • клиентский JavaScript для обработки всего остального (fav: самописный MooTools)
  • язык шаблонов на стороне клиента (вы знаете какой-нибудь крутой?)

Есть ли у вас какие-либо предложения по использованию другого программного обеспечения для этих точек?

, который обрабатывает запросы, подобные следующим:

Первоначальный запрос отправляет клиенту файлы JavaScript и базовый HTML (только теги <body> и <head>). Загруженные функции JavaScript создают HTML-код и вставляют его в тег <body>. Отныне вся навигация по сайту запрашивает только JSON, который предоставляется через Websocket и обрабатывается клиентским JavaScript.

Плюсы:

  • Весь код написан на JavaScript на стороне клиента
  • Анимация по обновлениям может быть реализована очень просто
  • Логика страницы будет очень легкой и прозрачной
  • Вероятно, нет проблем с масштабированием на стороне сервера
  • Очень высокая производительность приложений благодаря отличным возможностям кэширования на стороне клиента. Например, используя Webstorage

Минусы:

  • Обработка шаблонов может быть очень медленной на компьютерах с низким аппаратным обеспечением?!
  • Код приложения открыт для всех

Вопросы

  • Знаете ли вы какое-либо доступное решение для такого рода веб-разработок?
  • Как вы думаете, писать веб-приложения таким образом было бы чудом?

Пожалуйста, посмотрите также Ответ 2

Ответы [ 3 ]

6 голосов
/ 19 июля 2010

Знаете ли вы какое-либо доступное решение для этого вида веб-разработки?

Взгляните на couchapps .Это написано ребятами за couchedb.Он основан на jquery, но было бы не так сложно его преобразовать для работы с mootools.Есть также хороший движок шаблонов JavaScript, который называется mustache .Шаблонный движок будет работать на обеих сторонах - браузер и couchdb.

Неужели так не нравится писать текстовые приложения youthink?

Нет.Так работает большинство приложений googles (почта, документы, электронные таблицы), так же существует множество фреймворков, таких как sproutcore или капучино.

веб-сервер: который обрабатывает файлы и WebSockets или Polling (Tornado или Eventlet)

Я думаю, что couchdb справится и с этим

0 голосов
/ 19 июля 2010

Я использовал Шаблоны Javascript Trimpath для прошлой пары больших проектов и очень доволен этим.

Пара других частей моего рабочего процесса, без которых я не смог бы жить сейчас:

  • процесс сборки для javasscript и CSS. Так гораздо лучше иметь возможность упорядочивать мои файлы js и css так, как я хочу, разбивая их на кусочки, как мне хочется, и автоматически сворачивать их в один большой файл

  • LessCSS - улучшение по сравнению с обычным синтаксисом CSS. Вы пишете таблицы стилей, используя синтаксис LessCSS, который похож на css, но позволяет вам использовать такие вещи, как переменные, математика, миксины, вложенные классы. Затем механизм LessCSS компилирует его в обычный CSS.

0 голосов
/ 19 июля 2010

Несмотря на то, что эскимоблод ответил на большинство вопросов, по-прежнему существует одна большая проблема в описанном мной подходе к разработке веб-приложений: Язык шаблонов

Как уже упоминалось, многие из них работают на стороне клиента с Javascript. Но, на мой взгляд, для всех языков шаблонов, которые я обнаружил, отсутствует одна большая функция: Функция обновления

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


Пример использования:

Представьте, что я сейчас читаю блог, который содержит 25 переменных JSON и большой шаблон для их рендеринга. Внезапно смелый человек где-то на другой стороне планеты представляет крутой комментарий. Теперь есть разные возможности представить «живое обновление» текущим читателям:

  • Наихудший случай: Вся страница сбрасывается. 26 Json-переменных и вся обработка шаблона должна быть переделана.
  • Плохой случай: Обновляется вся часть блога текущей страницы. 15 Json-переменных и большая часть обработки шаблона должны быть переделаны.
  • Better-Case: Обновляется только часть комментариев текущей страницы. 5 Json-переменных и небольшая обработка шаблона должны быть переделаны.
  • Наилучшая практика: новый комментарий вставляется поверх списка комментариев. 1 Переменная Json и очень маленькая обработка шаблона должны быть переделаны.

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

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


Вопросы:

  1. Что вы думаете о таком подходе к языку шаблонов?
  2. Знаете ли вы какой-нибудь язык шаблонов, который обеспечивает подобную обработку?
  3. Можно ли заставить это работать без особых проблем с производительностью?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...