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

Nodejs: Где или Как написать сложную бизнес-логику?

Недавно я познакомился с node.js и крутыми пакетами, такими как express и jade. У меня есть несколько вопросов, последовательно сбивающих мою дверь:

Если я заберу node.js, чтобы построить свой следующий веб-сайт, я буду использовать JavaScript для написания сложной логики на стороне сервера. но я не думаю, что вы можете сравнивать JavaScript с Java или Python для написания кода на стороне сервера, поскольку у них такой огромный океан библиотек. Действительно ли это означает node.js? или я что-то пропустил?

Можно ли вызвать Java или Python из node.js?

4b9b3361

Ответ 1

Не совсем уверен, о чем говорит большинство этих людей.

"Огромный океан библиотек" - это то, над чем активно работает сообщество. Проверьте это: http://search.npmjs.org/#/_analytics - вчера было опубликовано 8 пакетов

Не собирается решать вам ваш дизайн программного обеспечения. Что касается того, где и как писать бизнес-логику, многие из нас охватывают mvc или mvvm или что-то близкое к нему. Если вы создаете приложение и как рубисты (например) структурируете свой код, вы можете посмотреть на что-то подобное - никто не собирается рассказывать вам, как структурировать ваш код.

Проверить https://github.com/joyent/node/wiki/modules

Некоторые из наиболее популярных библиотек для повседневной работы:

Там также множество ORM, если это ваша сумка. Такие вещи, как http://mongoosejs.com/, http://sequelizejs.com/ и друзья

Разработка, основанная на испытаниях, лежит в основе node. Существует 15 различных пакетов TDD для выбора из этого диапазона от полного анализа покрытия кода до настраиваемых модулей подтверждения.

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

Могут быть причины для перехода через node, но это не для неактивного сообщества или отсутствия библиотек.

Ответ 2

Райан не начинал с JavaScript. Большая часть причин, почему Node была создана в JavaScript, заключается в том, что JavaScript не имел огромных океанов библиотек.

Те огромные океаны библиотек почти все написаны в блокирующем коде.

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

Ответ 3

Я бы сказал, что вы пропустили что-то - точнее, основную цель Node.js, то есть асинхронную модель ввода-вывода.

Я начал проект небольшого домашнего животного, чтобы протестировать Node.js - как он "чувствует" и как программировать на нем. Я был впечатлен легкостью работы в такой экосистеме: Node.js-код легко писать (хотя его асинхронная парадигма не так проста для обычного программиста), библиотеки легко создавать и т.д. И т.д. Даже npm удивительно Легко: я просто нашел самый простой способ предоставить собственный код, поскольку библиотека - сделать его общедоступным пакетом - и это абсурдно просто!

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

Также обратите внимание, что соответствующее различие Node.js - это не язык JavaScript, а асинхронная модель ввода-вывода. Это самый интересный аспект Node.js, но асинхронный стиль программирования не так хорошо протестирован, как обычный способ веб-разработки. Может быть, это действительно чудо, которое пропагандируется - или, может быть, оно не так хорошо, как обещали.

Даже в случае, если это окупается, у вас будет достаточно разработчиков для поддержки такой (по крайней мере еще) необычной кодовой базы? Если вы можете получить много преимуществ от асинхронного "образа жизни" Node.js, вы можете использовать более консолидированные языки и фреймворки, такие как Twisted для Python (это мой любимый язык, так что будьте осторожны с моим мнением:)). Для Java тоже может быть что-то подобное. Во всяком случае, я подозреваю, что у вас пока нет большой заинтересованности в этой модели, так как ваш вопрос больше ориентирован на языки, чем на парадигму программирования, поэтому Node.js не может многое предложить вам.

Итак... нет, я бы не развил что-то professonaly в Node.js пока, хотя я думаю, что это интересно и поучительно изучать. Однако вы можете это сделать - просто не делайте этого, не имея в виду основную цель Node.js: асинхронный ввод-вывод, программирование, управляемое событиями. Если это то, что вам нужно, Node.js - хорошая альтернатива.

Ответ 4

Конечно, вы можете использовать Python, PHP, c++ или другие технологии с узлом cuz nodejs, который может запускать его как дочерний процесс. Nodejs дает вам свободу использовать любые технологии, которые вы хотите внутри себя. Вы можете использовать все, что хотите, комбинируя большинство программ производительности.

Ответ 5

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

Если вы считаете, что существует пробел, где Node не сможет обеспечить вашу бизнес-логику, взгляните на NPM или дайте Google вкратце, чтобы узнать, разрешил ли кто-либо еще вашу проблему.

Ответ 6

Есть некоторые вещи, которые JavaScript просто не может сделать. Если вы столкнетесь с этими Node, возможно, не лучшим выбором для вашего приложения. Однако вы, вероятно, можете выполнить большую часть того, что вам нужно.

Что касается ограничения API, я предлагаю вам взглянуть на npm и все библиотеки в своем хранилище. В частности, такие, как underscore.js. Многие стремятся заполнить пробелы в том, что у родного JavaScript не хватает по сравнению с другими языками.