[Powered by Google Translate] [Seminario] [Desarrollo web: De la idea a la Aplicación]
[Ben Kuhn] [Billy Janitsch] [Universidad de Harvard]
[Este es CS50] [CS50.TV]
[Billy] Hola, soy Billy y esto es Ben. >> [Ben] Hola.
Vamos a estar hablando de desarrollo web hoy en día.
[Webdev] [Billy Janitsch y Ben Kuhn]
Un poco acerca de nosotros primero.
Ben es una especie de tipo de fondo. Él hace que las cosas funcionen.
Y entonces voy y les hago bastante.
Estoy en gran medida involucrarse con más front-end de diseño de diseño tipo de cosas,
y Ben, por su parte, sabe lo que está haciendo por lo que trabaja en la materia de fondo.
Juntos hemos hecho un par de cosas.
Por ejemplo, el año pasado se trabajó en Gimblium que es un estudio de desarrollo de juegos en línea.
Ese fue nuestro último proyecto para la clase,
y desde entonces nos hemos hecho la clase de Harvard
que es un marco para la navegación en línea y cursos comerciales en Harvard.
>> Vamos a comenzar con esta idea para nuestro sitio web.
Vamos a hacer esto, pero para los gatos.
Antes de que realmente hacer de este sitio web,
no hacer de este sitio web, ya que no es bueno, pero vamos a utilizar como marco
y pasar por el proceso de cómo se toma esta idea
y convertirlo en un sitio web real que podemos utilizar.
Vamos a empezar por romper el sitio web de abajo.
Al igual que ha estado haciendo en el CS50,
usted quiere pensar acerca de cuáles son los componentes reales que van en este sitio web.
Básicamente convirtiéndola de una idea que es sólo una especie de un concepto abstracto
en una cosa real y tangible que usted podría hacer.
Empezamos a hacer algunas preguntas.
¿Qué es este sitio? ¿Por qué estamos haciendo esto?
¿Qué se va a utilizar para? Ese tipo de cosas.
En el caso de Facebook Cat,
que, básicamente, queremos un sitio web que permite a los gatos red social con los demás.
La idea es que se pueden publicar en las paredes de cada uno,
pueden hacer comentarios, ese tipo de cosas.
Y ahí es donde entramos en los componentes funcionales.
Ahora tenemos este tipo de marco de - contamos con los perfiles de usuario,
tenemos comentarios, y podemos publicar.
Tal vez algún día vamos a influente gustos y ese tipo de cosas.
Y que tipo de queremos priorizar estas características va in
Queremos decir como, bueno, es muy importante que todo el mundo tiene un perfil
y que todo el mundo puede escribir en las paredes de los demás.
Secundario a esos comentarios serían agradables.
Tal vez más adelante vamos a influente gustos.
Así pues, usted quiere tener una idea de lo que es fundamental para su proyecto
y lo que es una especie de rasgo más general que podría aplicarse más adelante.
Usted querer especie de tener una lista específica en mente,
pero el proyecto que usted comience a trabajar no va a ser el proyecto que termine con.
En otras palabras, las cosas van a cambiar cuando se está creando el sitio,
y quiere dejar espacio para eso.
Voy a darle la vuelta a Ben ¿quién va a hablar un poco acerca de la estructura.
>> [Ben] yo voy a estar hablando de la parte más técnica de desarrollo web.
Vamos a repasar algunos conceptos básicos en primer lugar.
Cuando estás haciendo una aplicación web,
la división principal que vas a tener que tener es
usted va a tener un poco de cosas que están pasando en el lado del cliente -
es decir, el código que estás navegador lleva desde el sitio
y el JavaScript, HTML, CSS cosas.
Eso es todo en el lado del cliente.
Usted va a tener otro tipo de código que se ejecuta en el lado del servidor
que realiza un seguimiento de todos los datos que la gente envía a usted,
decide a quién darle lo que, cosas así.
Esto es sólo un poco de terminología para que ustedes están familiarizados con lo que estamos hablando.
Más allá de esa división es bueno pensar en su aplicación web en términos de
un par de componentes distintos.
Cuando usted está haciendo desarrollo web
una de las cosas que usted siempre debe estar intentando hacer es reducir la complejidad.
Cuanto más complejo sea el código es, más posibilidades hay de hacer errores,
más difícil es cambiar más tarde.
Por lo tanto, si usted puede romper su aplicación en algunas áreas funcionales distintos
que hará - y usted puede reducir la cantidad de especie de comunicación entre el área -
que le ayudará mucho en el largo plazo en términos de reducción de errores.
>> Para ser concretos, por lo general las personas dividen una aplicación web en -
estos son una especie de palabras de moda ahora, pero siguen siendo útiles.
Es posible que haya oído hablar de los modelos, vistas y controladores.
Los modelos son los datos reales de que su aplicación se va a tratar.
Por ejemplo, en su gato Facebook, sus modelos serían -
usted tendría un modelo para los mensajes, como, y un modelo para los perfiles de usuario, cosas por el estilo.
Sus puntos de vista son la tarjeta de presentación de los datos a los usuarios.
Es posible que tenga 1 vista para mirar a un solo puesto y todos los comentarios
y una visión diferente para su pared que tiene una lista de todos los mensajes
que se dirigen a usted, y una visión diferente de su servicio de noticias - cosas como esas.
Por último, usted tiene los controladores que son, básicamente, cuando la gente te envía mensajes
y usted hace cambios a su sistema de back-end,
incrementas un montón de contadores, y lo que sea.
Esos son los controladores.
>> Voy a hablar sobre todo acerca de los modelos.
Vistas técnicamente no son tan difíciles y el problema es más con el diseño de ellos
Controladores van a ser específicos de lo que sea que usted está diseñando.
Pero hay algunas técnicas muy generales que se pueden utilizar
para hacer sus modelos más agradable y más fácil de trabajar que creo que son muy útiles.
Esto es sobre todo va a ser acerca de cómo lidiar con sus datos de aplicaciones web de una manera agradable.
Los principales problemas con los modelos
son que viven en el cliente y el servidor y tienes que averiguar
a) la forma de conseguirlos - todos los relevantes - desde el servidor al cliente,
y b) la forma de mantenerlos sincronizados.
Sus usuarios van a querer hacer algunos cambios.
Ellos van a querer hacer nuevos puestos.
Ellos van a querer que fueran las cosas y esas cosas si tienes gustos.
Esos son los principales desafíos técnicos de tratar con modelos.
La primera cosa que usted va a querer que preguntarse es
qué tipo de datos va en este modelo y qué tipo de consultas vamos a querer hacer -
es decir, ¿cómo vamos a mirar los modelos?
Para su gato Facebook ejemplo,
su mensaje va a tener un autor asociado a él,
algún texto publicación en el muro, y un receptor de la publicación en el muro.
Y entonces puede que desee para consultar que en un montón de diferentes maneras.
Usted quiere verlo por quien escribió que después,
por quien recibió el que publicar, tal vez por la fecha en que fueron publicadas.
Pero si vas a hacerlo por fecha, entonces usted tiene que agregar otro campo a tu puesto
cuando en realidad fue publicado.
Estos 2 factores - lo que los datos que desea utilizar y cómo desea para poder verla -
usted debe pensar en ellos en primer lugar, ya que dependen unos de otros,
y que va a ser más difícil añadir más adelante.
>> Hay algunas otras consideraciones.
Cuando usted está pensando en cómo hacer frente a los modelos en el servidor
lo que quiere ver es -
que, básicamente, quiere hacer que el servidor lo más simple posible.
Hacer cosas en el lado del cliente es generalmente mucho más rápido si usted puede hacerlo únicamente en el cliente
sin hacer ningún tipo de solicitud de red.
La idea es hacer la mayor cantidad de consultas como puedas en el cliente.
El único problema con eso
es que si usted solicita todos los datos en el inicio
entonces eso va a tardar mucho tiempo en cargarse.
Por lo tanto, la idea es encontrar un término medio entre tener suficientes datos en el cliente
que usted puede hacer la mayor parte de su trabajo allí, pero no sólo ir a buscar todo a la vez
para que usted obtenga los tiempos de carga muy lenta al principio.
Por ejemplo, para los datos de gato
usted probablemente querrá traer un montón de publicaciones en el muro recientes.
Usted no quiere a buscar a todos, porque eso podría volver un par de años.
Pero usted no quiere a buscarlos uno a la vez
porque eso sería introducir una gran cantidad de sobrecarga de la red.
>> A menudo es muy difícil - una vez que usted tiene una base de datos en ejecución -
que es a menudo muy difícil cambiar los datos que tienes en él -
es decir, añadir una columna de base de datos nuevo o algo -
por lo que una buena estrategia es en realidad sólo para mantener una gran cantidad de datos en una burbuja de texto -
una mancha JSON - JSON siendo JavaScript Object Notation -
La razón de que es útil es porque entonces usted puede agregar nuevas propiedades
a todas estas manchas JSON sin cambiar su base de datos.
La única desventaja de esto es que si usted tiene un montón de campos
que agregó más tarde - como escondido en esa burbuja JSON -
entonces es más difícil de consultarlos en el interior la base de datos.
Por ejemplo, si más adelante - si usted tenía su modelo post que hemos comentado anteriormente
con sólo el autor, el destinatario y el texto -
usted también podría tener una mancha JSON y luego si más adelante desea agregar un campo de fecha
usted no tiene que cambiar su base de datos.
Se podía agregar fechas a todos los campos de texto.
Y entonces sería capaz de mirar a los del lado del cliente,
pero no sería capaz de consultarlos en el lado del servidor
porque está escondido dentro de ese texto.
>> El otro tema que usted quiere pensar en
es como su cliente y el servidor se va a comunicar.
Generalmente, usted desea mantener esto tan simple como sea posible.
Usted sólo puede tener como una-me-get esta solicitud de datos,
un crear a un nuevo objeto-cosa, y una solicitud de actualización-an-old-objeto.
Y estos serían todos diferentes direcciones URL en el servidor que usted -
que el navegador sería - se puede utilizar peticiones AJAX para todos ellos
y recibir o enviar datos.
Una vez más, para nuestro gato Facebook ejemplo,
usted podría tener que URL para obtener una entrada individual,
y usted tendría una URL para crear una nueva publicación en el muro
y tal vez una URL para subir tu foto de perfil, cosas así.
Pero, de nuevo, eso es precargar la mayor parte de sus datos para que usted no tiene que mantener
hacer solicitudes de red.
Por esa razón, es posible que no quiero tener esa petición get individual para un solo puesto,
y en lugar de que usted sólo quiere 1 petición de obtención de toda la pared.
Y entonces, si usted está tratando de encontrar un equilibrio, porque -
esto también va a depender de su aplicación.
Porque si usted está esperando que la gente sólo tiene 10 o 20 publicaciones en el muro
que va a estar bien.
Pero si esperas que tendrán miles entonces esa solicitud sería demasiado largo,
y así es posible que desee agregar un parámetro get-todos-posts-desde entonces.
>> Por todo esto usted está probablemente va a querer sincronizar sus datos en JSON -
JavaScript Object Notation.
Casi todos los lenguajes se ocupa de JSON muy bien.
JQuery tiene esta bonita función getJSON que va a hacer todo el trabajo duro por usted.
Y en PHP también hay funciones de comunicación JSON muy agradables.
Entonces, eso es, probablemente, el mejor formato para el envío de sus modelos de ida y vuelta.
>> Como ejemplo de lo que hemos hablado hasta ahora,
he aquí un ejemplo de flujo para su gato aplicación de Facebook.
Comienza con el explorador que solicita la URL del sitio web base.
El servidor probablemente sería enviar a través de HTML estático y algo de JavaScript y CSS.
Por lo general es mejor no hacer ninguna representación en el servidor.
Es probable que no quiere -
lo que el servidor no está haciendo allí va por la lista de publicaciones en el muro
y generar algo de HTML para cada uno y el envío que más.
Por lo general es la mejor manera de hacer eso en el lado del cliente porque de lo contrario
cada vez que quiera volver a dibujar algo, usted tiene que hacer una solicitud del servidor.
Y eso muy rápidamente le da un montón de gastos.
Por lo general es mejor sólo para la nave ha hecho bajar estática HTML
y luego JavaScript y CSS que harán la prestación por parte del cliente.
Tan pronto como eso entra,
entonces usted puede tener - en JavaScript - usted puede hacer las solicitudes para los datos pared
y cosas por el estilo, y después de que el servidor está básicamente haciendo consultas de bases de datos
y la comprobación de permisos.
Lo único importante es que no se puede enviar a través de otras publicaciones en el muro usuarios
que usted no está autorizado a ver.
Básicamente puede ser una capa muy delgada de acceso a su base de datos,
y luego, de la que muestran los datos - todos los puntos de vista y esas cosas -
los que pueden suceder en tu navegador, y luego cuando se quiere hacer un post o algo
que acaba de enviar una nueva solicitud.
>> También hay algunas cosas de lujo que se puede hacer en la parte superior de esta.
En cuanto a la información técnica más específica,
desarrollo en la llanura JavaScript puede ser un poco doloroso,
así que hay algunas bibliotecas y herramientas que le ayudarán mucho con eso.
Creo que todos hemos oído probablemente sobre jQuery que hace hacer el procesamiento de HTML
y la manipulación mucho más fácil - tienen un montón de funciones de lujo para la decoloración de entrada y salida,
y hacer animaciones zippy.
También hay esta biblioteca llamada Underscore.js.
Tiene una gran cantidad de funciones de utilidad útiles, cosas que se puede esperar a tener JavaScript
que realmente doesnt - cosas como barajar una matriz,
la eliminación de duplicados de una lista, o aplanar una lista de listas.
Esto es sólo un pequeño ejemplo de código.
Subrayado tiene una tonelada de estos simpáticos funciones que usted desea que tendría todo el tiempo.
>> Y luego está el 1 biblioteca más que me gustaría pasar un poco de tiempo en
llamado Backbone.js porque Backbone realmente ayuda a lidiar con modelos en el lado del cliente
y una gran parte de la confusión que puede causar.
Backbone le da este concepto de modelos y colecciones
en JavaScript que son, básicamente, exactamente igual que los objetos JavaScript
en matrices de JavaScript, pero tienen eventos al cambiar sus propiedades.
Al igual que en JavaScript, puede hacer que un evento cuando se hace clic en un botón o algo
estos modelos de Backbone y colecciones Backbone transmitirán cosas como
que cuando cambian.
Eso significa que usted puede escribir algo como este fragmento de código aquí -
esto dice, siempre que se añada nada a la matriz mensajes redibujar toda la pared.
Y esto decía siempre que el número de un puesto de talla cambia,
usted notifique al usuario de que alguien le gusta su puesto.
O cada vez que cualquier propiedad de un puesto cambia redibujar el puesto.
Cosas como que le ahorrará toneladas de complejidad porque de lo contrario
si usted no tiene algún tipo de marco como este, entonces cada vez que en el código que cambie
nada acerca de un post, que tendría que recordarse a sí mismo que llamar a todas las funciones de render
y cosas por el estilo, y si quería añadir algo nuevo que sucedió
cada vez que se modificó un puesto que tendría que ir a través de cada lugar en su
código que ha modificado un post y agregar esa cosa nueva.
Un marco como éste eliminará un montón de que la comunicación entre capas
que hace el código complejo y difícil de mantener.
>> Hay un poco de vistas también.
Voy a dejar la mayor parte de esto a Billy porque técnicamente no son muy difíciles.
Usar jQuery para sus puntos de vista. Es prácticamente como una necesidad en este punto.
Simplemente hace que todo sea mucho más fácil.
Hay una gran cantidad de bibliotecas.
Si ha complicado los elementos de interfaz de usuario,
si quieres algo de auto-completar o como uno de esos elegantes múltiples selectores -
si quieres algo así, probablemente debería simplemente buscar alrededor
y se puede encontrar una buena biblioteca que va a hacer lo que quieres.
Billy le explicará más sobre las partes realmente difíciles de visitas.
Además, como nota al margen, Backbone tiene algunas funciones para hacer visitas comunican
muy bien con los modelos - mirar la documentación de todas estas bibliotecas, en realidad.
Basta con mirar a los docs. Están muy bien escrito y fácil de seguir.
En general, se puede prácticamente sólo Google si tiene problemas.
Hay una gran cantidad de personas que los utilizan.
Creo que esto es como una nota al final.
>> También hay algunas cosas más avanzadas que usted puede hacer
si usted está buscando para hacer su aplicación web extra impresionante.
Usted puede hacer - la nueva especificación HTML5 tiene un montón de cosas de lujo que usted puede hacer.
Almacenamiento local - que es que puede almacenar datos en el navegador -
en lugar de tener que volver atrás y leer el servidor para todo,
usted puede mantener un poco de ella en el cliente y que incluso permite a la gente -
en algunos casos incluso puede permitir la utilización de la página Web sin conexión.
Hay una cosa que se llama websockets que son un tipo diferente de la comunicación en red
donde en lugar de simplemente usted hace un pedido, se obtiene la respuesta y ya está,
sigues abrir una conexión con el servidor y por lo que puede hacer cosas como
actualizaciones en tiempo real.
Así que, si estás tratando de hacer una aplicación de chat, puede utilizar websockets
para comunicar un lado a otro de modo que usted no tendría que seguir pidiendo,
"Oh, servidor, ¿alguien me envía un chat?" cada 10 segundos o algo así.
También hay una característica interesante HTML5 donde se puede hacer que parezca que
la dirección URL de la página está cambiando sin tener que recargar realmente.
Puede usar los botones Atrás y adelante sin hacer un montón de peticiones de red.
Cosas como esa es muy útil en términos de lo que es rápido pero también funciona como una aplicación web debería.
>> También hay una cosa llamada CoffeeScript.
CoffeeScript es un lenguaje diferente, en realidad, que compila a JavaScript.
Se podría escribir todo el código en CoffeeScript, y luego ejecutar este compilador,
y escupe un archivo JavaScript que se puede incluir en tu página web.
La razón de que CoffeeScript es bueno es porque se deshace de una gran parte del
casos extraños que Javascript donde iguala iguales,
y es igual a los iguales hacen cosas diferentes, o les gusta -
tiene mejor sintaxis para hacer frente a las matrices y funciones.
Este es un pequeño fragmento de CoffeeScript que genera una lista de todas las plazas
de 10 ^ 2 a 1 ^ 2 en orden inverso.
Como puede ver, CoffeeScript menudo le permite expresar en 1 línea
lo que llevaría 5 líneas de JavaScript.
Se puede hacer las cosas mucho más fácil.
Es un poco de la nueva sintaxis de aprender al principio,
pero sin duda te hará más productivo en el largo plazo.
>> También puede usar otros idiomas en el servidor y PHP -
lenguajes como Ruby, Python, o incluso hay un proyecto llamado Node.js
que le permite utilizar JavaScript en el servidor.
Personalmente, yo realmente, realmente odio PHP.
Es sólo que no disfruto de trabajar con él.
Si usted también piensa que se trata de un cluge horrible de una lengua,
entonces usted puede utilizar uno de estos en su lugar.
En general, si usted quiere hacer algo y no sabe muy bien cómo lo haría,
simplemente buscar en Internet.
Hay toneladas y toneladas de recursos, especialmente en -
StackOverflow es un grande.
Es este sitio web donde los programadores se hacen preguntas.
Es posible que se han topado con él si estás teniendo problemas en los boletines de problemas CS50.
Y hay un montón de bibliotecas para hacer casi cualquier cosa que quieras.
Si usted quiere hacer algo y no sabes cómo hacerlo,
no asuma que es imposible.
Basta con mirar alrededor y usted puede encontrar algunos buenos recursos.
>> Como general terminar,
los principales robos de balón son mantener las cosas simples.
Cuanto más complejo sea el código está al principio
y cuanto más se trata de hacer cosas de lujo,
cuanto más tiempo se tardará en conseguir algo realmente funcional
y más difícil será cambiar más tarde.
Por lo tanto, hacer las cosas de la manera tonta, fácil primero.
Para ir junto con eso,
no tengas miedo de tirar código antiguo o limpiarlo mucho.
En general, una vez que realmente tiene algo de trabajo,
es mucho más fácil pensar que cuando usted todavía está en las etapas iniciales
de ¿cómo puedo poner todo esto junto.
Lo mejor es hacer que el más tonto posible diseño que funciona
y luego mejorarlo iterativa de tratar de hacer todo bien la primera vez.
En cuanto a la división de cliente-servidor, tratar de mantener su servidor muy simple -
sólo una base de datos y un poco de autenticación y no hacen ningún trabajo duro allí.
¿Todos tus cosas complicadas en el cliente en el navegador
en JavaScript como todo lo que pueda.
Mire a su alrededor para las bibliotecas que hacen su vida mejor.
Siempre es mejor usar el código que alguien más escribió
si usted - y no lo escribas tú mismo.
Hay un montón de cosas en Internet. Google es tu mejor amigo.
Google es el mejor amigo del programador.
Sí, definitivamente, no tengas miedo de mirar a su alrededor para la materia.
Está bien. Y a Billy.
>> [Billy] En realidad, antes de empezar con un poco de materia de diseño,
¿Alguien tiene alguna pregunta para Ben sobre cualquier cosa que él habló de?
De acuerdo, bien.
Una vez más, vamos a saber si algo no está claro
o si desea que vayamos por algo un poco más.
Voy a retroceder un poco y hablar de las partes más fundamentales del diseño.
Ben mencionó el modelo llamado - lo siento, el sistema Model View Controller
que es una especie de la parte técnica, así que voy a ver puntos de vista en concreto,
y yo voy a comenzar con cómo le gustaría diseñar una vista que se ve bien.
Aquí hay una especie de plantilla realmente básico para nuestro gato Facebook.
Creo que hay algunos aspectos fundamentales en el diseño de interfaz de usuario moderna
que vale la pena recoger.
Usted puede notar que hay un montón de espacio en blanco por toda la página,
mucho espacio para las cosas.
No sienta que tiene que aplastar cosas en una página.
¿Quieres dejar un montón de espacio abierto, y si vas a casi cualquier sitio web moderno
verás que hay blanco por todas partes.
No hay blanco en lugares que no se pueden esperar.
Usted tiene esta paleta de colores, y es sabio al principio
elegir una paleta de colores que va a trabajar y desarrollarse.
También - Ayuda a elegir un tipo de letra, y de esa manera te tipo de trabajo con
estos fundamentos concretos de diseño.
Usted tiene su tipo, tiene sus colores, y entonces usted puede tipo de
poner todo lo demás en lo que necesitan.
Así que, como he dicho, con su esquema de color que desea utilizar los colores más atrevidos de su esquema de color
moderación. Encabezados son agradables. Los botones son bueno tener realmente grandes, colores llamativos.
Pero en general, si usted tiene un sitio web que tiene colores por todas partes,
todo lo que salta a la vista, que sólo se ve desordenado, y no es bueno.
Desea utilizar generalmente de colores claros.
Intente de nuevo, elegir un esquema de color muy coherente.
Usted puede tener estas pequeñas pinceladas de mucho color -
que puede parecer bastante agradable, pero desea utilizarlos muy escasamente.
>> Como ya he dicho, quiere ser mínimo. Menos es casi siempre más.
Si usted puede mostrar algo o no mostrar algo,
y eres un poco seguro de si debería estar ahí por defecto -
probablemente estás mejor dejarlo fuera. Siempre se puede añadir más tarde.
Sí, mantener las cosas simples.
Pero lo más importante, usted desea considerar múltiples diseños.
No pienses que cuando usted hace un sitio, lo tienes en tu cabeza que te vas a
hacer que el sitio de una manera determinada, y que va a ser exactamente así.
Va a tener el encabezado azul en la parte superior y la barra lateral azul
y entonces la cosa sub-encabezado amarillo.
¿Quieres hacer varias plantillas.
Usted puede - si eres bueno con Photo Shop, puede abrir eso y tipo de
diseñar un sitio web que quieras que se vea.
Si no, puede simplemente usar la pluma y el papel,
pero rayar múltiples diseños.
¿Quieres tener básicamente un sistema para arriba donde usted tiene un montón de diferentes diseños,
y si uno termina trabajando, entonces eso es genial.
Si uno acaba fallando, entonces uno siempre tiene otro a quien recurrir.
En general, no se siente como que sea constreñido
a cualquier diseño que en un inicio se decida sobre.
Los diseños son muy variables, y parte de la importancia del modelo
vista controlador del sistema es que se puede cambiar y salir de diferentes puntos de vista que desee.
Puede influir en los datos de una manera, y luego decidir, oh, realmente, que no funciona tan bien.
Creo que es algo demasiado complicado o hay una parte aquí que no está realmente trabajando,
así que sólo voy a abandonar totalmente este punto de vista y de intercambio de una forma totalmente nueva.
Todavía podemos usar los viejos modelos y los viejos controladores.
Podemos hacer todo lo que en el servidor y el cliente como lo haríamos antes.
Pero la ola actual de los datos mientras se muestra va a ser un poco diferente.
>> En cuanto a la aplicación real el diseño que desee,
una vez que haya algunos diseños esbozados en papel o en la tienda de fotos o lo que sea,
hay una serie de herramientas que están disponibles para usted.
El primero usted está muy familiarizado con la que es su HTML, PHP, o lo que sea
idioma que está usando sólo para codificar las páginas estáticas en su sitio web.
Usted ha trabajado mucho con HTML que tipo de le da las siguientes etiquetas
que puede poner las cosas en, y, básicamente, es una forma de organizar el contenido.
Por ejemplo, usted tiene la cabecera hasta allí, así que vas a tener una etiqueta de cabecera,
y que va a tener un poco de texto dentro de la misma que es, probablemente, va a ser en otra etiqueta.
Entonces usted tiene una barra lateral tal vez con algunos enlaces diferentes,
y los que van a estar todos en separar las etiquetas.
Así que, básicamente HTML en su corazón es una manera de dividir la página cómo
finalmente desea formatearlo.
Así que de nuevo, has visto eso antes.
Eres bastante cómodo con el trabajo con él ahora
considerando que se ha hecho el último conjunto de procesadores con suerte,
por lo que debería haber ningún problema.
>> Entonces usted tiene CSS que básicamente se encarga de todos los aspectos estáticos de diseño.
Sería manejar todos los colores, todo el posicionamiento de los diferentes elementos,
donde van con respecto a la otra,
lo grandes que son, los diferentes tipos de posicionamientos que usted tendría -
en otras palabras, puede haber cosas fija de manera que cuando se desplaza hacia abajo se quedan,
o puede hacer que las cosas en relación con otros elementos.
Todo ese tipo de cosas es en el CSS.
Además, usted puede hacer decoraciones diferentes, puede hacer que los colores del texto,
efectos de texto, todo ese tipo de cosas.
Ben dio un muy buen seminario sobre este pasado fin de semana,
y así que sin duda comprobar que fuera si va a estar haciendo algunas cosas de lujo con CSS.
CSS3 es en realidad la última versión de CSS, y se puede hacer todo tipo de cosas realmente agradables.
Se puede hacer gradientes, usted puede tener agradables, esquinas redondeadas, se puede hacer todo tipo de cosas
para hacer su sitio web un aspecto más moderno y elegante.
>> La siguiente herramienta es JavaScript y jQuery que Ben habló un poco acerca de,
pero Voy a buscar un poco más en.
JavaScript, ya que ha trabajado con él un poco, o por lo menos visto en clase,
es una especie de forma de hacer las cosas de forma dinámica en HTML.
HTML, como ustedes saben, es estático, por lo que una vez que tenga HTML no puede modificarlo.
Pero JavaScript en cierto modo, es una manera de ser capaz de modificar el HTML.
Así que usted puede hacer eso, y eso es genial, pero JavaScript es realmente un dolor de trabajar.
Es tan largo y obtuso y para hacer las cosas más simples
requiere una gran cantidad de líneas de JavaScript.
Así, jQuery es básicamente una librería JavaScript que simplifica todo eso.
Se dice, está bien, si usted quiere tener una caja cuadrada venir de la izquierda
y se desvanecen en la página de modo que está en el medio, en JavaScript que tomaría -
No sé, un centenar de líneas para hacer, y sería un dolor,
y se sale de él odia todo lo relacionado con la programación web.
JQuery que, básicamente, tiene el elemento-punto-fade-in, o algo así.
Funciones tanto, muy, muy sencillos que le permitirá hacer todo tipo de animaciones fresco
y ese tipo de cosas.
La otra cosa que estos 2 son muy buenos para sólo está haciendo cosas dinámicas
con el sitio web.
Así, en lugar de tener su página HTML - que muestra algunos datos, pero que en realidad no
hacer nada - JavaScript y jQuery le permitirá tener botones que usted puede hacer clic en,
y usted puede arrastrar elementos y Reordenar y ordenarlos, y tienen nuevos elementos
añadido o eliminado. Usted puede añadir-delete, ese tipo de cosas.
Así, jQuery hace un montón de cosas interesantes.
Y Vipul está realmente dando un seminario en él hoy, creo, a las 5 en punto,
así que si usted puede quedarse por tanto tiempo, que lo haría - 5 o 4?
Cuatro. Lo siento. De hecho, es justo después de esto, por lo que recomiendo
pegarse alrededor por si puedes.
JQuery es super, super útil, y usted será capaz de hacer un montón de cosas realmente agradables con ella
para casi cualquier proyecto de desarrollo web.
>> Ahora voy a entrar en una especie de distinción.
He estado hablando básicamente sobre la interfaz de usuario.
La interfaz de usuario es sólo el diseño del sitio.
Pero hay una especie de otro concepto que es la experiencia del usuario.
Los dos son muy diferentes.
La interfaz es sin duda parte de la experiencia.
En otras palabras, cuando usted va a un sitio, nos fijamos en la interfaz.
Eso es parte de la forma de experimentar el sitio.
Pero la experiencia de usuario es más que eso.
La experiencia del usuario es acerca de lo que la impresión de que el usuario recibe de su sitio es.
Así que, obviamente, la interfaz es una parte de eso.
Y es definitivamente una parte necesaria, pero no es suficiente.
En otras palabras, si tiene una interfaz agradable, y es bonito y colorido y todo eso,
eso es genial, pero si el usuario va a su sitio, se ve un diseño bonito y está confundido por
todo, no tiene idea de cómo hacer algo, entonces, evidentemente, usted ha hecho una realidad
pobres sitio web.
En cierto modo es donde entra en juego la experiencia del usuario
Voy a hablar un poco sobre el diseño UX - UX es la abreviatura de la experiencia del usuario -
y una especie de cómo usted puede asegurarse de que usted tiene una buena experiencia de usuario.
El primer punto es que usted puede diseñar un sitio web donde el usuario puede hacer cualquier cosa que
que el usuario posiblemente quiere.
Pero si el usuario no puede encontrar la manera de hacer las cosas -
en otras palabras, si el usuario no tiene una buena idea cuando van a su sitio de,
"Oh, si quiero actualizar mi perfil, y luego hacer clic en este botón, o si quiero escribir en el
el muro de alguien, entonces yo voy a su muro y haga clic en una cajita ".
Si el usuario no sabe eso, entonces usted efectivamente tiene en realidad no
implementado esa funcionalidad correctamente.
Una parte de la implementación de una funcionalidad es que los usuarios son realmente capaces de utilizarlo.
Y puede ser frustrante - usted podría hacer un sitio, y se puede hacer todo tipo de
cosas maravillosas, pero entonces tendrás gente prueba y dicen: "No puedo hacer esto.
Por qué no puede hacer esto? "Y le va a decir a ellos,
"Bueno, puede. Sólo tienes que entrar en el menú desplegable séptimo en esta oscura
página que sólo se encuentra en un enlace en la esquina inferior derecha "o algo así.
Obviamente, usted no quiere eso.
Usted quiere que sea claro a sus usuarios lo que se supone que deben hacer,
y que debe ser simple e intuitivo para ellos.
>> Otra cosa que usted quiere tratar de hacer es, si alguien va a ir a su sitio
y 9 de cada 10 veces hacen la acción A, y 1 de cada 10 veces hacen la acción B,
es probable que desee enfocar su experiencia en la acción A.
En otras palabras, usted quiere que sea muy, muy claro cómo hacerlo A.
Una debe ser de primera y de centro - ir al sitio, verlo, oh, está justo allí.
Considerando que el B, obviamente, quiere que quede claro, pero usted puede dejar un poco más
en el fondo.
David da un buen ejemplo de esto en la conferencia,
que es el sistema de Boston T.
Cuando vas a la Boston T y usted quiere comprar un billete,
usted tiene que entrar en 5 menús antes de que realmente puede comprar un billete
por un valor de $ 2, $ 2.50, que es la cantidad que se necesita para viajar en el metro
en una dirección.
Eso es un problema porque la mayoría de la gente que está en el metro
Probablemente sólo quiere ir a un lugar, comprar su billete, obtener en forma inmediata.
No tiene sentido que tienen que pasar por un montón de diferentes menús
para llegar allí.
Una mejor experiencia del usuario sería un botón de acceso rápido en la primera página
que simplemente dice, "comprar un billete de ida", y eso pondría en toda la norma
valores por defecto, y luego, si alguien quiere comprar un billete diferente que,
todavía, por supuesto, tienen la opción, pero que ha optimizado para
el caso de uso común que es realmente importante.
Puedes ver ejemplos de esto en Facebook, ¿no?
Si vas a Facebook y desea publicar un estado,
que está justo en la parte superior que es lo que a menudo quiere hacer.
Tan pronto como entras en la página, puede hacer las cosas más comunes que
que quieres hacer.
Si usted quiere hacer las cosas un poco más complicadas como,
digo que quiero ir a la pared de mi amigo y poner una foto en él -
que voy a querer hacer a menudo, pero no tan a menudo como la publicación de actualizaciones de estado -
por lo que en ese caso, escribo su nombre en el cuadro en la parte superior, haga clic en su perfil,
y luego, todavía, está justo en la parte superior hay una vez que me he metido a su perfil.
Una vez más, he optimizado en prioridad para los casos de uso común más.
>> Otra cosa importante es que a menudo la gente especie de tratar de conseguir alrededor de este
diciendo, está bien, así que he hecho el sitio y la gente les resulta confuso,
y eso es un problema, ¿verdad?
Obviamente, yo no quiero que la gente se confunden por el contenido de mi sitio.
Pero la forma de resolver ese no es tener algo pop-up diciendo:
bueno, yo te voy a enseñar cómo utilizar este sitio.
Paso 1 - haga clic en este botón. Paso 2 - haga clic aquí.
Claro, eso es una manera alrededor de ella - es una manera que usted puede decirle a la gente qué hacer, pero es
Realmente no es la manera óptima.
Si voy a un sitio web y de repente me bombardean con este tutorial que me está diciendo
qué hacer y dónde ir y todo eso, eso no es divertido para mí.
No es una buena experiencia para mí.
Es una especie de dolor. Quiero comenzar simplemente haciendo cosas.
La gente va a cerrar fuera de su cuadro de diálogo,
o salir del tutorial, no sabe qué hacer y, a continuación, se quejan porque
usted no los ha dicho qué hacer.
La manera de resolver esto no es dar ningún tipo de tutorial o direcciones -
nada de eso.
Por mucho que se puede evitar, que realmente quiere mostrar al usuario qué hacer
sólo por la naturaleza de cómo el sitio web se presenta.
En otras palabras, si voy a Facebook sin necesidad de acceder,
lo primero que veo en la página principal -
es una pequeña caja de conexión. Así, duh. Tengo que entrar Está justo allí.
Considerando que, si yo fui a Facebook y que tenía que hacer clic en un vínculo poco en la parte inferior
que decía 'conectarse' y el resto de la página era sólo una especie de cuadro o algo,
Realmente no lo sé qué hacer, ¿verdad? Yo estaría confundido.
Así, podría decirme que ir ahí abajo y haga clic en el botón para iniciar la sesión,
o el botón Iniciar sesión podría ser la derecha en la parte superior donde voy a verlo.
¿Quieres estar siempre mostrando al usuario qué hacer,
y que debería ser inherente a la propia página.
>> Cuando usted está pensando en diseños y burlándose hasta diferentes formas de
expresando su sitio, usted realmente quiere pensar en lo que los usuarios van a
se hace y cómo se puede mostrar lo que tienen que hacer.
Una última cosa es la prueba es muy, muy importante.
Es genial tener a alguien - pida a un amigo, conseguir a alguien que no sabe siquiera -
que nunca ha visto el sitio antes de utilizar el sitio.
Debido a que usted ha estado trabajando en el sitio durante horas, usted ha estado mirando en ello,
y usted sabe exactamente qué hacer así que obviamente va a estar poniendo a prueba la
cosas que has estado trabajando y que sabe trabajar.
Pero si alguien viene y utiliza el sitio que nunca ha usado antes,
eso es una experiencia única, ya tienes a alguien que no tiene conocimiento previo
del lugar de entrar en ella, por lo que vamos a tener, de hecho ni idea de qué hacer
o qué tipo de casos de uso están presentes para ellos.
Eso es genial. Eso es único, ya que son esencialmente una persona con un espacio en blanco para una mente.
Ellos le pueden decir si algo es confuso o poco claro.
Ellos le pueden dar una idea de lo que precisamente la experiencia del usuario de su sitio es.
Puede ser muy difícil decir que a ti mismo, por lo que definitivamente les animo
como usted está desarrollando sus proyectos - si estás haciendo proyectos basados ​​en la web -
para que la gente de usar el sitio tan pronto como usted tiene algún tipo de demostración funcional.
>> Ahora voy a hablar un poco acerca de cómo administrar un proyecto de desarrollo web.
Hemos revisado cómo se puede hacer la parte de fondo técnico,
cómo se puede diseñar un sitio muy bueno,
y eso es genial si estás trabajando por ti mismo, pero -
incluso si está trabajando por su cuenta y especialmente si usted está trabajando en un equipo,
gestión de proyectos se convierte en un gran problema.
Usted ha oído hablar de una especie de gestión de proyectos en diferentes formas desde
la escuela primaria cuando te dijeron trabajo en grupo.
Usted tiene que cooperar, comunicar, todo eso.
Todo eso todavía se aplica aquí, pero hay algunas circunstancias únicas con
ciencias de la computación que se desea tener en cuenta, y quiere asegurarse de que usted maneja bien.
Voy a hablar primero un poco sobre el equipo que usted va a estar adentro
Es muy importante elegir el tamaño adecuado de un equipo que está trabajando en,
y en su proyecto final creo que tienes la opción de elegir
entre 1 y 4 personas, si no me equivoco.
Usted quiere asegurarse de que usted no está sólo eligiendo el número de personas
que desea trabajar con ellos porque son tus amigos.
Usted quiere elegir a un equipo que es un buen tamaño y que hacer el trabajo.
Hay un descuento comercial en tener más personas en comparación con menos gente.
Si usted tiene más gente, obviamente, más trabajo se puede hacer
porque usted tiene un montón de gente, un montón de código, un montón de ideas,
y eso es genial.
Pero también requiere de mucha más gestión y mucha más comunicación.
En otras palabras, si usted tiene 4 personas que trabajan en el mismo proyecto
y todos ellos están editando el mismo código, más o menos que todo tipo de necesidad que debe saber
lo que está pasando por lo que usted necesita -
si se agrega una función nueva que tipo de tiene que decirle a la gente - estoy añadiendo esto,
Voy a cambiar esto de esta manera - especialmente si te metes en las cosas realmente profundas
al igual que los modelos y los controladores que se les va a influir en cómo funciona el sitio.
Todo el equipo tiene que ser consciente de ello,
por lo que necesita para asegurarse de que usted no está eligiendo demasiado grande un equipo que va a ser difícil
para hacer que la comunicación.
Usted también no desea elegir un pequeño equipo suficiente como para que usted no va a
ser capaz de comunicarse porque es sólo usted.
>> Otra cosa a tener en cuenta es el equilibrio de donde las habilidades de la gente son.
Es muy bueno si todos ustedes son muy buenos programadores.
Pero si usted es toda la gente de back-end, entonces su sitio no va a parecer muy bueno
porque usted tiene esta gran base de datos, y lo hace consultas de búsqueda súper rápida -
que es grande - pero cuando usted va a la misma, es como un sitio de 1990 con rojo y azul
en todas partes, y eso no es bueno tampoco.
Tenga en cuenta que Ben y yo trabajo en equipo es muy agradable porque yo soy una especie de más
en la parte delantera, los dos nos relacionamos en la gama media, y Ben es realmente bueno con cosas de fondo,
por lo que funciona muy bien, ya que podemos diseñar cualquier sitio y, básicamente, los agujeros
en ese sitio que necesita ser llenado puede ser llenado por ninguno de los dos, o posiblemente ambos.
Usted quiere asegurarse de que no hay agujeros en su equipo.
Está bien si hay un poco de solapamiento.
En otras palabras, si usted tiene 2 personas que son buenos con back-end,
eso puede ser bueno también porque pueden ayudar unos a otros con problemas
que están teniendo.
Puede ser un problema si usted tiene solamente 1 persona que es responsable de una determinada cosa
y se encuentran con un problema, por lo que quieren tener un poco de solapamiento
pero lo más importante quiere asegurarse de que todos los posibles agujeros están llenos.
>> La última cosa - y esto debería ser obvio, pero a menudo no lo es.
¿De verdad quieres estar divirtiéndose.
El punto de este proyecto final en CS50 y, a menudo el punto de desarrollo web en general,
No es simplemente hacer un trabajo porque necesita hacerlo.
¿De verdad quieres estar divirtiéndose, y quiere estar haciendo algo
que motiva a trabajar en él.
Si lo que estás haciendo es un dolor para sentarse y trabajar,
entonces usted no está eligiendo el proyecto adecuado.
Usted querrá elegir algo que te parece interesante,
De verdad quieres ver el resultado, que está emocionado cuando llegue una nueva idea acerca
algo que podría hacer - así que hay todo tipo de proyectos hay que estoy seguro
usted puede encontrar - todo el mundo tiene algo que realmente intriga ellos
si están haciendo un proyecto basado en la web.
Lo diré una vez más en estos momentos.
Si el proyecto parece como un dolor y no quiere trabajar en él,
elegir otro proyecto. Elija algo que realmente te inspira.
>> Ben menciona este concepto de iteración un poco, y yo quiero ir un poco.
Es muy importante trabajar en rachas donde obtiene algo funcional.
Puede ser grande si usted tiene este plan para un sitio web que va a hacer A, B, y C,
y con el tiempo que va a llegar.
Pero usted está atascado en esta fase en la que se está trabajando en él y trabajar en él,
pero nada es conseguir que se hagan. Usted no tiene nada que ver y una cosa tangible, funcional.
Lo que realmente quiero hacer todo lo que parece una especie de dolor a veces para
trabajar en algo y luego una especie de colmo por lo que es, al menos, en un establo, correr
versión, incluso si no tiene todas las características que desea.
Y tal vez hay algunas características que usted realmente desee agregar, pero que simplemente no puede
porque usted quiere conseguir este lugar a un punto de vista funcional.
Y por lo que desea especie de tener a todo el proceso de desarrollo parece a eso.
¿Quieres empezar en alguna parte funcional - o esencialmente comenzar con nada -
pero quiere llegar a algún lugar muy básico y funcional.
Y, de nuevo, hacer una especie de salto y llegar a alguna parte funcional de nuevo.
Vas a construir lentamente, y que podría ir un poco más lento de lo que sería de otra manera,
pero en el largo plazo si usted está constantemente atrapado en esta fase terreno intermedio en el que
en realidad no tiene nada de trabajo, puede ser realmente una gran frustración
para trabajar en su proyecto, porque siempre estás tan cerca de conseguir que funcione,
y es en realidad nunca trabajo.
¿Quieres trabajar en estos chorros funcionales,
y usted también quiere hacer una reflexión después de cada uno.
En otras palabras, una vez que estás en un punto donde el sitio está trabajando -
que no tiene todo lo que quiera, pero sí algunas cosas -
que quiere pensar, está bien, es este sitio el cumplimiento de la meta que me propuse hacer?
En otras palabras, si el sitio va a hacer X, es lo que he trabajo en la dirección de X?
¿Son todas las funcionalidades que quería allí?
Y por otra parte, es que responde a la finalidad general que yo quiero?
Si usted está encontrando que su sitio está empezando a virar en una dirección diferente
o tal vez sólo un poco de las cosas no están funcionando, puede ser el momento de cambiar de marcha un poco.
En otras palabras, vale la pena considerar - vale la pena tirar ideas si es necesario
y teniendo en cuenta que estoy realmente trabajando hacia lo que yo quiero ser.
>> Yo creo que ese es mi siguiente punto. No tenga miedo de abandonar las ideas.
El hecho de que usted pasó un montón de horas de trabajo en una función
y, finalmente, tengo trabajo, pero en realidad no lo está pasando tan bien -
como que no es tan útil o los usuarios están teniendo problemas para usarlo - ese tipo de cosas -
no tenga miedo de tirar a la basura.
Es una mierda que usted ha pasado mucho tiempo trabajando en ello,
pero en última instancia no quieres un sitio que es una especie de elaborada por estas piezas que
tipo de trabajo, pero no están tan bien servido.
Además, no tenga miedo de abrazar nuevas ideas.
Si alguien viene y dice, hey, ese sitio se ve muy cool pero
¿no sería estupendo si incluso también hizo esto?
El hecho de que eso es algo que no tenía la intención y es algo que no está en su
especificaciones, algo que usted no ha propuesto hacer,
no tengas miedo de tomarlo y luego trabajar con ella.
Debido a que a menudo las ideas que usted funciona con en todo el curso del desarrollo
llegar a ser las características interesantes de la web.
>> Lo he dicho antes. Lo diré de nuevo.
Probadores son super, super útil.
Trate de hacer que la gente que nunca ha visto el sitio antes de iniciar la sesión y ver lo que está pasando
ya que no sólo pueden poner a prueba la utilidad del sitio y la experiencia del usuario,
pero también pueden probar la funcionalidad de una manera que no se puede.
Si comete algún rasgo que hace una cosa cierta
y usted sabe que va a hacer eso mismo correctamente todas las veces, eso es genial.
Pero a menudo puede ser difícil dar cuenta de casos de esquina, donde lo haría un usuario
escribir algo que no esperabas - precisamente porque ha definido
las características de uno mismo.
Por lo tanto, para que alguien viniera de quien no tiene idea de cómo utilizar el sitio
y para simplemente romper de cualquier manera que pueden hacer es muy útil, ya que
tener una idea desde una perspectiva totalmente diferente de lo que en su sitio web está funcionando
y lo que necesita ser reparado.
>> Por último, voy a hablar de algunas buenas prácticas generales,
y que ha visto un montón de estos en CS50, pero también muy, aplicar realmente en una configuración de proyecto.
Uno de ellos es los comentarios. Siempre comentar su código, especialmente si usted está trabajando en un equipo grande.
Puede ser muy molesto tener sólo un gigantesco bloque de código que alguien ha escrito
y tal vez funciona, tal vez no lo hace, pero no tienes ni idea de lo que hace,
lo que no tienen idea de si es útil o no, o si debería estar allí o no,
y si usted está trabajando en otra cosa que es incluso posible que usted está trabajando en
lo mismo, así que ten mucho, mucho cuidado para ser considerado con sus compañeros
y el código de escritura que está bien documentado.
Usted no tiene que ir tan lejos como para hacer todo el asunto en que le gusta si incrementas
un contador tiene un comentario que dice que estoy añadiendo 1 a este contador.
No tiene que ser detallado, pero para cualquier función que usted está siempre escribiendo
usted debe tener algún tipo de documentación de lo que la función hace exactamente,
lo que sus entradas son, y lo que deben regresar.
De esa manera usted puede utilizar otros componentes de la gente del sitio
y usted puede trabajar en la construcción de algo grande.
>> Otra cosa importante es que usted quiere hacer limpiezas regulares.
Código se complica. No se sienta mal si su código es totalmente ilegible y un lío gigante.
Eso sucede en el desarrollo web siempre.
Has añadido nuevas características, la eliminación de los antiguos. Las cosas va a estar allí que no debería estar.
Eso está bien, pero quiero asegurarme de hacer frente a esa regularidad.
Usted no quiere dejar que se acumule hasta el punto en que no se puede encontrar nada
en el código, y no tienes idea de lo que hace cualquier cosa.
Ese es el caso de HTML.
A veces usted va a terminar con los objetos que no contienen nada,
y usted quiere deshacerse de ellos.
En CSS, puede estar refiriéndose a los elementos que no están más allí,
por lo que desea deshacerse de ese código.
En JavaScript, puede que haya eliminado algo del HTML.
Así pues, usted quiere asegurarse de que usted está siempre limpiando, haciendo las cosas bastante
como todo lo que pueda sobre una base regular.
>> Otra cosa muy útil que no creo que se perfila muy en CS50
pero vale la pena entrar en es el control de versiones.
La idea de control de versiones es cuando estás básicamente hacer el seguimiento de todos los avances
usted ha hecho hacia su sitio y si en algún momento te das cuenta, oh, esto también estaba trabajando
Hace un tiempo, pero que no funciona más, puede volver a las versiones anteriores
y ver lo que ha cambiado desde entonces, y ese tipo de cosas.
La principal manera de hacerlo es con Git, y Git es todo este tipo de sistema que
Creo que Tommy MacWilliam impartió un seminario sobre el año pasado.
Si usted entra en los seminarios CS50 para el año 2011, se puede ver su seminario sobre eso.
La idea de Git es básicamente que a intervalos regulares que usted está haciendo estos compromisos
que son formas de decir el sitio está en una versión bastante estable en este momento para
Estoy empaquetarlo y enviarlo lejos a un servidor, y entonces usted puede ir a ese servidor
y mire todas las versiones anteriores de su código y ver cómo ha progresado
y todo ese tipo de cosas buenas.
Entonces, eso es básicamente todo.
En lo que a desarrollo web, estaremos encantados de quedarse y responder a cualquier
preguntas en cuanto a nuestra presentación.
Eso es todo. Gracias. >> [Ben] Gracias.
[Aplausos]
>> [Billy] Personal, ¿alguien tiene alguna pregunta acerca de las cosas que hemos cubierto
o cosas que no hemos cubierto que esperaban que habían cubren?
Estaríamos encantados de responder a ellas. ¿Alguien?
[Miembro de la audiencia] ¿Cuáles son los pros y los contras del uso de Ruby o usando Python?
[Ben] La pregunta era, ¿cuáles son los pros y los contras del uso de Ruby o Python
en vez de como PHP.
Los pros son que Ruby y Python son mucho mejores que las lenguas PHP.
Al menos en mi opinión, y creo que en un montón de opiniones de otras personas también.
Fueron diseñados para hacer cosas más complejas,
y menos para golpear juntos páginas web muy rápido con
un poco de contenido dinámico.
Las desventajas son que hay un poco de - hay más de una curva de aprendizaje
Para llegar a establecer.
Es decir, al igual que en PHP, sólo puede tener un archivo HTML y escribir-menos,
signo de interrogación, y luego a escribir algo de código, y luego se escribe un signo de interrogación
mayor que, y luego ya está.
En otros idiomas como Ruby o Python,
usted tiene que pasar por un poco más de trabajo para conseguir el sitio en funcionamiento inicial.
También hay - por lo menos lo que solía ser el caso - que hay más documentación
disponible para PHP simplemente porque hay más personas que lo usan.
Creo que eso no es tanto de un problema más.
Ciertamente hay una documentación bastante buena para cosas como Ruby on Rails
o Django para Python es el equivalente.
PHP es el que todo el mundo ha estado usando durante años, y ya sabes cómo funciona.
Ruby y Python son un poco menos maduros.
>> [Miembro del público] Si usted tuviera que elegir entre uno de ellos para aprender o recoger,
que prefiere?
Honestamente, creo que eso depende de la persona.
Lo siento. La pregunta era cuál elegirías para que alguien aprenda?
Me parece Python el mejor personal.
Hay un montón de personas que - hice mi primer proyecto dev web en Python y Django.
Hay un montón de gente que le gusta Ruby on Rails también.
Probablemente más gente sepa de Ruby on Rails.
Honestamente, me acaba de ir con lo que las personas que te rodean saben
quedando con la gente a hacer preguntas.
>> La pregunta era - en servidores compartidos es un poco difícil de trabajar en Python?
Eso depende de tu hosting.
Hay un número de servidores web que publicar cosas Python.
WebFaction hace eso, ¿verdad?
WebFaction es uno que Billy y yo hemos utilizado para algunos proyectos.
Son realmente geniales. Ellos apoyan la mayoría de los idiomas.
Pero es cierto que PHP es apoyado mucho más ampliamente.
Así pues, si usted está atascado en un proveedor de alojamiento web que sólo hace PHP, que es una buena razón para usar PHP.
>> [Miembro de la audiencia] Acabo de llegar a aprender cómo consultar algunas bases de datos,
y sé que mi SQL es por todo el lugar, pero Recientemente me expongo a -
y usted se lo señaló. Usted ve JSON y bases de datos extensibles.
My SQL todavía es por todo el lugar. ¿Cómo ve usted que eso suceda?
¿Va a haber una tendencia creciente para más expandible (inaudible)?
La pregunta era: - No creo que va a haber una tendencia hacia las bases de datos no SQL.
Por ejemplo, como MongoDB. Creo que eso es definitivamente cierto.
Mi consejo fue en su mayoría relacionadas con mySQL mySQL aquí sólo porque es
estándar de la industria.
Personalmente, me gusta mucho más las bases de datos que no tienen schemos como MongoDB
donde usted no tiene el problema de, oh, tengo que agregar otra columna.
¡Ay de mí, como lo hago?
Es muy difícil hacer eso en MySQL, pero cuando usted tiene algo así como Mongo
es mucho más agradable.
La otra cosa buena acerca de Mongo es que sus registros son en realidad objetos JavaScript.
No hay ninguna especie de etapa de conversión en el que tiene que tomar estas filas de base de datos
y convertirlas en un objeto de JavaScript y luego enviarlos a través del cable.
Creo que ese tipo de cosas va a ser muy, muy útil para el desarrollo web rápido en el futuro.
>> [Billy] Algo que me gustaría añadir que es sólo un punto general es que
no se siente como que debería haber aprendido todos los idiomas que hemos discutido
de nuestro seminario.
Obviamente, el punto es que te hagas una idea de lo que hay por ahí,
y si usted está intrigado por ninguna de las cosas que hemos mencionado que usted puede buscar en Google los
y leer sobre ellos.
Y como ya he dicho, hay algunos seminarios que tratan precisamente estas cosas.
Hay aún más seminarios que no he mencionado que probablemente entrar en
estas cosas también.
La idea es que si quieres trabajar en algo, aquí están las herramientas a su disposición.
No se sienta abrumado si usted no está realmente seguro de lo que estas herramientas hacen exactamente,
pero saben que están ahí fuera y que usted puede hacer un amplio uso de ellos
por Google.
>> [Miembro de la audiencia] ¿Qué tipo de cosas que hay que hacer para asegurarse de que su sitio web
se ve bien en los dispositivos móviles?
[Billy] Los dispositivos móviles son un poco duras.
Hay 2 maneras de abordarlo.
La primera forma es que usted realmente tiene un sitio web para móviles.
En otras palabras, debe realizar algún tipo de detección en el inicio
cuando el navegador está haciendo la solicitud a su sitio web que, o bien dice
devolver este punto de vista - que será el punto de vista de los navegadores de escritorio o portátil -
y este otro punto de vista para dispositivos móviles.
Ese es un lugar donde las vistas son realmente agradable en que usted puede bastante mucho el intercambio
dos fuera y tienen una interfaz que funciona muy bien en los dispositivos móviles
y tienen una completamente diferente, que funciona muy bien en los dispositivos del navegador.
El problema con eso es que se necesita mucho tiempo, ya que significa la codificación
una interfaz totalmente diferente.
La otra forma en que usted puede hacer es -
una gran cantidad de teléfonos modernos mostrará sitios web y tratar de hacerlas como un navegador haría,
y hacen todo lo posible.
Puede especie de tratar de mantenerse la luz de la cantidad de jQuery JavaScript está utilizando
que tiende a ser donde las cosas pueden ir mal un poco.
Esta es una especie de la forma en que se debe utilizar si no tiene esa cantidad de tiempo.
Si usted tiene el tiempo para trabajar en una interfaz móvil, eso es, obviamente, su mejor opción.
>> Creo que en general, para los proyectos de CS50, usted va a querer elegir uno u otro.
En otras palabras, usted quiere hacer una aplicación móvil o si desea hacer un sitio web de escritorio.
Y ese tipo de determina dónde vas con eso.
Pero si quieres expandirlo más tarde, probablemente su mejor apuesta es
para hacer otra interfaz para el otro.
Tengo un poco de experiencia en el desarrollo de sitios basados ​​en WordPress.
Me organicé una web en WordPress para un rato.
Ese tipo de marcos pueden ser buenas cosas muy básicas.
Muchas veces usted sólo se encuentra con un montón de cuestiones de personalización sin embargo.
Usted querrá tener algo mirar de cierta manera o sea de cierta manera
y usted simplemente no puede porque está conectado de forma rígida en el sistema que
así es como hay que hacer las cosas que pueden ser un poco de un problema.
Desde entonces he especie de estado más dispuestos a trabajar con los sitios de la tierra para arriba.
Por cosas como las bases de datos del blog y ese tipo de cosas no es realmente tan difícil de construir un marco.
Si usted está realmente estirado por el tiempo, se puede utilizar, por supuesto, algo así como WordPress
o ese tipo de cosas para un blog.
El tipo de cosas que los blogs tienda y hacer no son realmente lo suficientemente duro que
si se está ejecutando en ninguna de esas cosas, usted es probablemente el mejor apenas
hacer una versión de la casa.
>> Creo que eso es todo, así que gracias de nuevo por venir.
Realmente disfrutamos de hablar con ustedes y espero que hayas aprendido algunas cosas.
[Ben] Estamos encantados de hablar - tenemos que ir, pero estamos dispuestos a hablar más en el exterior
si usted tiene otra pregunta. Gracias de nuevo. [Aplausos]
[CS50.TV]