2010-06-08 10 views
5

Sono interessato allo sviluppo web e con questo intendo i progetti più grandi come Facebook o Twitter. Conosco le basi di java, css, php e mysql. So che c'è molto di più là fuori. Ho letto su di esso. Ma non so quale sia lo scopo e come metterlo in atto.Conosco l'immagine grande ma non riesco a metterla a posto

Cose come: Scribe, risparmio, Casandra, Unix/Linux, shell/Perl/Python scripting, PostgreSQL, MongoDB, datastore NoSQL non relazionali, JVM, nginx

che voglio sapere perché ne hanno bisogno, come lo usano e qual è lo scopo.

Quello che mi serve è un libro come sfondo tecnico di Facebook per i manichini o giù di lì. Ci sono libri o siti web che spiegano questo da zero?

Grazie!

MODIFICA:

Grazie per le vostre risposte! Sei stato molto utile. Ero nell'ipotesi, i programmatori esperti conoscono quasi tutto ciò che riguarda la tecnologia oggi utilizzata. Ma mentre leggo, puoi solo sapere così tanto e ho bisogno di capire quale tecnologia usare. Prendo l'incoraggiamento per iniziare a costruire piccoli. E assumerà php e migliorerà le mie abilità da lì.

Grazie ancora!

risposta

0

Ci sono molti framework che fanno molte cose diverse. Hai nominato un sacco di cose diverse da molte aree diverse. Il modo migliore per pensare a queste cose è raggrupparle per categoria. Ecco un esempio:

Supponiamo di avere un laptop e di voler ospitare un sito web. È necessario quanto segue al minimo:

1) Software server Web. Due opzioni popolari sono Microsoft IIS e Apache Web Server.

Questo è tutto ciò che serve. Puoi configurare la tua cartella www_root e caricare i file in essa. Supponendo che tutto sia configurato correttamente, ora puoi caricare pagine HTML in quella cartella e accedervi tramite il tuo indirizzo IP. Ogni pagina visualizzata nel browser Web è in formato HTML. CSS è un linguaggio di fogli di stile che definisce il modo in cui il tuo HTML sarà formattato. Puoi anche iniziare a scrivere Javascript, poiché la maggior parte dei browser moderni supporta il linguaggio di scripting lato client.

È probabile che si vorrà il seguente così:

2) il software di database. Due opzioni popolari sono Microsoft SQL Server e MySQL 3) Scripting lato server. PHP è molto popolare, così come ASP. Avrai bisogno del runtime distribuito sul tuo server. Python, Ruby, Perl, ecc. Rientrano tutti in questa categoria. 4) Framework (s) di applicazioni Web. Questo ti fornirà librerie per la tua lingua preferita per aiutare a sviluppare applicazioni web e siti web.CakePHP, Ruby on Rails e Google Web Toolkit sono esempi di framework di applicazioni web.

Inoltre, si consiglia di utilizzare:

5) librerie aggiuntive. JQuery, ad esempio, sta rapidamente diventando una libreria popolare per Javascript che gestisce molte attività comuni per te. Invece di scrivere codice di effetti complessi e cosa no, basta usare il codice pre-scritto nella libreria JQuery. 6) Tecnologia di interscambio dati. Se si passano molte informazioni avanti e indietro, è probabile che si desideri incapsulare questi dati in un formato logico. Idealmente, questo formato descrive i dati e consente alle applicazioni di leggerli/elaborarli facilmente seguendo uno standard. È qui che entrano in gioco XML e JSON.

Non posso consigliarti un buon libro per imparare questa roba, ma sento che le risposte collettive alla tua domanda qui dovrebbero essere più che sufficienti per iniziare.

In definitiva, ciò che è necessario è determinare quali tecnologie sono necessarie e quindi scegliere quello giusto per il lavoro. Non andare a costruire un'applicazione utilizzando Ruby on Rails solo perché è quello che Twitter ha usato, ma piuttosto sceglierlo perché ti offre un vantaggio rispetto alle altre opzioni.

