2010-06-08 18 views
5

Ich interessiere mich für Web-Entwicklung und damit meine ich die größeren Projekte wie Facebook oder Twitter. Ich kenne die Grundlagen von Java, CSS, PHP und MySQL. Ich weiß, dass da draußen viel mehr ist. Ich habe darüber gelesen. Aber ich weiß nicht, was der Zweck ist und wie man ihn einrichtet.Ich kenne das große Bild aber kann es nicht setzen

Dinge wie: Scribe, thrift, casandra, Unix/Linux, Shell/Perl/Python Scripting, PostgreSQL, MongoDB, nicht-relationale NoSQL-Datastores, JVM, nginx

Ich möchte wissen, warum sie es brauchen, wie sie es benutzen und welchen Zweck es hat.

Was ich brauche, ist ein Buch wie technischer Hintergrund von Facebook für Dummies oder so. Gibt es Bücher oder Websites, die das von Grund auf erklären?

Vielen Dank!

EDIT:

Vielen Dank für Ihre Antworten! Du warst sehr hilfreich. Ich war in der Annahme, erfahrene Programmierer wissen fast alles über die Technologie, die heute verwendet wird. Aber während ich lese, kann man nur so viel wissen und ich muss herausfinden, welche Technologie zu verwenden ist. Ich nehme die Ermutigung auf, klein zu bauen. Und werde von dort php nehmen und meine Fähigkeiten verbessern.

Danke nochmal!

Antwort

0

Es gibt viele Frameworks, die eine Menge verschiedener Dinge tun. Sie haben viele verschiedene Dinge aus vielen verschiedenen Bereichen benannt. Der beste Weg, um an diese Dinge zu denken, ist sie nach Kategorien zu gruppieren. Hier ein Beispiel:

Angenommen, Sie haben einen Laptop und möchten eine Website hosten. Sie benötigen mindestens Folgendes:

1) Webserver-Software. Zwei beliebte Optionen sind Microsoft IIS und Apache Web Server.

Das ist wirklich alles was Sie brauchen. Sie können Ihren Ordner www_root einrichten und Dateien darin laden. Vorausgesetzt, alles ist richtig konfiguriert, können Sie jetzt HTML-Seiten in diesen Ordner laden und über Ihre IP-Adresse darauf zugreifen. Jede Seite, die Sie in Ihrem Webbrowser anzeigen, ist im HTML-Format. CSS ist eine Stylesheet-Sprache, die definiert, wie Ihr HTML formatiert wird. Sie können auch mit dem Schreiben von Javascript beginnen, da die meisten modernen Browser die clientseitige Skriptsprache unterstützen.

Die Chancen sind Sie das folgende auch wollen werden:

2) Datenbank-Software. Zwei beliebte Optionen sind Microsoft SQL Server und MySQL 3) Server-Side-Scripting. PHP ist sehr beliebt, ebenso wie ASP. Sie benötigen die Laufzeitumgebung auf Ihrem Server. Python, Ruby, Perl usw. fallen alle unter diese Kategorie. 4) Web Application Framework (s). Dadurch erhalten Sie Bibliotheken für Ihre bevorzugte Sprache, mit denen Sie Webanwendungen und Websites entwickeln können.CakePHP, Ruby on Rails und das Google Web Toolkit sind Beispiele für Webanwendungs-Frameworks.

Zusätzlich können Sie nutzen wollen:

5) Weitere Bibliotheken. JQuery zum Beispiel wird schnell zu einer beliebten Bibliothek für Javascript, die eine Menge gängiger Aufgaben für Sie erledigt. Anstatt komplexen Effektcode und was nicht selbst zu schreiben, verwenden Sie einfach den vordefinierten Code in der JQuery-Bibliothek. 6) Datenaustauschtechnologie. Wenn Sie viele Informationen hin und her übertragen, werden Sie diese Daten wahrscheinlich in einem logischen Format kapseln. Idealerweise würde dieses Format die Daten beschreiben und es Ihren Anwendungen ermöglichen, sie nach einem Standard zu lesen/zu verarbeiten. Hier kommen XML und JSON ins Spiel.

Ich kann Ihnen kein gutes Buch empfehlen, um dieses Zeug zu lernen, aber ich denke, dass die kollektiven Antworten auf Ihre Frage hier mehr als genug sein sollten, um Ihnen den Einstieg zu erleichtern.

Letztlich müssen Sie bestimmen, welche Technologien Sie benötigen, und dann die richtige für den Job auswählen. Erstellen Sie keine Anwendung mit Ruby on Rails, nur weil es das ist, was Twitter verwendet, sondern wählen Sie es, weil es Ihnen einen Vorteil gegenüber den anderen Möglichkeiten bietet.

2

Es geht darum, das richtige Werkzeug für den Job in meinen Augen zu wählen. Da es so viel Technologie gibt, ist es unmöglich, alles zu lernen. Wählen Sie einfach die Teilmenge, die für Sie arbeiten wird.

