1 00:00:00,000 --> 00:00:02,500 [Powered by Google Translate] [Seminário] [Desenvolvimento Web: Da idéia à Implementação] 2 00:00:02,500 --> 00:00:04,200 [Ben Kuhn] [Billy Janitsch] [Universidade de Harvard] 3 00:00:04,200 --> 00:00:07,250 [Isto é CS50] [CS50.TV] 4 00:00:07,250 --> 00:00:10,840 [Billy] Oi, eu sou Billy e este é Ben. >> [Ben] Hi. 5 00:00:10,840 --> 00:00:12,840 Nós vamos estar falando sobre desenvolvimento web hoje. 6 00:00:12,840 --> 00:00:14,840 [Webdev] [Billy Janitsch e Ben Kuhn] 7 00:00:14,840 --> 00:00:16,840 Um pouco sobre nós em primeiro lugar. 8 00:00:16,840 --> 00:00:19,590 Ben é o tipo de cara back-end. Ele faz as coisas funcionam. 9 00:00:19,590 --> 00:00:21,870 E então eu entrar e fazê-los bonitos. 10 00:00:21,870 --> 00:00:26,610 Estou em grande parte envolvida com mais front-end tipo de projeto de layout de coisas, 11 00:00:26,610 --> 00:00:31,260 e Ben, por outro lado, sabe o que está fazendo para que ele funciona em coisas back-end. 12 00:00:31,260 --> 00:00:34,050 Juntos fizemos algumas coisas. 13 00:00:34,050 --> 00:00:38,710 Por exemplo, no ano passado nós trabalhamos em Gimblium que é um estúdio de desenvolvimento de jogos online. 14 00:00:38,710 --> 00:00:40,400 Esse era o nosso projeto final para a classe, 15 00:00:40,400 --> 00:00:42,780 e desde então fizemos Harvard Classe 16 00:00:42,780 --> 00:00:47,860 que é uma estrutura on-line para navegação e cursos de compras em Harvard. 17 00:00:47,860 --> 00:00:53,180 >> Vamos começar com essa idéia para o nosso site. 18 00:00:53,180 --> 00:00:57,480 Nós vamos fazer o Facebook, mas para gatos. 19 00:00:57,480 --> 00:00:59,520 Antes de realmente fazer este site, 20 00:00:59,520 --> 00:01:02,520 não fazem este site porque não é bom, mas vamos usá-lo como um quadro 21 00:01:02,520 --> 00:01:05,349 e passar pelo processo de como podemos levar esta idéia 22 00:01:05,349 --> 00:01:07,450 e transformá-lo em um site real que podemos usar. 23 00:01:07,450 --> 00:01:11,940 Vamos começar por quebrar o site para baixo. 24 00:01:11,940 --> 00:01:13,190 Como você tem feito no CS50, 25 00:01:13,190 --> 00:01:17,360 você quer pensar sobre quais são os componentes reais que vão para o site. 26 00:01:17,360 --> 00:01:21,290 Basicamente transformando-o de uma idéia que é apenas uma espécie de um conceito abstrato 27 00:01:21,290 --> 00:01:23,590 em uma coisa real e tangível que você poderia fazer. 28 00:01:23,590 --> 00:01:25,910 Começamos a fazer algumas perguntas. 29 00:01:25,910 --> 00:01:28,070 O que é este site? Por que estamos fazendo isso? 30 00:01:28,070 --> 00:01:30,670 O que é que vai ser utilizado? Esse tipo de coisa. 31 00:01:30,670 --> 00:01:33,660 No caso do Facebook Gato, 32 00:01:33,660 --> 00:01:37,730 que basicamente quer um site que permite que gatos rede social com o outro. 33 00:01:37,730 --> 00:01:41,260 A idéia é que eles podem postar em paredes de cada um, 34 00:01:41,260 --> 00:01:43,510 eles podem fazer comentários, esse tipo de coisa. 35 00:01:43,510 --> 00:01:46,720 E é aí que entramos em componentes funcionais. 36 00:01:46,720 --> 00:01:51,270 Temos, agora, este tipo de estrutura de - temos perfis de usuário, 37 00:01:51,270 --> 00:01:53,990 temos comentários, e podemos postar. 38 00:01:53,990 --> 00:01:57,390 Talvez um dia nós vamos afluente gostos e esse tipo de coisa. 39 00:01:57,390 --> 00:02:00,410 E nós meio que quero priorizar esses recursos que vão dentro 40 00:02:00,410 --> 00:02:03,340 Queremos dizer como, ok, é muito importante que todos tenham um perfil 41 00:02:03,340 --> 00:02:06,440 e que todos possam postar em paredes de cada um. 42 00:02:06,440 --> 00:02:08,509 Secundário para que, os comentários seria bom. 43 00:02:08,509 --> 00:02:10,180 Talvez mais tarde nós vamos afluente gostos. 44 00:02:10,180 --> 00:02:13,700 Então, você quer ter uma idéia do que é fundamental para o seu projeto 45 00:02:13,700 --> 00:02:17,260 eo que é uma espécie de característica mais geral que poderia ser aplicado mais tarde. 46 00:02:17,260 --> 00:02:20,870 Você quer que a sorte de ter uma lista específica em mente, 47 00:02:20,870 --> 00:02:24,090 mas o projeto que você comece com não vai ser o projeto que você terminar com. 48 00:02:24,090 --> 00:02:27,100 Em outras palavras, as coisas vão mudar enquanto você está desenvolvendo o site, 49 00:02:27,100 --> 00:02:30,090 e você quer deixar espaço para isso. 50 00:02:30,090 --> 00:02:34,470 Vou entregá-lo para Ben, que vai falar um pouco sobre a estrutura. 51 00:02:34,470 --> 00:02:39,610 >> [Ben] eu vou estar falando sobre o lado mais técnico de desenvolvimento web. 52 00:02:39,610 --> 00:02:42,370 Vamos passar por cima de alguns princípios básicos em primeiro lugar. 53 00:02:42,370 --> 00:02:45,730 Quando você está fazendo uma aplicação web, 54 00:02:45,730 --> 00:02:50,470 a divisão principal que você vai ter que ter é 55 00:02:50,470 --> 00:02:52,700 você vai ter alguma coisa acontecendo no lado do cliente - 56 00:02:52,700 --> 00:02:56,700 ou seja, o código que você está navegador leva a partir do site 57 00:02:56,700 --> 00:03:01,910 eo JavaScript, HTML, CSS coisas. 58 00:03:01,910 --> 00:03:04,490 Isso é tudo no lado do cliente. 59 00:03:04,490 --> 00:03:08,680 Você vai ter outro código que é executado no lado do servidor 60 00:03:08,680 --> 00:03:10,770 que mantém o controle de todos os dados que as pessoas enviam para você, 61 00:03:10,770 --> 00:03:15,060 decide quem dar o quê, coisas assim. 62 00:03:15,060 --> 00:03:20,380 Este é apenas um pouco de terminologia, de modo que vocês estão familiarizados com o que estamos falando. 63 00:03:20,380 --> 00:03:28,600 Além dessa divisão, é bom pensar em sua aplicação web em termos de 64 00:03:28,600 --> 00:03:32,500 um par de componentes distintos. 65 00:03:32,500 --> 00:03:35,270 Quando você está fazendo desenvolvimento web 66 00:03:35,270 --> 00:03:41,710 uma das coisas que você deve estar sempre tentando fazer é reduzir a complexidade. 67 00:03:41,710 --> 00:03:45,710 Quanto mais complexo o seu código é o mais chances há de fazer erros, 68 00:03:45,710 --> 00:03:47,710 o que é mais difícil mudar mais tarde. 69 00:03:47,710 --> 00:03:50,140 Então, se você pode quebrar o seu aplicativo em algumas áreas funcionais distintas 70 00:03:50,140 --> 00:03:57,640 que vai - e você pode reduzir o tipo de quantidade de comunicação da área de cross - 71 00:03:57,640 --> 00:04:03,530 que irá ajudá-lo muito no longo prazo em termos de redução de bugs. 72 00:04:03,530 --> 00:04:07,950 >> Para ser concreto, geralmente as pessoas dividem-se em uma aplicação web - 73 00:04:07,950 --> 00:04:13,190 estes são o tipo de palavras da moda agora, mas eles ainda são úteis. 74 00:04:13,190 --> 00:04:17,940 Você pode ter ouvido as pessoas falarem sobre modelos, visualizações e controladores. 75 00:04:17,940 --> 00:04:23,210 Os modelos são os dados reais que seu aplicativo está indo para lidar com eles. 76 00:04:23,210 --> 00:04:28,260 Por exemplo, em seu gato Facebook, seus modelos seria - 77 00:04:28,260 --> 00:04:35,340 você teria um modelo para as mensagens como, e um modelo para perfis de usuários, coisas assim. 78 00:04:35,340 --> 00:04:41,090 Suas opiniões são como você apresentar esses dados para seus usuários. 79 00:04:41,090 --> 00:04:46,660 Você pode ter uma vista para olhar para um único post e todos os comentários 80 00:04:46,660 --> 00:04:51,720 e uma visão diferente para sua parede que tem uma lista de todas as mensagens 81 00:04:51,720 --> 00:04:57,170 que são direcionados a você, e uma visão diferente para o seu feed de notícias - coisas assim. 82 00:04:57,170 --> 00:05:00,610 Finalmente, você tem os controladores que são basicamente quando as pessoas lhe enviar mensagens 83 00:05:00,610 --> 00:05:03,310 e você faz atualizações para o sistema de back-end, 84 00:05:03,310 --> 00:05:06,400 você incrementa um monte de contadores, e qualquer que seja. 85 00:05:06,400 --> 00:05:07,860 Esses são os seus controladores. 86 00:05:07,860 --> 00:05:11,030 >> Vou estar falando principalmente sobre os modelos. 87 00:05:11,030 --> 00:05:14,030 Visto que não são tecnicamente difíceis e a questão é mais com projetá-los 88 00:05:14,030 --> 00:05:22,040 Controladores vão ser específico para o que você está projetando. 89 00:05:22,040 --> 00:05:25,220 Mas existem algumas técnicas bastante gerais que você pode usar 90 00:05:25,220 --> 00:05:30,220 para fazer seus modelos mais agradável e mais fácil de trabalhar que eu acho que são muito úteis. 91 00:05:30,220 --> 00:05:35,860 Isto é principalmente vai ser sobre como lidar com os seus dados aplicativos web de uma forma agradável. 92 00:05:35,860 --> 00:05:40,420 Os principais problemas com os modelos 93 00:05:40,420 --> 00:05:44,540 são eles que vivem no cliente e no servidor e você tem que descobrir 94 00:05:44,540 --> 00:05:51,170 a) como obtê-los - todos os relevantes - a partir do servidor para o cliente, 95 00:05:51,170 --> 00:05:53,440 e b) como mantê-los em sincronia. 96 00:05:53,440 --> 00:05:58,700 Os usuários vão querer fazer algumas atualizações. 97 00:05:58,700 --> 00:06:00,470 Eles vão querer fazer novos posts. 98 00:06:00,470 --> 00:06:04,800 Eles vão querer gostar de coisas e coisas, se você tem gostos. 99 00:06:04,800 --> 00:06:11,490 Esses são os principais desafios técnicos de lidar com modelos. 100 00:06:11,490 --> 00:06:15,680 A primeira coisa que você vai querer perguntar a si mesmo é 101 00:06:15,680 --> 00:06:18,420 que tipo de dados vai neste modelo e que tipo de consultas que vamos querer fazer - 102 00:06:18,420 --> 00:06:24,290 isto é, como é que vamos olhar para os modelos? 103 00:06:24,290 --> 00:06:26,940 Para o seu gato exemplo Facebook, 104 00:06:26,940 --> 00:06:31,520 seu post vai ter um autor associado a ele, 105 00:06:31,520 --> 00:06:35,660 algum texto pós parede, e um destinatário da mensagem no mural. 106 00:06:35,660 --> 00:06:38,470 E então você pode querer consultar que em um monte de maneiras diferentes. 107 00:06:38,470 --> 00:06:42,220 Você gostaria de olhar para ele por que escreveu que post, 108 00:06:42,220 --> 00:06:46,620 por que recebeu o que postar, talvez pela data em que foram postados. 109 00:06:46,620 --> 00:06:50,340 Mas se você está indo fazê-lo por data, então você tem que adicionar outro campo para o seu post 110 00:06:50,340 --> 00:06:52,490 de quando foi realmente lançado. 111 00:06:52,490 --> 00:07:00,220 Estes dois fatores - o que os dados que você deseja usar e como você deseja vê-lo - 112 00:07:00,220 --> 00:07:04,200 você deve pensar sobre eles em primeiro lugar porque eles dependem uns dos outros, 113 00:07:04,200 --> 00:07:08,030 e isso vai ser mais difícil para adicioná-los mais tarde. 114 00:07:08,030 --> 00:07:12,750 >> Existem algumas outras considerações. 115 00:07:12,750 --> 00:07:17,540 Quando você está pensando sobre como você lida com modelos no servidor 116 00:07:17,540 --> 00:07:20,540 o que você quer é olhar para - 117 00:07:20,540 --> 00:07:27,440 basicamente você quiser fazer o servidor o mais simples possível. 118 00:07:29,440 --> 00:07:35,500 Fazer coisas no lado do cliente é geralmente muito mais rápido se você pode fazê-lo apenas no cliente 119 00:07:35,500 --> 00:07:38,230 sem fazer qualquer tipo de solicitação de rede. 120 00:07:38,230 --> 00:07:47,860 A idéia é fazer o maior número de consultas que puder sobre o cliente. 121 00:07:47,860 --> 00:07:51,560 O único problema com que 122 00:07:51,560 --> 00:07:54,160 é que se você pedir todos os seus dados no início 123 00:07:54,160 --> 00:07:57,160 em seguida, que vai levar um longo tempo para carregar. 124 00:07:57,160 --> 00:08:02,290 Então, a idéia é encontrar um meio termo entre ter dados suficientes sobre o cliente 125 00:08:02,290 --> 00:08:07,640 que você pode fazer a maioria de seu trabalho lá, mas não apenas buscar tudo de uma vez 126 00:08:07,640 --> 00:08:09,710 para que você obtenha os tempos de carregamento muito lento no início. 127 00:08:09,710 --> 00:08:12,610 Por exemplo, para o seu gato de dados 128 00:08:12,610 --> 00:08:20,340 você provavelmente quer buscar um monte de mensagens de parede recentes. 129 00:08:20,340 --> 00:08:23,790 Você não gostaria de pegar todos eles, porque o que poderia dar para trás um par de anos. 130 00:08:23,790 --> 00:08:25,470 Mas você não quer buscá-los um de cada vez 131 00:08:25,470 --> 00:08:28,740 porque isso iria introduzir uma grande quantidade de sobrecarga da rede. 132 00:08:28,740 --> 00:08:33,620 >> Muitas vezes é muito difícil - uma vez que você tem um banco de dados em execução - 133 00:08:33,620 --> 00:08:37,210 muitas vezes é muito difícil mudar os dados que você tem nele - 134 00:08:37,210 --> 00:08:40,510 ou seja, adicionar uma nova coluna de banco de dados ou algo assim - 135 00:08:40,510 --> 00:08:43,510 assim uma boa estratégia é, na verdade, apenas para manter um monte de seus dados em um blob de texto - 136 00:08:43,510 --> 00:08:53,880 uma bolha JSON - JSON sendo JavaScript Object Notation - 137 00:08:53,880 --> 00:08:58,330 A razão pela qual isso é útil é porque então você pode adicionar novas propriedades 138 00:08:58,330 --> 00:09:01,920 a todas estas bolhas JSON sem alterar seu banco de dados. 139 00:09:01,920 --> 00:09:06,860 A única desvantagem para isso é que se você tem um monte de campos 140 00:09:06,860 --> 00:09:09,890 que você adicionou mais tarde - como escondido em que blob JSON - 141 00:09:09,890 --> 00:09:12,850 então é mais difícil de consultá-los dentro do banco de dados. 142 00:09:12,850 --> 00:09:17,690 Por exemplo, se você mais tarde - se você teve o seu modelo de post que discutimos anteriormente 143 00:09:17,690 --> 00:09:25,380 apenas com o autor, o destinatário eo texto - 144 00:09:25,380 --> 00:09:29,000 você também pode ter uma bolha JSON e, em seguida, se mais tarde você quiser adicionar um campo de data 145 00:09:29,000 --> 00:09:31,000 você não tem que mudar seu banco de dados. 146 00:09:31,000 --> 00:09:36,140 Você poderia apenas adicionar as datas para todos os campos de texto. 147 00:09:36,140 --> 00:09:39,640 E então você seria capaz de olhar para aqueles no lado do cliente, 148 00:09:39,640 --> 00:09:42,430 mas você não seria capaz de consultá-los no lado do servidor 149 00:09:42,430 --> 00:09:44,430 porque está escondido dentro desse texto. 150 00:09:44,430 --> 00:09:49,920 >> A outra questão que você quer pensar sobre 151 00:09:49,920 --> 00:09:52,400 É assim que o seu cliente e seu servidor vai se comunicar. 152 00:09:52,400 --> 00:09:56,040 Você geralmente querem manter este tão simples quanto possível. 153 00:09:56,040 --> 00:10:02,230 Você pode apenas ter como um me-get esta solicitação de dados, 154 00:10:02,230 --> 00:10:09,140 a criar-a-new-object coisa, e uma solicitação de atualização, um velho-objeto-. 155 00:10:09,140 --> 00:10:12,930 E estes seriam todos diferentes URLs em um servidor que você - 156 00:10:12,930 --> 00:10:20,030 que o navegador - você pode usar solicitações de AJAX para todos estes 157 00:10:20,030 --> 00:10:24,000 e receber ou dados de postagem. 158 00:10:24,000 --> 00:10:26,600 Mais uma vez, para o nosso gato exemplo Facebook, 159 00:10:26,600 --> 00:10:32,350 você poderia ter a URL para obter uma postagem individual, 160 00:10:32,350 --> 00:10:39,750 e você teria uma URL para criar uma nova mensagem no mural 161 00:10:39,750 --> 00:10:45,670 e talvez um URL para fazer upload de sua foto do perfil, coisas assim. 162 00:10:45,670 --> 00:10:51,730 Mas, novamente, isso é a pré-busca a maioria de seus dados para que você não tem que manter 163 00:10:51,730 --> 00:10:53,360 fazer solicitações de rede. 164 00:10:53,360 --> 00:10:59,030 Por essa razão, você não pode querer ter essa solicitação get individual para um único post, 165 00:10:59,030 --> 00:11:03,210 e em vez disso você só quer uma solicitação get para a parede inteira. 166 00:11:03,210 --> 00:11:06,110 E então, se você está tentando encontrar um equilíbrio, porque - 167 00:11:06,110 --> 00:11:10,970 isso também vai depender da sua aplicação. 168 00:11:10,970 --> 00:11:13,430 Porque se você está esperando que as pessoas têm apenas 10 ou 20 mensagens de parede 169 00:11:13,430 --> 00:11:15,430 que vai ficar bem. 170 00:11:15,430 --> 00:11:17,390 Mas se você está esperando que eles têm milhares então esse pedido iria demorar muito, 171 00:11:17,390 --> 00:11:23,580 e assim que você pode querer adicionar um get-all-mensagens-desde parâmetro. 172 00:11:23,580 --> 00:11:26,580 >> Por tudo isso você provavelmente vai querer sincronizar seus dados em JSON - 173 00:11:26,580 --> 00:11:29,260 JavaScript Object Notation. 174 00:11:29,260 --> 00:11:34,600 Praticamente todas as línguas lida com JSON muito bem. 175 00:11:34,600 --> 00:11:40,880 JQuery tem essa função getJSON agradável que vai fazer todo o trabalho duro para você. 176 00:11:40,880 --> 00:11:47,390 E no PHP há também muito agradáveis ​​funções de comunicação JSON. 177 00:11:47,390 --> 00:11:52,660 Então, isso é provavelmente o melhor formato para o envio de seus modelos e para trás. 178 00:11:52,660 --> 00:11:56,570 >> Como um exemplo do que falamos até agora, 179 00:11:56,570 --> 00:12:00,520 aqui está um exemplo de fluxo para o seu gato aplicativo do Facebook. 180 00:12:00,520 --> 00:12:07,760 Ela começa com o seu navegador solicitando a URL do site base. 181 00:12:07,760 --> 00:12:15,470 O servidor provavelmente iria enviar mais de HTML estático e um pouco de JavaScript e CSS. 182 00:12:15,470 --> 00:12:19,170 Geralmente é melhor não fazer qualquer processamento no servidor. 183 00:12:19,170 --> 00:12:23,370 Você provavelmente não quer - 184 00:12:23,370 --> 00:12:28,360 que o servidor não está fazendo lá está indo para baixo a lista de postos de parede 185 00:12:28,360 --> 00:12:31,120 e gerar algum código HTML para cada um e de envio que acabou. 186 00:12:31,120 --> 00:12:34,960 Geralmente é melhor para fazer isso do lado do cliente, pois caso contrário 187 00:12:34,960 --> 00:12:38,580 cada vez que você quiser re-desenhar alguma coisa, você tem que fazer um pedido do servidor. 188 00:12:38,580 --> 00:12:42,450 E isso muito rapidamente dá-lhe um monte de cima. 189 00:12:42,450 --> 00:12:47,430 Geralmente é melhor só para navio envia HTML estático 190 00:12:47,430 --> 00:12:50,660 e, em seguida, JavaScript e CSS que vai fazer a renderização do lado do cliente. 191 00:12:50,660 --> 00:12:56,750 Assim que o material chega, 192 00:12:56,750 --> 00:13:03,500 então você pode ter - em JavaScript - você pode fazer pedidos para os dados de parede 193 00:13:03,500 --> 00:13:08,740 e coisas assim, e depois de que o servidor está basicamente fazendo consultas de banco de dados 194 00:13:08,740 --> 00:13:10,740 e verificar as permissões. 195 00:13:10,740 --> 00:13:16,690 A única coisa importante é que ele não pode enviar mais alguns outros usuários mensagens de parede 196 00:13:16,690 --> 00:13:19,220 que você não tem permissão para ver. 197 00:13:19,220 --> 00:13:28,050 Basicamente, pode ser uma camada de acesso a muito fina para o seu banco de dados, 198 00:13:28,050 --> 00:13:32,820 e, em seguida, toda a mostrar os dados - todos os pontos de vista e outras coisas - 199 00:13:32,820 --> 00:13:37,280 aqueles podem acontecer em seu navegador, e então quando você quer fazer um post ou algo 200 00:13:37,280 --> 00:13:40,000 você acabou de enviar um outro pedido. 201 00:13:40,000 --> 00:13:45,350 >> Há também algumas coisas extravagantes que você pode fazer em cima disso. 202 00:13:45,350 --> 00:13:49,550 Em termos de informações técnicas mais específicas, 203 00:13:49,550 --> 00:13:53,360 desenvolvimento em JavaScript simples pode ser um pouco doloroso, 204 00:13:53,360 --> 00:13:56,220 por isso há algumas bibliotecas e ferramentas que irão ajudá-lo muito com isso. 205 00:13:56,220 --> 00:14:03,690 Eu acho que todos vocês já deve ter ouvido falar sobre jQuery que faz fazer renderização de HTML 206 00:14:03,690 --> 00:14:08,890 e manipulação muito mais fácil - tem um monte de funções de fantasia para entrando e saindo, 207 00:14:08,890 --> 00:14:12,020 e fazer animações zippy. 208 00:14:12,020 --> 00:14:13,720 Há também esta biblioteca chamado Underscore.js. 209 00:14:13,720 --> 00:14:20,760 Ele tem um monte de funções de utilidade úteis, coisas que você esperaria JavaScript ter 210 00:14:20,760 --> 00:14:24,740 que realmente Doesnt - coisas como embaralhar um array, 211 00:14:24,740 --> 00:14:28,900 remoção de duplicatas de uma lista, ou achatamento uma lista de listas. 212 00:14:28,900 --> 00:14:30,900 Esta é apenas uma pequena amostra de código. 213 00:14:30,900 --> 00:14:36,520 Sublinhado tem uma tonelada dessas funções interessantes que você deseja que você teria todo o tempo. 214 00:14:36,520 --> 00:14:38,840 >> E depois há mais uma biblioteca que eu gostaria de passar um pouco de tempo em 215 00:14:38,840 --> 00:14:44,800 chamado Backbone.js porque Backbone realmente ajuda a lidar com modelos no lado do cliente 216 00:14:44,800 --> 00:14:47,210 e um monte de confusão que isso pode causar. 217 00:14:47,210 --> 00:14:53,550 Backbone dá-lhe esse conceito de modelos e coleções 218 00:14:53,550 --> 00:14:58,300 em JavaScript que são, basicamente, exatamente como objetos JavaScript 219 00:14:58,300 --> 00:15:04,900 em matrizes de JavaScript, mas eles têm eventos quando você muda suas propriedades. 220 00:15:04,900 --> 00:15:09,090 Assim como no JavaScript, você pode ter um evento quando um botão é clicado ou algo 221 00:15:09,090 --> 00:15:14,800 esses modelos Backbone e coleções Backbone irá transmitir coisas como 222 00:15:14,800 --> 00:15:17,510 que quando mudam. 223 00:15:17,510 --> 00:15:22,270 Isso significa que você pode simplesmente escrever algo como esse trecho de código aqui - 224 00:15:22,270 --> 00:15:27,530 este diz que, sempre que você adicionar qualquer coisa para a matriz mensagens que redesenhar toda a parede. 225 00:15:27,530 --> 00:15:34,270 E isto dizer sempre que o número de um posto de gosta de mudanças, 226 00:15:34,270 --> 00:15:38,970 você notificar o usuário de que alguém gostou de seu post. 227 00:15:38,970 --> 00:15:45,210 Ou sempre que qualquer propriedade de um posto de mudanças que você redesenhar o post. 228 00:15:45,210 --> 00:15:51,050 Coisas assim você vai economizar toneladas de complexidade, pois caso contrário 229 00:15:51,050 --> 00:15:55,440 se você não tiver algum quadro como este, em seguida, cada vez em seu código que você altere 230 00:15:55,440 --> 00:16:04,280 nada sobre um post, você tem que lembrar-se de chamar todas as funções tornam 231 00:16:04,280 --> 00:16:07,680 e coisas assim, e se você quiser adicionar algo novo que aconteceu 232 00:16:07,680 --> 00:16:10,680 cada vez que você modificou um post que você tem que passar por todos os lugares em sua 233 00:16:10,680 --> 00:16:14,610 código que você modificou um post e acrescentar que coisa nova. 234 00:16:14,610 --> 00:16:21,450 Uma estrutura como esta vai remover um monte de que a comunicação entre camadas 235 00:16:21,450 --> 00:16:28,280 que faz com que seu código complexo e difícil de manter. 236 00:16:28,280 --> 00:16:31,170 >> Há um pouco sobre pontos de vista também. 237 00:16:31,170 --> 00:16:35,960 Vou deixar a maior parte deste para Billy, porque eles não são tecnicamente muito difícil. 238 00:16:35,960 --> 00:16:43,540 Use jQuery para os seus pontos de vista. É praticamente como uma necessidade neste momento. 239 00:16:43,540 --> 00:16:46,290 Ele apenas torna tudo muito mais fácil. 240 00:16:46,290 --> 00:16:48,290 Há uma grande quantidade de bibliotecas. 241 00:16:48,290 --> 00:16:49,970 Se você tiver complicado elementos de interface do usuário, 242 00:16:49,970 --> 00:16:57,250 se você quer uma coisa auto-completa ou como uma daquelas multi-seletores de fantasia - 243 00:16:57,250 --> 00:17:04,790 se você quiser qualquer coisa assim, você provavelmente deve apenas procurar por aí 244 00:17:04,790 --> 00:17:08,130 e você pode encontrar uma boa biblioteca que vai fazer o que você quer. 245 00:17:08,130 --> 00:17:11,579 Billy vai explicar mais sobre as partes realmente difíceis de pontos de vista. 246 00:17:11,579 --> 00:17:17,530 Além disso, como uma nota lateral, Backbone tem algumas funcionalidades para tornar visualizações comunicar 247 00:17:17,530 --> 00:17:22,800 muito bem com modelos - olhar a documentação para todas estas bibliotecas, na verdade. 248 00:17:22,800 --> 00:17:28,270 Basta olhar para os docs. Eles são muito bem escrito e fácil de seguir. 249 00:17:28,270 --> 00:17:33,890 Em geral, você pode muito bem apenas o Google se você tiver problemas. 250 00:17:33,890 --> 00:17:36,370 Há uma grande quantidade de pessoas que os utilizam. 251 00:17:36,370 --> 00:17:42,020 Eu acho que isso é como uma nota final. 252 00:17:42,020 --> 00:17:48,770 >> Há também algumas coisas mais avançadas que você pode fazer 253 00:17:48,770 --> 00:17:53,400 se você está procurando para fazer o seu aplicativo web extra incrível. 254 00:17:53,400 --> 00:17:59,760 Você pode fazer - a nova especificação HTML5 tem um monte de coisas extravagantes que você pode fazer. 255 00:17:59,760 --> 00:18:05,780 O armazenamento local - o que é que você pode armazenar dados no navegador - 256 00:18:05,780 --> 00:18:09,470 ao invés de ter que voltar e ler o servidor para tudo, 257 00:18:09,470 --> 00:18:12,470 você pode manter um pouco dele no cliente e que permite que até mesmo pessoas - 258 00:18:12,470 --> 00:18:20,850 em alguns casos, pode até mesmo deixá-lo usar a página offline. 259 00:18:20,850 --> 00:18:26,980 Não há essa coisa chamada websockets que são um tipo diferente de comunicação de rede 260 00:18:26,980 --> 00:18:30,930 onde em vez de apenas lhe fazer um pedido, você recebe a resposta e está feito, 261 00:18:30,930 --> 00:18:35,240 você mantenha abrir uma conexão com o servidor e para que você possa fazer coisas como 262 00:18:35,240 --> 00:18:37,240 atualizações em tempo real. 263 00:18:37,240 --> 00:18:42,020 Então, se você estava tentando fazer um aplicativo de bate-papo, você pode usar websockets 264 00:18:42,020 --> 00:18:43,790 para se comunicar e para trás de modo que você não tem que manter a requerente, 265 00:18:43,790 --> 00:18:48,410 "Oh, servidor, alguém me enviar um bate-papo?" a cada 10 segundos ou algo assim. 266 00:18:48,410 --> 00:18:55,620 Há também um recurso de HTML5 interessante, onde você pode fazer parecer que 267 00:18:55,620 --> 00:18:58,340 o URL da página está mudando, sem nunca ter que recarregá-lo. 268 00:18:58,340 --> 00:19:03,230 Você pode usar botões Voltar e Avançar sem fazer um monte de pedidos de rede. 269 00:19:03,230 --> 00:19:14,660 Coisas como essa é realmente útil em termos de torná-lo rápido, mas também funciona como um aplicativo web deveria. 270 00:19:14,660 --> 00:19:17,680 >> Há também uma coisa chamada CoffeeScript. 271 00:19:17,680 --> 00:19:24,450 CoffeeScript é uma linguagem diferente, na verdade, que compila para baixo para JavaScript. 272 00:19:24,450 --> 00:19:30,080 Você poderia escrever todo o seu código em CoffeeScript, em seguida, executar este compilador, 273 00:19:30,080 --> 00:19:33,300 e ele cospe um arquivo JavaScript que você pode incluir em sua página web. 274 00:19:33,300 --> 00:19:38,860 A razão que CoffeeScript é bom é porque ele se livrar de um monte de 275 00:19:38,860 --> 00:19:44,760 casos estranhos que o JavaScript tem que equivale iguais, 276 00:19:44,760 --> 00:19:51,130 e iguais iguais fazer coisas diferentes, ou gosta - 277 00:19:51,130 --> 00:19:55,740 ele tem uma sintaxe mais agradável para lidar com matrizes e funções. 278 00:19:55,740 --> 00:20:00,460 Este é um pequeno trecho de CoffeeScript que produz uma lista de todas as praças 279 00:20:00,460 --> 00:20:04,900 a partir de 10 ^ 2 a 1 ^ 2 na ordem inversa. 280 00:20:04,900 --> 00:20:08,410 Como você pode ver, CoffeeScript frequentemente permite-lhe expressar em uma linha 281 00:20:08,410 --> 00:20:10,890 o que levaria 5 linhas de JavaScript. 282 00:20:10,890 --> 00:20:13,230 Ele pode fazer coisas muito mais fáceis. 283 00:20:13,230 --> 00:20:15,390 É um pouco de nova sintaxe para aprender em primeiro lugar, 284 00:20:15,390 --> 00:20:18,010 mas definitivamente vai fazer você mais produtivo no longo prazo. 285 00:20:18,010 --> 00:20:22,050 >> Você também pode usar outros idiomas no servidor de PHP - 286 00:20:22,050 --> 00:20:27,570 linguagens como Ruby, Python, ou há mesmo um projeto chamado node.js 287 00:20:27,570 --> 00:20:31,450 que permitirá que você use JavaScript no servidor. 288 00:20:31,450 --> 00:20:34,700 Pessoalmente, eu realmente, realmente odeio PHP. 289 00:20:34,700 --> 00:20:38,310 Eu só não gosto de trabalhar com ele. 290 00:20:38,310 --> 00:20:43,450 Se você também acha que é uma cluge terrível de uma língua, 291 00:20:43,450 --> 00:20:46,160 então você pode usar um desses em seu lugar. 292 00:20:46,160 --> 00:20:54,780 Em geral, se você quer fazer algo e você realmente não sei como você poderia fazê-lo, 293 00:20:54,780 --> 00:20:56,780 basta pesquisar na Internet. 294 00:20:56,780 --> 00:20:59,990 Há toneladas e toneladas de recursos, especialmente em - 295 00:20:59,990 --> 00:21:03,260 StackOverflow é um grande homem. 296 00:21:03,260 --> 00:21:06,400 É o site onde os programadores perguntas uns aos outros. 297 00:21:06,400 --> 00:21:09,690 Você pode ter correr para ele, se você estava tendo problemas em conjuntos de problemas CS50. 298 00:21:09,690 --> 00:21:16,820 E há toneladas de bibliotecas para fazer praticamente qualquer coisa que você deseja. 299 00:21:16,820 --> 00:21:21,710 Se você quiser fazer alguma coisa e você não sabe como fazê-lo, 300 00:21:21,710 --> 00:21:23,710 não pense que é impossível. 301 00:21:23,710 --> 00:21:26,160 Basta olhar ao redor e você pode encontrar alguns bons recursos. 302 00:21:26,160 --> 00:21:29,280 >> Como um general finalizar, 303 00:21:29,280 --> 00:21:33,650 os principais delivery são manter as coisas simples. 304 00:21:33,650 --> 00:21:36,010 Quanto mais complexo o seu código está no início 305 00:21:36,010 --> 00:21:40,370 e quanto mais você tentar e fazer coisas extravagantes, 306 00:21:40,370 --> 00:21:43,300 o que levará mais tempo para conseguir algo realmente funcional 307 00:21:43,300 --> 00:21:46,480 eo mais difícil será para mudar mais tarde. 308 00:21:46,480 --> 00:21:49,580 Então, faça as coisas da maneira burra, fácil primeiro. 309 00:21:49,580 --> 00:21:51,720 Para ir junto com isso, 310 00:21:51,720 --> 00:21:59,070 não tenha medo de jogar fora código antigo ou limpá-lo muito. 311 00:21:59,070 --> 00:22:05,320 Em geral, uma vez que você realmente tem algo de trabalho, 312 00:22:05,320 --> 00:22:09,640 é muito mais fácil para pensar que quando você ainda está nos estágios iniciais 313 00:22:09,640 --> 00:22:12,610 de como faço para colocar tudo isso junto. 314 00:22:12,610 --> 00:22:17,500 É melhor fazer o projeto mais idiota possível que trabalha 315 00:22:17,500 --> 00:22:22,270 e então melhorá-lo de forma iterativa do que tentar fazer tudo certo na primeira vez. 316 00:22:22,270 --> 00:22:28,330 Em termos de divisão de cliente-servidor, e tentar manter o seu servidor muito simples - 317 00:22:28,330 --> 00:22:33,030 apenas um banco de dados e alguns de autenticação e não faço qualquer trabalho duro lá. 318 00:22:33,030 --> 00:22:37,540 Faça todas as suas coisas complicadas no lado do cliente no navegador 319 00:22:37,540 --> 00:22:40,650 em JavaScript, tanto quanto você puder. 320 00:22:40,650 --> 00:22:43,420 Olhe ao redor de bibliotecas que tornam sua vida melhor. 321 00:22:43,420 --> 00:22:46,850 Sempre melhor usar o código que alguém escreveu 322 00:22:46,850 --> 00:22:49,850 se você - e não para escrevê-lo você mesmo. 323 00:22:49,850 --> 00:22:57,560 Há um monte de coisas na Internet. Google é seu melhor amigo. 324 00:22:57,560 --> 00:22:59,560 Google é o melhor amigo do programador. 325 00:22:59,560 --> 00:23:07,620 Sim, definitivamente não tenha medo de olhar ao redor para outras coisas. 326 00:23:07,620 --> 00:23:11,860 Tudo bem. E ao longo de Billy. 327 00:23:11,860 --> 00:23:14,600 >> [Billy] Na verdade, antes de eu começar com algumas coisas design, 328 00:23:14,600 --> 00:23:17,250 Alguém tem alguma pergunta para Ben sobre qualquer coisa que ele falou? 329 00:23:17,250 --> 00:23:20,290 Certo, bom. 330 00:23:20,290 --> 00:23:22,220 Mais uma vez, deixe-nos saber se alguma coisa não está claro 331 00:23:22,220 --> 00:23:25,420 ou se você gostaria de nos passar por cima de algo um pouco mais. 332 00:23:25,420 --> 00:23:30,330 Eu vou voltar um pouco e falar sobre as partes mais fundamentais de design. 333 00:23:30,330 --> 00:23:34,840 Ben mencionou o modelo chamado - desculpe, o modelo de sistema de visão controlador 334 00:23:34,840 --> 00:23:38,520 que é uma espécie de aspecto técnico, então eu vou olhar a vista, especificamente, 335 00:23:38,520 --> 00:23:42,930 e eu vou começar com a forma como você projetar uma visão que parece bom. 336 00:23:42,930 --> 00:23:50,540 Aqui é uma espécie de modelo muito básico para o nosso gato Facebook. 337 00:23:50,540 --> 00:23:54,190 Eu acho que existem alguns fundamentos em design de interface de usuário moderna 338 00:23:54,190 --> 00:23:56,190 que valem a pena pegar. 339 00:23:56,190 --> 00:23:58,210 Você pode notar que há um monte de espaço em branco por toda a página, 340 00:23:58,210 --> 00:24:00,790 muito espaço para as coisas. 341 00:24:00,790 --> 00:24:02,580 Não sinto que você tem para esmagar as coisas em uma página. 342 00:24:02,580 --> 00:24:06,700 Você quer deixar muito espaço aberto, e se você for a qualquer website moderno 343 00:24:06,700 --> 00:24:08,380 você vai ver que não há branco em todos os lugares. 344 00:24:08,380 --> 00:24:10,380 Há branco em lugares que você não esperaria. 345 00:24:10,380 --> 00:24:14,570 Você tem essa paleta de cores, e é sábio no início 346 00:24:14,570 --> 00:24:17,880 para escolher uma paleta de cores que você vai trabalhar e se desenvolver. 347 00:24:17,880 --> 00:24:22,250 Você também - ele ajuda a escolher um tipo de letra, e de que maneira você está tipo de trabalho com 348 00:24:22,250 --> 00:24:24,450 estes fundamentos concretos do projeto. 349 00:24:24,450 --> 00:24:26,910 Você tem o seu tipo, você tem as suas cores, e então você pode tipo de 350 00:24:26,910 --> 00:24:29,380 caber tudo na tão necessária. 351 00:24:29,380 --> 00:24:37,710 Então, como eu disse, com seu esquema de cores que deseja usar as cores mais ousadas de seu esquema de cores 352 00:24:37,710 --> 00:24:40,320 com moderação. Cabeçalhos são agradáveis. Botões são agradáveis ​​para ter realmente grandes, cores chamativas. 353 00:24:40,320 --> 00:24:43,710 Mas, em geral, se você tem um site que tem as cores em todos os lugares, 354 00:24:43,710 --> 00:24:47,250 todos olhando na cara, ele só parece confuso, e isso não é bom. 355 00:24:47,250 --> 00:24:50,430 Você quer usar geralmente cores claras. 356 00:24:50,430 --> 00:24:52,890 Tente, mais uma vez, escolher um esquema de cores muito coerente. 357 00:24:52,890 --> 00:24:56,640 Você pode ter estes pequenos salpicos de muita cor - 358 00:24:56,640 --> 00:25:00,240 que pode parecer muito bom, mas você quiser usá-los bastante moderação. 359 00:25:00,240 --> 00:25:04,270 >> Como eu disse, você quer ser mínima. Menos é sempre mais. 360 00:25:04,270 --> 00:25:07,430 Se você pode mostrar alguma coisa ou não apresentar alguma coisa, 361 00:25:07,430 --> 00:25:10,230 e você é do tipo sem saber se ele deve estar lá por padrão - 362 00:25:10,230 --> 00:25:13,400 provavelmente você é o melhor deixá-la para fora. Você sempre pode adicioná-lo mais tarde. 363 00:25:13,400 --> 00:25:16,620 Sim, manter as coisas simples. 364 00:25:16,620 --> 00:25:19,510 Mas o mais importante, você quer considerar vários projetos. 365 00:25:19,510 --> 00:25:23,520 Não pense que quando você faz um site, você tê-lo em sua cabeça que você vai 366 00:25:23,520 --> 00:25:26,310 tornar o site de uma determinada maneira, e ele vai ser exatamente assim. 367 00:25:26,310 --> 00:25:29,830 Vai ter o cabeçalho azul na parte superior ea barra lateral azul 368 00:25:29,830 --> 00:25:32,670 e então a coisa sub-cabeçalho amarelo. 369 00:25:32,670 --> 00:25:34,670 Você quer fazer vários modelos. 370 00:25:34,670 --> 00:25:37,350 Você pode - se você é bom com Photo Shop, pode abrir-se e que tipo de 371 00:25:37,350 --> 00:25:39,600 criar um site como você gosta de olhar. 372 00:25:39,600 --> 00:25:41,680 Se não, você pode apenas usar papel e caneta, 373 00:25:41,680 --> 00:25:44,000 mas arranhar-se vários projetos. 374 00:25:44,000 --> 00:25:47,000 Você quer ter basicamente um set-up, onde você tem lotes de projetos diferentes, 375 00:25:47,000 --> 00:25:50,810 e se alguém acaba de trabalho, então isso é ótimo. 376 00:25:50,810 --> 00:25:53,370 Se alguém acaba falhando, então você sempre tem um outro a quem recorrer. 377 00:25:53,370 --> 00:25:57,960 Em geral, não se sentem como você deve ser limitado 378 00:25:57,960 --> 00:26:00,830 para qualquer projeto que você inicialmente decidir. 379 00:26:00,830 --> 00:26:04,420 O design é muito variável, e de parte da importância do modelo 380 00:26:04,420 --> 00:26:09,480 sistema de visão controlador é que você pode trocar dentro e fora pontos de vista diferentes que você deseja. 381 00:26:09,480 --> 00:26:13,510 Você pode influenciar os dados de uma maneira, e então decidir, oh, na verdade, isso não funciona muito bem. 382 00:26:13,510 --> 00:26:19,190 Eu acho que é tipo de muito complicado ou há uma parte aqui que não está realmente trabalhando, 383 00:26:19,190 --> 00:26:22,150 então eu só vou abandonar totalmente este ponto de vista e de swap de uma forma totalmente nova. 384 00:26:22,150 --> 00:26:24,790 Nós ainda podemos usar os modelos antigos e os antigos controladores. 385 00:26:24,790 --> 00:26:27,490 Nós podemos fazer tudo no servidor e cliente como seria antes. 386 00:26:27,490 --> 00:26:32,850 Mas a onda real dos dados como apresentado vai ser ligeiramente diferente. 387 00:26:32,850 --> 00:26:35,840 >> Quanto realmente implementar o projeto que você quer, 388 00:26:35,840 --> 00:26:39,330 uma vez que você tem alguns projetos esboçados em papel ou Photo Shop ou qualquer outra coisa, 389 00:26:39,330 --> 00:26:42,120 há uma série de ferramentas que são disponibilizados para você. 390 00:26:42,120 --> 00:26:45,700 O primeiro que você está muito familiarizado com o que é seu HTML, PHP, ou qualquer outra coisa 391 00:26:45,700 --> 00:26:48,990 linguagem que você está usando apenas para codificar as páginas estáticas em seu site. 392 00:26:48,990 --> 00:26:51,990 Você trabalhou muito com HTML, que tipo de dá-lhe estas tags 393 00:26:51,990 --> 00:26:57,820 que você pode colocar as coisas em, e, basicamente, é uma forma de organizar o seu conteúdo. 394 00:26:57,820 --> 00:27:00,990 Por exemplo, você tem o cabeçalho lá em cima, então você vai ter uma tag de cabeçalho, 395 00:27:00,990 --> 00:27:05,770 e ele vai ter um texto dentro dele o que provavelmente vai ser em outra tag. 396 00:27:05,770 --> 00:27:08,380 Então você tem uma barra lateral, talvez com alguns links diferentes, 397 00:27:08,380 --> 00:27:10,160 e aqueles que vão ser todos em separar as etiquetas. 398 00:27:10,160 --> 00:27:13,870 Então, basicamente HTML em seu coração é uma forma de dividir a página como 399 00:27:13,870 --> 00:27:16,980 você eventualmente quer formatá-lo. 400 00:27:16,980 --> 00:27:18,980 Então, novamente, você já viu isso antes. 401 00:27:18,980 --> 00:27:20,540 Você é muito confortável com o trabalho com ele agora 402 00:27:20,540 --> 00:27:23,120 uma vez que você fez a última pset esperamos, 403 00:27:23,120 --> 00:27:26,150 de modo que não deve ser problema. 404 00:27:26,150 --> 00:27:31,280 >> Então você tem CSS que basicamente lida com todos os aspectos de design estáticos. 405 00:27:31,280 --> 00:27:35,320 Seria lidar com todas as cores, todos do posicionamento de diferentes elementos, 406 00:27:35,320 --> 00:27:36,840 onde se encontram com respeito um ao outro, 407 00:27:36,840 --> 00:27:41,530 como eles são grandes, os diferentes tipos de posicionamentos que você teria - 408 00:27:41,530 --> 00:27:46,030 em outras palavras, você pode ter as coisas fixas de modo que quando você rolar para baixo eles ficam, 409 00:27:46,030 --> 00:27:48,700 ou você pode ter as coisas em relação a outros elementos. 410 00:27:48,700 --> 00:27:50,730 Todos esse tipo de coisa é em CSS. 411 00:27:50,730 --> 00:27:54,630 Além disso, você pode fazer diferentes decorações, você pode ter as cores do texto, 412 00:27:54,630 --> 00:27:56,630 efeitos de texto, todos esse tipo de coisa. 413 00:27:56,630 --> 00:28:00,360 Ben deu um bom seminário sobre este último fim de semana, 414 00:28:00,360 --> 00:28:04,450 e então eu definitivamente verificar isso, se você pretende estar fazendo algumas coisas extravagantes com CSS. 415 00:28:04,450 --> 00:28:09,850 CSS3 é realmente a mais nova versão do CSS, e pode fazer todo tipo de coisas realmente agradáveis. 416 00:28:09,850 --> 00:28:14,750 Ele pode fazer gradientes, você pode ter agradáveis, cantos arredondados, você pode fazer todo tipo de coisa 417 00:28:14,750 --> 00:28:17,940 para fazer seu site olhar mais moderno e chique. 418 00:28:17,940 --> 00:28:22,150 >> A próxima ferramenta é JavaScript e jQuery que Ben falou um pouco sobre, 419 00:28:22,150 --> 00:28:24,150 mas eu vou ficar um pouco mais para dentro. 420 00:28:24,150 --> 00:28:28,100 JavaScript, como você trabalhou com ele um pouco, ou pelo menos visto em aula, 421 00:28:28,100 --> 00:28:31,870 é uma espécie de modo de fazer coisas de forma dinâmica em HTML. 422 00:28:31,870 --> 00:28:35,950 HTML, como você sabe, é estático, então quando você tem HTML você não pode modificá-lo. 423 00:28:35,950 --> 00:28:40,050 Mas JavaScript, de certa forma, é uma maneira de ser capaz de modificar HTML. 424 00:28:40,050 --> 00:28:44,520 Assim, você pode fazer isso, e isso é ótimo, mas JavaScript é realmente uma dor de trabalhar. 425 00:28:44,520 --> 00:28:49,050 É tão longo e obtuso e fazer até mesmo as coisas mais simples 426 00:28:49,050 --> 00:28:51,630 requer lotes de linhas de JavaScript. 427 00:28:51,630 --> 00:28:55,410 Então, jQuery é basicamente uma biblioteca para JavaScript que simplifica tudo isso. 428 00:28:55,410 --> 00:28:59,880 Ela diz, tudo bem, se você quer ter uma caixa quadrada vir da esquerda 429 00:28:59,880 --> 00:29:03,980 e desaparecer na página para que ele está no meio, em JavaScript que levaria - 430 00:29:03,980 --> 00:29:06,340 Eu não sei, cem linhas que fazer, e que seria uma dor, 431 00:29:06,340 --> 00:29:10,540 e você sair dela odiando tudo sobre programação web. 432 00:29:10,540 --> 00:29:15,380 JQuery você tem basicamente o elemento-dot-fade-in, ou algo assim. 433 00:29:15,380 --> 00:29:18,580 Funções Assim, muito, muito simples que permitem que você faça todos os tipos de animações divertidas 434 00:29:18,580 --> 00:29:20,580 e esse tipo de coisa. 435 00:29:20,580 --> 00:29:23,300 A outra coisa que estes dois são realmente bons para está apenas fazendo coisas dinâmicas 436 00:29:23,300 --> 00:29:25,300 com o site. 437 00:29:25,300 --> 00:29:28,370 Então, ao invés de apenas ter sua página HTML - que exibe alguns dados, mas na verdade não 438 00:29:28,370 --> 00:29:32,130 fazer nada - JavaScript e jQuery vai deixar você tem botões que você pode clicar em, 439 00:29:32,130 --> 00:29:37,960 e você pode arrastar elementos e re-forma-los e classificá-los, e ter novos elementos 440 00:29:37,960 --> 00:29:40,500 adicionado ou removido. Você pode adicionar-delete, esse tipo de coisa. 441 00:29:40,500 --> 00:29:44,570 Então, jQuery faz toneladas de coisas legais. 442 00:29:44,570 --> 00:29:48,840 E Vipul está realmente dando um seminário sobre isso hoje, eu acredito que, em 5 horas, 443 00:29:48,840 --> 00:29:51,220 por isso, se você pode ficar por muito tempo, que seria - 5 ou 4? 444 00:29:51,220 --> 00:29:54,930 Quatro. Desculpe. Na verdade, é logo após isso, então eu recomendaria 445 00:29:54,930 --> 00:29:56,680 aderindo ao redor para ele se você pode. 446 00:29:56,680 --> 00:30:00,180 JQuery é super, super útil, e você vai ser capaz de fazer um monte de coisas muito legais com ela 447 00:30:00,180 --> 00:30:03,460 para praticamente qualquer projeto de desenvolvimento web. 448 00:30:03,460 --> 00:30:06,200 >> Agora vou entrar em uma espécie de distinção. 449 00:30:06,200 --> 00:30:08,210 Estive falando basicamente sobre interface do usuário. 450 00:30:08,210 --> 00:30:11,510 Interface do usuário é apenas o design do site. 451 00:30:11,510 --> 00:30:13,780 Mas há outro tipo de conceito que é a experiência do usuário. 452 00:30:13,780 --> 00:30:15,900 Os dois são muito diferentes. 453 00:30:15,900 --> 00:30:19,440 Interface é definitivamente parte da experiência. 454 00:30:19,440 --> 00:30:21,340 Em outras palavras, quando você vai a um site, você olha para a interface. 455 00:30:21,340 --> 00:30:22,960 Isso é parte de como você experimenta o site. 456 00:30:22,960 --> 00:30:24,960 Mas a experiência do usuário é mais do que isso. 457 00:30:24,960 --> 00:30:29,910 A experiência do usuário é sobre o que a impressão de que o usuário obtém a partir de seu site é. 458 00:30:29,910 --> 00:30:31,910 Então, obviamente, a interface é uma parte disso. 459 00:30:31,910 --> 00:30:35,340 E é definitivamente uma parte necessária, mas não é suficiente. 460 00:30:35,340 --> 00:30:38,790 Em outras palavras, se você tem uma interface agradável, e é bonita e colorida e tudo isso, 461 00:30:38,790 --> 00:30:43,650 isso é ótimo, mas se o usuário vai para o seu site, vê um layout bonito e ele é confundido por 462 00:30:43,650 --> 00:30:47,060 tudo, não tem idéia de como fazer qualquer coisa, então, obviamente, você fez uma realmente 463 00:30:47,060 --> 00:30:48,930 pobre website. 464 00:30:48,930 --> 00:30:50,930 Esse é o tipo de experiência do usuário onde vem dentro 465 00:30:50,930 --> 00:30:54,570 Vou falar um pouco sobre o projeto UX - UX é curto para a experiência do usuário - 466 00:30:54,570 --> 00:30:58,050 e tipo de como você pode ter certeza de que você tem uma boa experiência do usuário. 467 00:30:58,050 --> 00:31:04,330 O primeiro ponto é que você pode criar um site onde um usuário pode fazer qualquer coisa que 468 00:31:04,330 --> 00:31:06,820 que o usuário possivelmente quer. 469 00:31:06,820 --> 00:31:08,940 Mas se o usuário não consegue descobrir como fazer essas coisas - 470 00:31:08,940 --> 00:31:12,850 em outras palavras, se o usuário não tiver uma boa idéia quando eles vão para o seu site de, 471 00:31:12,850 --> 00:31:17,660 "Oh, se eu quiser atualizar o meu perfil, então eu clicar nesse botão, ou se eu quiser postar em 472 00:31:17,660 --> 00:31:20,850 mural de alguém, então eu vou para sua parede e clique em uma caixinha. " 473 00:31:20,850 --> 00:31:24,410 Se o usuário não sabe disso, então você efetivamente não têm, na verdade, 474 00:31:24,410 --> 00:31:27,080 implementados correctamente essa funcionalidade. 475 00:31:27,080 --> 00:31:30,900 Parte da implementação de uma funcionalidade é que os usuários são realmente capazes de usá-lo. 476 00:31:30,900 --> 00:31:34,810 E isso pode ser frustrante - que você pode fazer um site, e pode fazer todos os tipos de 477 00:31:34,810 --> 00:31:37,810 coisas maravilhosas, mas depois você vai ter pessoas testá-lo e dizer: "Não posso fazer isso. 478 00:31:37,810 --> 00:31:39,770 Por que ele não pode fazer isso? ", E você vai dizer-lhes para trás, 479 00:31:39,770 --> 00:31:44,420 "Bem, pode. Você apenas tem que ir para o menu drop-down 7 neste obscuro 480 00:31:44,420 --> 00:31:48,470 página que só é encontrado por um link no canto inferior direito mão "ou algo assim. 481 00:31:48,470 --> 00:31:50,430 Obviamente, você não quer isso. 482 00:31:50,430 --> 00:31:53,420 Você quer que ele seja claro para os usuários o que eles devem fazer, 483 00:31:53,420 --> 00:31:56,240 e ela deve ser simples e intuitivo para eles. 484 00:31:56,240 --> 00:32:01,180 >> Outra coisa que você quer tentar fazer é, se alguém está indo para ir para o seu site 485 00:32:01,180 --> 00:32:05,520 e 9 em cada 10 vezes fazer a ação A, e 1 em cada 10 vezes fazer a ação B, 486 00:32:05,520 --> 00:32:08,950 você provavelmente vai querer centrar a sua experiência sobre a ação A. 487 00:32:08,950 --> 00:32:12,240 Em outras palavras, você quer fazê-lo muito, muito claro como fazer A. 488 00:32:12,240 --> 00:32:15,980 Centro front-e-A deve ser - ir para o site, vê-lo, oh, é logo ali. 489 00:32:15,980 --> 00:32:20,850 Considerando B, obviamente, você quer ser claro, mas você pode deixá-lo um pouco mais 490 00:32:20,850 --> 00:32:22,850 em segundo plano. 491 00:32:22,850 --> 00:32:24,640 David dá um bom exemplo disso na palestra, 492 00:32:24,640 --> 00:32:26,640 que é o sistema de Boston t. 493 00:32:26,640 --> 00:32:29,440 Quando você vai para o Boston T e você quer comprar um bilhete, 494 00:32:29,440 --> 00:32:32,700 você tem que começar em 5 menus que você possa realmente comprar um bilhete 495 00:32:32,700 --> 00:32:37,130 para um valor de US $ 2, US $ 2,50, que é o quanto é preciso para andar de metrô 496 00:32:37,130 --> 00:32:39,130 em uma direção. 497 00:32:39,130 --> 00:32:41,600 Isso é um problema porque a maioria das pessoas que estão andando de metrô 498 00:32:41,600 --> 00:32:44,880 provavelmente só quero ir para um lugar, comprar o seu bilhete, pegar imediatamente. 499 00:32:44,880 --> 00:32:47,550 Não faz sentido que eles têm que passar por um monte de menus diferentes 500 00:32:47,550 --> 00:32:49,550 para chegar lá. 501 00:32:49,550 --> 00:32:51,760 A melhor experiência de usuário seria um botão rápido na primeira página 502 00:32:51,760 --> 00:32:54,760 que apenas diz: "comprar um bilhete só de ida", e que iria colocar em todos o padrão 503 00:32:54,760 --> 00:32:58,550 valores padrão, e então se alguém quiser comprar um bilhete diferente do que isso, 504 00:32:58,550 --> 00:33:01,690 eles ainda, é claro, tem a opção de, mas você otimizado para 505 00:33:01,690 --> 00:33:04,080 o caso de uso comum que é realmente importante. 506 00:33:04,080 --> 00:33:06,830 Você pode ver exemplos disso no Facebook, certo? 507 00:33:06,830 --> 00:33:09,410 Se você vai para o Facebook e você quiser postar um status, 508 00:33:09,410 --> 00:33:11,710 é bem no topo que é o que muitas vezes você quer fazer. 509 00:33:11,710 --> 00:33:14,730 Assim que você entrar na página, você pode fazer as coisas mais comuns que 510 00:33:14,730 --> 00:33:16,730 você quer fazer. 511 00:33:16,730 --> 00:33:17,550 Se você quer fazer as coisas um pouco mais complicadas, como, 512 00:33:17,550 --> 00:33:21,070 dizer que eu quero ir para a parede do meu amigo e postar uma foto sobre ela - 513 00:33:21,070 --> 00:33:24,810 que eu vou querer fazer muitas vezes, mas não tão frequentemente como postar atualizações de status - 514 00:33:24,810 --> 00:33:28,200 Então, nesse caso, eu digitar o seu nome na caixa na parte superior, clique no seu perfil, 515 00:33:28,200 --> 00:33:31,680 e então, ainda assim, é bem no topo há uma vez que eu comecei ao seu perfil. 516 00:33:31,680 --> 00:33:38,240 Mais uma vez, eu otimizado com prioridade para os casos de uso comum mais. 517 00:33:38,240 --> 00:33:41,800 >> Outra coisa importante é que muitas vezes as pessoas vão espécie de tentar contornar este 518 00:33:41,800 --> 00:33:44,890 dizendo, ok, então eu fiz o site e as pessoas estão encontrando-se confuso, 519 00:33:44,890 --> 00:33:46,110 e isso é um problema, certo? 520 00:33:46,110 --> 00:33:49,210 Obviamente, eu não quero que as pessoas se confunda com o conteúdo do meu site. 521 00:33:49,210 --> 00:33:53,210 Mas a maneira de resolver isso não é ter algo pop-up dizendo: 522 00:33:53,210 --> 00:33:55,290 hey, eu vou ensiná-lo a usar este site. 523 00:33:55,290 --> 00:33:58,130 Passo 1 - clique neste botão. Passo 2 - clique aqui. 524 00:33:58,130 --> 00:34:03,080 Claro, isso é uma maneira de contornar isso - é uma maneira que você pode dizer às pessoas o que fazer, mas é 525 00:34:03,080 --> 00:34:05,080 realmente não é o caminho ideal. 526 00:34:05,080 --> 00:34:07,420 Se eu for para um site e de repente eu estou bombardeado com este tutorial que está me dizendo 527 00:34:07,420 --> 00:34:11,739 o que fazer e para onde ir e tudo isso, isso não é divertido para mim. 528 00:34:11,739 --> 00:34:13,739 Não é uma boa experiência para mim. 529 00:34:13,739 --> 00:34:17,130 É um tipo de dor. Eu quero apenas começar a fazer outras coisas. 530 00:34:17,130 --> 00:34:19,449 As pessoas estão indo para fechar a sua caixa de diálogo, 531 00:34:19,449 --> 00:34:23,580 ou sair do tutorial, não sei o que fazer, e depois queixam-se porque 532 00:34:23,580 --> 00:34:25,580 você não disse a eles o que fazer. 533 00:34:25,580 --> 00:34:29,530 A maneira de resolver isso não é dando qualquer tipo de tutorial ou direções - 534 00:34:29,530 --> 00:34:31,530 qualquer coisa assim. 535 00:34:31,530 --> 00:34:33,719 Por mais que você pode evitá-lo, você realmente quer mostrar ao usuário o que fazer 536 00:34:33,719 --> 00:34:36,429 apenas pela natureza da forma como o site é colocado para fora. 537 00:34:36,429 --> 00:34:39,090 Em outras palavras, se eu for para o Facebook sem fazer login, 538 00:34:39,090 --> 00:34:40,920 a primeira coisa que eu vejo na página principal - 539 00:34:40,920 --> 00:34:44,480 é uma pequena caixa de login. Então, duh. Eu tenho para entrar É ali. 540 00:34:44,480 --> 00:34:48,030 Considerando que, se eu fosse para o Facebook e eu tinha que clicar um pouco link na parte inferior 541 00:34:48,030 --> 00:34:51,920 que disse 'log in' eo resto da página era apenas uma espécie de imagem ou algo assim, 542 00:34:51,920 --> 00:34:54,820 Eu realmente não sei o que fazer, certo? Gostaria de ser confundido. 543 00:34:54,820 --> 00:34:58,590 Então, poderia dizer-me para ir lá em baixo e clique no botão para iniciar sessão, 544 00:34:58,590 --> 00:35:01,080 ou o registo no botão poderia ser bem no topo, onde eu vou vê-lo. 545 00:35:01,080 --> 00:35:04,780 Você quer sempre estar mostrando ao usuário o que fazer, 546 00:35:04,780 --> 00:35:06,750 e que deve ser inerente à própria página. 547 00:35:06,750 --> 00:35:09,880 >> Quando você está pensando em projetos e ridicularizando-se diferentes formas de 548 00:35:09,880 --> 00:35:13,810 expressando seu site, você realmente quer pensar sobre o que os usuários estão indo para 549 00:35:13,810 --> 00:35:19,380 estar fazendo e como você pode mostrar-lhes o que fazer. 550 00:35:19,380 --> 00:35:23,530 Uma última coisa é o teste é muito, muito importante. 551 00:35:23,530 --> 00:35:27,400 É ótimo ter alguém - ter um amigo, peça a alguém que você não conhece ainda - 552 00:35:27,400 --> 00:35:30,420 que nunca viu o local antes de utilizar o site. 553 00:35:30,420 --> 00:35:33,650 Porque você está trabalhando no local por horas, você foi olhando para ele, 554 00:35:33,650 --> 00:35:36,670 e você sabe exatamente o que fazer então, obviamente, você vai estar testando o 555 00:35:36,670 --> 00:35:39,520 coisas que você tem trabalhado e que você sabe trabalho. 556 00:35:39,520 --> 00:35:42,680 Mas, se alguém vem e usa o site que nunca usou antes, 557 00:35:42,680 --> 00:35:46,880 isso é uma experiência única, porque você tem alguém que não tem conhecimento prévio 558 00:35:46,880 --> 00:35:51,530 do site que entra nele, então eles vão ter efetivamente não sabia o que fazer 559 00:35:51,530 --> 00:35:54,890 ou que tipo de casos de uso estão presentes para eles. 560 00:35:54,890 --> 00:36:00,930 Isso é ótimo. Isso é único, porque eles são, essencialmente, uma pessoa com um espaço em branco para a mente. 561 00:36:00,930 --> 00:36:03,750 Eles podem lhe dizer se algo é confusa ou pouco clara. 562 00:36:03,750 --> 00:36:07,580 Eles podem lhe dar uma idéia do que exatamente a experiência do usuário de seu site é. 563 00:36:07,580 --> 00:36:10,630 Pode ser muito difícil dizer que você mesmo, então definitivamente eu incentivá-lo 564 00:36:10,630 --> 00:36:13,640 como você está desenvolvendo seus projetos - se você está fazendo projetos baseados na web - 565 00:36:13,640 --> 00:36:18,290 para levar as pessoas usando o site, o mais cedo você tem algum tipo de demonstração funcional. 566 00:36:18,290 --> 00:36:25,330 >> Agora eu vou falar um pouco sobre como gerenciar um projeto de desenvolvimento web. 567 00:36:25,330 --> 00:36:28,900 Passamos sobre como você pode fazer o lado back-end técnico, 568 00:36:28,900 --> 00:36:31,050 como você pode criar um site muito bom, 569 00:36:31,050 --> 00:36:34,150 e isso é ótimo se você está trabalhando por si mesmo, mas - 570 00:36:34,150 --> 00:36:37,300 mesmo se você estiver trabalhando por si mesmo e, especialmente, se você estiver trabalhando em uma equipe, 571 00:36:37,300 --> 00:36:39,580 gerenciamento de projetos torna-se um grande problema. 572 00:36:39,580 --> 00:36:42,340 Você já ouviu falar sobre tipo de gerenciamento de projetos em diferentes formas, desde 573 00:36:42,340 --> 00:36:45,410 escola primária quando lhe foi dito o trabalho em grupo. 574 00:36:45,410 --> 00:36:46,820 Você tem que cooperar, comunicar, tudo isso. 575 00:36:46,820 --> 00:36:49,620 Isso tudo ainda se aplica aqui, mas existem algumas circunstâncias únicas com 576 00:36:49,620 --> 00:36:54,910 ciência da computação que você deseja estar ciente de, e você quer ter certeza de tratar bem. 577 00:36:54,910 --> 00:36:58,050 Vou falar primeiro um pouco sobre a equipe que você vai estar dentro 578 00:36:58,050 --> 00:37:03,280 É muito importante escolher o tamanho certo de uma equipe para trabalhar em, 579 00:37:03,280 --> 00:37:05,890 e em seu projeto final eu acho que você tem a opção de escolher 580 00:37:05,890 --> 00:37:08,610 entre 1 e 4 pessoas, se eu estou correto. 581 00:37:08,610 --> 00:37:12,050 Você quer ter certeza de que você não está apenas escolhendo o número de pessoas 582 00:37:12,050 --> 00:37:14,950 que quer trabalhar com eles, porque são seus amigos. 583 00:37:14,950 --> 00:37:18,170 Você quer escolher um time que é um bom tamanho e que vai começar o trabalho feito. 584 00:37:18,170 --> 00:37:22,700 Há um off comércio de ter mais pessoas contra menos pessoas. 585 00:37:22,700 --> 00:37:25,320 Se você tem mais pessoas, obviamente, mais trabalho pode ser feito 586 00:37:25,320 --> 00:37:28,450 porque você tem um monte de gente, um monte de código, muitas idéias, 587 00:37:28,450 --> 00:37:29,870 e isso é tudo ótimo. 588 00:37:29,870 --> 00:37:32,590 Mas também exige muito mais de gestão e muito mais a comunicação. 589 00:37:32,590 --> 00:37:34,720 Em outras palavras, se você tem quatro pessoas que trabalham no mesmo projeto 590 00:37:34,720 --> 00:37:39,200 e todos eles estão editando o mesmo código, mais ou menos que todo o tipo de necessidade de saber 591 00:37:39,200 --> 00:37:40,920 o que está acontecendo para que ele requer que você - 592 00:37:40,920 --> 00:37:44,580 se você adicionar uma nova função que você meio que tenho para dizer às pessoas - estou adicionando este, 593 00:37:44,580 --> 00:37:48,510 Eu estou mudando isso dessa maneira - especialmente se você entrar no coisas realmente profunda 594 00:37:48,510 --> 00:37:52,730 como os modelos e os controladores que estão realmente indo para influenciar a forma como o site funciona. 595 00:37:52,730 --> 00:37:54,500 Toda a equipe precisa estar ciente de que, 596 00:37:54,500 --> 00:37:58,140 então você precisa se certificar de que você não está escolhendo muito grande de uma equipe que vai ser difícil 597 00:37:58,140 --> 00:37:59,970 para fazer essa comunicação. 598 00:37:59,970 --> 00:38:02,930 Você também não quer escolher um time pequeno o suficiente para que você não vai 599 00:38:02,930 --> 00:38:06,250 ser capaz de comunicar, porque é só você. 600 00:38:06,250 --> 00:38:11,270 >> Outra coisa a considerar é o equilíbrio de onde as habilidades das pessoas são. 601 00:38:11,270 --> 00:38:14,350 É ótimo se você é realmente todos os bons programadores. 602 00:38:14,350 --> 00:38:17,050 Mas se você é todas as pessoas de back-end, em seguida, o seu site não vai olhar muito bom 603 00:38:17,050 --> 00:38:20,860 porque você tem este grande banco de dados, e ele faz consultas de pesquisa super-rápido - 604 00:38:20,860 --> 00:38:26,130 o que é ótimo - mas quando você vai para ele, é como um site de 1990 com vermelho e azul 605 00:38:26,130 --> 00:38:30,370 em todos os lugares, e isso não é bom. 606 00:38:30,370 --> 00:38:34,210 Note-se que Ben e eu trabalhando em equipe são muito agradáveis, porque eu sou uma espécie de mais 607 00:38:34,210 --> 00:38:38,030 na extremidade dianteira, ambos interagem no meio-end, e Ben é realmente bom com o material de back-end, 608 00:38:38,030 --> 00:38:43,550 assim que funciona muito bem porque nós podemos projetar qualquer site e, basicamente, os buracos 609 00:38:43,550 --> 00:38:47,580 nesse site que precisam ser preenchidos pode ser preenchido por qualquer um de nós, ou possivelmente ambos. 610 00:38:47,580 --> 00:38:50,210 Você quer ter certeza de que não há buracos em sua equipe. 611 00:38:50,210 --> 00:38:51,180 Tudo bem se há um pouco de sobreposição. 612 00:38:51,180 --> 00:38:53,670 Em outras palavras, se você tem 2 pessoas que são boas com back-end, 613 00:38:53,670 --> 00:38:57,250 que pode ser bom, mas também porque eles podem ajudar uns aos outros com problemas 614 00:38:57,250 --> 00:38:58,820 que eles estão tendo. 615 00:38:58,820 --> 00:39:02,590 Ele pode ser um problema se você só tem uma pessoa que é responsável por uma determinada coisa 616 00:39:02,590 --> 00:39:06,650 e se deparam com um problema, então você quer ter um pouco de sobreposição 617 00:39:06,650 --> 00:39:10,760 mas o mais importante quer ter a certeza de que todos os possíveis buracos são preenchidos. 618 00:39:10,760 --> 00:39:17,550 >> A última coisa - e isso deveria ser óbvio, mas muitas vezes não é. 619 00:39:17,550 --> 00:39:19,550 Você quer realmente estar se divertindo. 620 00:39:19,550 --> 00:39:23,360 O ponto deste projeto final em CS50 e muitas vezes o ponto de desenvolvimento web em geral 621 00:39:23,360 --> 00:39:26,360 não é apenas para fazer um trabalho, porque ele precisa fazer. 622 00:39:26,360 --> 00:39:29,140 Você realmente quer se divertir, e você quer estar fazendo algo 623 00:39:29,140 --> 00:39:31,180 que está motivando a trabalhar nele. 624 00:39:31,180 --> 00:39:33,650 Se o que você está fazendo é uma dor para sentar e trabalhar, 625 00:39:33,650 --> 00:39:35,650 então você não está escolhendo o projeto certo. 626 00:39:35,650 --> 00:39:37,730 Você quer escolher algo que você achar interessante, 627 00:39:37,730 --> 00:39:41,150 você realmente quer ver o resultado, você está animado quando você começa uma nova idéia sobre 628 00:39:41,150 --> 00:39:44,700 algo que você poderia fazer - por isso há todos os tipos de projetos lá que eu tenho certeza 629 00:39:44,700 --> 00:39:47,290 você pode encontrar - todo mundo tem algo que realmente intriga-los 630 00:39:47,290 --> 00:39:49,290 se eles estão fazendo um projeto baseado na web. 631 00:39:49,290 --> 00:39:52,210 Eu vou dizer isso de novo agora. 632 00:39:52,210 --> 00:39:54,520 Se o seu projeto parece ser uma dor e você não quer trabalhar com ele, 633 00:39:54,520 --> 00:39:57,260 escolher outro projeto. Escolha algo que realmente te inspira. 634 00:39:57,260 --> 00:40:00,260 >> Ben mencionou esse conceito de iteração um pouco, e eu quero passar por isso um pouco. 635 00:40:00,260 --> 00:40:08,250 É muito importante trabalhar em jorros onde você obter algo funcional. 636 00:40:08,250 --> 00:40:13,420 Ele pode ser grande se você tem esse plano para um site que vai fazer A, B, e C, 637 00:40:13,420 --> 00:40:16,000 e, eventualmente, ele vai chegar lá. 638 00:40:16,000 --> 00:40:18,600 Mas você está preso nesta fase em que você está trabalhando nisso e trabalhar nele, 639 00:40:18,600 --> 00:40:23,330 mas nada está sendo feito. Você não tem nada a ver e uma coisa tangível, funcional. 640 00:40:23,330 --> 00:40:27,940 O que você realmente quer fazer, tanto quanto parece um tipo de dor, por vezes, a 641 00:40:27,940 --> 00:40:32,300 trabalhar em algo e, em seguida, tipo de cap-lo para que ele seja pelo menos em um estábulo, em execução 642 00:40:32,300 --> 00:40:34,910 versão, mesmo que ele não tem todas as características que você deseja. 643 00:40:34,910 --> 00:40:37,690 E talvez há alguns recursos que você realmente deseja adicionar, mas você simplesmente não pode 644 00:40:37,690 --> 00:40:41,830 porque você deseja obter este site a um ponto funcional. 645 00:40:41,830 --> 00:40:44,400 E assim que você quer meio que tem todo o processo de desenvolvimento parecido com isso. 646 00:40:44,400 --> 00:40:47,810 Você quer começar por algum lado funcional - ou essencialmente começar com nada - 647 00:40:47,810 --> 00:40:49,890 mas você quer chegar a algum lugar muito básico e funcional. 648 00:40:49,890 --> 00:40:54,940 E, novamente, fazer uma espécie de salto e chegar a algum lugar funcional novamente. 649 00:40:54,940 --> 00:40:59,190 Você lentamente vai construir, e que poderia ir um pouco mais lento do que seria de outra forma, 650 00:40:59,190 --> 00:41:03,000 mas, a longo prazo, se você está constantemente preso nesta fase meio termo onde 651 00:41:03,000 --> 00:41:06,380 na verdade, não tem nada de trabalho, ele pode ser realmente uma grande frustração 652 00:41:06,380 --> 00:41:09,970 para trabalhar em seu projeto, porque você está sempre tão perto de fazê-lo funcionar, 653 00:41:09,970 --> 00:41:12,130 e ele nunca realmente trabalhando. 654 00:41:12,130 --> 00:41:14,810 Você quer trabalhar nestes surtos funcionais, 655 00:41:14,810 --> 00:41:17,950 e você também quiser fazer alguma reflexão após cada um. 656 00:41:17,950 --> 00:41:21,260 Em outras palavras, quando você está em um ponto onde o site está agora a trabalhar - 657 00:41:21,260 --> 00:41:24,790 ele não tem tudo o que você gosta, mas faz algumas coisas - 658 00:41:24,790 --> 00:41:28,870 você quer pensar, tudo bem, é neste local realizar o objetivo que me propus a fazer? 659 00:41:28,870 --> 00:41:33,410 Em outras palavras, se o site vai fazer X, é o que tenho a trabalhar na direção de X? 660 00:41:33,410 --> 00:41:36,450 São todas as funcionalidades que eu queria lá? 661 00:41:36,450 --> 00:41:39,340 E além disso, é que serve o propósito geral que eu quero? 662 00:41:39,340 --> 00:41:43,200 Se você acha que seu site está começando a virar numa direção diferente 663 00:41:43,200 --> 00:41:47,330 ou talvez as coisas meio que não estão funcionando para fora, ele pode ser hora de mudar de marcha um pouco. 664 00:41:47,330 --> 00:41:51,700 Em outras palavras, vale a pena considerar - vale a pena jogar fora idéias, se necessário 665 00:41:51,700 --> 00:41:57,950 e considerando que eu estou realmente trabalhando para o que eu quero ser. 666 00:41:57,950 --> 00:42:00,760 >> Eu acredito que esse é o meu próximo ponto. Não tenha medo de abandonar idéias. 667 00:42:00,760 --> 00:42:03,750 Só porque você gastou muitas horas trabalhando em um recurso 668 00:42:03,750 --> 00:42:07,890 e, finalmente, tenho que trabalhar, mas ele realmente não está indo tão bem - 669 00:42:07,890 --> 00:42:12,690 como não é tão útil ou usuários estão tendo problemas para usá-lo - esse tipo de coisa - 670 00:42:12,690 --> 00:42:15,300 Não tenha medo de jogar fora. 671 00:42:15,300 --> 00:42:17,650 É uma merda que você já gastou muito tempo trabalhando nisso, 672 00:42:17,650 --> 00:42:21,870 mas no final você não quer um site que é uma espécie de elaborada por essas peças que 673 00:42:21,870 --> 00:42:25,380 tipo de trabalho, mas não são muito bem servidos. 674 00:42:25,380 --> 00:42:27,990 Além disso, não tenha medo de abraçar novas idéias. 675 00:42:27,990 --> 00:42:30,050 Se alguém vem e diz, hey, que o site parece muito legal, mas 676 00:42:30,050 --> 00:42:32,290 não seria mesmo muito bom se ele também fez isso? 677 00:42:32,290 --> 00:42:36,220 Só porque isso é algo que você não tinha a intenção e algo que não está em seu 678 00:42:36,220 --> 00:42:37,900 especificações, algo que você não tenha a intenção de fazer, 679 00:42:37,900 --> 00:42:40,860 Não tenha medo de assumi-la e, em seguida, trabalhar com ele. 680 00:42:40,860 --> 00:42:43,680 Porque muitas vezes as ideias que você executa com todo o curso do desenvolvimento 681 00:42:43,680 --> 00:42:47,630 acabam sendo as características muito legal do site. 682 00:42:47,630 --> 00:42:49,630 >> Eu já disse isso antes. Eu vou dizer outra vez. 683 00:42:49,630 --> 00:42:51,630 Testers são super, super útil. 684 00:42:51,630 --> 00:42:56,350 Tente conseguir que as pessoas que nunca viram o site antes de fazer logon e ver o que está acontecendo 685 00:42:56,350 --> 00:42:59,080 porque não só pode testar a utilidade do site e da experiência do usuário, 686 00:42:59,080 --> 00:43:02,070 mas eles também podem testar a funcionalidade de uma forma que você não pode. 687 00:43:02,070 --> 00:43:06,430 Se você fizer alguma característica que faz uma certa coisa 688 00:43:06,430 --> 00:43:11,620 e você sabe que ele vai fazer a mesma coisa corretamente a cada momento, isso é ótimo. 689 00:43:11,620 --> 00:43:16,610 Mas muitas vezes pode ser difícil de explicar casos de canto, onde A pode usuário 690 00:43:16,610 --> 00:43:19,500 digite algo que você não estava esperando - precisamente porque você definiu 691 00:43:19,500 --> 00:43:21,500 as características de si mesmo. 692 00:43:21,500 --> 00:43:23,730 Assim, para que alguém venha de quem não tem idéia de como usar o site 693 00:43:23,730 --> 00:43:26,840 e apenas para quebrá-lo de todas as maneiras que podem fazer é realmente útil, porque você 694 00:43:26,840 --> 00:43:30,340 ter uma idéia a partir de uma perspectiva totalmente diferente do que no seu site está funcionando 695 00:43:30,340 --> 00:43:33,300 eo que precisa de reparos. 696 00:43:33,300 --> 00:43:37,070 >> Por último, vou falar sobre algumas boas práticas gerais, 697 00:43:37,070 --> 00:43:42,470 e você já viu um monte deles em CS50, mas também muito, muito aplicar em um ambiente de projeto. 698 00:43:42,470 --> 00:43:47,600 Um deles é comentários. Sempre comentar o seu código, especialmente se você está trabalhando em uma grande equipe. 699 00:43:47,600 --> 00:43:51,230 Ela pode ser tão irritante ter apenas um bloco gigante de código que alguém está escrito 700 00:43:51,230 --> 00:43:54,230 e talvez ele funciona, talvez não, mas você não tem idéia do que ele faz, 701 00:43:54,230 --> 00:43:58,010 então você não tem idéia se é útil ou não, ou se ele deve estar lá ou não, 702 00:43:58,010 --> 00:44:00,200 e se você estiver trabalhando em outra coisa, é até possível que você esteja trabalhando em 703 00:44:00,200 --> 00:44:06,590 a mesma coisa, por isso seja muito, muito cuidado para ser atencioso com os seus pares 704 00:44:06,590 --> 00:44:09,710 e escrever código que é bem documentado. 705 00:44:09,710 --> 00:44:13,580 Você não tem que ir tão longe a ponto de fazer a coisa toda que gosta, se você incrementa 706 00:44:13,580 --> 00:44:16,620 um contador tem um comentário que diz, eu estou adicionando 1 a este contador. 707 00:44:16,620 --> 00:44:20,450 Ele não tem que ser detalhada, mas para qualquer função que você está sempre escrevendo 708 00:44:20,450 --> 00:44:23,160 você deve ter alguma documentação sobre o que essa função faz exatamente, 709 00:44:23,160 --> 00:44:25,140 que suas entradas são, eo que ele deve retornar. 710 00:44:25,140 --> 00:44:27,800 Dessa forma, você pode usar outros componentes do local das pessoas 711 00:44:27,800 --> 00:44:31,990 e você pode trabalhar no sentido de construir algo grande. 712 00:44:31,990 --> 00:44:34,100 >> Outra coisa importante é que você quer fazer limpezas regulares. 713 00:44:34,100 --> 00:44:40,490 Código fica confuso. Não se sinta mal se o seu código é apenas totalmente ilegível e uma bagunça gigante. 714 00:44:40,490 --> 00:44:42,770 Isso acontece em desenvolvimento web sempre. 715 00:44:42,770 --> 00:44:46,530 Você está adicionando novos recursos, retirando os antigos. Coisas vai ser lá que não deve ser. 716 00:44:46,530 --> 00:44:49,330 Isso é bom, mas você quer ter a certeza de lidar com isso regularmente. 717 00:44:49,330 --> 00:44:53,430 Você não quer deixá-lo construir até o ponto em que você simplesmente não pode encontrar qualquer coisa 718 00:44:53,430 --> 00:44:56,430 em seu código, e você não tem idéia do que nada faz. 719 00:44:56,430 --> 00:44:58,430 Esse é o caso com HTML. 720 00:44:58,430 --> 00:44:59,490 Às vezes, você vai acabar com os objetos que não contêm nada, 721 00:44:59,490 --> 00:45:01,320 e você quer se livrar delas. 722 00:45:01,320 --> 00:45:04,610 Em CSS, você pode estar se referindo a elementos que não estão mais lá, 723 00:45:04,610 --> 00:45:06,340 assim que você quer se livrar desse código. 724 00:45:06,340 --> 00:45:09,900 No JavaScript, você pode ter removido algo do HTML. 725 00:45:09,900 --> 00:45:13,150 Então, você quer ter certeza de que você está sempre limpando, fazendo coisas bem 726 00:45:13,150 --> 00:45:17,450 tanto quanto você pode em uma base regular. 727 00:45:17,450 --> 00:45:21,060 >> Outra coisa muito útil que eu não acho que é descrito muito na CS50 728 00:45:21,060 --> 00:45:23,430 mas vale a pena se metendo é controle de versão. 729 00:45:23,430 --> 00:45:27,180 A idéia de controle de versão é quando você está basicamente manter o controle de todo o progresso 730 00:45:27,180 --> 00:45:30,820 que você fez para seu site e se em algum momento você percebe, oh, este estava trabalhando 731 00:45:30,820 --> 00:45:35,220 há um tempo atrás, mas ele não está funcionando mais, você pode voltar para versões anteriores 732 00:45:35,220 --> 00:45:37,720 e ver o que mudou desde então, e esse tipo de coisa. 733 00:45:37,720 --> 00:45:41,670 A principal maneira de fazer isso é com o Git, e Git é todo este tipo de sistema que 734 00:45:41,670 --> 00:45:46,390 Acredito Tommy MacWilliam deu um seminário sobre o ano passado. 735 00:45:46,390 --> 00:45:51,520 Se você entrar em seminários CS50 para 2011, você pode ver seu seminário sobre isso. 736 00:45:51,520 --> 00:45:57,070 A idéia do Git é, basicamente, que a intervalos regulares que você está fazendo esses compromissos 737 00:45:57,070 --> 00:46:01,430 que são formas de dizer o site está em uma versão bastante estável agora, então 738 00:46:01,430 --> 00:46:05,910 Estou embalar-lo e enviá-lo para longe para um servidor, e então você pode ir a esse servidor 739 00:46:05,910 --> 00:46:07,910 e olhar para todas as versões anteriores do seu código e ver como ele progrediu 740 00:46:07,910 --> 00:46:12,210 e todo esse tipo de coisas boas. 741 00:46:12,210 --> 00:46:14,210 Então, é basicamente isso. 742 00:46:14,210 --> 00:46:17,870 Tanto quanto o desenvolvimento web, estamos felizes em ficar por aqui e responder a qualquer 743 00:46:17,870 --> 00:46:20,570 questões, tanto quanto a nossa apresentação. 744 00:46:20,570 --> 00:46:22,900 É isso aí. Obrigado. >> [Ben] Obrigado. 745 00:46:22,900 --> 00:46:28,480 [Aplausos] 746 00:46:28,480 --> 00:46:30,950 >> [Billy] Pessoal, alguém tem alguma dúvida sobre as coisas que nós cobrimos 747 00:46:30,950 --> 00:46:33,950 ou coisas que nós não cobrimos que eles estavam esperando que iria cobrir? 748 00:46:33,950 --> 00:46:35,950 Ficaríamos felizes em responder aqueles. Qualquer um? 749 00:46:35,950 --> 00:46:50,360 [Membro da platéia] Quais são os prós e contras do uso de Ruby ou Python? 750 00:46:50,360 --> 00:46:58,660 [Ben] A questão era, quais são os prós e contras do uso de Ruby ou Python 751 00:46:58,660 --> 00:46:59,900 em vez de como PHP. 752 00:46:59,900 --> 00:47:11,340 As vantagens são que Ruby e Python são muito melhores do que as línguas PHP. 753 00:47:11,340 --> 00:47:14,920 Pelo menos na minha opinião, e eu acho que em um monte de opiniões de outras pessoas também. 754 00:47:14,920 --> 00:47:20,990 Eles foram projetados mais para fazer coisas complexas, 755 00:47:20,990 --> 00:47:25,380 e menos para bater juntos páginas web muito rapidamente com 756 00:47:25,380 --> 00:47:28,400 um pouco de conteúdo dinâmico. 757 00:47:28,400 --> 00:47:35,180 Os contras são que há um pouco de - há mais de uma curva de aprendizado 758 00:47:35,180 --> 00:47:37,220 para obtê-los criado. 759 00:47:37,220 --> 00:47:41,010 Ou seja, como em PHP, você pode apenas ter um arquivo HTML e você escrever menos do que, 760 00:47:41,010 --> 00:47:43,060 ponto de interrogação, e então você escrever algum código, e então você escrever ponto de interrogação, 761 00:47:43,060 --> 00:47:45,700 maior-que, em seguida, você está feito. 762 00:47:45,700 --> 00:47:50,300 Em outras linguagens como Ruby ou Python, 763 00:47:50,300 --> 00:47:56,810 você tem que passar por um pouco mais de trabalho para obter o site funcionando inicial. 764 00:47:56,810 --> 00:48:02,730 Há também - pelo menos costumava ser o caso - que há mais documentação 765 00:48:02,730 --> 00:48:05,480 disponível para PHP só porque há mais pessoas a usá-lo. 766 00:48:05,480 --> 00:48:09,370 Eu acho que não é tanto um problema anymore. 767 00:48:09,370 --> 00:48:12,520 Há certamente muito boa documentação para coisas como Ruby on Rails 768 00:48:12,520 --> 00:48:16,080 ou Django para Python é o equivalente. 769 00:48:16,080 --> 00:48:25,910 PHP é a que todo mundo tem usado por anos, e você sabe como ele funciona. 770 00:48:25,910 --> 00:48:28,460 Ruby e Python são um pouco menos maduros. 771 00:48:28,460 --> 00:48:33,130 >> [Membro da platéia] Se você tivesse que escolher entre um deles para aprender ou pegar, 772 00:48:33,130 --> 00:48:36,130 qual você prefere? 773 00:48:36,130 --> 00:48:38,870 Honestamente, eu acho que depende da pessoa. 774 00:48:38,870 --> 00:48:45,450 Sinto muito. A questão era o que você escolheria alguém para aprender? 775 00:48:45,450 --> 00:48:50,230 Acho Python a mais bonita pessoalmente. 776 00:48:50,230 --> 00:48:55,360 Há uma grande quantidade de pessoas que - eu fiz o meu primeiro projeto dev web em Python e Django. 777 00:48:55,360 --> 00:49:00,300 Há um monte de pessoas que gostam de Ruby on Rails também. 778 00:49:00,300 --> 00:49:02,650 Provavelmente mais pessoas souberem Ruby on Rails. 779 00:49:02,650 --> 00:49:05,270 Honestamente, gostaria apenas de ir com o que as pessoas ao seu redor sabem 780 00:49:05,270 --> 00:49:09,680 para que você tenha as pessoas a fazer perguntas. 781 00:49:19,640 --> 00:49:24,170 >> A questão era - em servidores compartilhados é meio difícil de trabalhar em Python? 782 00:49:24,170 --> 00:49:26,170 Isso depende de sua hospedagem. 783 00:49:26,170 --> 00:49:29,400 Há uma série de provedores de hospedagem que irá postar coisas Python. 784 00:49:29,400 --> 00:49:31,400 WebFaction faz isso, certo? 785 00:49:31,400 --> 00:49:34,400 WebFaction é aquele que Billy e eu usei para alguns projetos. 786 00:49:34,400 --> 00:49:37,750 Eles são realmente grandes. Eles apóiam a maioria dos idiomas. 787 00:49:37,750 --> 00:49:40,020 Mas é verdade que o PHP é muito mais amplamente suportado. 788 00:49:40,020 --> 00:49:45,210 Então, se você está preso em um host que só faz PHP, que é uma boa razão para usar o PHP. 789 00:49:45,210 --> 00:49:56,010 >> [Membro da platéia] Eu só tenho a aprender como consultar alguns bancos de dados, 790 00:49:56,010 --> 00:50:00,680 e eu sei que meu SQL está em todo o lugar, mas eu comecei recentemente exposto a - 791 00:50:00,680 --> 00:50:04,470 e apontou-a para fora. Você vê JSON e bancos de dados expansíveis. 792 00:50:04,470 --> 00:50:14,580 My SQL ainda está em todo o lugar. Como você vê o que está acontecendo? 793 00:50:14,580 --> 00:50:21,330 É que vai haver uma tendência crescente para mais expansível (inaudível)? 794 00:50:21,330 --> 00:50:30,100 A questão era - eu acho que vai ser uma tendência para os bancos de dados não-SQL. 795 00:50:30,100 --> 00:50:33,850 Por exemplo, como MongoDB. Eu acho que é definitivamente verdadeiro. 796 00:50:33,850 --> 00:50:38,730 Meu conselho foi principalmente relacionada com o mySQL aqui apenas porque é mySQL 797 00:50:38,730 --> 00:50:40,950 padrão da indústria. 798 00:50:40,950 --> 00:50:45,950 Pessoalmente, eu prefiro muito mais as bases de dados que não têm schemos como MongoDB 799 00:50:45,950 --> 00:50:49,520 onde você não tem a questão de, oh, eu preciso adicionar outra coluna. 800 00:50:49,520 --> 00:50:51,600 Ai de mim, como tudo o que eu faço? 801 00:50:51,600 --> 00:50:55,840 É muito difícil fazer isso no mySQL, mas quando você tem algo como Mongo 802 00:50:55,840 --> 00:50:57,840 é muito mais agradável. 803 00:50:57,840 --> 00:51:03,780 A outra coisa agradável sobre Mongo é que seus registros são realmente objetos JavaScript. 804 00:51:03,780 --> 00:51:10,110 Não há nenhum tipo de passo de conversão que você precisa para tomar essas linhas de base de dados 805 00:51:10,110 --> 00:51:13,140 e transformá-los em um objeto JavaScript e, em seguida, enviá-los ao longo do fio. 806 00:51:13,140 --> 00:51:20,290 Eu acho que esse tipo de coisa vai ser muito, muito útil para o desenvolvimento web rápida no futuro. 807 00:51:20,290 --> 00:51:23,060 >> [Billy] Algo que eu gostaria de acrescentar que é apenas um ponto geral é que 808 00:51:23,060 --> 00:51:26,580 não me sinto como você deve ter aprendido todas as línguas que discutimos 809 00:51:26,580 --> 00:51:28,580 do nosso seminário. 810 00:51:28,580 --> 00:51:30,560 Obviamente, o objetivo é dar-lhe uma idéia do que está lá fora, 811 00:51:30,560 --> 00:51:33,450 e se você está intrigado com algumas das coisas que eu mencionei que você pode Google-los 812 00:51:33,450 --> 00:51:35,830 e ler sobre eles. 813 00:51:35,830 --> 00:51:38,750 E, como eu mencionei, há alguns seminários que tratam precisamente essas coisas. 814 00:51:38,750 --> 00:51:41,660 Há ainda mais seminários que eu não tenha mencionado que, provavelmente, entrar em 815 00:51:41,660 --> 00:51:43,660 essas coisas também. 816 00:51:43,660 --> 00:51:46,610 A idéia é que, se você quer trabalhar em alguma coisa, aqui estão as ferramentas à sua disposição. 817 00:51:46,610 --> 00:51:51,630 Não se sente oprimido, se você não está realmente certo o que essas ferramentas fazem exatamente, 818 00:51:51,630 --> 00:51:54,830 mas sabemos que eles estão lá fora, e que você pode fazer uso de largura deles 819 00:51:54,830 --> 00:51:56,830 pelo Google. 820 00:51:56,830 --> 00:51:59,960 >> [Membro da platéia] Que tipo de coisas que você precisa fazer para garantir que o seu site 821 00:51:59,960 --> 00:52:02,530 fica bem em dispositivos móveis? 822 00:52:02,530 --> 00:52:05,590 [Billy] Os dispositivos móveis são um pouco difícil. 823 00:52:05,590 --> 00:52:07,590 Há duas maneiras que você pode se aproximar dele. 824 00:52:07,590 --> 00:52:11,500 A primeira maneira é que você realmente tem um site para celular. 825 00:52:11,500 --> 00:52:14,660 Em outras palavras, você realizar algum tipo de detecção, no início 826 00:52:14,660 --> 00:52:18,830 quando o navegador está fazendo a solicitação para o seu site ou que diz 827 00:52:18,830 --> 00:52:25,240 retornar este ponto de vista - que será o ponto de vista para navegadores desktop ou laptop - 828 00:52:25,240 --> 00:52:27,710 e este outro ponto de vista para dispositivos móveis. 829 00:52:27,710 --> 00:52:33,090 É um lugar onde as vistas são muito bom em que você pode muito bem trocar o 830 00:52:33,090 --> 00:52:37,580 dois para fora e tem uma interface que funciona muito bem em dispositivos móveis 831 00:52:37,580 --> 00:52:40,770 e ter um completamente diferente, que funciona bem em dispositivos navegador. 832 00:52:40,770 --> 00:52:43,770 O problema com isso é que demora muito tempo, porque isso significa codificação 833 00:52:43,770 --> 00:52:47,060 uma interface totalmente diferente. 834 00:52:47,060 --> 00:52:49,720 A outra maneira que você pode fazer é - 835 00:52:49,720 --> 00:52:55,250 um monte de telefones modernos irá exibir sites e tentar torná-los como um navegador seria, 836 00:52:55,250 --> 00:52:57,680 e eles fazem o seu melhor. 837 00:52:57,680 --> 00:53:04,340 Você pode tipo de tentar ficar luz sobre a quantidade de JavaScript jQuery que você está usando 838 00:53:04,340 --> 00:53:07,360 que tende a ser o lugar onde as coisas podem dar errado um pouco. 839 00:53:07,360 --> 00:53:13,430 Esta é uma espécie de maneira que você deve usar se você não tem muito tempo. 840 00:53:13,430 --> 00:53:18,540 Se você tem o tempo para trabalhar em uma interface móvel, que é, obviamente, a sua melhor opção. 841 00:53:18,540 --> 00:53:23,320 >> Eu acho que geralmente para projetos de CS50, você vai querer escolher um ou outro. 842 00:53:23,320 --> 00:53:27,990 Em outras palavras, você quer fazer um aplicativo móvel ou se você quiser fazer um site desktop. 843 00:53:27,990 --> 00:53:32,200 E esse tipo de determina onde você vai com isso. 844 00:53:32,200 --> 00:53:35,360 Mas se você quer expandi-lo mais tarde, provavelmente a sua melhor aposta é 845 00:53:35,360 --> 00:53:37,360 para fazer uma outra interface para o outro. 846 00:53:51,650 --> 00:53:56,340 Eu tenho um pouco de experiência em desenvolvimento de sites baseados em WordPress. 847 00:53:56,340 --> 00:53:58,670 I hospedado um site pessoal em WordPress por algum tempo. 848 00:53:58,670 --> 00:54:02,310 Esses tipos de estruturas podem ser agradáveis ​​coisas tão básicas. 849 00:54:02,310 --> 00:54:07,050 Muitas vezes você só vai correr em uma série de questões de personalização embora. 850 00:54:07,050 --> 00:54:10,940 Você vai querer ter algo olhar uma determinada maneira ou de ser de certa forma 851 00:54:10,940 --> 00:54:14,510 e você simplesmente não pode porque ele é hard-wired para o sistema que 852 00:54:14,510 --> 00:54:17,480 é assim que você tem que fazer coisas que podem ser um pouco de um problema. 853 00:54:17,480 --> 00:54:22,020 Desde então eu meio que sido mais inclinado a trabalhar com sites a partir do zero. 854 00:54:22,020 --> 00:54:26,840 Para coisas como bancos de dados do blog e esse tipo de coisa não é realmente tão difícil de construir uma estrutura. 855 00:54:26,840 --> 00:54:29,970 Se você está realmente se estendia por vez, você pode, naturalmente, usar algo como WordPress 856 00:54:29,970 --> 00:54:33,120 ou esse tipo de coisa para um blog. 857 00:54:33,120 --> 00:54:38,790 Os tipos de coisas que os blogs loja e não são realmente difíceis o suficiente para que 858 00:54:38,790 --> 00:54:41,500 se você estiver executando em qualquer um desses tipos de coisas, você é provavelmente melhor apenas 859 00:54:41,500 --> 00:54:43,500 fazer uma versão em casa. 860 00:54:43,500 --> 00:54:48,350 >> Eu acho que é sobre isso, então obrigado novamente por ter vindo. 861 00:54:48,350 --> 00:54:51,960 Nós realmente gostamos de falar com vocês e espero que você aprendeu alguma coisa. 862 00:54:51,960 --> 00:54:55,350 [Ben] Estamos felizes em falar - temos a percorrer, mas estamos felizes em falar mais do lado de fora 863 00:54:55,350 --> 00:55:01,650 se você tem outra pergunta. Obrigado mais uma vez. [Aplausos] 864 00:55:03,750 --> 00:55:06,000 [CS50.TV]