2009-02-08 17 views
9

He hecho programación web a través de PHP, así que conozco los conceptos básicos de HTML, CSS y sesiones. No obstante, es probable que haya muchos conceptos y teorías detrás del desarrollo web que probablemente me falte ya que mi enfoque original provino de conocer un idioma, no una plataforma en sí misma.¿Cómo debería uno comenzar a aprender desarrollo de aplicaciones web?

¿Dónde se van a aprender las prácticas y teoría general, aplicable a todos los lenguajes de programación, sobre: ​​
-propias HTML y CSS, técnicas y mejores prácticas
-Diferencias en el navegador de representación
sitio -Web diseño
-Optimización para la carga
-Sesión gestión, galletas
de script del lado -Cliente, Javascript
-Seguridad (esto es un problema)
paradigmas -Desarrollo
idiomas -template

Mi pregunta surge básicamente del hecho de que hoy en día la mayoría de los sitios se parecen como una malla de espagueti de embebido y externa CSS y Javascript, AJAX, secuencias de comandos del lado del servidor, APIs y los marcos que gestionan todo bajo el sol y tiene un millón de formas diferentes de hacer lo mismo (desde seguridad hasta formularios, desde la validación hasta la generación de código), y parece que no existe una fuente autorizada para nada de esto; y cuando te apegas a cualquier marco parece que hay mucho "mágico" pasando que oculta un nivel desconocido de complejidad (el uso preferido de GWT necesita un caché del lado del cliente, Django proporciona módulos para manejar el ORM, ASP.NET tiene un lenguaje de plantilla que mapas de formas extrañas a las variables del lado del cliente, etc.)

+0

Para aclarar las cosas: menciono CSS, HTML y Javascript fuera del conjunto de "idiomas" porque son esenciales y necesarios para todo el desarrollo web, por lo que independientemente de Python, Ruby, C# o lo que sea, tendrían que ser aprendido. – Daishiman

Respuesta

9

Mi recurso número uno: Google. El resto es comentario:

Una cosa que salta a la vista en cuanto a su lista de conocimiento es que cruza dominios enteros. Hay carreras enteras construidas exclusivamente alrededor del "diseño de sitios web", por ejemplo. Los diseñadores de sitios web conocerán CSS, HTML y todos los trucos sucios para que un sitio se vea genial (o al menos bueno) en tantos navegadores como sea posible. Eso cubre los primeros tres en su lista. El resto abarca el lado del cliente, el lado del servidor y algunos otros dominios.

Así que la respuesta corta es: Así como los doctores y abogados no aprenden toda su práctica de un tomo de tres pisos, no hay un lugar único para encontrar información sobre todos los aspectos del desarrollo web.

También podría pasar una eternidad compilando todo tipo de "conocimientos" sobre estos temas sin realmente aprender cualquier cosa. No me malinterpreten: para los requisitos específicos, hay muchos recursos excelentes. Solo necesitas saber lo que quieres antes de ir a buscar. No intente absorber el conocimiento en toda la lista para cada pila y marco. Te volverás loco. Concentre su investigación de hacer cosas por hacer en unos pocos dominios centrales. Suplemento con teoría independiente de la plataforma para que el resto lo complemente.

+0

+1 En segundo lugar los pensamientos de "no hay lugar solo ...". – Wayne

2

La mayoría de estos elementos deberán investigarse a través de métodos convencionales. Como en muchas, muchas, muchas horas de búsqueda de temas en Google y enlaces desde diferentes páginas. Hay muchos libros por cada tema que mencionas. Amazon.com con mucho gusto se llevará su dinero por estos libros y la biblioteca pública estará encantada de alquilarlos para usted de forma prácticamente gratuita.

En mi experiencia, he descubierto que es más fácil aprender un nuevo concepto de programación dándome un proyecto en el que trabajar. Posiblemente se le ocurra una idea para un sitio que utilizará todos estos conceptos y comenzará a construirlo. En el proceso de trabajar en este proyecto, se le pedirá que aprenda estos temas para finalizar el proyecto. Una vez que haya terminado, si todavía está un poco oxidado, rasgue y repave. En otras palabras, comience desde cero en otro proyecto. ¿Quién sabe? Tal vez su proyecto termine siendo el próximo MySpace ... o mejor aún, StackOverflow.

De todos modos, espero que este enfoque te ayude en tu viaje. Buena suerte.

2

No soy un experto en todas las áreas que enumeró comprar. Trataré de dirigirme a aquellas con las que tengo más experiencia.

-propias HTML y CSS, técnicas y mejores prácticas de diseño
-Sitio
Hay una gran cantidad de libros sobre el tema, pero siempre he encontrado que el código de alguien leer más ha sido mucho más beneficioso. Eche un vistazo a las plantillas de CSS gratuitas que puede encontrar en Google o elija algún sitio web que le guste y mire HTML/CSS. La herramienta que recomendaría usar es la función "inspeccionar" en Firebug. Puede señalar el elemento en la página y lo lleva al elemento correspondiente en el código.

