1 00:00:00,000 --> 00:00:02,500 [Powered by Google Translate] [Seminario] [Desarrollo web: De la idea a la Aplicación] 2 00:00:02,500 --> 00:00:04,200 [Ben Kuhn] [Billy Janitsch] [Universidad de Harvard] 3 00:00:04,200 --> 00:00:07,250 [Este es CS50] [CS50.TV] 4 00:00:07,250 --> 00:00:10,840 [Billy] Hola, soy Billy y esto es Ben. >> [Ben] Hola. 5 00:00:10,840 --> 00:00:12,840 Vamos a estar hablando de desarrollo web hoy en día. 6 00:00:12,840 --> 00:00:14,840 [Webdev] [Billy Janitsch y Ben Kuhn] 7 00:00:14,840 --> 00:00:16,840 Un poco acerca de nosotros primero. 8 00:00:16,840 --> 00:00:19,590 Ben es una especie de tipo de fondo. Él hace que las cosas funcionen. 9 00:00:19,590 --> 00:00:21,870 Y entonces voy y les hago bastante. 10 00:00:21,870 --> 00:00:26,610 Estoy en gran medida involucrarse con más front-end de diseño de diseño tipo de cosas, 11 00:00:26,610 --> 00:00:31,260 y Ben, por su parte, sabe lo que está haciendo por lo que trabaja en la materia de fondo. 12 00:00:31,260 --> 00:00:34,050 Juntos hemos hecho un par de cosas. 13 00:00:34,050 --> 00:00:38,710 Por ejemplo, el año pasado se trabajó en Gimblium que es un estudio de desarrollo de juegos en línea. 14 00:00:38,710 --> 00:00:40,400 Ese fue nuestro último proyecto para la clase, 15 00:00:40,400 --> 00:00:42,780 y desde entonces nos hemos hecho la clase de Harvard 16 00:00:42,780 --> 00:00:47,860 que es un marco para la navegación en línea y cursos comerciales en Harvard. 17 00:00:47,860 --> 00:00:53,180 >> Vamos a comenzar con esta idea para nuestro sitio web. 18 00:00:53,180 --> 00:00:57,480 Vamos a hacer esto, pero para los gatos. 19 00:00:57,480 --> 00:00:59,520 Antes de que realmente hacer de este sitio web, 20 00:00:59,520 --> 00:01:02,520 no hacer de este sitio web, ya que no es bueno, pero vamos a utilizar como marco 21 00:01:02,520 --> 00:01:05,349 y pasar por el proceso de cómo se toma esta idea 22 00:01:05,349 --> 00:01:07,450 y convertirlo en un sitio web real que podemos utilizar. 23 00:01:07,450 --> 00:01:11,940 Vamos a empezar por romper el sitio web de abajo. 24 00:01:11,940 --> 00:01:13,190 Al igual que ha estado haciendo en el CS50, 25 00:01:13,190 --> 00:01:17,360 usted quiere pensar acerca de cuáles son los componentes reales que van en este sitio web. 26 00:01:17,360 --> 00:01:21,290 Básicamente convirtiéndola de una idea que es sólo una especie de un concepto abstracto 27 00:01:21,290 --> 00:01:23,590 en una cosa real y tangible que usted podría hacer. 28 00:01:23,590 --> 00:01:25,910 Empezamos a hacer algunas preguntas. 29 00:01:25,910 --> 00:01:28,070 ¿Qué es este sitio? ¿Por qué estamos haciendo esto? 30 00:01:28,070 --> 00:01:30,670 ¿Qué se va a utilizar para? Ese tipo de cosas. 31 00:01:30,670 --> 00:01:33,660 En el caso de Facebook Cat, 32 00:01:33,660 --> 00:01:37,730 que, básicamente, queremos un sitio web que permite a los gatos red social con los demás. 33 00:01:37,730 --> 00:01:41,260 La idea es que se pueden publicar en las paredes de cada uno, 34 00:01:41,260 --> 00:01:43,510 pueden hacer comentarios, ese tipo de cosas. 35 00:01:43,510 --> 00:01:46,720 Y ahí es donde entramos en los componentes funcionales. 36 00:01:46,720 --> 00:01:51,270 Ahora tenemos este tipo de marco de - contamos con los perfiles de usuario, 37 00:01:51,270 --> 00:01:53,990 tenemos comentarios, y podemos publicar. 38 00:01:53,990 --> 00:01:57,390 Tal vez algún día vamos a influente gustos y ese tipo de cosas. 39 00:01:57,390 --> 00:02:00,410 Y que tipo de queremos priorizar estas características va in 40 00:02:00,410 --> 00:02:03,340 Queremos decir como, bueno, es muy importante que todo el mundo tiene un perfil 41 00:02:03,340 --> 00:02:06,440 y que todo el mundo puede escribir en las paredes de los demás. 42 00:02:06,440 --> 00:02:08,509 Secundario a esos comentarios serían agradables. 43 00:02:08,509 --> 00:02:10,180 Tal vez más adelante vamos a influente gustos. 44 00:02:10,180 --> 00:02:13,700 Así pues, usted quiere tener una idea de lo que es fundamental para su proyecto 45 00:02:13,700 --> 00:02:17,260 y lo que es una especie de rasgo más general que podría aplicarse más adelante. 46 00:02:17,260 --> 00:02:20,870 Usted querer especie de tener una lista específica en mente, 47 00:02:20,870 --> 00:02:24,090 pero el proyecto que usted comience a trabajar no va a ser el proyecto que termine con. 48 00:02:24,090 --> 00:02:27,100 En otras palabras, las cosas van a cambiar cuando se está creando el sitio, 49 00:02:27,100 --> 00:02:30,090 y quiere dejar espacio para eso. 50 00:02:30,090 --> 00:02:34,470 Voy a darle la vuelta a Ben ¿quién va a hablar un poco acerca de la estructura. 51 00:02:34,470 --> 00:02:39,610 >> [Ben] yo voy a estar hablando de la parte más técnica de desarrollo web. 52 00:02:39,610 --> 00:02:42,370 Vamos a repasar algunos conceptos básicos en primer lugar. 53 00:02:42,370 --> 00:02:45,730 Cuando estás haciendo una aplicación web, 54 00:02:45,730 --> 00:02:50,470 la división principal que vas a tener que tener es 55 00:02:50,470 --> 00:02:52,700 usted va a tener un poco de cosas que están pasando en el lado del cliente - 56 00:02:52,700 --> 00:02:56,700 es decir, el código que estás navegador lleva desde el sitio 57 00:02:56,700 --> 00:03:01,910 y el JavaScript, HTML, CSS cosas. 58 00:03:01,910 --> 00:03:04,490 Eso es todo en el lado del cliente. 59 00:03:04,490 --> 00:03:08,680 Usted va a tener otro tipo de código que se ejecuta en el lado del servidor 60 00:03:08,680 --> 00:03:10,770 que realiza un seguimiento de todos los datos que la gente envía a usted, 61 00:03:10,770 --> 00:03:15,060 decide a quién darle lo que, cosas así. 62 00:03:15,060 --> 00:03:20,380 Esto es sólo un poco de terminología para que ustedes están familiarizados con lo que estamos hablando. 63 00:03:20,380 --> 00:03:28,600 Más allá de esa división es bueno pensar en su aplicación web en términos de 64 00:03:28,600 --> 00:03:32,500 un par de componentes distintos. 65 00:03:32,500 --> 00:03:35,270 Cuando usted está haciendo desarrollo web 66 00:03:35,270 --> 00:03:41,710 una de las cosas que usted siempre debe estar intentando hacer es reducir la complejidad. 67 00:03:41,710 --> 00:03:45,710 Cuanto más complejo sea el código es, más posibilidades hay de hacer errores, 68 00:03:45,710 --> 00:03:47,710 más difícil es cambiar más tarde. 69 00:03:47,710 --> 00:03:50,140 Por lo tanto, si usted puede romper su aplicación en algunas áreas funcionales distintos 70 00:03:50,140 --> 00:03:57,640 que hará - y usted puede reducir la cantidad de especie de comunicación entre el área - 71 00:03:57,640 --> 00:04:03,530 que le ayudará mucho en el largo plazo en términos de reducción de errores. 72 00:04:03,530 --> 00:04:07,950 >> Para ser concretos, por lo general las personas dividen una aplicación web en - 73 00:04:07,950 --> 00:04:13,190 estos son una especie de palabras de moda ahora, pero siguen siendo útiles. 74 00:04:13,190 --> 00:04:17,940 Es posible que haya oído hablar de los modelos, vistas y controladores. 75 00:04:17,940 --> 00:04:23,210 Los modelos son los datos reales de que su aplicación se va a tratar. 76 00:04:23,210 --> 00:04:28,260 Por ejemplo, en su gato Facebook, sus modelos serían - 77 00:04:28,260 --> 00:04:35,340 usted tendría un modelo para los mensajes, como, y un modelo para los perfiles de usuario, cosas por el estilo. 78 00:04:35,340 --> 00:04:41,090 Sus puntos de vista son la tarjeta de presentación de los datos a los usuarios. 79 00:04:41,090 --> 00:04:46,660 Es posible que tenga 1 vista para mirar a un solo puesto y todos los comentarios 80 00:04:46,660 --> 00:04:51,720 y una visión diferente para su pared que tiene una lista de todos los mensajes 81 00:04:51,720 --> 00:04:57,170 que se dirigen a usted, y una visión diferente de su servicio de noticias - cosas como esas. 82 00:04:57,170 --> 00:05:00,610 Por último, usted tiene los controladores que son, básicamente, cuando la gente te envía mensajes 83 00:05:00,610 --> 00:05:03,310 y usted hace cambios a su sistema de back-end, 84 00:05:03,310 --> 00:05:06,400 incrementas un montón de contadores, y lo que sea. 85 00:05:06,400 --> 00:05:07,860 Esos son los controladores. 86 00:05:07,860 --> 00:05:11,030 >> Voy a hablar sobre todo acerca de los modelos. 87 00:05:11,030 --> 00:05:14,030 Vistas técnicamente no son tan difíciles y el problema es más con el diseño de ellos 88 00:05:14,030 --> 00:05:22,040 Controladores van a ser específicos de lo que sea que usted está diseñando. 89 00:05:22,040 --> 00:05:25,220 Pero hay algunas técnicas muy generales que se pueden utilizar 90 00:05:25,220 --> 00:05:30,220 para hacer sus modelos más agradable y más fácil de trabajar que creo que son muy útiles. 91 00:05:30,220 --> 00:05:35,860 Esto es sobre todo va a ser acerca de cómo lidiar con sus datos de aplicaciones web de una manera agradable. 92 00:05:35,860 --> 00:05:40,420 Los principales problemas con los modelos 93 00:05:40,420 --> 00:05:44,540 son que viven en el cliente y el servidor y tienes que averiguar 94 00:05:44,540 --> 00:05:51,170 a) la forma de conseguirlos - todos los relevantes - desde el servidor al cliente, 95 00:05:51,170 --> 00:05:53,440 y b) la forma de mantenerlos sincronizados. 96 00:05:53,440 --> 00:05:58,700 Sus usuarios van a querer hacer algunos cambios. 97 00:05:58,700 --> 00:06:00,470 Ellos van a querer hacer nuevos puestos. 98 00:06:00,470 --> 00:06:04,800 Ellos van a querer que fueran las cosas y esas cosas si tienes gustos. 99 00:06:04,800 --> 00:06:11,490 Esos son los principales desafíos técnicos de tratar con modelos. 100 00:06:11,490 --> 00:06:15,680 La primera cosa que usted va a querer que preguntarse es 101 00:06:15,680 --> 00:06:18,420 qué tipo de datos va en este modelo y qué tipo de consultas vamos a querer hacer - 102 00:06:18,420 --> 00:06:24,290 es decir, ¿cómo vamos a mirar los modelos? 103 00:06:24,290 --> 00:06:26,940 Para su gato Facebook ejemplo, 104 00:06:26,940 --> 00:06:31,520 su mensaje va a tener un autor asociado a él, 105 00:06:31,520 --> 00:06:35,660 algún texto publicación en el muro, y un receptor de la publicación en el muro. 106 00:06:35,660 --> 00:06:38,470 Y entonces puede que desee para consultar que en un montón de diferentes maneras. 107 00:06:38,470 --> 00:06:42,220 Usted quiere verlo por quien escribió que después, 108 00:06:42,220 --> 00:06:46,620 por quien recibió el que publicar, tal vez por la fecha en que fueron publicadas. 109 00:06:46,620 --> 00:06:50,340 Pero si vas a hacerlo por fecha, entonces usted tiene que agregar otro campo a tu puesto 110 00:06:50,340 --> 00:06:52,490 cuando en realidad fue publicado. 111 00:06:52,490 --> 00:07:00,220 Estos 2 factores - lo que los datos que desea utilizar y cómo desea para poder verla - 112 00:07:00,220 --> 00:07:04,200 usted debe pensar en ellos en primer lugar, ya que dependen unos de otros, 113 00:07:04,200 --> 00:07:08,030 y que va a ser más difícil añadir más adelante. 114 00:07:08,030 --> 00:07:12,750 >> Hay algunas otras consideraciones. 115 00:07:12,750 --> 00:07:17,540 Cuando usted está pensando en cómo hacer frente a los modelos en el servidor 116 00:07:17,540 --> 00:07:20,540 lo que quiere ver es - 117 00:07:20,540 --> 00:07:27,440 que, básicamente, quiere hacer que el servidor lo más simple posible. 118 00:07:29,440 --> 00:07:35,500 Hacer cosas en el lado del cliente es generalmente mucho más rápido si usted puede hacerlo únicamente en el cliente 119 00:07:35,500 --> 00:07:38,230 sin hacer ningún tipo de solicitud de red. 120 00:07:38,230 --> 00:07:47,860 La idea es hacer la mayor cantidad de consultas como puedas en el cliente. 121 00:07:47,860 --> 00:07:51,560 El único problema con eso 122 00:07:51,560 --> 00:07:54,160 es que si usted solicita todos los datos en el inicio 123 00:07:54,160 --> 00:07:57,160 entonces eso va a tardar mucho tiempo en cargarse. 124 00:07:57,160 --> 00:08:02,290 Por lo tanto, la idea es encontrar un término medio entre tener suficientes datos en el cliente 125 00:08:02,290 --> 00:08:07,640 que usted puede hacer la mayor parte de su trabajo allí, pero no sólo ir a buscar todo a la vez 126 00:08:07,640 --> 00:08:09,710 para que usted obtenga los tiempos de carga muy lenta al principio. 127 00:08:09,710 --> 00:08:12,610 Por ejemplo, para los datos de gato 128 00:08:12,610 --> 00:08:20,340 usted probablemente querrá traer un montón de publicaciones en el muro recientes. 129 00:08:20,340 --> 00:08:23,790 Usted no quiere a buscar a todos, porque eso podría volver un par de años. 130 00:08:23,790 --> 00:08:25,470 Pero usted no quiere a buscarlos uno a la vez 131 00:08:25,470 --> 00:08:28,740 porque eso sería introducir una gran cantidad de sobrecarga de la red. 132 00:08:28,740 --> 00:08:33,620 >> A menudo es muy difícil - una vez que usted tiene una base de datos en ejecución - 133 00:08:33,620 --> 00:08:37,210 que es a menudo muy difícil cambiar los datos que tienes en él - 134 00:08:37,210 --> 00:08:40,510 es decir, añadir una columna de base de datos nuevo o algo - 135 00:08:40,510 --> 00:08:43,510 por lo que una buena estrategia es en realidad sólo para mantener una gran cantidad de datos en una burbuja de texto - 136 00:08:43,510 --> 00:08:53,880 una mancha JSON - JSON siendo JavaScript Object Notation - 137 00:08:53,880 --> 00:08:58,330 La razón de que es útil es porque entonces usted puede agregar nuevas propiedades 138 00:08:58,330 --> 00:09:01,920 a todas estas manchas JSON sin cambiar su base de datos. 139 00:09:01,920 --> 00:09:06,860 La única desventaja de esto es que si usted tiene un montón de campos 140 00:09:06,860 --> 00:09:09,890 que agregó más tarde - como escondido en esa burbuja JSON - 141 00:09:09,890 --> 00:09:12,850 entonces es más difícil de consultarlos en el interior la base de datos. 142 00:09:12,850 --> 00:09:17,690 Por ejemplo, si más adelante - si usted tenía su modelo post que hemos comentado anteriormente 143 00:09:17,690 --> 00:09:25,380 con sólo el autor, el destinatario y el texto - 144 00:09:25,380 --> 00:09:29,000 usted también podría tener una mancha JSON y luego si más adelante desea agregar un campo de fecha 145 00:09:29,000 --> 00:09:31,000 usted no tiene que cambiar su base de datos. 146 00:09:31,000 --> 00:09:36,140 Se podía agregar fechas a todos los campos de texto. 147 00:09:36,140 --> 00:09:39,640 Y entonces sería capaz de mirar a los del lado del cliente, 148 00:09:39,640 --> 00:09:42,430 pero no sería capaz de consultarlos en el lado del servidor 149 00:09:42,430 --> 00:09:44,430 porque está escondido dentro de ese texto. 150 00:09:44,430 --> 00:09:49,920 >> El otro tema que usted quiere pensar en 151 00:09:49,920 --> 00:09:52,400 es como su cliente y el servidor se va a comunicar. 152 00:09:52,400 --> 00:09:56,040 Generalmente, usted desea mantener esto tan simple como sea posible. 153 00:09:56,040 --> 00:10:02,230 Usted sólo puede tener como una-me-get esta solicitud de datos, 154 00:10:02,230 --> 00:10:09,140 un crear a un nuevo objeto-cosa, y una solicitud de actualización-an-old-objeto. 155 00:10:09,140 --> 00:10:12,930 Y estos serían todos diferentes direcciones URL en el servidor que usted - 156 00:10:12,930 --> 00:10:20,030 que el navegador sería - se puede utilizar peticiones AJAX para todos ellos 157 00:10:20,030 --> 00:10:24,000 y recibir o enviar datos. 158 00:10:24,000 --> 00:10:26,600 Una vez más, para nuestro gato Facebook ejemplo, 159 00:10:26,600 --> 00:10:32,350 usted podría tener que URL para obtener una entrada individual, 160 00:10:32,350 --> 00:10:39,750 y usted tendría una URL para crear una nueva publicación en el muro 161 00:10:39,750 --> 00:10:45,670 y tal vez una URL para subir tu foto de perfil, cosas así. 162 00:10:45,670 --> 00:10:51,730 Pero, de nuevo, eso es precargar la mayor parte de sus datos para que usted no tiene que mantener 163 00:10:51,730 --> 00:10:53,360 hacer solicitudes de red. 164 00:10:53,360 --> 00:10:59,030 Por esa razón, es posible que no quiero tener esa petición get individual para un solo puesto, 165 00:10:59,030 --> 00:11:03,210 y en lugar de que usted sólo quiere 1 petición de obtención de toda la pared. 166 00:11:03,210 --> 00:11:06,110 Y entonces, si usted está tratando de encontrar un equilibrio, porque - 167 00:11:06,110 --> 00:11:10,970 esto también va a depender de su aplicación. 168 00:11:10,970 --> 00:11:13,430 Porque si usted está esperando que la gente sólo tiene 10 o 20 publicaciones en el muro 169 00:11:13,430 --> 00:11:15,430 que va a estar bien. 170 00:11:15,430 --> 00:11:17,390 Pero si esperas que tendrán miles entonces esa solicitud sería demasiado largo, 171 00:11:17,390 --> 00:11:23,580 y así es posible que desee agregar un parámetro get-todos-posts-desde entonces. 172 00:11:23,580 --> 00:11:26,580 >> Por todo esto usted está probablemente va a querer sincronizar sus datos en JSON - 173 00:11:26,580 --> 00:11:29,260 JavaScript Object Notation. 174 00:11:29,260 --> 00:11:34,600 Casi todos los lenguajes se ocupa de JSON muy bien. 175 00:11:34,600 --> 00:11:40,880 JQuery tiene esta bonita función getJSON que va a hacer todo el trabajo duro por usted. 176 00:11:40,880 --> 00:11:47,390 Y en PHP también hay funciones de comunicación JSON muy agradables. 177 00:11:47,390 --> 00:11:52,660 Entonces, eso es, probablemente, el mejor formato para el envío de sus modelos de ida y vuelta. 178 00:11:52,660 --> 00:11:56,570 >> Como ejemplo de lo que hemos hablado hasta ahora, 179 00:11:56,570 --> 00:12:00,520 he aquí un ejemplo de flujo para su gato aplicación de Facebook. 180 00:12:00,520 --> 00:12:07,760 Comienza con el explorador que solicita la URL del sitio web base. 181 00:12:07,760 --> 00:12:15,470 El servidor probablemente sería enviar a través de HTML estático y algo de JavaScript y CSS. 182 00:12:15,470 --> 00:12:19,170 Por lo general es mejor no hacer ninguna representación en el servidor. 183 00:12:19,170 --> 00:12:23,370 Es probable que no quiere - 184 00:12:23,370 --> 00:12:28,360 lo que el servidor no está haciendo allí va por la lista de publicaciones en el muro 185 00:12:28,360 --> 00:12:31,120 y generar algo de HTML para cada uno y el envío que más. 186 00:12:31,120 --> 00:12:34,960 Por lo general es la mejor manera de hacer eso en el lado del cliente porque de lo contrario 187 00:12:34,960 --> 00:12:38,580 cada vez que quiera volver a dibujar algo, usted tiene que hacer una solicitud del servidor. 188 00:12:38,580 --> 00:12:42,450 Y eso muy rápidamente le da un montón de gastos. 189 00:12:42,450 --> 00:12:47,430 Por lo general es mejor sólo para la nave ha hecho bajar estática HTML 190 00:12:47,430 --> 00:12:50,660 y luego JavaScript y CSS que harán la prestación por parte del cliente. 191 00:12:50,660 --> 00:12:56,750 Tan pronto como eso entra, 192 00:12:56,750 --> 00:13:03,500 entonces usted puede tener - en JavaScript - usted puede hacer las solicitudes para los datos pared 193 00:13:03,500 --> 00:13:08,740 y cosas por el estilo, y después de que el servidor está básicamente haciendo consultas de bases de datos 194 00:13:08,740 --> 00:13:10,740 y la comprobación de permisos. 195 00:13:10,740 --> 00:13:16,690 Lo único importante es que no se puede enviar a través de otras publicaciones en el muro usuarios 196 00:13:16,690 --> 00:13:19,220 que usted no está autorizado a ver. 197 00:13:19,220 --> 00:13:28,050 Básicamente puede ser una capa muy delgada de acceso a su base de datos, 198 00:13:28,050 --> 00:13:32,820 y luego, de la que muestran los datos - todos los puntos de vista y esas cosas - 199 00:13:32,820 --> 00:13:37,280 los que pueden suceder en tu navegador, y luego cuando se quiere hacer un post o algo 200 00:13:37,280 --> 00:13:40,000 que acaba de enviar una nueva solicitud. 201 00:13:40,000 --> 00:13:45,350 >> También hay algunas cosas de lujo que se puede hacer en la parte superior de esta. 202 00:13:45,350 --> 00:13:49,550 En cuanto a la información técnica más específica, 203 00:13:49,550 --> 00:13:53,360 desarrollo en la llanura JavaScript puede ser un poco doloroso, 204 00:13:53,360 --> 00:13:56,220 así que hay algunas bibliotecas y herramientas que le ayudarán mucho con eso. 205 00:13:56,220 --> 00:14:03,690 Creo que todos hemos oído probablemente sobre jQuery que hace hacer el procesamiento de HTML 206 00:14:03,690 --> 00:14:08,890 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, 207 00:14:08,890 --> 00:14:12,020 y hacer animaciones zippy. 208 00:14:12,020 --> 00:14:13,720 También hay esta biblioteca llamada Underscore.js. 209 00:14:13,720 --> 00:14:20,760 Tiene una gran cantidad de funciones de utilidad útiles, cosas que se puede esperar a tener JavaScript 210 00:14:20,760 --> 00:14:24,740 que realmente doesnt - cosas como barajar una matriz, 211 00:14:24,740 --> 00:14:28,900 la eliminación de duplicados de una lista, o aplanar una lista de listas. 212 00:14:28,900 --> 00:14:30,900 Esto es sólo un pequeño ejemplo de código. 213 00:14:30,900 --> 00:14:36,520 Subrayado tiene una tonelada de estos simpáticos funciones que usted desea que tendría todo el tiempo. 214 00:14:36,520 --> 00:14:38,840 >> Y luego está el 1 biblioteca más que me gustaría pasar un poco de tiempo en 215 00:14:38,840 --> 00:14:44,800 llamado Backbone.js porque Backbone realmente ayuda a lidiar con modelos en el lado del cliente 216 00:14:44,800 --> 00:14:47,210 y una gran parte de la confusión que puede causar. 217 00:14:47,210 --> 00:14:53,550 Backbone le da este concepto de modelos y colecciones 218 00:14:53,550 --> 00:14:58,300 en JavaScript que son, básicamente, exactamente igual que los objetos JavaScript 219 00:14:58,300 --> 00:15:04,900 en matrices de JavaScript, pero tienen eventos al cambiar sus propiedades. 220 00:15:04,900 --> 00:15:09,090 Al igual que en JavaScript, puede hacer que un evento cuando se hace clic en un botón o algo 221 00:15:09,090 --> 00:15:14,800 estos modelos de Backbone y colecciones Backbone transmitirán cosas como 222 00:15:14,800 --> 00:15:17,510 que cuando cambian. 223 00:15:17,510 --> 00:15:22,270 Eso significa que usted puede escribir algo como este fragmento de código aquí - 224 00:15:22,270 --> 00:15:27,530 esto dice, siempre que se añada nada a la matriz mensajes redibujar toda la pared. 225 00:15:27,530 --> 00:15:34,270 Y esto decía siempre que el número de un puesto de talla cambia, 226 00:15:34,270 --> 00:15:38,970 usted notifique al usuario de que alguien le gusta su puesto. 227 00:15:38,970 --> 00:15:45,210 O cada vez que cualquier propiedad de un puesto cambia redibujar el puesto. 228 00:15:45,210 --> 00:15:51,050 Cosas como que le ahorrará toneladas de complejidad porque de lo contrario 229 00:15:51,050 --> 00:15:55,440 si usted no tiene algún tipo de marco como este, entonces cada vez que en el código que cambie 230 00:15:55,440 --> 00:16:04,280 nada acerca de un post, que tendría que recordarse a sí mismo que llamar a todas las funciones de render 231 00:16:04,280 --> 00:16:07,680 y cosas por el estilo, y si quería añadir algo nuevo que sucedió 232 00:16:07,680 --> 00:16:10,680 cada vez que se modificó un puesto que tendría que ir a través de cada lugar en su 233 00:16:10,680 --> 00:16:14,610 código que ha modificado un post y agregar esa cosa nueva. 234 00:16:14,610 --> 00:16:21,450 Un marco como éste eliminará un montón de que la comunicación entre capas 235 00:16:21,450 --> 00:16:28,280 que hace el código complejo y difícil de mantener. 236 00:16:28,280 --> 00:16:31,170 >> Hay un poco de vistas también. 237 00:16:31,170 --> 00:16:35,960 Voy a dejar la mayor parte de esto a Billy porque técnicamente no son muy difíciles. 238 00:16:35,960 --> 00:16:43,540 Usar jQuery para sus puntos de vista. Es prácticamente como una necesidad en este punto. 239 00:16:43,540 --> 00:16:46,290 Simplemente hace que todo sea mucho más fácil. 240 00:16:46,290 --> 00:16:48,290 Hay una gran cantidad de bibliotecas. 241 00:16:48,290 --> 00:16:49,970 Si ha complicado los elementos de interfaz de usuario, 242 00:16:49,970 --> 00:16:57,250 si quieres algo de auto-completar o como uno de esos elegantes múltiples selectores - 243 00:16:57,250 --> 00:17:04,790 si quieres algo así, probablemente debería simplemente buscar alrededor 244 00:17:04,790 --> 00:17:08,130 y se puede encontrar una buena biblioteca que va a hacer lo que quieres. 245 00:17:08,130 --> 00:17:11,579 Billy le explicará más sobre las partes realmente difíciles de visitas. 246 00:17:11,579 --> 00:17:17,530 Además, como nota al margen, Backbone tiene algunas funciones para hacer visitas comunican 247 00:17:17,530 --> 00:17:22,800 muy bien con los modelos - mirar la documentación de todas estas bibliotecas, en realidad. 248 00:17:22,800 --> 00:17:28,270 Basta con mirar a los docs. Están muy bien escrito y fácil de seguir. 249 00:17:28,270 --> 00:17:33,890 En general, se puede prácticamente sólo Google si tiene problemas. 250 00:17:33,890 --> 00:17:36,370 Hay una gran cantidad de personas que los utilizan. 251 00:17:36,370 --> 00:17:42,020 Creo que esto es como una nota al final. 252 00:17:42,020 --> 00:17:48,770 >> También hay algunas cosas más avanzadas que usted puede hacer 253 00:17:48,770 --> 00:17:53,400 si usted está buscando para hacer su aplicación web extra impresionante. 254 00:17:53,400 --> 00:17:59,760 Usted puede hacer - la nueva especificación HTML5 tiene un montón de cosas de lujo que usted puede hacer. 255 00:17:59,760 --> 00:18:05,780 Almacenamiento local - que es que puede almacenar datos en el navegador - 256 00:18:05,780 --> 00:18:09,470 en lugar de tener que volver atrás y leer el servidor para todo, 257 00:18:09,470 --> 00:18:12,470 usted puede mantener un poco de ella en el cliente y que incluso permite a la gente - 258 00:18:12,470 --> 00:18:20,850 en algunos casos incluso puede permitir la utilización de la página Web sin conexión. 259 00:18:20,850 --> 00:18:26,980 Hay una cosa que se llama websockets que son un tipo diferente de la comunicación en red 260 00:18:26,980 --> 00:18:30,930 donde en lugar de simplemente usted hace un pedido, se obtiene la respuesta y ya está, 261 00:18:30,930 --> 00:18:35,240 sigues abrir una conexión con el servidor y por lo que puede hacer cosas como 262 00:18:35,240 --> 00:18:37,240 actualizaciones en tiempo real. 263 00:18:37,240 --> 00:18:42,020 Así que, si estás tratando de hacer una aplicación de chat, puede utilizar websockets 264 00:18:42,020 --> 00:18:43,790 para comunicar un lado a otro de modo que usted no tendría que seguir pidiendo, 265 00:18:43,790 --> 00:18:48,410 "Oh, servidor, ¿alguien me envía un chat?" cada 10 segundos o algo así. 266 00:18:48,410 --> 00:18:55,620 También hay una característica interesante HTML5 donde se puede hacer que parezca que 267 00:18:55,620 --> 00:18:58,340 la dirección URL de la página está cambiando sin tener que recargar realmente. 268 00:18:58,340 --> 00:19:03,230 Puede usar los botones Atrás y adelante sin hacer un montón de peticiones de red. 269 00:19:03,230 --> 00:19:14,660 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. 270 00:19:14,660 --> 00:19:17,680 >> También hay una cosa llamada CoffeeScript. 271 00:19:17,680 --> 00:19:24,450 CoffeeScript es un lenguaje diferente, en realidad, que compila a JavaScript. 272 00:19:24,450 --> 00:19:30,080 Se podría escribir todo el código en CoffeeScript, y luego ejecutar este compilador, 273 00:19:30,080 --> 00:19:33,300 y escupe un archivo JavaScript que se puede incluir en tu página web. 274 00:19:33,300 --> 00:19:38,860 La razón de que CoffeeScript es bueno es porque se deshace de una gran parte del 275 00:19:38,860 --> 00:19:44,760 casos extraños que Javascript donde iguala iguales, 276 00:19:44,760 --> 00:19:51,130 y es igual a los iguales hacen cosas diferentes, o les gusta - 277 00:19:51,130 --> 00:19:55,740 tiene mejor sintaxis para hacer frente a las matrices y funciones. 278 00:19:55,740 --> 00:20:00,460 Este es un pequeño fragmento de CoffeeScript que genera una lista de todas las plazas 279 00:20:00,460 --> 00:20:04,900 de 10 ^ 2 a 1 ^ 2 en orden inverso. 280 00:20:04,900 --> 00:20:08,410 Como puede ver, CoffeeScript menudo le permite expresar en 1 línea 281 00:20:08,410 --> 00:20:10,890 lo que llevaría 5 líneas de JavaScript. 282 00:20:10,890 --> 00:20:13,230 Se puede hacer las cosas mucho más fácil. 283 00:20:13,230 --> 00:20:15,390 Es un poco de la nueva sintaxis de aprender al principio, 284 00:20:15,390 --> 00:20:18,010 pero sin duda te hará más productivo en el largo plazo. 285 00:20:18,010 --> 00:20:22,050 >> También puede usar otros idiomas en el servidor y PHP - 286 00:20:22,050 --> 00:20:27,570 lenguajes como Ruby, Python, o incluso hay un proyecto llamado Node.js 287 00:20:27,570 --> 00:20:31,450 que le permite utilizar JavaScript en el servidor. 288 00:20:31,450 --> 00:20:34,700 Personalmente, yo realmente, realmente odio PHP. 289 00:20:34,700 --> 00:20:38,310 Es sólo que no disfruto de trabajar con él. 290 00:20:38,310 --> 00:20:43,450 Si usted también piensa que se trata de un cluge horrible de una lengua, 291 00:20:43,450 --> 00:20:46,160 entonces usted puede utilizar uno de estos en su lugar. 292 00:20:46,160 --> 00:20:54,780 En general, si usted quiere hacer algo y no sabe muy bien cómo lo haría, 293 00:20:54,780 --> 00:20:56,780 simplemente buscar en Internet. 294 00:20:56,780 --> 00:20:59,990 Hay toneladas y toneladas de recursos, especialmente en - 295 00:20:59,990 --> 00:21:03,260 StackOverflow es un grande. 296 00:21:03,260 --> 00:21:06,400 Es este sitio web donde los programadores se hacen preguntas. 297 00:21:06,400 --> 00:21:09,690 Es posible que se han topado con él si estás teniendo problemas en los boletines de problemas CS50. 298 00:21:09,690 --> 00:21:16,820 Y hay un montón de bibliotecas para hacer casi cualquier cosa que quieras. 299 00:21:16,820 --> 00:21:21,710 Si usted quiere hacer algo y no sabes cómo hacerlo, 300 00:21:21,710 --> 00:21:23,710 no asuma que es imposible. 301 00:21:23,710 --> 00:21:26,160 Basta con mirar alrededor y usted puede encontrar algunos buenos recursos. 302 00:21:26,160 --> 00:21:29,280 >> Como general terminar, 303 00:21:29,280 --> 00:21:33,650 los principales robos de balón son mantener las cosas simples. 304 00:21:33,650 --> 00:21:36,010 Cuanto más complejo sea el código está al principio 305 00:21:36,010 --> 00:21:40,370 y cuanto más se trata de hacer cosas de lujo, 306 00:21:40,370 --> 00:21:43,300 cuanto más tiempo se tardará en conseguir algo realmente funcional 307 00:21:43,300 --> 00:21:46,480 y más difícil será cambiar más tarde. 308 00:21:46,480 --> 00:21:49,580 Por lo tanto, hacer las cosas de la manera tonta, fácil primero. 309 00:21:49,580 --> 00:21:51,720 Para ir junto con eso, 310 00:21:51,720 --> 00:21:59,070 no tengas miedo de tirar código antiguo o limpiarlo mucho. 311 00:21:59,070 --> 00:22:05,320 En general, una vez que realmente tiene algo de trabajo, 312 00:22:05,320 --> 00:22:09,640 es mucho más fácil pensar que cuando usted todavía está en las etapas iniciales 313 00:22:09,640 --> 00:22:12,610 de ¿cómo puedo poner todo esto junto. 314 00:22:12,610 --> 00:22:17,500 Lo mejor es hacer que el más tonto posible diseño que funciona 315 00:22:17,500 --> 00:22:22,270 y luego mejorarlo iterativa de tratar de hacer todo bien la primera vez. 316 00:22:22,270 --> 00:22:28,330 En cuanto a la división de cliente-servidor, tratar de mantener su servidor muy simple - 317 00:22:28,330 --> 00:22:33,030 sólo una base de datos y un poco de autenticación y no hacen ningún trabajo duro allí. 318 00:22:33,030 --> 00:22:37,540 ¿Todos tus cosas complicadas en el cliente en el navegador 319 00:22:37,540 --> 00:22:40,650 en JavaScript como todo lo que pueda. 320 00:22:40,650 --> 00:22:43,420 Mire a su alrededor para las bibliotecas que hacen su vida mejor. 321 00:22:43,420 --> 00:22:46,850 Siempre es mejor usar el código que alguien más escribió 322 00:22:46,850 --> 00:22:49,850 si usted - y no lo escribas tú mismo. 323 00:22:49,850 --> 00:22:57,560 Hay un montón de cosas en Internet. Google es tu mejor amigo. 324 00:22:57,560 --> 00:22:59,560 Google es el mejor amigo del programador. 325 00:22:59,560 --> 00:23:07,620 Sí, definitivamente, no tengas miedo de mirar a su alrededor para la materia. 326 00:23:07,620 --> 00:23:11,860 Está bien. Y a Billy. 327 00:23:11,860 --> 00:23:14,600 >> [Billy] En realidad, antes de empezar con un poco de materia de diseño, 328 00:23:14,600 --> 00:23:17,250 ¿Alguien tiene alguna pregunta para Ben sobre cualquier cosa que él habló de? 329 00:23:17,250 --> 00:23:20,290 De acuerdo, bien. 330 00:23:20,290 --> 00:23:22,220 Una vez más, vamos a saber si algo no está claro 331 00:23:22,220 --> 00:23:25,420 o si desea que vayamos por algo un poco más. 332 00:23:25,420 --> 00:23:30,330 Voy a retroceder un poco y hablar de las partes más fundamentales del diseño. 333 00:23:30,330 --> 00:23:34,840 Ben mencionó el modelo llamado - lo siento, el sistema Model View Controller 334 00:23:34,840 --> 00:23:38,520 que es una especie de la parte técnica, así que voy a ver puntos de vista en concreto, 335 00:23:38,520 --> 00:23:42,930 y yo voy a comenzar con cómo le gustaría diseñar una vista que se ve bien. 336 00:23:42,930 --> 00:23:50,540 Aquí hay una especie de plantilla realmente básico para nuestro gato Facebook. 337 00:23:50,540 --> 00:23:54,190 Creo que hay algunos aspectos fundamentales en el diseño de interfaz de usuario moderna 338 00:23:54,190 --> 00:23:56,190 que vale la pena recoger. 339 00:23:56,190 --> 00:23:58,210 Usted puede notar que hay un montón de espacio en blanco por toda la página, 340 00:23:58,210 --> 00:24:00,790 mucho espacio para las cosas. 341 00:24:00,790 --> 00:24:02,580 No sienta que tiene que aplastar cosas en una página. 342 00:24:02,580 --> 00:24:06,700 ¿Quieres dejar un montón de espacio abierto, y si vas a casi cualquier sitio web moderno 343 00:24:06,700 --> 00:24:08,380 verás que hay blanco por todas partes. 344 00:24:08,380 --> 00:24:10,380 No hay blanco en lugares que no se pueden esperar. 345 00:24:10,380 --> 00:24:14,570 Usted tiene esta paleta de colores, y es sabio al principio 346 00:24:14,570 --> 00:24:17,880 elegir una paleta de colores que va a trabajar y desarrollarse. 347 00:24:17,880 --> 00:24:22,250 También - Ayuda a elegir un tipo de letra, y de esa manera te tipo de trabajo con 348 00:24:22,250 --> 00:24:24,450 estos fundamentos concretos de diseño. 349 00:24:24,450 --> 00:24:26,910 Usted tiene su tipo, tiene sus colores, y entonces usted puede tipo de 350 00:24:26,910 --> 00:24:29,380 poner todo lo demás en lo que necesitan. 351 00:24:29,380 --> 00:24:37,710 Así que, como he dicho, con su esquema de color que desea utilizar los colores más atrevidos de su esquema de color 352 00:24:37,710 --> 00:24:40,320 moderación. Encabezados son agradables. Los botones son bueno tener realmente grandes, colores llamativos. 353 00:24:40,320 --> 00:24:43,710 Pero en general, si usted tiene un sitio web que tiene colores por todas partes, 354 00:24:43,710 --> 00:24:47,250 todo lo que salta a la vista, que sólo se ve desordenado, y no es bueno. 355 00:24:47,250 --> 00:24:50,430 Desea utilizar generalmente de colores claros. 356 00:24:50,430 --> 00:24:52,890 Intente de nuevo, elegir un esquema de color muy coherente. 357 00:24:52,890 --> 00:24:56,640 Usted puede tener estas pequeñas pinceladas de mucho color - 358 00:24:56,640 --> 00:25:00,240 que puede parecer bastante agradable, pero desea utilizarlos muy escasamente. 359 00:25:00,240 --> 00:25:04,270 >> Como ya he dicho, quiere ser mínimo. Menos es casi siempre más. 360 00:25:04,270 --> 00:25:07,430 Si usted puede mostrar algo o no mostrar algo, 361 00:25:07,430 --> 00:25:10,230 y eres un poco seguro de si debería estar ahí por defecto - 362 00:25:10,230 --> 00:25:13,400 probablemente estás mejor dejarlo fuera. Siempre se puede añadir más tarde. 363 00:25:13,400 --> 00:25:16,620 Sí, mantener las cosas simples. 364 00:25:16,620 --> 00:25:19,510 Pero lo más importante, usted desea considerar múltiples diseños. 365 00:25:19,510 --> 00:25:23,520 No pienses que cuando usted hace un sitio, lo tienes en tu cabeza que te vas a 366 00:25:23,520 --> 00:25:26,310 hacer que el sitio de una manera determinada, y que va a ser exactamente así. 367 00:25:26,310 --> 00:25:29,830 Va a tener el encabezado azul en la parte superior y la barra lateral azul 368 00:25:29,830 --> 00:25:32,670 y entonces la cosa sub-encabezado amarillo. 369 00:25:32,670 --> 00:25:34,670 ¿Quieres hacer varias plantillas. 370 00:25:34,670 --> 00:25:37,350 Usted puede - si eres bueno con Photo Shop, puede abrir eso y tipo de 371 00:25:37,350 --> 00:25:39,600 diseñar un sitio web que quieras que se vea. 372 00:25:39,600 --> 00:25:41,680 Si no, puede simplemente usar la pluma y el papel, 373 00:25:41,680 --> 00:25:44,000 pero rayar múltiples diseños. 374 00:25:44,000 --> 00:25:47,000 ¿Quieres tener básicamente un sistema para arriba donde usted tiene un montón de diferentes diseños, 375 00:25:47,000 --> 00:25:50,810 y si uno termina trabajando, entonces eso es genial. 376 00:25:50,810 --> 00:25:53,370 Si uno acaba fallando, entonces uno siempre tiene otro a quien recurrir. 377 00:25:53,370 --> 00:25:57,960 En general, no se siente como que sea constreñido 378 00:25:57,960 --> 00:26:00,830 a cualquier diseño que en un inicio se decida sobre. 379 00:26:00,830 --> 00:26:04,420 Los diseños son muy variables, y parte de la importancia del modelo 380 00:26:04,420 --> 00:26:09,480 vista controlador del sistema es que se puede cambiar y salir de diferentes puntos de vista que desee. 381 00:26:09,480 --> 00:26:13,510 Puede influir en los datos de una manera, y luego decidir, oh, realmente, que no funciona tan bien. 382 00:26:13,510 --> 00:26:19,190 Creo que es algo demasiado complicado o hay una parte aquí que no está realmente trabajando, 383 00:26:19,190 --> 00:26:22,150 así que sólo voy a abandonar totalmente este punto de vista y de intercambio de una forma totalmente nueva. 384 00:26:22,150 --> 00:26:24,790 Todavía podemos usar los viejos modelos y los viejos controladores. 385 00:26:24,790 --> 00:26:27,490 Podemos hacer todo lo que en el servidor y el cliente como lo haríamos antes. 386 00:26:27,490 --> 00:26:32,850 Pero la ola actual de los datos mientras se muestra va a ser un poco diferente. 387 00:26:32,850 --> 00:26:35,840 >> En cuanto a la aplicación real el diseño que desee, 388 00:26:35,840 --> 00:26:39,330 una vez que haya algunos diseños esbozados en papel o en la tienda de fotos o lo que sea, 389 00:26:39,330 --> 00:26:42,120 hay una serie de herramientas que están disponibles para usted. 390 00:26:42,120 --> 00:26:45,700 El primero usted está muy familiarizado con la que es su HTML, PHP, o lo que sea 391 00:26:45,700 --> 00:26:48,990 idioma que está usando sólo para codificar las páginas estáticas en su sitio web. 392 00:26:48,990 --> 00:26:51,990 Usted ha trabajado mucho con HTML que tipo de le da las siguientes etiquetas 393 00:26:51,990 --> 00:26:57,820 que puede poner las cosas en, y, básicamente, es una forma de organizar el contenido. 394 00:26:57,820 --> 00:27:00,990 Por ejemplo, usted tiene la cabecera hasta allí, así que vas a tener una etiqueta de cabecera, 395 00:27:00,990 --> 00:27:05,770 y que va a tener un poco de texto dentro de la misma que es, probablemente, va a ser en otra etiqueta. 396 00:27:05,770 --> 00:27:08,380 Entonces usted tiene una barra lateral tal vez con algunos enlaces diferentes, 397 00:27:08,380 --> 00:27:10,160 y los que van a estar todos en separar las etiquetas. 398 00:27:10,160 --> 00:27:13,870 Así que, básicamente HTML en su corazón es una manera de dividir la página cómo 399 00:27:13,870 --> 00:27:16,980 finalmente desea formatearlo. 400 00:27:16,980 --> 00:27:18,980 Así que de nuevo, has visto eso antes. 401 00:27:18,980 --> 00:27:20,540 Eres bastante cómodo con el trabajo con él ahora 402 00:27:20,540 --> 00:27:23,120 considerando que se ha hecho el último conjunto de procesadores con suerte, 403 00:27:23,120 --> 00:27:26,150 por lo que debería haber ningún problema. 404 00:27:26,150 --> 00:27:31,280 >> Entonces usted tiene CSS que básicamente se encarga de todos los aspectos estáticos de diseño. 405 00:27:31,280 --> 00:27:35,320 Sería manejar todos los colores, todo el posicionamiento de los diferentes elementos, 406 00:27:35,320 --> 00:27:36,840 donde van con respecto a la otra, 407 00:27:36,840 --> 00:27:41,530 lo grandes que son, los diferentes tipos de posicionamientos que usted tendría - 408 00:27:41,530 --> 00:27:46,030 en otras palabras, puede haber cosas fija de manera que cuando se desplaza hacia abajo se quedan, 409 00:27:46,030 --> 00:27:48,700 o puede hacer que las cosas en relación con otros elementos. 410 00:27:48,700 --> 00:27:50,730 Todo ese tipo de cosas es en el CSS. 411 00:27:50,730 --> 00:27:54,630 Además, usted puede hacer decoraciones diferentes, puede hacer que los colores del texto, 412 00:27:54,630 --> 00:27:56,630 efectos de texto, todo ese tipo de cosas. 413 00:27:56,630 --> 00:28:00,360 Ben dio un muy buen seminario sobre este pasado fin de semana, 414 00:28:00,360 --> 00:28:04,450 y así que sin duda comprobar que fuera si va a estar haciendo algunas cosas de lujo con CSS. 415 00:28:04,450 --> 00:28:09,850 CSS3 es en realidad la última versión de CSS, y se puede hacer todo tipo de cosas realmente agradables. 416 00:28:09,850 --> 00:28:14,750 Se puede hacer gradientes, usted puede tener agradables, esquinas redondeadas, se puede hacer todo tipo de cosas 417 00:28:14,750 --> 00:28:17,940 para hacer su sitio web un aspecto más moderno y elegante. 418 00:28:17,940 --> 00:28:22,150 >> La siguiente herramienta es JavaScript y jQuery que Ben habló un poco acerca de, 419 00:28:22,150 --> 00:28:24,150 pero Voy a buscar un poco más en. 420 00:28:24,150 --> 00:28:28,100 JavaScript, ya que ha trabajado con él un poco, o por lo menos visto en clase, 421 00:28:28,100 --> 00:28:31,870 es una especie de forma de hacer las cosas de forma dinámica en HTML. 422 00:28:31,870 --> 00:28:35,950 HTML, como ustedes saben, es estático, por lo que una vez que tenga HTML no puede modificarlo. 423 00:28:35,950 --> 00:28:40,050 Pero JavaScript en cierto modo, es una manera de ser capaz de modificar el HTML. 424 00:28:40,050 --> 00:28:44,520 Así que usted puede hacer eso, y eso es genial, pero JavaScript es realmente un dolor de trabajar. 425 00:28:44,520 --> 00:28:49,050 Es tan largo y obtuso y para hacer las cosas más simples 426 00:28:49,050 --> 00:28:51,630 requiere una gran cantidad de líneas de JavaScript. 427 00:28:51,630 --> 00:28:55,410 Así, jQuery es básicamente una librería JavaScript que simplifica todo eso. 428 00:28:55,410 --> 00:28:59,880 Se dice, está bien, si usted quiere tener una caja cuadrada venir de la izquierda 429 00:28:59,880 --> 00:29:03,980 y se desvanecen en la página de modo que está en el medio, en JavaScript que tomaría - 430 00:29:03,980 --> 00:29:06,340 No sé, un centenar de líneas para hacer, y sería un dolor, 431 00:29:06,340 --> 00:29:10,540 y se sale de él odia todo lo relacionado con la programación web. 432 00:29:10,540 --> 00:29:15,380 JQuery que, básicamente, tiene el elemento-punto-fade-in, o algo así. 433 00:29:15,380 --> 00:29:18,580 Funciones tanto, muy, muy sencillos que le permitirá hacer todo tipo de animaciones fresco 434 00:29:18,580 --> 00:29:20,580 y ese tipo de cosas. 435 00:29:20,580 --> 00:29:23,300 La otra cosa que estos 2 son muy buenos para sólo está haciendo cosas dinámicas 436 00:29:23,300 --> 00:29:25,300 con el sitio web. 437 00:29:25,300 --> 00:29:28,370 Así, en lugar de tener su página HTML - que muestra algunos datos, pero que en realidad no 438 00:29:28,370 --> 00:29:32,130 hacer nada - JavaScript y jQuery le permitirá tener botones que usted puede hacer clic en, 439 00:29:32,130 --> 00:29:37,960 y usted puede arrastrar elementos y Reordenar y ordenarlos, y tienen nuevos elementos 440 00:29:37,960 --> 00:29:40,500 añadido o eliminado. Usted puede añadir-delete, ese tipo de cosas. 441 00:29:40,500 --> 00:29:44,570 Así, jQuery hace un montón de cosas interesantes. 442 00:29:44,570 --> 00:29:48,840 Y Vipul está realmente dando un seminario en él hoy, creo, a las 5 en punto, 443 00:29:48,840 --> 00:29:51,220 así que si usted puede quedarse por tanto tiempo, que lo haría - 5 o 4? 444 00:29:51,220 --> 00:29:54,930 Cuatro. Lo siento. De hecho, es justo después de esto, por lo que recomiendo 445 00:29:54,930 --> 00:29:56,680 pegarse alrededor por si puedes. 446 00:29:56,680 --> 00:30:00,180 JQuery es super, super útil, y usted será capaz de hacer un montón de cosas realmente agradables con ella 447 00:30:00,180 --> 00:30:03,460 para casi cualquier proyecto de desarrollo web. 448 00:30:03,460 --> 00:30:06,200 >> Ahora voy a entrar en una especie de distinción. 449 00:30:06,200 --> 00:30:08,210 He estado hablando básicamente sobre la interfaz de usuario. 450 00:30:08,210 --> 00:30:11,510 La interfaz de usuario es sólo el diseño del sitio. 451 00:30:11,510 --> 00:30:13,780 Pero hay una especie de otro concepto que es la experiencia del usuario. 452 00:30:13,780 --> 00:30:15,900 Los dos son muy diferentes. 453 00:30:15,900 --> 00:30:19,440 La interfaz es sin duda parte de la experiencia. 454 00:30:19,440 --> 00:30:21,340 En otras palabras, cuando usted va a un sitio, nos fijamos en la interfaz. 455 00:30:21,340 --> 00:30:22,960 Eso es parte de la forma de experimentar el sitio. 456 00:30:22,960 --> 00:30:24,960 Pero la experiencia de usuario es más que eso. 457 00:30:24,960 --> 00:30:29,910 La experiencia del usuario es acerca de lo que la impresión de que el usuario recibe de su sitio es. 458 00:30:29,910 --> 00:30:31,910 Así que, obviamente, la interfaz es una parte de eso. 459 00:30:31,910 --> 00:30:35,340 Y es definitivamente una parte necesaria, pero no es suficiente. 460 00:30:35,340 --> 00:30:38,790 En otras palabras, si tiene una interfaz agradable, y es bonito y colorido y todo eso, 461 00:30:38,790 --> 00:30:43,650 eso es genial, pero si el usuario va a su sitio, se ve un diseño bonito y está confundido por 462 00:30:43,650 --> 00:30:47,060 todo, no tiene idea de cómo hacer algo, entonces, evidentemente, usted ha hecho una realidad 463 00:30:47,060 --> 00:30:48,930 pobres sitio web. 464 00:30:48,930 --> 00:30:50,930 En cierto modo es donde entra en juego la experiencia del usuario 465 00:30:50,930 --> 00:30:54,570 Voy a hablar un poco sobre el diseño UX - UX es la abreviatura de la experiencia del usuario - 466 00:30:54,570 --> 00:30:58,050 y una especie de cómo usted puede asegurarse de que usted tiene una buena experiencia de usuario. 467 00:30:58,050 --> 00:31:04,330 El primer punto es que usted puede diseñar un sitio web donde el usuario puede hacer cualquier cosa que 468 00:31:04,330 --> 00:31:06,820 que el usuario posiblemente quiere. 469 00:31:06,820 --> 00:31:08,940 Pero si el usuario no puede encontrar la manera de hacer las cosas - 470 00:31:08,940 --> 00:31:12,850 en otras palabras, si el usuario no tiene una buena idea cuando van a su sitio de, 471 00:31:12,850 --> 00:31:17,660 "Oh, si quiero actualizar mi perfil, y luego hacer clic en este botón, o si quiero escribir en el 472 00:31:17,660 --> 00:31:20,850 el muro de alguien, entonces yo voy a su muro y haga clic en una cajita ". 473 00:31:20,850 --> 00:31:24,410 Si el usuario no sabe eso, entonces usted efectivamente tiene en realidad no 474 00:31:24,410 --> 00:31:27,080 implementado esa funcionalidad correctamente. 475 00:31:27,080 --> 00:31:30,900 Una parte de la implementación de una funcionalidad es que los usuarios son realmente capaces de utilizarlo. 476 00:31:30,900 --> 00:31:34,810 Y puede ser frustrante - usted podría hacer un sitio, y se puede hacer todo tipo de 477 00:31:34,810 --> 00:31:37,810 cosas maravillosas, pero entonces tendrás gente prueba y dicen: "No puedo hacer esto. 478 00:31:37,810 --> 00:31:39,770 Por qué no puede hacer esto? "Y le va a decir a ellos, 479 00:31:39,770 --> 00:31:44,420 "Bueno, puede. Sólo tienes que entrar en el menú desplegable séptimo en esta oscura 480 00:31:44,420 --> 00:31:48,470 página que sólo se encuentra en un enlace en la esquina inferior derecha "o algo así. 481 00:31:48,470 --> 00:31:50,430 Obviamente, usted no quiere eso. 482 00:31:50,430 --> 00:31:53,420 Usted quiere que sea claro a sus usuarios lo que se supone que deben hacer, 483 00:31:53,420 --> 00:31:56,240 y que debe ser simple e intuitivo para ellos. 484 00:31:56,240 --> 00:32:01,180 >> Otra cosa que usted quiere tratar de hacer es, si alguien va a ir a su sitio 485 00:32:01,180 --> 00:32:05,520 y 9 de cada 10 veces hacen la acción A, y 1 de cada 10 veces hacen la acción B, 486 00:32:05,520 --> 00:32:08,950 es probable que desee enfocar su experiencia en la acción A. 487 00:32:08,950 --> 00:32:12,240 En otras palabras, usted quiere que sea muy, muy claro cómo hacerlo A. 488 00:32:12,240 --> 00:32:15,980 Una debe ser de primera y de centro - ir al sitio, verlo, oh, está justo allí. 489 00:32:15,980 --> 00:32:20,850 Considerando que el B, obviamente, quiere que quede claro, pero usted puede dejar un poco más 490 00:32:20,850 --> 00:32:22,850 en el fondo. 491 00:32:22,850 --> 00:32:24,640 David da un buen ejemplo de esto en la conferencia, 492 00:32:24,640 --> 00:32:26,640 que es el sistema de Boston T. 493 00:32:26,640 --> 00:32:29,440 Cuando vas a la Boston T y usted quiere comprar un billete, 494 00:32:29,440 --> 00:32:32,700 usted tiene que entrar en 5 menús antes de que realmente puede comprar un billete 495 00:32:32,700 --> 00:32:37,130 por un valor de $ 2, $ 2.50, que es la cantidad que se necesita para viajar en el metro 496 00:32:37,130 --> 00:32:39,130 en una dirección. 497 00:32:39,130 --> 00:32:41,600 Eso es un problema porque la mayoría de la gente que está en el metro 498 00:32:41,600 --> 00:32:44,880 Probablemente sólo quiere ir a un lugar, comprar su billete, obtener en forma inmediata. 499 00:32:44,880 --> 00:32:47,550 No tiene sentido que tienen que pasar por un montón de diferentes menús 500 00:32:47,550 --> 00:32:49,550 para llegar allí. 501 00:32:49,550 --> 00:32:51,760 Una mejor experiencia del usuario sería un botón de acceso rápido en la primera página 502 00:32:51,760 --> 00:32:54,760 que simplemente dice, "comprar un billete de ida", y eso pondría en toda la norma 503 00:32:54,760 --> 00:32:58,550 valores por defecto, y luego, si alguien quiere comprar un billete diferente que, 504 00:32:58,550 --> 00:33:01,690 todavía, por supuesto, tienen la opción, pero que ha optimizado para 505 00:33:01,690 --> 00:33:04,080 el caso de uso común que es realmente importante. 506 00:33:04,080 --> 00:33:06,830 Puedes ver ejemplos de esto en Facebook, ¿no? 507 00:33:06,830 --> 00:33:09,410 Si vas a Facebook y desea publicar un estado, 508 00:33:09,410 --> 00:33:11,710 que está justo en la parte superior que es lo que a menudo quiere hacer. 509 00:33:11,710 --> 00:33:14,730 Tan pronto como entras en la página, puede hacer las cosas más comunes que 510 00:33:14,730 --> 00:33:16,730 que quieres hacer. 511 00:33:16,730 --> 00:33:17,550 Si usted quiere hacer las cosas un poco más complicadas como, 512 00:33:17,550 --> 00:33:21,070 digo que quiero ir a la pared de mi amigo y poner una foto en él - 513 00:33:21,070 --> 00:33:24,810 que voy a querer hacer a menudo, pero no tan a menudo como la publicación de actualizaciones de estado - 514 00:33:24,810 --> 00:33:28,200 por lo que en ese caso, escribo su nombre en el cuadro en la parte superior, haga clic en su perfil, 515 00:33:28,200 --> 00:33:31,680 y luego, todavía, está justo en la parte superior hay una vez que me he metido a su perfil. 516 00:33:31,680 --> 00:33:38,240 Una vez más, he optimizado en prioridad para los casos de uso común más. 517 00:33:38,240 --> 00:33:41,800 >> Otra cosa importante es que a menudo la gente especie de tratar de conseguir alrededor de este 518 00:33:41,800 --> 00:33:44,890 diciendo, está bien, así que he hecho el sitio y la gente les resulta confuso, 519 00:33:44,890 --> 00:33:46,110 y eso es un problema, ¿verdad? 520 00:33:46,110 --> 00:33:49,210 Obviamente, yo no quiero que la gente se confunden por el contenido de mi sitio. 521 00:33:49,210 --> 00:33:53,210 Pero la forma de resolver ese no es tener algo pop-up diciendo: 522 00:33:53,210 --> 00:33:55,290 bueno, yo te voy a enseñar cómo utilizar este sitio. 523 00:33:55,290 --> 00:33:58,130 Paso 1 - haga clic en este botón. Paso 2 - haga clic aquí. 524 00:33:58,130 --> 00:34:03,080 Claro, eso es una manera alrededor de ella - es una manera que usted puede decirle a la gente qué hacer, pero es 525 00:34:03,080 --> 00:34:05,080 Realmente no es la manera óptima. 526 00:34:05,080 --> 00:34:07,420 Si voy a un sitio web y de repente me bombardean con este tutorial que me está diciendo 527 00:34:07,420 --> 00:34:11,739 qué hacer y dónde ir y todo eso, eso no es divertido para mí. 528 00:34:11,739 --> 00:34:13,739 No es una buena experiencia para mí. 529 00:34:13,739 --> 00:34:17,130 Es una especie de dolor. Quiero comenzar simplemente haciendo cosas. 530 00:34:17,130 --> 00:34:19,449 La gente va a cerrar fuera de su cuadro de diálogo, 531 00:34:19,449 --> 00:34:23,580 o salir del tutorial, no sabe qué hacer y, a continuación, se quejan porque 532 00:34:23,580 --> 00:34:25,580 usted no los ha dicho qué hacer. 533 00:34:25,580 --> 00:34:29,530 La manera de resolver esto no es dar ningún tipo de tutorial o direcciones - 534 00:34:29,530 --> 00:34:31,530 nada de eso. 535 00:34:31,530 --> 00:34:33,719 Por mucho que se puede evitar, que realmente quiere mostrar al usuario qué hacer 536 00:34:33,719 --> 00:34:36,429 sólo por la naturaleza de cómo el sitio web se presenta. 537 00:34:36,429 --> 00:34:39,090 En otras palabras, si voy a Facebook sin necesidad de acceder, 538 00:34:39,090 --> 00:34:40,920 lo primero que veo en la página principal - 539 00:34:40,920 --> 00:34:44,480 es una pequeña caja de conexión. Así, duh. Tengo que entrar Está justo allí. 540 00:34:44,480 --> 00:34:48,030 Considerando que, si yo fui a Facebook y que tenía que hacer clic en un vínculo poco en la parte inferior 541 00:34:48,030 --> 00:34:51,920 que decía 'conectarse' y el resto de la página era sólo una especie de cuadro o algo, 542 00:34:51,920 --> 00:34:54,820 Realmente no lo sé qué hacer, ¿verdad? Yo estaría confundido. 543 00:34:54,820 --> 00:34:58,590 Así, podría decirme que ir ahí abajo y haga clic en el botón para iniciar la sesión, 544 00:34:58,590 --> 00:35:01,080 o el botón Iniciar sesión podría ser la derecha en la parte superior donde voy a verlo. 545 00:35:01,080 --> 00:35:04,780 ¿Quieres estar siempre mostrando al usuario qué hacer, 546 00:35:04,780 --> 00:35:06,750 y que debería ser inherente a la propia página. 547 00:35:06,750 --> 00:35:09,880 >> Cuando usted está pensando en diseños y burlándose hasta diferentes formas de 548 00:35:09,880 --> 00:35:13,810 expresando su sitio, usted realmente quiere pensar en lo que los usuarios van a 549 00:35:13,810 --> 00:35:19,380 se hace y cómo se puede mostrar lo que tienen que hacer. 550 00:35:19,380 --> 00:35:23,530 Una última cosa es la prueba es muy, muy importante. 551 00:35:23,530 --> 00:35:27,400 Es genial tener a alguien - pida a un amigo, conseguir a alguien que no sabe siquiera - 552 00:35:27,400 --> 00:35:30,420 que nunca ha visto el sitio antes de utilizar el sitio. 553 00:35:30,420 --> 00:35:33,650 Debido a que usted ha estado trabajando en el sitio durante horas, usted ha estado mirando en ello, 554 00:35:33,650 --> 00:35:36,670 y usted sabe exactamente qué hacer así que obviamente va a estar poniendo a prueba la 555 00:35:36,670 --> 00:35:39,520 cosas que has estado trabajando y que sabe trabajar. 556 00:35:39,520 --> 00:35:42,680 Pero si alguien viene y utiliza el sitio que nunca ha usado antes, 557 00:35:42,680 --> 00:35:46,880 eso es una experiencia única, ya tienes a alguien que no tiene conocimiento previo 558 00:35:46,880 --> 00:35:51,530 del lugar de entrar en ella, por lo que vamos a tener, de hecho ni idea de qué hacer 559 00:35:51,530 --> 00:35:54,890 o qué tipo de casos de uso están presentes para ellos. 560 00:35:54,890 --> 00:36:00,930 Eso es genial. Eso es único, ya que son esencialmente una persona con un espacio en blanco para una mente. 561 00:36:00,930 --> 00:36:03,750 Ellos le pueden decir si algo es confuso o poco claro. 562 00:36:03,750 --> 00:36:07,580 Ellos le pueden dar una idea de lo que precisamente la experiencia del usuario de su sitio es. 563 00:36:07,580 --> 00:36:10,630 Puede ser muy difícil decir que a ti mismo, por lo que definitivamente les animo 564 00:36:10,630 --> 00:36:13,640 como usted está desarrollando sus proyectos - si estás haciendo proyectos basados ​​en la web - 565 00:36:13,640 --> 00:36:18,290 para que la gente de usar el sitio tan pronto como usted tiene algún tipo de demostración funcional. 566 00:36:18,290 --> 00:36:25,330 >> Ahora voy a hablar un poco acerca de cómo administrar un proyecto de desarrollo web. 567 00:36:25,330 --> 00:36:28,900 Hemos revisado cómo se puede hacer la parte de fondo técnico, 568 00:36:28,900 --> 00:36:31,050 cómo se puede diseñar un sitio muy bueno, 569 00:36:31,050 --> 00:36:34,150 y eso es genial si estás trabajando por ti mismo, pero - 570 00:36:34,150 --> 00:36:37,300 incluso si está trabajando por su cuenta y especialmente si usted está trabajando en un equipo, 571 00:36:37,300 --> 00:36:39,580 gestión de proyectos se convierte en un gran problema. 572 00:36:39,580 --> 00:36:42,340 Usted ha oído hablar de una especie de gestión de proyectos en diferentes formas desde 573 00:36:42,340 --> 00:36:45,410 la escuela primaria cuando te dijeron trabajo en grupo. 574 00:36:45,410 --> 00:36:46,820 Usted tiene que cooperar, comunicar, todo eso. 575 00:36:46,820 --> 00:36:49,620 Todo eso todavía se aplica aquí, pero hay algunas circunstancias únicas con 576 00:36:49,620 --> 00:36:54,910 ciencias de la computación que se desea tener en cuenta, y quiere asegurarse de que usted maneja bien. 577 00:36:54,910 --> 00:36:58,050 Voy a hablar primero un poco sobre el equipo que usted va a estar adentro 578 00:36:58,050 --> 00:37:03,280 Es muy importante elegir el tamaño adecuado de un equipo que está trabajando en, 579 00:37:03,280 --> 00:37:05,890 y en su proyecto final creo que tienes la opción de elegir 580 00:37:05,890 --> 00:37:08,610 entre 1 y 4 personas, si no me equivoco. 581 00:37:08,610 --> 00:37:12,050 Usted quiere asegurarse de que usted no está sólo eligiendo el número de personas 582 00:37:12,050 --> 00:37:14,950 que desea trabajar con ellos porque son tus amigos. 583 00:37:14,950 --> 00:37:18,170 Usted quiere elegir a un equipo que es un buen tamaño y que hacer el trabajo. 584 00:37:18,170 --> 00:37:22,700 Hay un descuento comercial en tener más personas en comparación con menos gente. 585 00:37:22,700 --> 00:37:25,320 Si usted tiene más gente, obviamente, más trabajo se puede hacer 586 00:37:25,320 --> 00:37:28,450 porque usted tiene un montón de gente, un montón de código, un montón de ideas, 587 00:37:28,450 --> 00:37:29,870 y eso es genial. 588 00:37:29,870 --> 00:37:32,590 Pero también requiere de mucha más gestión y mucha más comunicación. 589 00:37:32,590 --> 00:37:34,720 En otras palabras, si usted tiene 4 personas que trabajan en el mismo proyecto 590 00:37:34,720 --> 00:37:39,200 y todos ellos están editando el mismo código, más o menos que todo tipo de necesidad que debe saber 591 00:37:39,200 --> 00:37:40,920 lo que está pasando por lo que usted necesita - 592 00:37:40,920 --> 00:37:44,580 si se agrega una función nueva que tipo de tiene que decirle a la gente - estoy añadiendo esto, 593 00:37:44,580 --> 00:37:48,510 Voy a cambiar esto de esta manera - especialmente si te metes en las cosas realmente profundas 594 00:37:48,510 --> 00:37:52,730 al igual que los modelos y los controladores que se les va a influir en cómo funciona el sitio. 595 00:37:52,730 --> 00:37:54,500 Todo el equipo tiene que ser consciente de ello, 596 00:37:54,500 --> 00:37:58,140 por lo que necesita para asegurarse de que usted no está eligiendo demasiado grande un equipo que va a ser difícil 597 00:37:58,140 --> 00:37:59,970 para hacer que la comunicación. 598 00:37:59,970 --> 00:38:02,930 Usted también no desea elegir un pequeño equipo suficiente como para que usted no va a 599 00:38:02,930 --> 00:38:06,250 ser capaz de comunicarse porque es sólo usted. 600 00:38:06,250 --> 00:38:11,270 >> Otra cosa a tener en cuenta es el equilibrio de donde las habilidades de la gente son. 601 00:38:11,270 --> 00:38:14,350 Es muy bueno si todos ustedes son muy buenos programadores. 602 00:38:14,350 --> 00:38:17,050 Pero si usted es toda la gente de back-end, entonces su sitio no va a parecer muy bueno 603 00:38:17,050 --> 00:38:20,860 porque usted tiene esta gran base de datos, y lo hace consultas de búsqueda súper rápida - 604 00:38:20,860 --> 00:38:26,130 que es grande - pero cuando usted va a la misma, es como un sitio de 1990 con rojo y azul 605 00:38:26,130 --> 00:38:30,370 en todas partes, y eso no es bueno tampoco. 606 00:38:30,370 --> 00:38:34,210 Tenga en cuenta que Ben y yo trabajo en equipo es muy agradable porque yo soy una especie de más 607 00:38:34,210 --> 00:38:38,030 en la parte delantera, los dos nos relacionamos en la gama media, y Ben es realmente bueno con cosas de fondo, 608 00:38:38,030 --> 00:38:43,550 por lo que funciona muy bien, ya que podemos diseñar cualquier sitio y, básicamente, los agujeros 609 00:38:43,550 --> 00:38:47,580 en ese sitio que necesita ser llenado puede ser llenado por ninguno de los dos, o posiblemente ambos. 610 00:38:47,580 --> 00:38:50,210 Usted quiere asegurarse de que no hay agujeros en su equipo. 611 00:38:50,210 --> 00:38:51,180 Está bien si hay un poco de solapamiento. 612 00:38:51,180 --> 00:38:53,670 En otras palabras, si usted tiene 2 personas que son buenos con back-end, 613 00:38:53,670 --> 00:38:57,250 eso puede ser bueno también porque pueden ayudar unos a otros con problemas 614 00:38:57,250 --> 00:38:58,820 que están teniendo. 615 00:38:58,820 --> 00:39:02,590 Puede ser un problema si usted tiene solamente 1 persona que es responsable de una determinada cosa 616 00:39:02,590 --> 00:39:06,650 y se encuentran con un problema, por lo que quieren tener un poco de solapamiento 617 00:39:06,650 --> 00:39:10,760 pero lo más importante quiere asegurarse de que todos los posibles agujeros están llenos. 618 00:39:10,760 --> 00:39:17,550 >> La última cosa - y esto debería ser obvio, pero a menudo no lo es. 619 00:39:17,550 --> 00:39:19,550 ¿De verdad quieres estar divirtiéndose. 620 00:39:19,550 --> 00:39:23,360 El punto de este proyecto final en CS50 y, a menudo el punto de desarrollo web en general, 621 00:39:23,360 --> 00:39:26,360 No es simplemente hacer un trabajo porque necesita hacerlo. 622 00:39:26,360 --> 00:39:29,140 ¿De verdad quieres estar divirtiéndose, y quiere estar haciendo algo 623 00:39:29,140 --> 00:39:31,180 que motiva a trabajar en él. 624 00:39:31,180 --> 00:39:33,650 Si lo que estás haciendo es un dolor para sentarse y trabajar, 625 00:39:33,650 --> 00:39:35,650 entonces usted no está eligiendo el proyecto adecuado. 626 00:39:35,650 --> 00:39:37,730 Usted querrá elegir algo que te parece interesante, 627 00:39:37,730 --> 00:39:41,150 De verdad quieres ver el resultado, que está emocionado cuando llegue una nueva idea acerca 628 00:39:41,150 --> 00:39:44,700 algo que podría hacer - así que hay todo tipo de proyectos hay que estoy seguro 629 00:39:44,700 --> 00:39:47,290 usted puede encontrar - todo el mundo tiene algo que realmente intriga ellos 630 00:39:47,290 --> 00:39:49,290 si están haciendo un proyecto basado en la web. 631 00:39:49,290 --> 00:39:52,210 Lo diré una vez más en estos momentos. 632 00:39:52,210 --> 00:39:54,520 Si el proyecto parece como un dolor y no quiere trabajar en él, 633 00:39:54,520 --> 00:39:57,260 elegir otro proyecto. Elija algo que realmente te inspira. 634 00:39:57,260 --> 00:40:00,260 >> Ben menciona este concepto de iteración un poco, y yo quiero ir un poco. 635 00:40:00,260 --> 00:40:08,250 Es muy importante trabajar en rachas donde obtiene algo funcional. 636 00:40:08,250 --> 00:40:13,420 Puede ser grande si usted tiene este plan para un sitio web que va a hacer A, B, y C, 637 00:40:13,420 --> 00:40:16,000 y con el tiempo que va a llegar. 638 00:40:16,000 --> 00:40:18,600 Pero usted está atascado en esta fase en la que se está trabajando en él y trabajar en él, 639 00:40:18,600 --> 00:40:23,330 pero nada es conseguir que se hagan. Usted no tiene nada que ver y una cosa tangible, funcional. 640 00:40:23,330 --> 00:40:27,940 Lo que realmente quiero hacer todo lo que parece una especie de dolor a veces para 641 00:40:27,940 --> 00:40:32,300 trabajar en algo y luego una especie de colmo por lo que es, al menos, en un establo, correr 642 00:40:32,300 --> 00:40:34,910 versión, incluso si no tiene todas las características que desea. 643 00:40:34,910 --> 00:40:37,690 Y tal vez hay algunas características que usted realmente desee agregar, pero que simplemente no puede 644 00:40:37,690 --> 00:40:41,830 porque usted quiere conseguir este lugar a un punto de vista funcional. 645 00:40:41,830 --> 00:40:44,400 Y por lo que desea especie de tener a todo el proceso de desarrollo parece a eso. 646 00:40:44,400 --> 00:40:47,810 ¿Quieres empezar en alguna parte funcional - o esencialmente comenzar con nada - 647 00:40:47,810 --> 00:40:49,890 pero quiere llegar a algún lugar muy básico y funcional. 648 00:40:49,890 --> 00:40:54,940 Y, de nuevo, hacer una especie de salto y llegar a alguna parte funcional de nuevo. 649 00:40:54,940 --> 00:40:59,190 Vas a construir lentamente, y que podría ir un poco más lento de lo que sería de otra manera, 650 00:40:59,190 --> 00:41:03,000 pero en el largo plazo si usted está constantemente atrapado en esta fase terreno intermedio en el que 651 00:41:03,000 --> 00:41:06,380 en realidad no tiene nada de trabajo, puede ser realmente una gran frustración 652 00:41:06,380 --> 00:41:09,970 para trabajar en su proyecto, porque siempre estás tan cerca de conseguir que funcione, 653 00:41:09,970 --> 00:41:12,130 y es en realidad nunca trabajo. 654 00:41:12,130 --> 00:41:14,810 ¿Quieres trabajar en estos chorros funcionales, 655 00:41:14,810 --> 00:41:17,950 y usted también quiere hacer una reflexión después de cada uno. 656 00:41:17,950 --> 00:41:21,260 En otras palabras, una vez que estás en un punto donde el sitio está trabajando - 657 00:41:21,260 --> 00:41:24,790 que no tiene todo lo que quiera, pero sí algunas cosas - 658 00:41:24,790 --> 00:41:28,870 que quiere pensar, está bien, es este sitio el cumplimiento de la meta que me propuse hacer? 659 00:41:28,870 --> 00:41:33,410 En otras palabras, si el sitio va a hacer X, es lo que he trabajo en la dirección de X? 660 00:41:33,410 --> 00:41:36,450 ¿Son todas las funcionalidades que quería allí? 661 00:41:36,450 --> 00:41:39,340 Y por otra parte, es que responde a la finalidad general que yo quiero? 662 00:41:39,340 --> 00:41:43,200 Si usted está encontrando que su sitio está empezando a virar en una dirección diferente 663 00:41:43,200 --> 00:41:47,330 o tal vez sólo un poco de las cosas no están funcionando, puede ser el momento de cambiar de marcha un poco. 664 00:41:47,330 --> 00:41:51,700 En otras palabras, vale la pena considerar - vale la pena tirar ideas si es necesario 665 00:41:51,700 --> 00:41:57,950 y teniendo en cuenta que estoy realmente trabajando hacia lo que yo quiero ser. 666 00:41:57,950 --> 00:42:00,760 >> Yo creo que ese es mi siguiente punto. No tenga miedo de abandonar las ideas. 667 00:42:00,760 --> 00:42:03,750 El hecho de que usted pasó un montón de horas de trabajo en una función 668 00:42:03,750 --> 00:42:07,890 y, finalmente, tengo trabajo, pero en realidad no lo está pasando tan bien - 669 00:42:07,890 --> 00:42:12,690 como que no es tan útil o los usuarios están teniendo problemas para usarlo - ese tipo de cosas - 670 00:42:12,690 --> 00:42:15,300 no tenga miedo de tirar a la basura. 671 00:42:15,300 --> 00:42:17,650 Es una mierda que usted ha pasado mucho tiempo trabajando en ello, 672 00:42:17,650 --> 00:42:21,870 pero en última instancia no quieres un sitio que es una especie de elaborada por estas piezas que 673 00:42:21,870 --> 00:42:25,380 tipo de trabajo, pero no están tan bien servido. 674 00:42:25,380 --> 00:42:27,990 Además, no tenga miedo de abrazar nuevas ideas. 675 00:42:27,990 --> 00:42:30,050 Si alguien viene y dice, hey, ese sitio se ve muy cool pero 676 00:42:30,050 --> 00:42:32,290 ¿no sería estupendo si incluso también hizo esto? 677 00:42:32,290 --> 00:42:36,220 El hecho de que eso es algo que no tenía la intención y es algo que no está en su 678 00:42:36,220 --> 00:42:37,900 especificaciones, algo que usted no ha propuesto hacer, 679 00:42:37,900 --> 00:42:40,860 no tengas miedo de tomarlo y luego trabajar con ella. 680 00:42:40,860 --> 00:42:43,680 Debido a que a menudo las ideas que usted funciona con en todo el curso del desarrollo 681 00:42:43,680 --> 00:42:47,630 llegar a ser las características interesantes de la web. 682 00:42:47,630 --> 00:42:49,630 >> Lo he dicho antes. Lo diré de nuevo. 683 00:42:49,630 --> 00:42:51,630 Probadores son super, super útil. 684 00:42:51,630 --> 00:42:56,350 Trate de hacer que la gente que nunca ha visto el sitio antes de iniciar la sesión y ver lo que está pasando 685 00:42:56,350 --> 00:42:59,080 ya que no sólo pueden poner a prueba la utilidad del sitio y la experiencia del usuario, 686 00:42:59,080 --> 00:43:02,070 pero también pueden probar la funcionalidad de una manera que no se puede. 687 00:43:02,070 --> 00:43:06,430 Si comete algún rasgo que hace una cosa cierta 688 00:43:06,430 --> 00:43:11,620 y usted sabe que va a hacer eso mismo correctamente todas las veces, eso es genial. 689 00:43:11,620 --> 00:43:16,610 Pero a menudo puede ser difícil dar cuenta de casos de esquina, donde lo haría un usuario 690 00:43:16,610 --> 00:43:19,500 escribir algo que no esperabas - precisamente porque ha definido 691 00:43:19,500 --> 00:43:21,500 las características de uno mismo. 692 00:43:21,500 --> 00:43:23,730 Por lo tanto, para que alguien viniera de quien no tiene idea de cómo utilizar el sitio 693 00:43:23,730 --> 00:43:26,840 y para simplemente romper de cualquier manera que pueden hacer es muy útil, ya que 694 00:43:26,840 --> 00:43:30,340 tener una idea desde una perspectiva totalmente diferente de lo que en su sitio web está funcionando 695 00:43:30,340 --> 00:43:33,300 y lo que necesita ser reparado. 696 00:43:33,300 --> 00:43:37,070 >> Por último, voy a hablar de algunas buenas prácticas generales, 697 00:43:37,070 --> 00:43:42,470 y que ha visto un montón de estos en CS50, pero también muy, aplicar realmente en una configuración de proyecto. 698 00:43:42,470 --> 00:43:47,600 Uno de ellos es los comentarios. Siempre comentar su código, especialmente si usted está trabajando en un equipo grande. 699 00:43:47,600 --> 00:43:51,230 Puede ser muy molesto tener sólo un gigantesco bloque de código que alguien ha escrito 700 00:43:51,230 --> 00:43:54,230 y tal vez funciona, tal vez no lo hace, pero no tienes ni idea de lo que hace, 701 00:43:54,230 --> 00:43:58,010 lo que no tienen idea de si es útil o no, o si debería estar allí o no, 702 00:43:58,010 --> 00:44:00,200 y si usted está trabajando en otra cosa que es incluso posible que usted está trabajando en 703 00:44:00,200 --> 00:44:06,590 lo mismo, así que ten mucho, mucho cuidado para ser considerado con sus compañeros 704 00:44:06,590 --> 00:44:09,710 y el código de escritura que está bien documentado. 705 00:44:09,710 --> 00:44:13,580 Usted no tiene que ir tan lejos como para hacer todo el asunto en que le gusta si incrementas 706 00:44:13,580 --> 00:44:16,620 un contador tiene un comentario que dice que estoy añadiendo 1 a este contador. 707 00:44:16,620 --> 00:44:20,450 No tiene que ser detallado, pero para cualquier función que usted está siempre escribiendo 708 00:44:20,450 --> 00:44:23,160 usted debe tener algún tipo de documentación de lo que la función hace exactamente, 709 00:44:23,160 --> 00:44:25,140 lo que sus entradas son, y lo que deben regresar. 710 00:44:25,140 --> 00:44:27,800 De esa manera usted puede utilizar otros componentes de la gente del sitio 711 00:44:27,800 --> 00:44:31,990 y usted puede trabajar en la construcción de algo grande. 712 00:44:31,990 --> 00:44:34,100 >> Otra cosa importante es que usted quiere hacer limpiezas regulares. 713 00:44:34,100 --> 00:44:40,490 Código se complica. No se sienta mal si su código es totalmente ilegible y un lío gigante. 714 00:44:40,490 --> 00:44:42,770 Eso sucede en el desarrollo web siempre. 715 00:44:42,770 --> 00:44:46,530 Has añadido nuevas características, la eliminación de los antiguos. Las cosas va a estar allí que no debería estar. 716 00:44:46,530 --> 00:44:49,330 Eso está bien, pero quiero asegurarme de hacer frente a esa regularidad. 717 00:44:49,330 --> 00:44:53,430 Usted no quiere dejar que se acumule hasta el punto en que no se puede encontrar nada 718 00:44:53,430 --> 00:44:56,430 en el código, y no tienes idea de lo que hace cualquier cosa. 719 00:44:56,430 --> 00:44:58,430 Ese es el caso de HTML. 720 00:44:58,430 --> 00:44:59,490 A veces usted va a terminar con los objetos que no contienen nada, 721 00:44:59,490 --> 00:45:01,320 y usted quiere deshacerse de ellos. 722 00:45:01,320 --> 00:45:04,610 En CSS, puede estar refiriéndose a los elementos que no están más allí, 723 00:45:04,610 --> 00:45:06,340 por lo que desea deshacerse de ese código. 724 00:45:06,340 --> 00:45:09,900 En JavaScript, puede que haya eliminado algo del HTML. 725 00:45:09,900 --> 00:45:13,150 Así pues, usted quiere asegurarse de que usted está siempre limpiando, haciendo las cosas bastante 726 00:45:13,150 --> 00:45:17,450 como todo lo que pueda sobre una base regular. 727 00:45:17,450 --> 00:45:21,060 >> Otra cosa muy útil que no creo que se perfila muy en CS50 728 00:45:21,060 --> 00:45:23,430 pero vale la pena entrar en es el control de versiones. 729 00:45:23,430 --> 00:45:27,180 La idea de control de versiones es cuando estás básicamente hacer el seguimiento de todos los avances 730 00:45:27,180 --> 00:45:30,820 usted ha hecho hacia su sitio y si en algún momento te das cuenta, oh, esto también estaba trabajando 731 00:45:30,820 --> 00:45:35,220 Hace un tiempo, pero que no funciona más, puede volver a las versiones anteriores 732 00:45:35,220 --> 00:45:37,720 y ver lo que ha cambiado desde entonces, y ese tipo de cosas. 733 00:45:37,720 --> 00:45:41,670 La principal manera de hacerlo es con Git, y Git es todo este tipo de sistema que 734 00:45:41,670 --> 00:45:46,390 Creo que Tommy MacWilliam impartió un seminario sobre el año pasado. 735 00:45:46,390 --> 00:45:51,520 Si usted entra en los seminarios CS50 para el año 2011, se puede ver su seminario sobre eso. 736 00:45:51,520 --> 00:45:57,070 La idea de Git es básicamente que a intervalos regulares que usted está haciendo estos compromisos 737 00:45:57,070 --> 00:46:01,430 que son formas de decir el sitio está en una versión bastante estable en este momento para 738 00:46:01,430 --> 00:46:05,910 Estoy empaquetarlo y enviarlo lejos a un servidor, y entonces usted puede ir a ese servidor 739 00:46:05,910 --> 00:46:07,910 y mire todas las versiones anteriores de su código y ver cómo ha progresado 740 00:46:07,910 --> 00:46:12,210 y todo ese tipo de cosas buenas. 741 00:46:12,210 --> 00:46:14,210 Entonces, eso es básicamente todo. 742 00:46:14,210 --> 00:46:17,870 En lo que a desarrollo web, estaremos encantados de quedarse y responder a cualquier 743 00:46:17,870 --> 00:46:20,570 preguntas en cuanto a nuestra presentación. 744 00:46:20,570 --> 00:46:22,900 Eso es todo. Gracias. >> [Ben] Gracias. 745 00:46:22,900 --> 00:46:28,480 [Aplausos] 746 00:46:28,480 --> 00:46:30,950 >> [Billy] Personal, ¿alguien tiene alguna pregunta acerca de las cosas que hemos cubierto 747 00:46:30,950 --> 00:46:33,950 o cosas que no hemos cubierto que esperaban que habían cubren? 748 00:46:33,950 --> 00:46:35,950 Estaríamos encantados de responder a ellas. ¿Alguien? 749 00:46:35,950 --> 00:46:50,360 [Miembro de la audiencia] ¿Cuáles son los pros y los contras del uso de Ruby o usando Python? 750 00:46:50,360 --> 00:46:58,660 [Ben] La pregunta era, ¿cuáles son los pros y los contras del uso de Ruby o Python 751 00:46:58,660 --> 00:46:59,900 en vez de como PHP. 752 00:46:59,900 --> 00:47:11,340 Los pros son que Ruby y Python son mucho mejores que las lenguas PHP. 753 00:47:11,340 --> 00:47:14,920 Al menos en mi opinión, y creo que en un montón de opiniones de otras personas también. 754 00:47:14,920 --> 00:47:20,990 Fueron diseñados para hacer cosas más complejas, 755 00:47:20,990 --> 00:47:25,380 y menos para golpear juntos páginas web muy rápido con 756 00:47:25,380 --> 00:47:28,400 un poco de contenido dinámico. 757 00:47:28,400 --> 00:47:35,180 Las desventajas son que hay un poco de - hay más de una curva de aprendizaje 758 00:47:35,180 --> 00:47:37,220 Para llegar a establecer. 759 00:47:37,220 --> 00:47:41,010 Es decir, al igual que en PHP, sólo puede tener un archivo HTML y escribir-menos, 760 00:47:41,010 --> 00:47:43,060 signo de interrogación, y luego a escribir algo de código, y luego se escribe un signo de interrogación 761 00:47:43,060 --> 00:47:45,700 mayor que, y luego ya está. 762 00:47:45,700 --> 00:47:50,300 En otros idiomas como Ruby o Python, 763 00:47:50,300 --> 00:47:56,810 usted tiene que pasar por un poco más de trabajo para conseguir el sitio en funcionamiento inicial. 764 00:47:56,810 --> 00:48:02,730 También hay - por lo menos lo que solía ser el caso - que hay más documentación 765 00:48:02,730 --> 00:48:05,480 disponible para PHP simplemente porque hay más personas que lo usan. 766 00:48:05,480 --> 00:48:09,370 Creo que eso no es tanto de un problema más. 767 00:48:09,370 --> 00:48:12,520 Ciertamente hay una documentación bastante buena para cosas como Ruby on Rails 768 00:48:12,520 --> 00:48:16,080 o Django para Python es el equivalente. 769 00:48:16,080 --> 00:48:25,910 PHP es el que todo el mundo ha estado usando durante años, y ya sabes cómo funciona. 770 00:48:25,910 --> 00:48:28,460 Ruby y Python son un poco menos maduros. 771 00:48:28,460 --> 00:48:33,130 >> [Miembro del público] Si usted tuviera que elegir entre uno de ellos para aprender o recoger, 772 00:48:33,130 --> 00:48:36,130 que prefiere? 773 00:48:36,130 --> 00:48:38,870 Honestamente, creo que eso depende de la persona. 774 00:48:38,870 --> 00:48:45,450 Lo siento. La pregunta era cuál elegirías para que alguien aprenda? 775 00:48:45,450 --> 00:48:50,230 Me parece Python el mejor personal. 776 00:48:50,230 --> 00:48:55,360 Hay un montón de personas que - hice mi primer proyecto dev web en Python y Django. 777 00:48:55,360 --> 00:49:00,300 Hay un montón de gente que le gusta Ruby on Rails también. 778 00:49:00,300 --> 00:49:02,650 Probablemente más gente sepa de Ruby on Rails. 779 00:49:02,650 --> 00:49:05,270 Honestamente, me acaba de ir con lo que las personas que te rodean saben 780 00:49:05,270 --> 00:49:09,680 quedando con la gente a hacer preguntas. 781 00:49:19,640 --> 00:49:24,170 >> La pregunta era - en servidores compartidos es un poco difícil de trabajar en Python? 782 00:49:24,170 --> 00:49:26,170 Eso depende de tu hosting. 783 00:49:26,170 --> 00:49:29,400 Hay un número de servidores web que publicar cosas Python. 784 00:49:29,400 --> 00:49:31,400 WebFaction hace eso, ¿verdad? 785 00:49:31,400 --> 00:49:34,400 WebFaction es uno que Billy y yo hemos utilizado para algunos proyectos. 786 00:49:34,400 --> 00:49:37,750 Son realmente geniales. Ellos apoyan la mayoría de los idiomas. 787 00:49:37,750 --> 00:49:40,020 Pero es cierto que PHP es apoyado mucho más ampliamente. 788 00:49:40,020 --> 00:49:45,210 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. 789 00:49:45,210 --> 00:49:56,010 >> [Miembro de la audiencia] Acabo de llegar a aprender cómo consultar algunas bases de datos, 790 00:49:56,010 --> 00:50:00,680 y sé que mi SQL es por todo el lugar, pero Recientemente me expongo a - 791 00:50:00,680 --> 00:50:04,470 y usted se lo señaló. Usted ve JSON y bases de datos extensibles. 792 00:50:04,470 --> 00:50:14,580 My SQL todavía es por todo el lugar. ¿Cómo ve usted que eso suceda? 793 00:50:14,580 --> 00:50:21,330 ¿Va a haber una tendencia creciente para más expandible (inaudible)? 794 00:50:21,330 --> 00:50:30,100 La pregunta era: - No creo que va a haber una tendencia hacia las bases de datos no SQL. 795 00:50:30,100 --> 00:50:33,850 Por ejemplo, como MongoDB. Creo que eso es definitivamente cierto. 796 00:50:33,850 --> 00:50:38,730 Mi consejo fue en su mayoría relacionadas con mySQL mySQL aquí sólo porque es 797 00:50:38,730 --> 00:50:40,950 estándar de la industria. 798 00:50:40,950 --> 00:50:45,950 Personalmente, me gusta mucho más las bases de datos que no tienen schemos como MongoDB 799 00:50:45,950 --> 00:50:49,520 donde usted no tiene el problema de, oh, tengo que agregar otra columna. 800 00:50:49,520 --> 00:50:51,600 ¡Ay de mí, como lo hago? 801 00:50:51,600 --> 00:50:55,840 Es muy difícil hacer eso en MySQL, pero cuando usted tiene algo así como Mongo 802 00:50:55,840 --> 00:50:57,840 es mucho más agradable. 803 00:50:57,840 --> 00:51:03,780 La otra cosa buena acerca de Mongo es que sus registros son en realidad objetos JavaScript. 804 00:51:03,780 --> 00:51:10,110 No hay ninguna especie de etapa de conversión en el que tiene que tomar estas filas de base de datos 805 00:51:10,110 --> 00:51:13,140 y convertirlas en un objeto de JavaScript y luego enviarlos a través del cable. 806 00:51:13,140 --> 00:51:20,290 Creo que ese tipo de cosas va a ser muy, muy útil para el desarrollo web rápido en el futuro. 807 00:51:20,290 --> 00:51:23,060 >> [Billy] Algo que me gustaría añadir que es sólo un punto general es que 808 00:51:23,060 --> 00:51:26,580 no se siente como que debería haber aprendido todos los idiomas que hemos discutido 809 00:51:26,580 --> 00:51:28,580 de nuestro seminario. 810 00:51:28,580 --> 00:51:30,560 Obviamente, el punto es que te hagas una idea de lo que hay por ahí, 811 00:51:30,560 --> 00:51:33,450 y si usted está intrigado por ninguna de las cosas que hemos mencionado que usted puede buscar en Google los 812 00:51:33,450 --> 00:51:35,830 y leer sobre ellos. 813 00:51:35,830 --> 00:51:38,750 Y como ya he dicho, hay algunos seminarios que tratan precisamente estas cosas. 814 00:51:38,750 --> 00:51:41,660 Hay aún más seminarios que no he mencionado que probablemente entrar en 815 00:51:41,660 --> 00:51:43,660 estas cosas también. 816 00:51:43,660 --> 00:51:46,610 La idea es que si quieres trabajar en algo, aquí están las herramientas a su disposición. 817 00:51:46,610 --> 00:51:51,630 No se sienta abrumado si usted no está realmente seguro de lo que estas herramientas hacen exactamente, 818 00:51:51,630 --> 00:51:54,830 pero saben que están ahí fuera y que usted puede hacer un amplio uso de ellos 819 00:51:54,830 --> 00:51:56,830 por Google. 820 00:51:56,830 --> 00:51:59,960 >> [Miembro de la audiencia] ¿Qué tipo de cosas que hay que hacer para asegurarse de que su sitio web 821 00:51:59,960 --> 00:52:02,530 se ve bien en los dispositivos móviles? 822 00:52:02,530 --> 00:52:05,590 [Billy] Los dispositivos móviles son un poco duras. 823 00:52:05,590 --> 00:52:07,590 Hay 2 maneras de abordarlo. 824 00:52:07,590 --> 00:52:11,500 La primera forma es que usted realmente tiene un sitio web para móviles. 825 00:52:11,500 --> 00:52:14,660 En otras palabras, debe realizar algún tipo de detección en el inicio 826 00:52:14,660 --> 00:52:18,830 cuando el navegador está haciendo la solicitud a su sitio web que, o bien dice 827 00:52:18,830 --> 00:52:25,240 devolver este punto de vista - que será el punto de vista de los navegadores de escritorio o portátil - 828 00:52:25,240 --> 00:52:27,710 y este otro punto de vista para dispositivos móviles. 829 00:52:27,710 --> 00:52:33,090 Ese es un lugar donde las vistas son realmente agradable en que usted puede bastante mucho el intercambio 830 00:52:33,090 --> 00:52:37,580 dos fuera y tienen una interfaz que funciona muy bien en los dispositivos móviles 831 00:52:37,580 --> 00:52:40,770 y tienen una completamente diferente, que funciona muy bien en los dispositivos del navegador. 832 00:52:40,770 --> 00:52:43,770 El problema con eso es que se necesita mucho tiempo, ya que significa la codificación 833 00:52:43,770 --> 00:52:47,060 una interfaz totalmente diferente. 834 00:52:47,060 --> 00:52:49,720 La otra forma en que usted puede hacer es - 835 00:52:49,720 --> 00:52:55,250 una gran cantidad de teléfonos modernos mostrará sitios web y tratar de hacerlas como un navegador haría, 836 00:52:55,250 --> 00:52:57,680 y hacen todo lo posible. 837 00:52:57,680 --> 00:53:04,340 Puede especie de tratar de mantenerse la luz de la cantidad de jQuery JavaScript está utilizando 838 00:53:04,340 --> 00:53:07,360 que tiende a ser donde las cosas pueden ir mal un poco. 839 00:53:07,360 --> 00:53:13,430 Esta es una especie de la forma en que se debe utilizar si no tiene esa cantidad de tiempo. 840 00:53:13,430 --> 00:53:18,540 Si usted tiene el tiempo para trabajar en una interfaz móvil, eso es, obviamente, su mejor opción. 841 00:53:18,540 --> 00:53:23,320 >> Creo que en general, para los proyectos de CS50, usted va a querer elegir uno u otro. 842 00:53:23,320 --> 00:53:27,990 En otras palabras, usted quiere hacer una aplicación móvil o si desea hacer un sitio web de escritorio. 843 00:53:27,990 --> 00:53:32,200 Y ese tipo de determina dónde vas con eso. 844 00:53:32,200 --> 00:53:35,360 Pero si quieres expandirlo más tarde, probablemente su mejor apuesta es 845 00:53:35,360 --> 00:53:37,360 para hacer otra interfaz para el otro. 846 00:53:51,650 --> 00:53:56,340 Tengo un poco de experiencia en el desarrollo de sitios basados ​​en WordPress. 847 00:53:56,340 --> 00:53:58,670 Me organicé una web en WordPress para un rato. 848 00:53:58,670 --> 00:54:02,310 Ese tipo de marcos pueden ser buenas cosas muy básicas. 849 00:54:02,310 --> 00:54:07,050 Muchas veces usted sólo se encuentra con un montón de cuestiones de personalización sin embargo. 850 00:54:07,050 --> 00:54:10,940 Usted querrá tener algo mirar de cierta manera o sea de cierta manera 851 00:54:10,940 --> 00:54:14,510 y usted simplemente no puede porque está conectado de forma rígida en el sistema que 852 00:54:14,510 --> 00:54:17,480 así es como hay que hacer las cosas que pueden ser un poco de un problema. 853 00:54:17,480 --> 00:54:22,020 Desde entonces he especie de estado más dispuestos a trabajar con los sitios de la tierra para arriba. 854 00:54:22,020 --> 00:54:26,840 Por cosas como las bases de datos del blog y ese tipo de cosas no es realmente tan difícil de construir un marco. 855 00:54:26,840 --> 00:54:29,970 Si usted está realmente estirado por el tiempo, se puede utilizar, por supuesto, algo así como WordPress 856 00:54:29,970 --> 00:54:33,120 o ese tipo de cosas para un blog. 857 00:54:33,120 --> 00:54:38,790 El tipo de cosas que los blogs tienda y hacer no son realmente lo suficientemente duro que 858 00:54:38,790 --> 00:54:41,500 si se está ejecutando en ninguna de esas cosas, usted es probablemente el mejor apenas 859 00:54:41,500 --> 00:54:43,500 hacer una versión de la casa. 860 00:54:43,500 --> 00:54:48,350 >> Creo que eso es todo, así que gracias de nuevo por venir. 861 00:54:48,350 --> 00:54:51,960 Realmente disfrutamos de hablar con ustedes y espero que hayas aprendido algunas cosas. 862 00:54:51,960 --> 00:54:55,350 [Ben] Estamos encantados de hablar - tenemos que ir, pero estamos dispuestos a hablar más en el exterior 863 00:54:55,350 --> 00:55:01,650 si usted tiene otra pregunta. Gracias de nuevo. [Aplausos] 864 00:55:03,750 --> 00:55:06,000 [CS50.TV]