Ответы пользователя по тегу Node.js
  • Формат ошибок в GraphQL?

    voidnugget
    @voidnugget
    Программист-прагматик
    GraphQL не привязывается к REST'у... по этому специфические заголовки и статусы ответов не используются.
    Коды ошибок сервера обрабатываются как часть GraphQL схемы. Сам GraphQL разрабатывался для любых транспортов, не только HTTP1&2, что бы его можно было гонять, допустим, там под WebSocket'aми или вообще под каким-нить rtmfp или любым другим кастомным протоколом.

    Это как шутка про REST:
    "Когда вы в последний раз видели HEAD запрос с range заголовками и статус ответа 206 (Partial Content) ?"
    "Это и определяет степень познания и ответственность современных хипстеров в разработке программного обеспечения"

    Я не советую использовать родную golang либу - она не соответствует последним спецификациям и плохо работает что с relay что с apollo.

    p.s. rest никто толком не знает ;)
    Ответ написан
  • В Node.js будет реализованы import и export?

    voidnugget
    @voidnugget
    Программист-прагматик
    node --v8-options | grep "in progress"

    В принципе есть поддержка es6 модулей через --harmony флаг, но лучше использовать полифилы или SystemJS.
    Ответ написан
  • Какие технологии выбрать для написания чата?

    voidnugget
    @voidnugget
    Программист-прагматик
    Если вы упоротый рубист, стоит реализовать сервер на основе
    faye/faye-websocket-ruby или imanel/websocket-ruby с воркерами на sidekiq. В качестве окружения я лично предпочитаю JRuby. Ещё я видал как люди гоняли рубисткий sock.js. Я даже не представляю почему у него популярность ниже того же socket.io, а поддержка в разы лучше.

    Также обязательно нужно написать fallback на Server-sent events и long polling.
    Хотя можно вообще на заморачиваться с websocket'aми - его может будет достаточно, и для чатов с большим количеством народу производительность у него будет выше чем у Websocket'ов.

    А так, в соседней вселенной, я обычно использую Vert.x и местный sock.js с откатом на sse.
    Ответ написан
    Комментировать
  • PHPStorm, куда слезть с него? nodejs / frontend разработчики, поможете?

    voidnugget
    @voidnugget
    Программист-прагматик
    Atom / Sublime обычно покрывает все потребности.
    Хотя для вёрстки часто использую Brackets.
    Сейчас занимаюсь портированием работы с PSD'шками с Brackets в Atom - не нравится как работает Avocode в Atom'e.
    Ответ написан
    Комментировать
  • Как оптимизировать передаваемый трафик через socket.io?

    voidnugget
    @voidnugget
    Программист-прагматик
    Если используется deflate - смысла пережимать нету.
    Можно поиграться с JSZip, но это создаст дополнительную нагрузку.
    Если хотите создать эффективный протокол - лучше использовать protobuf.
    Ответ написан
    Комментировать
  • Как подружить jade с angular.js?

    voidnugget
    @voidnugget
    Программист-прагматик
    На стороне сервера в процессе сборки и упаковки.
    Обычно использовал gulp-angular-templatecache и gulp-jade соответственно.
    Ответ написан
  • Помогает ли gulp при верстке обычных сайтов?

    voidnugget
    @voidnugget
    Программист-прагматик
    Да.
    Обычно заводится отдельный gulp таск, который получает реквизиты для заливки с переменных окружения, и с его помощью уже происходит заливка после сборки. Особенно удобно для aws и heroku, но и sftp покатит.
    Кроме всего прочего можно подключить автопрефиксер с uncss и csslint для подсказок о возможных недочётах.
    ИМХО проще всего и быстрее всего сейчас с stylus'ом, ибо node-sass и медленее и не особо стабильный, а гонять отдельно compass вообще сверхслоупочно, хотя некоторые местные предпочитают чистый uncss.
    Ответ написан
    1 комментарий
  • Какой выбрать язык для серверной части highload проекта?

    voidnugget
    @voidnugget
    Программист-прагматик
    Когда люди называют 1Гбит динамического http трафика highload'ом - это вызывает у меня довольно нелепую ухмылку.

    Сравнивать php / python / ruby более-менее целесообразно так как это полностью интерпретируемые языки с кэшированием байткода, иногда с оптимизациями, как в случае с jRuby и Project Graal. Обычно такие вещи помирают на 14-17К запросов в секунду с пустыми ответами... В общем на одном гигабите трафика тут обычно всё и заканчивается. Node.js по производительности более корректно сравнивать с JVM языками типа Groovy или Scala, но никак не с самой Java. На практике через Netty на Disruptor'е под offheap'ом и Terracotta можно пропустить и 40Гбит живого трафика, без статики, - главное правильно профилировать и писать прямо pfRing.

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

    Если вы хотите строить что-то действительно стоящее - стоит смотреть в сторону CQRS-ES'a и реактивных приложений в рамках SOA. Возможно внедрение микросервисных архитектур если нет требований к задержкам на выполнение запросов. Но, учитывая что вы задаёте здесь вопросы о том "что лучше node.js или python" не думаю что у вас хватит опыта для построения подобных вещей.

    Можно пробовать golang - яндекс слез с python'a на golang по причине слоупочности оного, и довольно хорошо так слез. В golang'е сейчас самый лучший RAD, гораздо круче того же node.js. Идеоматичность самого языка решает достаточно много потенциальных проблем ещё на этапе разработки. Да и сообщество сейчас довольно активно пилит его runtime - внедряют многопоточный gc и ещё пару вкусностей. Даже не умея всех этих асинхронностей и прочей лабуды с golang'ом можно получить довольно хороший выхлоп. Правда меня немного смущает отсутствие нормальных datamapper'ов и scaffolding'a под golang.
    Ответ написан
    16 комментариев
  • Как подключить node.js файл в index.php?

    voidnugget
    @voidnugget
    Программист-прагматик
    Вопрос очень плохо сформулирован, не ясно какую задачу нужно реализовать подобным образом.
    Берём и читаем как настраивается rewrite в nginx'е и Apache.
    Ответ написан
  • Как PHP использовать вместе с NODE.JS?

    voidnugget
    @voidnugget
    Программист-прагматик
    Если нужна асинхронность и push-нотификации в РНР - проще уж прикрутить ворекров для очередей типа Gearmand / Beanstalk.
    Ответ написан
    Комментировать