2

Der beste Ort, um zu beginnen ist, indem Sie kleine einfache Websites erstellen, und während Sie über Probleme kommen, die Sie gelöst brauchen, recherchieren Sie die Tools benötigt, um diese Probleme zu lösen.

Wenn Sie alle Bereiche auf einmal angreifen, wird es überwältigend und Sie werden nirgendwo hinkommen.

Für einen allgemeinen Überblick über die einzelnen Technologien gibt Wikipedia einen guten Überblick über die meisten Technologien.

Wenn Sie Interesse an Datenbank-Inhalten haben, die wie Sie scheinen, ist ein guter Anfang, wenn Sie sich mit der Normalisierung befassen.

+0

Sieht so aus, als müsste ich schneller tippen :) –

1

Scribe, thrift, casandra, Unix/Linux, Shell/Perl/Python Scripting, PostgreSQL, MongoDB, nicht-relationale NoSQL-Datastores, JVM, nginx

Diejenigen ich auf Wikipedia suchen würden Verschaffe dir einen schnellen Überblick. Facebook ist in PHP/MySQL geschrieben. Es gibt einige Bücher zum Thema der Erstellung von Social-Networking-Sites, und einige Bücher haben anständige Rezensionen auf Amazon.com bekommen, jedoch habe ich keine von ihnen selbst gelesen.

Wenn ich Sie wäre, würde ich mit PHP/MySQL beginnen und sich hinsetzen und ein einfaches soziales Netzwerk schreiben. Unterteilen Sie das Projekt in Komponenten und Aufgaben und Google für jede auftretende Herausforderung wie Sitzungen, Datenbankstruktur, Sicherheit, Freundestruktur und Verarbeitung von POST- und GET-Anforderungen.

Sie werden viel lernen und Sie bekommen das große Bild. Sobald Sie das Gesamtbild sehen, können Sie sich einen anderen Blick auf die verschiedenen verfügbaren Technologien werfen und dann entscheiden, welche Komponente Sie mit anderen Tools besser hätten entwickeln können. Ich persönlich glaube nicht, dass ein Blick in die verfügbare Technologie gut für jemanden ist, der sich noch im Anfangsstadium befindet.Fange an, zu lernen, und dann werden deine Fragen viel spezifischer und viele Dinge werden mehr Sinn ergeben.

5

http://highscalability.com/

Dies ist eine der besten Websites. Es gibt mehrere Fallstudien, die beschreiben, was und warum viele Webseiten verwenden, und Hinweise auf weitere Referenzen. Ich würde auch einen Blick auf den Google Skalierbarkeit Conference 2007 Gespräche

http://www.google.com/search?q=Google+Scalability&hl=en&client=firefox-a&hs=YUg&rls=org.mozilla:en-US:official&prmd=v&source=univ&tbs=vid:1&tbo=u&ei=fl4OTPUkorIwueCQxQw&sa=X&oi=video_result_group&ct=title&resnum=4&ved=0CDIQqwQwAw

+0

+1. Liebe den ersten Link! –

1

Das Problem, das Sie haben sind ist Sie bei kleineren, Spezialprodukten suchen, und nicht bei größeren, ausgereiften Technologien. Wikipedia gibt Ihnen einen guten Überblick über die meisten mittelgroßen Projekte.

Cassandra, Hadoop, Mongo und NoSQL sind alle schön ... aber sie sind Spezialwerkzeuge. SQL ist eine allgemeine Lösung, die für 99% der Websites im Internet funktioniert.

Unix/Linux ist kein Spezialwerkzeug; Vielleicht möchten Sie versuchen, auf die Ubuntu-Website zu gehen und Linux zu installieren, und es einfach Tag für Tag zu verwenden, so wie Sie Windows benutzen würden. Wenn Sie etwas neues herausfinden müssen, wie einen Webserver einrichten, tun Sie es auf der Linux-Box und eine Windows-Box, und Sie werden schließlich lernen, Linux ziemlich verdammt gut.

Was das Scripting betrifft, macht O'Reilly eine großartige Reihe von Büchern über Bash, Perl und Python.

JVM ist eine Java Virtual Machine, die den Kern des Java-Codes bildet. Suns Website bietet eine große Auswahl an Tutorials zum Erlernen von Java.

Es könnte viel, viel einfacher sein, ein Projekt (oder drei) auszuwählen, das Sie lernen möchten, und einige davon lernen. Ich würde wahrscheinlich vorschlagen, etwas SQL zu lernen, bevor ich die neu etablierten Alternativen lerne; damit können Sie den Rest des Systems lernen, da SQL ziemlich einfach ist. Sobald Sie den Rest der Sache solide haben, versuchen Sie zu diesem Zeitpunkt in eine NoSQL-Lösung zu tauschen.

Verwandte Themen