2010-06-08 12 views
5

Me interesa el desarrollo web y me refiero a los proyectos más grandes como Facebook o Twitter. Conozco los conceptos básicos de java, css, php y mysql. Sé que hay mucho más por ahí. Lo leí sobre eso Pero no sé cuál es el propósito y cómo ponerlo en práctica.Conozco el panorama general pero no puedo ponerlo en práctica

Cosas como: Scribe, Thrift, casandra, Unix/Linux, cáscara/Perl/Python scripting, PostgreSQL, MongoDB, almacenes de datos NoSQL no relacionales, JVM, nginx

que quiero saber por qué lo necesitan, cómo lo usan y cuál es el propósito.

Lo que necesito es un libro como antecedentes técnicos de Facebook para dummies o más. ¿Hay algún libro o sitio web que explique esto desde cero?

Gracias!

EDITAR:

Gracias por sus respuestas! Usted ha sido muy útil. Asumí que los programadores experimentados saben casi todo sobre la tecnología que se usa hoy en día. Pero a medida que leo, solo puedes saber mucho y tengo que averiguar qué tecnología usar. Tomo el aliento para comenzar a construir pequeños. Y tomaré php y mejoraré mis habilidades desde allí.

¡Gracias nuevamente!

Respuesta

0

Hay muchos frameworks que hacen muchas cosas diferentes. Has nombrado muchas cosas diferentes de muchas áreas diferentes. La mejor manera de pensar en estas cosas es agruparlas por categoría. Aquí hay un ejemplo:

Supongamos que tiene una computadora portátil y desea alojar un sitio web. Necesitará lo siguiente como mínimo:

1) Software de servidor web. Dos opciones populares son IIS de Microsoft y Servidor web Apache.

Eso es todo lo que necesitas. Puede configurar su carpeta www_root y cargar archivos en ella. Suponiendo que todo está configurado correctamente, ahora puede cargar páginas HTML en esa carpeta y acceder a ellas a través de su dirección IP. Cada página que ves en tu navegador web está en formato HTML. CSS es un lenguaje de hojas de estilo que define cómo se formateará su HTML. También puede comenzar a escribir Javascript, ya que la mayoría de los navegadores modernos admiten el lenguaje de scripting del lado del cliente.

Es probable que usted desea que el siguiente, así:

2) el software de base de datos. Dos opciones populares son SQL Server y MySQL de Microsoft 3) scripting del lado del servidor. PHP es muy popular, al igual que ASP. Necesitarás el tiempo de ejecución implementado en tu servidor. Python, Ruby, Perl, etc. caen bajo esta categoría. 4) Marco (s) de aplicación web. Esto le proporcionará bibliotecas para su idioma de elección para ayudar a desarrollar aplicaciones web y sitios web.CakePHP, Ruby on Rails y Google Web Toolkit son ejemplos de marcos de aplicaciones web.

Además, es posible que desee utilizar:

5) bibliotecas adicionales. JQuery, por ejemplo, se está convirtiendo rápidamente en una popular biblioteca de Javascript que maneja muchas tareas comunes para usted. En lugar de escribir código de efectos complejos y lo que no, utilice el código preescrito en la biblioteca de JQuery. 6) Tecnología de intercambio de datos. Si está pasando mucha información de ida y vuelta, es probable que desee encapsular esta información en un formato lógico. Idealmente, este formato describiría los datos y permitiría que sus aplicaciones los lean/procesen fácilmente siguiendo un estándar. Aquí es donde entran en juego XML y JSON.

no puedo recomendar un buen libro para aprender estas cosas, pero creo que las respuestas colectivas a su pregunta aquí debería ser más que suficiente para empezar.

En última instancia, lo que hay que hacer es determinar cuáles son las tecnologías que necesita, y luego elegir el más adecuado para el trabajo. No vaya a la construcción de una aplicación utilizando Ruby on Rails simplemente porque es lo que usa Twitter, sino más bien elegirlo, ya que proporciona una cierta ventaja a usted sobre las otras opciones.

