Ограничения в рабочем Ruby/направляющих на окнах

TL; DR: GraphQL светит, когда Firebase падает. Мощное моделирование данных, гибкие и эффективные запросы и открытая спецификация - все необходимые компоненты GraphQL, которые отсутствуют в Firebase.

Мощное моделирование данных

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

Структура данных, используемая в GraphQL, с другой стороны очень интуитивно понятен и привычен думать, поскольку он моделируется как график. Используя синтаксис IDL , мы можем легко описать нашу модель данных, называемую схемой GraphQL. Для приложения Twitter схема может выглядеть так:

type Tweet {
  id: ID!
  title: String!
  author: User! @relation(name: "Tweets")
}

type User {
  id: ID!
  name: String!
  tweets: [Tweet!]! @relation(name: "Tweets")
}

Здесь мы определили два типа Tweet и User с некоторыми скалярными свойствами, а также отношение один ко многим между User и Tweet. Единые элементы данных называются узлами - и пользовательский узел может быть подключен ко многим узлам твитов. Эта структура данных является простой и гибкой, за исключением подхода JSON от Firebase.

Гибкие и эффективные запросы

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

query {
  allUsers {
    id
    name
    tweets {
      title
    }
  }
}

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

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

Все это просто невозможно в Firebase.

Данные в реальном времени

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

Заключение

Итак, чтобы ответить на ваш вопрос: GraphQL превосходит Firebases в большинстве что делает его предпочтительным выбором.

Если вас интересует GraphQL, я рекомендую вам проверить Graphcool , который сочетает в себе силы GraphQL с мощными функциями, такими как встроенная аутентификация и гибкие привязки к AWS Lambda или другие серверные функции для реализации пользовательской бизнес-логики.

Отказ от ответственности: я работаю в Graphcool:)

80
задан johnc 2 May 2010 в 22:25
поделиться

13 ответов

Вот обзор текущих проблем с направляющими в Windows:

  • Ruby и направляющие медленнее в Windows, чем они находятся на подобной Unix ОС.
  • Несколько драгоценных камней и библиотек не работают над Windows.
  • Некоторые измы Unix не доступны в Windows ( примеры ).
  • сообщество находится главным образом или на Mac или на Linux (, Это - особенно твердое для контакта с; никто не хочет быть одним на одном острове, когда остальная часть племени празднует, весело проводя время и проживая большой на другом острове. Сообщество важно. Кажется, что большинство разработчиков Windows, которые запускаются с направляющих быстро, переключается на Mac или Linux. Однако , малочисленное сообщество пользователей Windows Ruby, которые действительно сохраняются, чрезвычайно дружелюбно, выделено и хорошо осведомлено - , идут, говорят привет . )
<час>

Примечание большая часть совета, который следует, теперь устарела из-за великолепных усилий команда RubyInstaller в обеспечении устойчивости, совместимости и производительности к Ruby в Windows. Я больше не должен использовать VirtualBox, который заявляет много о том, как далеко Ruby в Windows прибыл.

, Если Вы хотите больше технической детали, следующее требуется, читая.:

, кавычка Выбора от той последней:

AkitaOnRails: самая очевидная вещь состоит в том, что любой Драгоценный камень с Расширениями C без надлежащих двоичных файлов для Windows перестанет работать. Попытка выполнить команды оболочки перестанет работать и RubyInline также. Что еще?

Luis Lavena: Hehe, это - просто верхушка айсберга

сказавший все это, я не нахожу разработку с направляющими в Windows также болезненной. Используя Ruby, по большей части, удовольствие. Я избежал бы InstantRails, потому что, чтобы быть откровенным, столь же легко установить Ruby правильно с помощью установщика с одним щелчком, затем делая gem install rails. При необходимости в Apache и MySQL, , WAMP является хорошей ставкой, хотя даже они не требуются, если Вы просто придерживаетесь Полукровки и SQLite.

то, Что я взял к выполнению недавно, работает VirtualBox с экземпляром Сервера Ubuntu, который тесно зеркально отражает сервер развертывания. Я подключаю сетевой диск к Серверу Ubuntu, тогда я редактирую и выполняю свой код непосредственно VM. Это использует едва любую память (это в настоящее время использует ~43MB; контраст, что с Firefox, который использует ~230MB), и направляющие на самом деле работает лучше, чем выполнение его исходно в Windows. Плюс Вы может экспериментировать с Вашим виртуальным сервером в относительной безопасности. Это - действительно хорошая установка, я настоятельно рекомендую его.

Наконец, вот несколько блогов Ruby/направляющих, нацеленных на пользователей Windows:

101
ответ дан Andrew Cheong 24 November 2019 в 09:58
поделиться

Самое большое ограничение выполнения в соответствии с Windows - то, что много вещей является супер медленным.

См. этот поток . Для обсуждения.

Простые вещи как "сценарий/консоль" и выполняющий задачи граблей возьмут в 5 раз дольше в Windows, чем они делают на Linux или Mac

, Другие ограничения:

  • № IE6 на Vista.
  • BackgroundRB и много других c базировались, драгоценные камни не работают над Windows.
  • Никакой пассажир
1
ответ дан Sam Saffron 24 November 2019 в 09:58
поделиться

Вы могли просто использовать Cygwin, и это - версия Ruby. Это избавляется от аргументов о скомпилированных драгоценных камнях, не работающих над Windows - мне удалось скомпилировать много драгоценных камней тот путь.

1
ответ дан 24 November 2019 в 09:58
поделиться

В целом производительность направляющих является проблемой в Windows.

