Systemprogrammier -> Webentwickler
Geizhals » Forum » Programmierung » Systemprogrammier -> Webentwickler (79 Beiträge, 1665 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
....
Re(4): Systemprogrammier -> Webentwickler
19.09.2010, 14:01:25
- paralleles Laden/rendering statt einer sequentiell geladenen Seite (z.B.
Facebook), bzw. überhaupt Nachladen der personalisierten Teile und effizientes
Caching der statischen Seite


Dafür ist Facebook aber arschlahm. Außerdem kannst du das Caching auch serverseitig machen.

Integration von Sachen wie OpenID/Facebook connect, Google Maps


Wie gesagt, kommt auf die Anwendung an. Nicht überall braucht man Google Maps oder den Facebook-Schaß.

Live-Updates bei der Suche (im dropdown oder auf der Seite)


Dafür gibts praktische Frameworks, die einem 90% der Arbeit abnehmen. Das muss man nicht alles selber programmieren.

Mir ist jedenfalls keine neue, größere Website bekannt, die nicht extensiv JS
nutzt und viele sind nur mehr rudimentär benutzbar ohne JS


Amazon kommt ohne Javascript aus. Die Google-Suche auch. Ebay ebenso. Javascript wird zu 95% nur als zusätzliches Feature verwendet und nicht für die Grundfunktionalität. Diese sollte (wenn nicht anders möglich oder gewünscht) auch ohne Javascript immer gegeben sein.

Das ist ähnlich wie mit Flash. Flash wird zu 95% für unwichtige Dinge verwendet. Nur selten ist Flash auch wirklich sinnvoll, und dann meistens auch nur als Video-Player, der dank HTML5 in Zukunft ersetzbar sein wird.

HTML5 wird zwar viele altbekannte JS-Tricks obsolet machen, aber die Nutzung
von JS nimmt trotzdem stark zu.


Ja, spätestens dann, wenn die ganzen Offline-Apps in Mode kommen. Trotzdem sollte man nicht sinnlos Javascript zum Selbstzweck verwenden, nur weil mans eben (nicht anders) kann.

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
...........
Re(11): Systemprogrammier -> Webentwickler
25.10.2010, 11:29:27
Es geht nicht nur ums modifizieren - alleine schon die Tatsache, dass du Tabellen erstellen musst, deren Struktur du vorgibst, ist schon ein großer Aufwand.

Klassisches Beispiel: Du verwaltest irgendwo Datensätze deiner Nutzer.

In diesen Stammdaten werden Name, Geburtstdatum gespeichert, sowie mehrere Adressen.

- In deinem Fall (relationale DB) benötigst du bereits mehrere Tabellen, um Benutzer sowie Adressen zu speichern.
- Kommt dann noch ein Feld zu den Stammdaten hinzu, muss dieses angelegt werden.
- Für sämtliche Felder musst du Datentypen vergeben
- Auch Datensätze, bei denen du Infos gar nicht weißt (z.b. ein Benutzer, der kein Geburtsdatum angibt), musst du in dieses Schema pressen (Werte sind dann NULL).

Ergibt jede Menge Aufwand.

Nun das ganze auf die bessere Art, einfach erklärt: Mein Benutzer, mit all seinen Stammdaten, Adressen, wird nur durch ein Array von Daten repräsentiert. Möchte ich dieses Array irgendwo speichern, übergebe ich es meinem DB-Objekt, gebe einen Ort/eine Sammlung/Collection an, und führe eine Methode zum Speichern aus. Fertig.

Komme ich nun drauf, dass es sinn macht, zu einem User mehrere Telefonnummern speichern zu lassen:

Bei relationalen Datenbanken - neue Tabelle(n), Datentypen definieren, etc.

Bei Dokument-orientierten Datenbanken erweitere ich einfach mein Frontend so, dass man diese Daten erfassen kann - letztendlich landen sie wieder in meinem Stammdaten-Array als neuer Knoten in einem Baum - einmal speichern reicht, und die Daten sind da.

Meine Applikation ist längst fertig und schnell erweiterbar, während du dich wahrscheinlich noch darum kümmerst, SQL-Queries zu schreiben, um die Userdaten überhaupt auszulesen, Tabellen zu Joinen, etc.

In diesem Vergleich ist dein Aufwand also nicht minimal, sondern enorm.
--
DiTech postete:
Sie haben offensichtlich 7mal mit dem Goldadler positive Erfahrung gemacht. Bei dieser Menge an Glück sollten Sie Lotto spielen.

GHF Watcher 1.4 (FF-Erweiterung) Bild Upload (Hosting Service)
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
.............
Re(13): Systemprogrammier -> Webentwickler
25.10.2010, 11:51:47
Dafür gibts immer mehr fertige Lösungen, alle mit Vor- und Nachteilen.

Gutes Beispiel mit leichtem Einstieg ist MongoDB:

http://www.mongodb.org/

Um den zweiten Punkt zu beantworten gibts auf der Seite gleich eine (in JS geschriebene) Live-Konsole mit einem Tutorial, wie man Daten ablegt, und auch rausholt.

Dort schreibst du dann eben keine SQL Queries mehr, sondern suchst Daten mit bestimmten Kriterien, die so Komplex sein können, wie auch immer es dir beliebt.

MongoDB ist, wenn man bisher nur relationale DBs kennt, am leichtesten verständlich.

Ein weiteres Beispiel wäre z.b. CouchDB, dort werden Daten allerdings nicht mit Queries rausgeholt, sondern du schreibst mit "map&reduce" Funktionen, die quasi Sichten auf deine Daten beschreiben, und immer aktuelle gehalten werden - d.h. zum Zeitpunkt der Abfrage wird diese ansich nicht ausgeführt, sondern hält immer das aktuellste Ergebnis in sich.

Ich arbeite selbst (noch) intensiv mit PostgreSQL, weil es auch Sinn machen kann, Datenstrukturen strikt vorzugeben, und weil man damit Transaktionssicherheit hat, die es z.b. in MongoDB nicht gibt.

Aber für klassische Webanwendungen wie Foren, Blogs, oder moderne Web 2.0 Anwendungen, passt eine Dokument-orientierte DB einfach besser.

--
DiTech postete:
Sie haben offensichtlich 7mal mit dem Goldadler positive Erfahrung gemacht. Bei dieser Menge an Glück sollten Sie Lotto spielen.

GHF Watcher 1.4 (FF-Erweiterung) Bild Upload (Hosting Service)
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
................
Re(16): Systemprogrammier -> Webentwickler
25.10.2010, 14:49:29
Abgesehen davon, dass es möglich ist - warum hochkomplexe Queries mit allerlei
Joins schreiben, wenn man die selben Daten ganz einfach in einer Collection
speichern kann, die alle Arten von Daten halten kann?

Warum brauche ich in einer (Hausnummer) CD-sammlung eine Tabelle CDs, und eine
Tabelle Tracks, um meine Tracks zu CDs zu speichern; anstatt in einer
Collection CDs zu haben, in der jede CD als Sub-Knoten irgendwo eine Tracklist
hat?


Sorry, falls das jetzt eine dumme Frage ist, aber wie geht man dann mit folgender Aufgabe um:

Eine CD hat mehrere Tracks und ein Erscheinungsdatum.
Ein Track hat eine Position und einen Song.
Ein Song hat einen Künstler, einen Titel, ein Genre und eine Länge.

Ein Song kann von mehreren Tracks verwendet werden (zB. kann ein Lied in mehreren Compilations vorkommen).

Von einer CD gibt es unterschiedliche Typen: Compilation, Album, Maxi-CD, usw.

Ich möchte jetzt alle Compilations, die in den letzten 10 Tagen veröffentlicht wurden und mindestens 5 Lieder aus dem Genre "Pop" beinhalten.

Unter SQL wäre die Lösung ungefähr so:

SELECT      cd.id, cd.name
FROM        cd
INNER JOIN  tracks t ON ( t.cd_id = cd.id )
INNER JOIN  song s ON ( s.id = t.song_id )
INNER JOIN  genre g ON ( g.id = s.genre_id )
WHERE       g.name = 'Pop'
AND         cd.release_date > NOW() - INTERVAL 10 DAY
AND         cd.is_compilation = 1
GROUP BY    cd.id, cd.name
HAVING      COUNT(*) >= 5


25.10.2010, 14:51 Uhr - Editiert von hellbringer, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung