Каковы пределы рубина на направляющих?

Вы можете использовать axios, извлекать его из коробки вместе с React, superagent и т. Д. Здесь я покажу вам, как использовать axios для вызовов сервера:

$npm i -S axios

import axios from 'axios' // import inside the component you will make the request.

//Make the call function.
userDataCallHandler = () => {
    axios({
        method:'post',
        url:'here the api url endpoint',
        data:{
            name:this.state.name,
            password:this.state.password
         },
         headers:{
             'Content-Type':'application/json'
             Authorization:'your token if you need it'
          }
    })
    .then(({data}) => {
          consolo.log(data)
    })
    .catch(err => console.log(err));

Посетите https: //www.npmjs.com/package/axios для получения дополнительной информации об этом.

8
задан Adam Bellaire 7 October 2008 в 20:48
поделиться

5 ответов

Направляющие (не рубиновый самостоятельно) горды быть "Самоуверенным программным обеспечением".

Что это означает, на практике то, что авторы направляющих имеют определенную целевую аудиторию в виду (самих в основном) и направляющие цели конкретно в этом. Если X функций не необходимы для той целевой аудитории, это не становится добавленным.

Первое, что пришло на ум вещи, что направляющие явно не поддерживают это люди, могут заботиться о:

  1. Внешние ключи в базах данных
  2. Соединения с несколькими DB сразу
  3. Веб-сервисы SOAP (начиная с направляющих 2.0)
  4. Соединения с несколькими серверами баз данных сразу

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

Единственный другой протест состоит в том, что направляющие создаются вокруг идеи создать веб-приложения CRUD с помощью MVC. При попытке сделать что-то, что НЕ является веб-приложением CRUD (как Твиттер, который является на самом деле системой обмена сообщениями, или если Вы будете безумны и захотите использовать модель как веб-формы ASP.NET), затем, то Вы также встретитесь с проблемами. В этом случае Вы более обеспечены не направляющие использования, поскольку Вы по существу пытаетесь создать лодку из велосипедных частей.

По всей вероятности, проблемами, с которыми Вы столкнетесь, который не может только быть зафиксирован с быстрым плагином или день или 2 из кодирования, являются все свойственные проблемы с базовым временем выполнения Ruby C (утечки памяти, зеленые потоки, загаженная производительность, и т.д.).

12
ответ дан 5 December 2019 в 08:26
поделиться

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

Для многих веб-приложений я рисковал бы этим, это не общий пример использования. Можно отлично поддерживать возможную непротиворечивость с двумя или больше базами данных. Или можно было поддерживать непосредственную непротиворечивость с одной схемой базы данных. Бывший случай является большой проблемой, чтобы иметь, если Ваше приложение должно поддержать mondo объем транзакций (отметьте технический термин :). Последний случай более типичен, и направляющие делает очень хорошо.

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

РАЗЪЯСНЕНИЕ: я думаю о вещах, которые направляющим было бы нелегко поддерживать, потому что это могло бы потребовать фундаментального сдвига в своей архитектуре. Я буду щедр и включать некоторые вещи, которые являются частью экосистемы драгоценного камня/плагина, такой как осуществление внешнего ключа или сервисы SOAP.

Двухфазными фиксациями я означаю пытаться сделать два, соглашается на физически отличные серверы в одном транзакционном контексте.

Вариант использования № 1 для двухфазной фиксации: Вы кластеризировали свою базу данных, так, чтобы у Вас было 2 или больше серверов баз данных, и Ваша схема распространена через оба сервера. Можно хотеть согласиться на оба сервера, потому что Вы хотите разрешить ActiveRecord, думают, делают "карту внешнего ключа", которая пересекает через различные серверы.

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

5
ответ дан 5 December 2019 в 08:26
поделиться

Ответ Orion является правильным на. Существует немного жестких пределов AR/направляющим: развертываясь к Windows, коннекторы Арканзаса, которые не часто используются, например, Firebird), но даже вещи, которые он упомянул, несколько баз данных и серверов БД, существуют драгоценные камни и плагины, которые обращаются к тем, которые для наследия, sharding, и других причин.

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

0
ответ дан 5 December 2019 в 08:26
поделиться

Также найденный некоторой хорошей дискуссией о пределах ActiveRecord.

1
ответ дан 5 December 2019 в 08:26
поделиться

Я думаю, что здесь существует больший “метавопрос”, которому можно было ответить, и это, “когда это в порядке для положений на внешние библиотеки для ускорения времени разработки?”

Сторонние библиотеки являются часто большими и могут решительно уменьшить время разработки, однако существует основная проблема, Joel Spolsky называет это “законом текучих абстракций”. При поиске этого на Google, его сообщение подойдет сначала. По существу это означает, что компромисс во время разработки означает, что Вы понятия не имеете, что продолжается под покрытиями. Таким образом, когда что-то повреждается, Вы полностью застреваете и имеете очень ограниченные методы отладки. Это также означает, что при ударе одной из функций, которые просто не поддерживаются в НАПРАВЛЯЮЩИХ, в которых Вы действительно нуждаетесь, у Вас будет следующий шаг кроме записать функцию самих, если Вы будете удачливы. Многие библиотеки могут сделать это трудным сделать.

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

Сторонние библиотеки могут быть большими для малых и средних приложений; они могут решительно уменьшить время разработки и скрыть сложности, которые не необходимы для контакта с на ранних стадиях развития. Однако в конечном счете они догонят Вас, и необходимо будет, вероятно, переписать или повторно спроектировать решение закончить “закон текучих абстракций”

1
ответ дан 5 December 2019 в 08:26
поделиться
Другие вопросы по тегам:

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