2

Si tratta di scegliere lo strumento giusto per il lavoro nei miei occhi. C'è così tanta tecnologia là fuori che è impossibile imparare tutto. Basta scegliere il sottoinsieme che funzionerà per te.

2

Il posto migliore per iniziare è con la costruzione di siti web di piccole semplici, e come si arriva problemi attraversavano che avete bisogno risolto si ricerca gli strumenti necessari per risolvere questi problemi.

Se si attaccano tutte le aree contemporaneamente, sarà schiacciante e non arriverà da nessuna parte.

Per una panoramica generale su ciascuna delle tecnologie, Wikipedia offre una buona panoramica sulla maggior parte delle tecnologie.

Se sei interessato al contenuto del database che sembra che tu sia, un buon punto di partenza è la lettura della normalizzazione.

+0

Sembra che devo iniziare a digitare più velocemente :) –

1

Scribe, risparmio, Casandra, Unix/Linux, shell/Perl/Python scripting, PostgreSQL, MongoDB, datastore NoSQL non relazionali, JVM, nginx

Coloro vorrei cercare su Wikipedia per a ottenere una rapida panoramica. Facebook è scritto in PHP/MySQL. Ci sono alcuni libri sul tema della creazione di siti di social networking, e alcuni libri hanno ottenuto recensioni decenti su Amazon.com, tuttavia, non ho letto nessuno di loro me stesso.

Se fossi in te, mi piacerebbe iniziare con PHP/MySQL e sedersi e scrivere una semplice rete sociale. Rompi il progetto in componenti e attività e Google per ogni sfida che incontri come sessioni, struttura del database, sicurezza, struttura di amici e elaborazione delle richieste POST e GET.

Imparerai molto e avrai una visione d'insieme. Una volta che vedi il quadro generale, puoi dare un'altra occhiata alle diverse tecnologie disponibili e quindi decidere quale componente potresti sviluppare meglio con altri strumenti. Personalmente non penso che guardare troppo nella tecnologia disponibile sia un bene per qualcuno che è ancora nelle fasi iniziali.Inizia a fare, impara da esso e le tue domande diventano molto più specifiche e molte cose avranno più senso.

5

http://highscalability.com/

Questo è uno dei migliori siti là fuori. Esistono diversi casi studio che descrivono cosa e perché molti siti Web utilizzano e puntatori a ulteriori riferimenti. Vorrei anche guardare ai Google scalabilità Conference 2007 colloqui

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. Adoro il primo link! –

1

Il problema che stai avendo è che stai guardando prodotti speciali più piccoli, e non a tecnologie più grandi, più maturi. Wikipedia ti fornirà una decente panoramica della maggior parte dei progetti di media e grande dimensione.

Cassandra, Hadoop, Mongo e NoSQL sono tutti belli ... ma sono strumenti speciali. SQL è una soluzione generica che funziona per il 99% dei siti sulla rete.

Unix/Linux non è uno strumento di specialità; potreste voler provare ad andare sul sito web di Ubuntu e installare Linux, e semplicemente usarlo giorno per giorno, nel modo in cui usereste Windows. Quando hai bisogno di capire qualcosa di nuovo, come configurare un server web, fallo sul box Linux e in una finestra di Windows, e alla fine imparerai molto bene con Linux.

Per quanto riguarda lo scripting, O'Reilly crea una grande linea di libri su Bash, Perl e Python.

JVM è una Java Virtual Machine, che è un nucleo fondamentale per ottenere il codice Java. Il sito Web di Sun offre una serie di tutorial sull'apprendimento di Java.

Potrebbe essere molto, molto più facile scegliere un progetto (o tre) che vorresti imparare, e imparare alcuni di questi facendo. Probabilmente suggerirei di imparare un po 'di SQL prima di apprendere le nuove alternative; che ti permette di imparare il resto del sistema, dato che SQL è piuttosto facile. Una volta che il resto della cosa è solido, prova a scambiare in una soluzione NoSQL a quel punto.