Benötigen Websites mehr lokale Datenbanken?

8
  

Wenn es einen besseren Ort gibt, um das zu fragen, lassen Sie es mich wissen.

Jedes Mal, wenn ich eine neue Website / Blog / Warenkorb / etc. baue, versuche ich weiterhin folgendes zu tun:

  • Extrahieren Sie allgemeine Funktionen in wiederverwendbaren Code (meist Rubygems und jQuery-Plugins)
  • Wenn möglich, wandeln Sie dieses Juwel in einen kleinen Dienst um, so dass ich nie mit einer Datenbank für die beteiligten Objekte zu tun habe (mit Service, ich meine etwas Mageres und Gemeines, normalerweise mit dem Sinatra Web Framework mit ein paar Kernmodellen).

Ich gehe davon aus, wenn ich Abhängigkeiten von lokalen Datenbanken entfernen kann, dass es auf lange Sicht einfacher und skalierbarer wird (skalierbar in Bezug auf Wiederverwendbarkeit und Verwaltbarkeit, nicht unbedingt Datenbank / Performance). Ich bin mir nicht sicher, ob das noch eine gute oder schlechte Annahme ist. Was denkst du?

Ich habe diese Annahme aus folgendem Grund gemacht:

  

Die meisten ernsthaften Datenbank- / Modellfunktionen wurden irgendwo im Internet erstellt.

Um nur einige zu nennen:

  • API des sozialen Netzwerks: Facebook
  • Messaging API: Twitter
  • Mailing API: Google
  • Ereignis-API: Eventbrite
  • Einkaufs-API: Shopify
  • Kommentar API: Disqus
  • Formular-API: Wufoo
  • Bild-API: Picasa
  • Video-API: YouTube ...

Jedes dieser Dinge ist ziemlich kompliziert, um von Grund auf neu zu erstellen und so optimiert, einfach und benutzerfreundlich zu machen, wie diese Unternehmen sie gemacht haben.

Wenn ich also eine App erstelle, die Bilder (Picasa) auf einer Event-Seite (eventbrite) zeigt, und Sie können sehen, wer der Veranstaltung beigetreten ist (facebook events) und ihnen E-Mails schicken (google apps api), und sie füllen lassen Aus monatlichen Umfragen (wufoo) und einem Video, wenn sie fertig sind (youtube), alles integriert in eine benutzerdefinierte, einfach zu bedienende Website, und ich kann das tun, ohne jemals eine lokale Datenbank zu erstellen, ist das gut Ding ?

Ich frage, weil zwei Dinge fehlen, die mich zwingen, diese lokale Datenbank zu erstellen:

  • Beitrag API
  • RESTful / Pretty URL-API

Obwohl es viele Blogging-Systeme und APIs für sie gibt, gibt es keinen Ort, an dem Sie einfach nur Inhalte schreiben und sie zu etwas ganz Besonderem machen können. Für jede App muss ich Code verwenden, um schöne / erholsame URLs zu erstellen, und das spart Beiträge. Aber es scheint, dass das ein Service sein sollte!

Die Frage ist, ob die Website ist ? ... Diesen Ort zu integrieren die Welten Dienstleistungen für meine spezielle Sache ... und, seufz, Beiträge zu speichern, dass nur meine Website Zugriff auf hat. Brauchen alle immer "ihren eigenen Blog"? Warum nicht einfach ein Profil haben und viel Inhalt auf einer etablierten Plattform wie StackOverflow oder Facebook schreiben?

... So kann ich Apps ganz ohne Datenbank schreiben und weiß, dass ich es richtig mache.

Hinweis: Natürlich brauchen Sie irgendwann eine Datenbank, wenn Sie etwas Einzigartiges oder Neues machen. Aber für den Fall, dass Sie nur Informationen neu verdrahten oder Dinge wie Videos, Events und Produkte erstellen, ist das wirklich notwendig?

    
Lance Pollard 01.05.2010, 12:28
quelle

2 Antworten

3

Ich denke, Sie haben Ihre eigene Frage in der Frage ziemlich beantwortet:

  • Wenn Sie einen webbasierten Dienst eines Drittanbieters finden, der die Anforderungen Ihrer Website für Persistenz erfüllt, benötigt Ihre Website keine lokale Datenbank.

  • Wenn nicht, dann auch.

Aber die Anforderungen sind mehr als nur technische. Unter der Annahme, dass Sie einen Remote-Datenbank- / Persistenzdienst identifizieren, gibt es viele Gründe, warum er nicht geeignet sein könnte:

  • Es bietet möglicherweise nicht die detaillierte Funktionalität, die Ihre Kundenwebsite benötigt; z.B. Fähigkeit, bestimmte Arten von Abfragen, Skalierbarkeit, etc.
  • Die Verwendung der prognostizierten Trefferquote Ihres Kunden ist möglicherweise zu teuer.
  • Es könnte zu riskant sein in Bezug auf:
    • Endbenutzer-Datenschutz,
    • Serviceverfügbarkeit / Zuverlässigkeit,
    • langfristige Lebensfähigkeit des Dienstes und
    • langfristige Stabilität der APIs des Dienstes.

Das soll nicht heißen, dass diese Bedenken nicht angegangen werden können. Aber zumindest müssen die "Risiko" -Probleme mit Ihren Kunden besprochen werden, da sie letztendlich mit ihnen umgehen müssen, wenn es schlecht läuft.

Aber schließlich ist der einzige große Vorteil einer lokalen Datenbank gegenüber einer entfernten Datenbank, dass Sie und Ihr Kunde die vollständige Kontrolle über eine lokale Datenbank haben.

    
Stephen C 03.05.2010, 00:48
quelle
0

Ich denke, es hängt wahrscheinlich davon ab, welche Informationen Sie speichern / abrufen möchten. Viele der Informationen, die Sie erwähnen, scheinen Openid oder ähnliche Anbieter zu verwenden. Kannst du nicht ein Openid oder ein alternatives "Modul" erstellen, auf das du dich gerade beziehst / wenn nötig (aus der Ferne), wenn du es brauchst?

Eine Menge davon sieht ein wenig hinter mir aus, aber ich versuche, eine Datenbank von Benutzern zu erstellen, und dachte mir, dass ich dies so erreichen würde, dass ich den Code auch in einer Vielzahl von Kontexten wiederverwenden könnte.

Hoffentlich wird das diese Denkprozesse für dich joggen.

    
Chops 03.05.2010 00:48
quelle

Tags und Links