• Meteor.js расцветает или чахнет?

    PQR
    @PQR
    Не согласен с предыдущим оратором (@geeek), в частности с утверждением
    В общем если хочешь быть в тренде - бери
    - Meteor совсем не в тренде.

    Если дать краткий и резкий ответ на вопрос "расцветает или чахнет?" - отвечу: интерес к Meteor чахнет, не смотря на все усилия команды разработки.

    Компания MDG (Meteor Development Group) подняла $31M инвестиций (https://www.crunchbase.com/organization/meteor) и хотела всё сделать круто, стать мейнстримом, а потом зарабатывать на хостинге Meteor проектов - такой план монетизации. Хостинг они, кстати, сделали. И в какой-то момент было много хайпа вокруг Meteor, казалось, что всё идёт по плану. Полтора года назад вышел Meteor 1.0 (октябрь 2014), потом была пара хороших релизов, которые убрали всю "сырость": Meteor 1.1 и 1.2.

    Но в середине 2015 стало понятно, что никаким мейнстримом они не стали, мейнстрим нынче React!
    Не смотря на простоту старта и скорость разработки с Meteor, были очевидны следующие минусы:

    1. Собственная система пакетов со своим центральным репозиторием https://atmospherejs.com - посмотрите на счётчики скачивания пакетов, это крохи по сравнению с npm. Посмотрите на активность разработки основных пакетов - всё очень тухленько.

    2. Собственная система сборки. С одной стороны всё работает из коробки, с другой стороны в неё не вклинишься (это сложно). Плюс всякие странные условности, что всё в глобальном пространстве имён и ваши js файлы загружаются в алфавитном порядке. В Meteor 1.3 частично решили проблему, ходят слухи, что в будущем будут использовать webpack.

    3. Собственный шаблонизатор blaze (похож на handlebars). В начале blaze выглядел хорошо, но теперь все внезапно пишут на React и многие потирают руки в ожидании Angular 2, в итоге blaze оказался ещё один велосипедом, с которым не понятно что делать.

    4. На бекенде всё ещё Node 0.10. Даже с Node 0.12 Meteor уже не работает из-за некоторых бинарных зависимостей! Обещали в будущих версиях обновиться с поддержкой Node 4.

    5. Метеор сильно завязан на MongoDb. Чтобы реактивно доставлять новые/изменившиеся данные от сервера в бразуер они парсят логи Mongo. Были попытки сделать аналогичное для SQL баз, но не увенчались успехом. В итоге встречайте их новый проект Apollo, который поверх GraphQL и не привязан к конкретной реализации бекенда www.apollostack.com А что теперь будет со старым добрым DDP?

    6. Ваше Meteor приложение одной командой можно упаковать в мобильное приложение Cordova - выглядит круто, но сейчас время ReactNative и вот мы читаем обсуждения на форумах, что возможно, они таки интегрируются с ReactNative, но когда?

    Подводя итог: ребята из MDG подняли кучу денег и хотели сделать всё сами: свои пакеты, свою сборку, свой шаблонизатор, свой реактивный протокол (DDP) и чтобы всё работало из коробки. И они сделали это!

    Только это оказалось никому не нужно, т.к. для пакетов все сидят на npm, сборка должна быть гибкой (и поэтому у нас есть gulp и webpack), самый модный шаблонизатор нынче - это React, реактивный протокол GraphQL и базы на сервере люди любят разные, а не только MongoDb. А Meteor, по сути, остался на обочине всей экосистемы и движухи вокруг JavaScript. Поняв это, MDG начали двигаться в сторону JS комьюнити и первый шаг сделан: Meteor 1.3 поддерживает нормальные модули ES2015, npm пакеты, рендринг через React и Angular. Но Meteor 1.3 - это куча костылей поверх старого велосипедного Meteor. Почитайте их планы на будущее в официальном блоге, хотя бы в этом посте: info.meteor.com/blog/announcing-meteor-1.3 - им по сути предстоит переписать всё заново! И первые ласточки такого "переписывания" - это выделение проекта Apollo.

    Возможно, со второй попытки они всё сделают правильно и Meteor 2.0 действительно выстрелит. Если только у них деньги не закончатся раньше.

    Сейчас можно взять Meteor и эффективно зарабатывать на маленьких/средних фриланс проектах, когда нужно сделать быстро и не думать о долгосрочной поддержке.
    Если же вы делаете большой продукт, то вас ждут большие потрясения и изменения в экосистеме Meteor.
    Ответ написан
    4 комментария
  • Как использовать websockets на кластере node. js?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    Redis pubsub использовал.
    Ответ написан
    Комментировать
  • Как использовать websockets на кластере node. js?

    @yeti357
    в пределах кластера ноды - используя worker.send() метод
    в пределах нескольких серверов: pubsub скорее всего надо организовать. Redis, различные *MQ, вот это всё. куча вариантов
    Ответ написан
    Комментировать
  • ООП в высоконагруженных проектах считается устаревшим?

    miraage
    @miraage
    Старый прогер
    Мужик дегенерат, однозначно.

    // EDIT

    Посмотрел прикрепленные исходники. Закапал святую воду в глаза.
    Выкиньте это всё, покажите ему, например, PHP: The Right Way.

    Я бы на Вашем месте уволился, незадумываясь.
    Ответ написан
    Комментировать
  • После перехода на Yii2 сильно просела бд?

    metamorph
    @metamorph
    а попробуйте enableSchemaCache и schemaCacheDuration включить.
    Ответ написан
    2 комментария
  • Как js код превратить в php?

    @CostaConquesta
    function printLevel($input){
       $num = (int) $input;
       $array = array(0, 200, 400, 750, 1050, 1500, 2000);
       $i = 0;
       while($num > $array[$i]){
          $i++;
       }
       return array($i, $array[$i] - $num);
    }


    Автор javascript кода зачем-то делает лишнее приведение типа.
    Ответ написан
    7 комментариев
  • Фотоальбом в "своем" облаке, доступ с ПК, планшета. Какие есть решения?

    @krekerov
    Fullstack ninja
    ownclowd гавно.
    использовал для продакшена. как на клиентах тормозит, так и сервер.

    свое не свое
    используй www.flickr.com
    терабайт бесплатно
    Ответ написан
    Комментировать
  • Как организовать бд для эффективного поиска?

    @zloy531
    Самый правильный ответ - Сфинкс (sphinxsearch.com). Полноценный поиск можно сделать только на поисковом движке, на самой базе данных - это всегда для галочки.

    А если решать в рамках поставленных условий, то лично я, обычно, создавал View со всеми необходимыми данными. Это, по крайней мере, освободит от "ручного" добавления данных и слежением за консистентностью.
    Ответ написан
    Комментировать
  • Хочу получить фидбек на свою php библиотеку упаковщика html, css, less, js, html?

    aen
    @aen
    Keep calm and 'use strict';
    А почему вы решили, что использование для этих целей php будет хорошей идеей?
    На мой взгляд такие вещи как билд less->css, сборка, минификация и обфусцирование должно быть независимо от того, какая платформа используется на бекенде. Потому такую популярность и набрал grunt.

    Но за старания ваши - спасибо.
    Ответ написан
    3 комментария
  • Как реализовать проект PHP+NodeJS+MySQL?

    Посоветую начать делать.

    В вопросе каша, ничего непонятно. Что хотите узнать то?
    Ответ написан
    Комментировать
  • Почему работодатель предпочитает нанимать веб-разработчика в офис ?

    opium
    @opium
    Просто люблю качественно работать
    Вы плохи тем что слишком часто пропадаете.
    Ответ написан
    2 комментария