-Diferencias en el navegador de representación
scripting del lado -Cliente, Javascript
IE6 ACCCKKKK !!! Lo siento pero en mi experiencia solo tienes que probarlo en todos los navegadores y ver qué funciona y qué no funciona. En el caso de CSS this WC3 site enumera las diferentes propiedades de CSS y qué navegadores las admiten. En el caso de Javascript, el IntelliJ tenía una función de Intellisense que le indicaba en qué navegadores admitía cada función de Javascript. Si no tiene IntelliJ, también puede leer MSDN y MDC para obtener más información sobre navegadores específicos y qué funciones de Javascript son soportado. Recomendaría utilizar las bibliotecas Javascript existentes (prototype, jquery, ...) para encargarse de las cosas de JavaScript multiplataforma para usted. Recomendaría escribir su propio objeto XMLHttpRequest que sea compatible con varios navegadores. Le dará una buena idea de lo que los marcos están haciendo por usted.

-Optimización para la carga
El proyecto de alto nivel en mi universidad era una aplicación web utilizado por 3000 personas semanales. Ponemos a prueba la aplicación y estuvo bien en el conjunto de datos de prueba. Pero en la naturaleza con los datos reales de los usuarios se ejecutó lentamente en una de las solicitudes de URL. Para resumir, una consulta de base de datos se estaba ejecutando lentamente y no era obvio por qué era así. Solucionamos el problema simplemente porque teníamos el inicio de sesión en la aplicación en vivo y pudimos utilizar una herramienta de perfil de mysql en el servidor en vivo para ver exactamente dónde se estaba produciendo el problema. Resuelva el problema de optimización cuando llegue, pero haga todo lo posible para evitar o mitigar el problema mediante el registro y las pruebas de resistencia.

-Sesión de gestión, galletas
-Seguridad (esto es un problema)
Gestión de sesiones/galletas y tipo de seguridad van de la mano. Lea sobre los ataques CSRF (here y here). Los nuevos frameworks web tienen cosas en su lugar para prevenir este tipo de ataque (django, ASP.NET MVC). CSRF es fácil de quemarse (a nosotros y a los grandes como YouTube y Google). Les ha pasado a los expertos, así que no es un problema simple. Pero CSRF y XSS parecen ser los dos grandes problemas comunes. Una forma de aprender sobre ellos es escribir una aplicación que tenga una intencionalmente y explotarla y luego arreglarla.Las plantillas django cuando se procesen escaparán de las variables que previenen la mayoría de los ataques XSS.

En cuanto a los marcos que hacen magia: tienen razón, lo hacen y ese es el objetivo del marco. Y puede ser frustrante cuando quieres entender lo que está sucediendo debajo. El marco esconde complejidades de las que nunca debería preocuparse al construir una aplicación web. Piénselo de esta manera: un compilador es igual de mágico. Requiere un programa de alto nivel y lo convierte en uno de bajo nivel. Una forma de disipar la magia del compilador es aprender a ensamblar y C. Los marcos web no son diferentes. Para entender su herramienta a veces es mejor construir la herramienta. Escriba su propio marco web tal vez después de haber aprendido uno. Escribe tu propio lenguaje de plantilla. También aprenda un marco de código abierto para que pueda responder preguntas sobre la "magia" que está haciendo. Por ejemplo, me preguntaba cómo django implementó el middleware CSRF. Una rápida mirada al código y mi pregunta fue respondida. La mayoría de los marcos están bien escritos, por lo que el código suele ser legible. Simplemente no tengas miedo de mirarlo.


que la magia es Lear

0

Mucha gente todavia mencionado Google, y es obvio opción de plato. Solo agregaría: lea libros convencionales también. Lea los blogs de diseñadores web y codificadores. En mi lector de Google obtuve algunos de los que leo regularmente, incluso si no hay nada que esté buscando. Solo por las patadas y para saber con qué están luchando los demás.

1

Para CSS: Eche un vistazo al sitio de desarrolladores de yahoo para obtener información acerca del CSS orientado a objetos y el rendimiento de reflujo.

Para JS: Aprenda a escribir javascript discreto, delegación de eventos y cómo utilizar uno de los principales marcos, como p. JQuery

Para HTML: Manténgalo delgado y semántico. Prefiere las clases a los identificadores y utiliza tablas solo para datos tabulares, no para el diseño. Don use manejadores de javascript o atributos de estilo si es posible.

Para el lado del servidor: Esto depende de nuestro lenguaje y marco, sin embargo, Ruby on Rails es bastante popular y podría darte algunas buenas ideas. También echa un vistazo a Lift (para Scala).

0

Aunque hay libros que vale la pena leer. 'CSS: The Definitive Guide' de Eric Meyer hace lo que dice en la lata, y tiene algunas buenas notas sobre el soporte del navegador.

quirksmode.org tiene escritos extensos sobre problemas de navegador cruzado en CSS y JavaScript.

'Diseñando con estándares web' por Jeffrey Zeldman comenzó todo el asunto de CSS, así que he oído. Hay una primera y una segunda versión; No he leído ninguno, así que no estoy seguro de las diferencias.

Cuestiones relacionadas