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

Серверная сторона Javascript: Почему?

Является ли использование javascript на стороне сервера распространенным? Зачем использовать его в отличие от других скриптов на стороне сервера? Существует ли конкретный вариант использования, который делает его лучше, чем другие серверные языки?

Кроме того, смущенный тем, как начать экспериментировать с ним, я нахожусь на freeBSD, что мне нужно установить для запуска javascript на стороне сервера?

4b9b3361

Ответ 1

Это происходит следующим образом:

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

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

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

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

К сожалению, в реальном мире это не так хорошо. Проблема в четыре раза:

  • Вид сервера на странице по-прежнему сильно отличается от представления клиента на странице. Сервер должен иметь возможность делать такие вещи, как прямо разговаривать с базой данных, которая просто не должна выполняться в браузере. Браузеру нужно делать такие вещи, как манипулировать DOM, который не соответствует серверу.
  • Вы не контролируете механизм JavaScript для клиента, то есть все еще будут важные языковые различия между вашим кодом сервера и кодом клиента.
  • База данных обычно является более узким местом, чем веб-сервер, поэтому сбережения минимальны.
  • Хотя почти каждый знает немного javascript, не многие разработчики действительно знают и хорошо разбираются в javascript.

Это не полностью неприступные технические проблемы: вы привязываете язык, поддерживаемый сервером, к подмножеству javascript, который хорошо поддерживается в большинстве браузеров, предоставляет среду IDE, которая знает это подмножество и серверные расширения, делает некоторые правила о структуре страницы, чтобы свести к минимуму проблемы DOM и предоставить некоторый javascript котельной для включения на клиенте, чтобы сделать платформу немного приятнее в использовании. Результат - нечто вроде Aptana Studio/Jaxer, или совсем недавно Node.js, что может быть довольно приятным.

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

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

Ответ 2

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

Также смотрите:

Ответ 3

Javascript - это всего лишь язык. Поскольку это всего лишь язык, вы можете использовать его в любом месте... в своем браузере, на сервере, встроенном в другие приложения, автономные приложения и т.д.

Как я уже сказал, я не знаю, что существует много новых разработок с "Site-Side Javascript"

Ответ 4

Javascript - это отличный язык с базой стилей прототипа self/scheme и синтаксисом стиля C. Есть некоторые проблемы, см. Javascript Good Parts, но в целом это язык с первой скоростью. Проблема в том, что большинство программистов javascript - ужасные программисты, потому что они очень доступны для начала.

Одна команда из Google построила Rhino on Rails, которая является структурой MVC, такой как Ruby on Rails, которая написана на javascript и работает на Rhino - интерпретаторе javascript для Java VM. В этом случае у них было требование использовать виртуальную машину Java, но хотелось получить быстрый язык (javascript быстр), поддерживается утиная печать и была гибкой.

Другим примером является нечто вроде CouchDB, ориентированной на документ базы данных, которая использует json в качестве транспортного формата и javascript в качестве языка запросов и индексирования. Они хотели, чтобы база данных была как можно более родной.

Javascript хорош в манипуляциях с строками и dom (xml), будучи изолированными, создающими сети, расширяющими себя и т.д. Эти особенности - это то, что вы часто делаете при разработке веб-приложений.

Все, что сказал, я фактически не разрабатываю javascript на стороне сервера. Это не плохая идея, но определенно менее распространенная.

Ответ 5

Мы используем javascript на клиенте, потому что он есть, а не потому, что из списка языков это был наш выбор. Я бы не выбрал его для каких-либо задач на сервере.

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

javascript является надежным и простым в использовании, но он слишком трудоемкий для обычных задач на сервере.