Нужны ли сайтам локальные базы данных? - PullRequest
8 голосов
/ 01 мая 2010

Если есть лучшее место, чтобы спросить это, пожалуйста, дайте мне знать.

Каждый раз, когда я создаю новый веб-сайт / блог / корзину покупок / и т. Д., Я продолжаю пытаться сделать следующее:

  • Извлечение общей функциональности в повторно используемый код (в основном плагины Rubygems и jQuery)
  • Если возможно, преобразуйте этот драгоценный камень в небольшой сервис, чтобы мне никогда не приходилось иметь дело с базой данных для задействованных объектов (под сервисом я имею в виду что-то скудное и среднее, обычно построенное с помощью Sinatra Web Framework с несколькими основными моделями).

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

Я сделал это предположение по следующей причине:

Наиболее серьезные функции базы данных / модели были созданы где-то в Интернете.

Просто назвать несколько:

  • API социальной сети: Facebook
  • API обмена сообщениями: Twitter
  • Почтовый API: Google
  • Event API: Eventbrite
  • API покупок: Shopify
  • API комментариев: Disqus
  • API формы: Wufoo
  • API изображения: Picasa
  • Видео API: Youtube ...

Каждую из этих вещей довольно сложно создать с нуля и сделать максимально оптимизированной, простой и удобной в использовании, как это сделали эти компании.

Итак, если я создам приложение, которое показывает фотографии (picasa) на странице событий (eventbrite), и вы сможете увидеть, кто присоединился к событию (события facebook), и отправить им электронные письма (google apps api), и попросить их заполнить проводить ежемесячные опросы (wufoo) и смотреть видео, когда они сделаны (youtube), все интегрированы в пользовательский, простой в использовании веб-сайт, и я могу сделать это, даже не создавая локальную базу данных, - это хорошо вещь

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

  • Post API
  • RESTful / Pretty Url API

Хотя для них существует множество систем блогов и API, нет ни одного места, где можно было бы просто написать контент и сделать его частью какой-то масштабной вещи. Для каждого приложения я должен использовать код для создания красивых / спокойных URL-адресов, и это сохраняет сообщения. Но, похоже, это должен быть сервис!

Вопрос в том, является ли сайт 1061 ? ... Это место для интеграции мировых сервисов по моей конкретной причине ... и, вздох, для хранения сообщений, к которым только у моего сайта есть доступ к . Будет ли каждый всегда нуждаться в «своем блоге»? Почему бы просто не иметь профиль и писать много контента на установленной платформе, такой как StackOverflow или Facebook?

... Таким образом, я могу писать приложения полностью без базы данных и знать, что я делаю это правильно.

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

Ответы [ 2 ]

3 голосов
/ 03 мая 2010

Я думаю, вы в значительной степени ответили на свой вопрос в вопросе:

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

  • Если вы не можете, то это так.

Но проблемы "требований" - это больше, чем , просто технические проблемы. Предполагая, что вы идентифицируете удаленную базу данных / постоянную службу, есть много причин, по которым она может не подойти:

  • Возможно, он не предоставляет подробные функциональные возможности, которые требуются вашему клиентскому сайту; например способность выполнять определенные типы запросов, масштабируемость и т. д.
  • Это может быть слишком дорого для использования, учитывая прогнозируемую посещаемость сайта вашего клиента.
  • Это может быть слишком рискованно с точки зрения:
    • конфиденциальность конечного пользователя,
    • доступность / надежность услуги,
    • долгосрочная жизнеспособность услуги и
    • долгосрочная стабильность API сервиса.

Это не означает, что эти проблемы не могут быть решены. Но, по крайней мере, вопросы «риска» должны обсуждаться с вашими клиентами, поскольку в конечном итоге им придется решать их, если дела пойдут плохо.

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

0 голосов
/ 03 мая 2010

Я думаю, что это, вероятно, зависит от того, какую информацию вы пытаетесь сохранить / получить. Большая часть информации, которую вы упоминаете, похоже, использует openid или аналогичных провайдеров. Разве вы не можете создать openid или альтернативный «модуль», на который вы просто ссылаетесь / включаете (удаленно, если необходимо), когда вам это нужно?

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

Надеюсь, это заставит вас задуматься.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...