2

Todo se trata de elegir la herramienta adecuada para el trabajo en mi opinión. Hay tanta tecnología por ahí que es imposible aprenderlo todo. Simplemente elija el subconjunto que funcione para usted.

2

El mejor lugar para comenzar es crear pequeños sitios web simples, y cuando se encuentre con problemas que necesita resolver, investigue las herramientas necesarias para resolverlos.

Si atacas todas las áreas a la vez, será abrumador y no llegarás a ninguna parte.

Para obtener una visión general de lo que hace cada una de las tecnologías, Wikipedia proporciona una buena visión general de la mayoría de las tecnologías.

Si está interesado en el contenido de la base de datos que parece que es, un buen lugar para comenzar es leer sobre la normalización.

+0

Parece que tengo que empezar a escribir más rápido :) –

1

Scribe, de segunda mano, casandra, Unix/Linux, cáscara/Perl/Python scripting, PostgreSQL, MongoDB, almacenes de datos NoSQL no relacionales, JVM, nginx

Aquellos Me buscar en Wikipedia para a obtener una visión general rápida. Facebook está escrito en PHP/MySQL. Hay algunos libros sobre el tema de la creación de sitios de redes sociales, y algunos libros han recibido críticas decentes en Amazon.com, sin embargo, no he leído ninguno de ellos.

Si yo fuera usted, comenzaría con PHP/MySQL y me sentaría a escribir una red social simple. Divida el proyecto en componentes y tareas y en Google para cada desafío que encuentre, como sesiones, estructura de la base de datos, seguridad, estructura de amigos y procesamiento de solicitudes POST y GET.

Aprenderá mucho y obtendrá una visión general. Una vez que veas el panorama general, puedes echar un vistazo a las diferentes tecnologías que están disponibles y luego decidir qué componente podrías haber desarrollado mejor con otras herramientas. Personalmente, no creo que mirar demasiado a la tecnología disponible sea bueno para alguien que todavía está en las etapas iniciales.Comience a hacer, aprenda de ello, y luego sus preguntas se vuelven mucho más específicas y muchas cosas tendrán más sentido.

5

http://highscalability.com/

Este es uno de los mejores sitios por ahí. Hay varios estudios de casos que describen qué y por qué usan muchos sitios web, y sugerencias para referencias adicionales. También me gustaría ver a los discursos de la conferencia Google Escalabilidad 2007

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. Me encanta el primer enlace! –

1

El problema que tiene es que usted está mirando productos especializados más pequeños, y no a las tecnologías más grandes y más maduros. Wikipedia realmente le dará una descripción decente de la mayoría de los proyectos medianos y grandes que existen.

Cassandra, Hadoop, Mongo y NoSQL son encantadores ... pero son herramientas especiales. SQL es una solución de propósito general que funciona para el 99% de los sitios en la red.

Unix/Linux no es una herramienta especializada; Es posible que desee intentar ir al sitio web de Ubuntu e instalar Linux, y simplemente usarlo día a día, de la misma manera que usaría Windows. Cuando necesite descubrir algo nuevo, como configurar un servidor web, hágalo en la caja de Linux y en una caja de Windows, y eventualmente aprenderá linux bastante bien.

En cuanto a las secuencias de comandos, O'Reilly hace una gran línea de libros sobre Bash, Perl y Python.

JVM es una máquina virtual Java, que es un núcleo para obtener el código Java. El sitio web de Sun tiene un gran conjunto de tutoriales sobre el aprendizaje de Java.

Podría ser mucho, mucho más fácil elegir un proyecto (o tres) que le gustaría aprender, y aprender algunos de ellos haciendo. Probablemente sugiero aprender algo de SQL antes de aprender las alternativas recién establecidas; que le permite aprender el resto del sistema, ya que SQL es bastante fácil. Una vez que tenga el resto de la cosa sólida, intente intercambiar en una solución NoSQL en ese punto.

Cuestiones relacionadas