До Вашей установки развертывания, можно или выполнить направляющие в FCGI или использовать полукровку (и настроить или Apache или IIS как прокси). mod_rails ( http://www.modrails.com ) является лучшим вариантом развертывания для направляющих сегодня, но не работает на Windows.

Вы могли бы найти больше удачи с помощью JRuby в Windows для выполнения направляющих в любой среде JVM, которую Вы хотите (кот, сервер J2EE, и т.д.).

IronRuby еще не должен туда выполнять направляющие в продуктивной среде, но в конечном счете он будет нацелен на рабочие направляющие в любой среде ASP.NET (IIS).

1
ответ дан Jimmy Schementi 24 November 2019 в 09:58
поделиться

Опция, если Вы застреваете в Windows, состоит в том, чтобы иметь виртуальные серверы, запускающие Linux / BSD / what-have-you.

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

1
ответ дан Neall 24 November 2019 в 09:58
поделиться

Если Вы не можете убежать от окон, используют VMware и выполняют некоторую форму Linux (человечность популярна). Ваш № 1 ограничения будет скомпилированными драгоценными камнями, которые не играют приятно на окнах.

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

большинство веб-хостов запускает Linux также, хорошо разработать на той же платформе как Ваш хост, избежать головных болей развертывания.

1
ответ дан MatthewFord 24 November 2019 в 09:58
поделиться

Когда я в последний раз возился с направляющими на окнах, я использовал Мгновенные направляющие и нашел, что он был довольно болезненным процессом, за исключением отсутствия обновлений Мгновенных направляющих (который, от вида веб-сайта все еще что-то вроде проблемы, как мгновенные направляющие 2,0 ROR 2.0 использования, в то время как новейшая версия 2.1). Вы могли бы также изучить ответы на этот вопрос , поскольку он упоминает много других способов получить работу RoR окон легко.

2
ответ дан Community 24 November 2019 в 09:58
поделиться

Лично я нашел получение Ruby + направляющие и работа окон кусок пирога. От загрузки до просмотра к моему первому 'HelloWorld' приложение взяло меня все 15 минут. Я даже не беспокоился ни одним материалом InstantRails.

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

Эти парни также делают хороший Ruby, который разработчики прибавляют для Visual Studio:

http://www.sapphiresteel.com/

3
ответ дан Kev 24 November 2019 в 09:58
поделиться

Я нашел подъем среды разработки и выполнение с , Мгновенные направляющие в Windows были действительно просты. Особенно при использовании Netbeans или Radrails как IDE.

Меньше, чем 10-минутное задание.

, Что сделало тех, кто боролся, находят, чтобы быть проблемой?

6
ответ дан RichH 24 November 2019 в 09:58
поделиться

У Вас есть опции окон для подъема всего и установленный, такой как Instantrails:

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

YMMV

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

1
ответ дан Dave Smylie 24 November 2019 в 09:58
поделиться

Я разрабатывал направляющие в Windows PC в течение нескольких лет и не имел никаких настоящих проблем, устанавливающих назад, когда я сначала запустил. Однако я недавно восстановил свою машину и изо всех сил пытался получить работу установщика One-Click Ruby и последнюю версию Драгоценных камней. Таким образом, это - то, что я попробовал.

Опция 1: выполните виртуальную машину Linux

Я был действительно впечатлен идеей Charles Roper выполнить направляющие в виртуальной машине Linux, и это - путь, для которого я первоначально пошел. Все это пошло довольно гладко, и я документировал его по budanters.blogspot.com. Однако я боролся с доступом к серверу MySQL (в Виртуальной машине Linux) от хоста Windows.

Опция 2: Используйте jRuby

Я недавно установил версию Windows пакета NetBeans 6.5 Ruby, и не будучи знающим об этом, это устанавливает JRuby и драгоценные камни направляющих. IDE имеет UI для установки Драгоценных камней, и я теперь вернул свое старое приложение и работающий в моей среде разработки.

Ноябрь 2009 обновления

Я теперь использую Netbeans 6.7 в Windows, и в целом я очень доволен им. Единственные недостатки - то, что это устанавливает JRuby 1.2, и я должен был установить JRuby 1.3 вручную для получения чего-то работа (я не могу помнить то, что) и я абсолютно не мог заставить развертывание, работающее или с Capistrano или с Vlad Устройство развертывания работать. Vlad использует Open4, который не работает с JRuby.

Май 2010 обновления

Netbeans 6.8 идет с JRuby 1.4, так больше не должны возиться с ручной установкой JRuby 1.3. Также кажется, что в JRuby 1.5 Open4 будет теперь работать, что означает, что Vlad мог бы начать работать.

4
ответ дан Guy C 24 November 2019 в 09:58
поделиться

Я сам не являюсь разработчиком рельсов, но подумал, что это может быть интересно. Microsoft выпустила IronRuby 1.0, это версия Ruby, работающая на платформе .NET, которая очевидно работает в 4 раза быстрее , чем официальная реализация Rails в Windows.

http://www.drdobbs.com/open-source/224600662

Официальный сайт http://ironruby.codeplex.com/

1
ответ дан 24 November 2019 в 09:58
поделиться

Никто еще не упомянул Bitnami RubyStack ? Я использую его уже много лет вместе с RadRails. Включает Apache, MySQL / Postgre, phpmyadmin, git и т. Д. Необязательно Ruby 1.9.2 / Rails 3.0b. Вы также можете запустить Ubuntu RubyStack на виртуальной машине, но я еще не пробовал.

5
ответ дан 24 November 2019 в 09:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: