Em São Paulo, no dia 5 de dezembro, Elcio Ferreira irá apresentar um workshop sobre produtividade na Web 2.0. Veja detalhes e inscreva-se aqui.
Elcio Ferreira é colaborador do Webinsider e diretor de uma empresa de treinamento em padrões web, ferramentas abertas e desenvolvimento ágil. Veja textos do Elcio no Webinsider.
Alguns assuntos do workshop
Todo mundo fala da Web 2.0. Certamente há muita coisa nova aqui, e muita coisa antiga feita de um jeitinho melhor. Mas há também muito barulho, fumaça e exagero. E às vezes é difícil separar uma coisa da outra. Mas alguns fatos são tão óbvios que é impossível negá-los ou duvidar deles.
O Digg conseguiu meio milhão de usuários cadastrados em menos de dois anos. A primeira versão do produto foi desenvolvida por quatro amigos em menos de dois meses.
A 37signals conta com hoje com uma equipe de oito pessoas. Eles iniciaram com cinco pessoas. Criaram o Ruby-on-Rails, framework rápido de desenvolvimento em Ruby, extremamente popular. Criararam o Ta-da List, o Writeboard, o Backpack, o Campfire e o Basecamp e tem mais de 350 mil usuários cadastrados.
Pequenos estão assustando gigantes, e sendo comprados por eles, em todo o mundo.
A despeito das discussões sobre o valor real desses negócios, e se estamos vivendo uma janela de oportunidade ou uma nova bolha, há um fato óbvio aqui: eles são muito produtivos. Desenvolvem rápido, software de qualidade, e parecem não se prender em labirintos de manutenção e atualização. Como o desenvolvimento pode ser tão fácil e produtivo?
Não há uma única resposta. O que estamos assistindo é uma convergência de fatores. As diversas áreas do desenvolvimento web têm alcançado um novo nível de maturidade, dando cada uma sua contribuição para nos tornar mais produtivos.
O Client-Side
Boa parte do trabalho no desenvolvimento de um site acontece no client-side. O trabalho com HTML, CSS, Javascript e Ajax consome recursos e tempo, e em alguns sites é muito maior do que o trabalho no server-side, a redação do conteúdo ou a criação do layout. Nessa área evoluímos muito nos últimos anos.
O código HTML/XHTML escrito de acordo com os padrões é muito mais simples que o que fazíamos antes. Isso já nos torna um pouquinho mais rápidos. Mas o verdadeiro valor se percebe quando se alia essa simplicidade à padronização de código.
Praticamente tudo é reutilizável num layout Tableless. O mesmo código de menu que você usa em um site pode ser usado em outro, mudando apenas o CSS. Generalizar tarefas que antes eram específicas permite sua automação. Assim, é possível ter em seu gerenciador de conteúdos um “gerador de menus” e um formulário de contato que sirva para todos os seus projetos.
Esta padronização está sendo levada agora a um novo nível pelos microformatos.
Um microformato é um padrão que faz com que meus menus, formulários, calendários, listas e demais unidades de informação não apenas tenham um padrão em todos os meus projetos, mas estejam padronizados entre meus projetos, os seus e os do resto do mundo. Isto foi feito para possibilitar a criação de ferramentas que se aproveitem desses formatos, o que nos colocará muitas possibilidades nas mãos, mas vai também facilitar o reuso de código entre projetos.
Outros fatores que contribuiram para o aumento de nossa produtividade foram o nível de maturidade dos navegadores no suporte a Javascript e a maneira como aprendemos, nesses anos, a escrever bom código Javascript.
Hoje é muito fácil escrever Javascript que funcione em qualquer navegador, e se você souber fazer isso do jeito certo, é fácil também torná-lo reaproveitável, de maneira que seu script não seja um empecílho à acessibilidade. Mesmo a construção de aplicações Ajax, coisa relativamente nova, é muito simples se você tiver as ferramentas certas.
O Server-Side
Outra área que evoluiu muito nos últimos anos foi a das linguagens, ambientes e ferramentas para o desenvolvimento server-side. Todo mundo está falando dos tais “sexy frameworks”, como o Ruby-on-Rails, o Django e o TurboGears, e das linguagens dinâmicas em que eles foram construídos. Essas ferramentas otimizam as tarefas que você faz todo dia, tornando coisas como a criação de sistemas de cadastro, consulta e alteração praticamente automáticas.
Com um desses frameworks MVC você se livra de quase todo o trabalho em relação a sua camada Model. Você define quais serão as tabelas e campos e pronto, o framework faz tudo para você.
No Rails você cria as tabelas em seu banco de dados e todas as classes da camada de dados de sua aplicação são geradas automaticamente. No Django e no TurboGears funciona ao contrário, você descreve seu modelo de dados com código e o banco de dados é gerado automaticamente.
O efeito é o mesmo nos dois casos, você define seu modelo de dados uma vez só, em um lugar só. Não precisa se preocupar com minúcias em relação à conexão ao banco ou ao cache de dados. E não precisa escrever SQL na maior parte da aplicação. Aplicações que não fazem nada muito diferente do convencional são às vezes escritas sem uma linha de SQL.
Em seguida, esses frameworks oferecem um modelo de fluxo de dados bem definido entre as três camadas do MVC, com maneiras automáticas de gerar as camadas de Control e View para os casos mais comuns. E para os casos incomuns você não começa do zero, mas se baseia num modelo automático para construir seu código.
O mais importante, o jeitinho
Ao mesmo tempo em que as ferramentas e linguagens de desenvolvimento evoluiram, o próprio modo de desenvolver foi repensado. Tivemos tempo para nos decepcionar com aquelas metodologias que tentam mapear cada minúcia de um sistema antes de começar a programar, e isso nos ensinou muito.
As chamadas “metodologias ágeis”, o desenvolvimento gradual com pequenos releases, têm mostrado resultados muito animadores para quem quer desenvolver rápido.
Ao mesmo tempo, um grande número de programadores tem parado para pensar em sua própria maneira de trabalhar, e incentivado seus colegas a fazer o mesmo. Esse movimento, chamado por muitos de programação pragmática, tem rendido excelentes frutos, como o TDD (Test Driven Development, ou Desenvolvimento Guiado por Testes) e o uso intensivo de sistemas de controle de versão.
Há muitos programadores hoje que se habilitaram para projetar software reusável, fácil de construir e que não dará dores de cabeça de manutenção.
O Desenvolvimento Guiado por Testes, por exemplo, é uma maneira de garantir que, ao consertar uma parte de um sistema, você não quebrou outra. E funciona maravilhosamente. Veja por exemplo os testes de unidade automatizados. Cada vez que o desenvolvedor faz uma correção, alteração ou implementa alguma coisa nova, seu código deve passar por todos os testes, o que lhe dará segurança de que não quebrou nada que funcionava antes. Código que não passa nos testes não vai para o ar, e ponto.
Em suma
Por trás dos impressionantes produtos da Web 2.0 está uma geração de desenvolvedores ágeis, que se muniram que ferramentas, métodos, idéias e tecnologias que não existiam há bem pouco tempo. O uso conjunto dessas inovações tem um poder sinérgico que os torna muito, muito mais produtivos. Se você continua desenvolvendo como fazia há cinco anos, saiba que poderia ser cinco, talvez dez vezes mais rápido. [Webinsider]
.
Cursos Webinsider
<strong>Cursos Webinsider</strong> (vtardin@br74.teste.website) são workshops de conteúdo analítico, apresentados por autores do Webinsider. Consulte para levar este workshop à sua empresa ou associação.
3 respostas
Olá, Ike, como vai?
O Workshop será na próxima terça-feira, dia 5. Você pode ver mais detalhes aqui:
http://visie.com.br/workshop/
Tenho muito interesse em seu workshop; quando poderá acontecer?
Sem dúvida tudo que foi falado nesse artigo consolida uma nova maneira de ver e fazer as coisas na Web, fazer mais rápido sem perder qualidade, mas com muito mais foco.
Na Garimpar utilizamos Django, Python e muito Ajax, toda a geração do Garimpar 2.0 está sendo construída segundo os conceitos escritos acima.
Como responsável pelo custo, qualidade e produtos na GARIMPAR ressalto que não conseguiríamos atingir as metas se não fosse a adoção de tais práticas somado ao potencial humano da empresa.
Parabéns pelo artigo
José Roberto de Aquino
Diretor Executivo Garimpar.com