7 coisas que todo desenvolvedor web deveria saber

Desenvolvimento Web é coisa séria, e evoluiu muito em termos de maturidade e complexidade. Para fazer frente ao crescente níveis de exigência, nós, desenvolvedores, devemos estar aprendendo a todo instante. Não importa qual campo você deseja seguir, seja ele no lado cliente ou servidor. Mas acredito que existam coisas que todo desenvolvedor web de verdade deveria saber.

Web Standards

Hoje em dia, o mínimo que se espera de um bom desenvolvedor web é o conhecimento dos Web Standards, XHTML e CSS. Eles contribuem para a criação de documentos mais consistentes entre si, mais compatíveis e de manutenção extremamente mais simples. Aliás, o conhecimento dos padrões não é mais um diferencial como era há alguns anos atrás, mas sim um requisito básico. Se hoje sonhamos com a web semântica, os padrões web são o primeiro passo. Com documentos mais semânticos, temos mais acessibilidade e também mais relevância, principalmente no que diz respeito a motores de busca.

Mesmo depois de muita evangelização, ainda temos desenvolvedores que acabam de descobrir as maravilhas do mundo validado. Também temos aqueles que não fazem a mínima idéia do que isso signifique, ou que não tem o mínimo interesse em aprender. Se você é um desses, hora de rever seus conceitos…

JavaScript

O JavaScript, apesar de ter sido muito injustiçado no passado, é uma linguagem onipresente, e de extrema importância. Qualquer usuário tem pelo menos um interpretador instalado em seu computador. Além do mais, ela é a única linguagem client-side disponível, e permanecerá assim por um bom tempo.

JavaScript vai ser a próxima grande linguagem. Apesar de ainda estarmos longe de resultados surpreendentes, caminhamos rápido nesse sentido. Muita coisa que antigamente só era possível com Flash hoje é feita com JavaScript.

Além da própria linguagem, aprenda a usar alguma biblioteca, como Mootools, jQuery ou Prototype. Aliado a essas ferramentas, você poderá criar aplicações muito mais interessantes em muito menos tempo. Mas atenção: não aprenda somente a biblioteca, sem aprender antes JavaScript puro. Afinal, saber só jQuery é coisa de designer.

Expressões Regulares

Um simples replace nem sempre é suficiente quando trabalhamos com manipulação de textos. Aí entram as Expressões Regulares, poderosa ferramenta que todos conhecem, alguns usam, e poucos realmente sabem. Seja em PHP, Ruby, Python ou mesmo JavaScript, algum dia você precisará delas.

Se você leva desenvolvimento a sério, dedique um tempo a aprender expressões regulares (Expressões Regulares – Uma Abordagem Divertida é um bom começo!). Além de uma ferramenta de desenvolvimento, elas podem se tornar ferramentas de produtividade. Se você usa IDEs com suporte a busca e substituição com expressões regulares, pode se beneficiar muito disso.

Controle de Versão

Para alguns, o Controle de Versão mudou completamente, e para a melhor, a forma de trabalhar. Para outros, parece simplesmente inútil, principalmente para quem trabalha sozinho. Seja CVS, SVN, GIT, Mercurial ou qualquer outro, o controle de versão, aliado a ferramentas como o Trac, pode fazer maravilhas. Além de manter controle de suas alterações, podendo sempre voltar atrás caso alguma modificação dê errado ou mesmo quando o cliente não aprova, você pode manter um controle de sua produtividade, analisando quantos commits foram feitos em quanto tempo, quantos tickets foram fechados, quantos ainda permanecem pendentes.

Desde que passei a utilizar SVN em alguns projetos, como no próprio Spaghetti, notei uma grande melhora no controle sobre o código. Nunca mais pensei duas vezes em apagar grandes blocos de código pensando que eles poderiam ser úteis outra vez (e geralmente nunca seriam realmente necessários). Uma excelente forma de analisar seu progresso, uma excelente forma de backup, uma excelente forma de manter seu código sincronizado. Esqueça aquele colega que tem uma versão ultrapassada de seu código e sobrescreve partes importantes. Quando passei a utilizar ferramentas de tracking, bugs não eram esquecidos, idéias estavam sempre à mão. Digo, como muitos por aí: isso realmente mudou a minha maneira de desenvolver.

MVC

O Model-View-Controller, ou MVC para os íntimos, nunca fez tanto sentido quanto na web. Depois do Ruby on Rails, virou quase um requisito básico para o desenvolvimento de bons projetos. E desde então, desenvolver não tem mais graça. Além disso, a separação de aplicações nessas 3 camadas torna o desenvolvimento e manutenção muito mais simples.

Se você não quer ficar para trás, adote seu framework. O pattern é usado na maioria deles, e de brinde você ganha muita produtividade. Frameworks tornam as linguagens menos ruins. Se você usa PHP, eu sugeriria o Spaghetti. Se você usa Ruby ou Python, e é seu primeiro contato com frameworks, siga a tendência e adote Rails ou Django. Se você é corajoso, faça como fizemos na minha agência: crie seu próprio framework. Usando algum framework ou não, o que importa é pegar o espírito da coisa.

SQL

Mesmo com toda a flexibilidade e abstração da camada de dados que os frameworks MVC nos oferecem, SQL ainda é necessário. Apesar de você não vê-lo, ele ainda está lá. Consultas complexas ou mais específicas nem sempre são disponibilizadas pelos frameworks, e sempre pode haver a necessidade de uma incursão via terminal, para tarefas de manutenção, por exemplo.

Talvez você não acredite no retorno que isso pode trazer. Até ter nas mãos uma aplicação gigante e extremamente dependente de banco de dados, onde as consultas devem ser otimizadas ao máximo para minimizar a carga do servidor. Você não quer sua aplicação baleiando por você não saber SQL, quer?

Desenvolvimento Guiado a Testes

Test Driven Development, ou simplesmente TDD, é, na minha opinião, a melhor maneira de manter seu código livre de bugs. Fazer o desenvolvimento guiado a testes significa desenvolver o teste antes da funcionalidade. A cada iteração, os testes são rodados novamente, de maneira automática, e você sempre saberá se alguma modificação quebrou o restante do código.

Sem testes automatizados, aplicações nunca são testadas como deveriam. São tarefas repetitivas e cansativas. Com o auxílio de ferramentas de testes, eles podem ser rodados várias vezes, certificando de que tudo está correndo bem. Se um novo bug é descoberto, um novo teste é criado, as modificações são feitas, e você terá a certeza de que o problema foi resolvido para todo o sempre, sem quebrar o restante da aplicação. E convenhamos, não há nada pior do que bugs…

Não é obrigatório que um desenvolvedor saiba tudo isso, embora eu considere extremamente importante, mesmo alguns não sendo necessários todos os dias, todos podem melhorar nossa maneira de trabalhar. Ainda não domino todos os itens citados, mas tenho um bom conhecimento em todos eles. O que importa mesmo é buscar isso, e sempre continuar aprendendo. Mexa-se! Você não quer ficar para trás, quer?

Posts Relacionados

Postado em novembro 06, 2008 às 14:22

Comentários

  1. Neto

    Bom post e realmente você resumiu o que precisamos para desenvolver com qualidade para Web []s


  2. Pedro Rogério

    Muito interessante seu tópico. Uma coisa que você poderia ensinar aqui também é a utilização de ferramentas de controle de versão, garanto que tem muita gente que quer aprender.


  3. Fernando

    Realmente todas as coisas devem se encaixar no perfil de um bom profissional de desenvolvimento web. Apesar de os Webstandards serem quase que requisito hoje em dia, ainda é muito difícil achar profissionais qualificados. Muita gente estuda um pouco de CSS e HTML e já acha que sabe padrões Web, tentando fazer DIVs imitarem colunas de tabelas.. estou errado? Acho que entre todos os tópicos citados, padrões web, expressões regulares e TDD são os mais raros de se encontrar nos profissionais. Talvez eu não esteja tão atualizado quanto aos profissionais que estão surgindo, mas pelo menos os que conheço nunca ouviram falar de TDD, e padrões web para eles é “perca de tempo”, “produtividade é dreamweaver”… Lamentável :)


  4. Chris Benseler

    Preciso fazer minha mea-culpa e admitir que fujo das expressões regulares. Mesmo sabendo que tanto no front-end (javascript) como em qualquer linguagem de server-side elas são uma mão na roda.

    No mais, acho que conhecer, mesmo que por cima, os conceitos das linguagens para web (asp, php, ruby) e entender como funciona um webserver também são essenciais!

    Bacana o post!


  5. Jader Rubini

    Eu já estou há algum tempo querendo me informar mais sobre TDD. Alguma sugestão?


  6. Julio Greff

    @Neto: obrigado!

    @Pedro: boa idéia, screencasts me vêm a mente =)

    @Fernando: realmente, algumas coisas não são encontradas em qualquer profissional. Com minha experiência, só discordo de você em uma coisa: padrões web, acredito que hoje já não seja mais tão raro, embora sempre hajam os fãs de DW… Só não acho lamentável porque logo logo sobrará mais mercado para quem sabe!

    @Chris: se você foge das RegExps, não sabe o que está perdendo. Eu também não gostava, achava muito complicado, mas logo que comecei a aprender encontrei utilidade para elas em todo lugar. Quanto as linguagens para web, algumas valem a pena conhecer. ASP clássico eu não considero uma delas… Conhecimentos de servidores são bem desejáveis (embora eu não considere essencial), principalmente num mundo onde WAMP lidera.

    @Jader: dê uma olhada aqui. O site Extreme Programming também tem algumas boas explicações. Pra Django não tenho muita informação, mas tenho usado bastante o Simple Test pro PHP, caso esteja interessado. O Spaghetti é testado nele =)


  7. Marcos

    Ahhh … sei lá! heheh


  8. Du'Martins

    Muito bem, muito bom o seu post meu caro. Bem instrutivo claro e objetivo.
    Tecnicamente é isso que se precisa para se desenvolver uma pagina. Acredito porém que para desenvolver um ambiente robusto, usavel, acessivel, e com conteudo, e necessário um pouco mais. Leia em http://www.eradoconhecimento.blogspot.com a matéria, quem faz site.
    Um comentario que faço em relação a equipe que vai desenvolver o site.


  9. Leandro

    Bem legal. É bom encontrar material que ajude iniciantes, como eu, a ter diretrizes nessa caminhada alucinante pela world-web. Valeu Julio Greff!


  10. Julio Cesar Bitencourt

    Xará. Ótimo post. Vou usá-lo como referência sempre que precisar introduzir o assunto com minha equipe. É introdutório mas, ainda assim, bem completo.

    Gostei muito do primeiro tópico, realmente web standards é requisito básico hoje em dia. Diferencial, agora, é um profissional com conhecimento de HTML5 + CSS3. Só um exemplo.

    Abraço!


  11. Bruno Cassol

    Quando se fala em controler de versão, não podemos esquecer do espetacular Bazaar. Bichos papões como Ubuntu, MySQL e Zope usam ele no desenvolvimento.

    Tem até uma incubadora de projetos open-source a’la sourceforge.net só que melhorada: http://launchpad.net/

    Parabéns pelo post, ele resume bem expertises necessárias para ser um bom web-developer.


  12. Jaqueline Benedicto

    Adorei seu tópico e acredito que você tenha razão em cada argumento defendido.

    Principalmente em relação a FrameWorks, eles são extremamente importantes, estou começando a aprender mexer neles, e estou curtindo muito.

    Vlw pelas dicas.


  13. João Paulo

    Muito bom seu texto, sou aluno de análise de sistemas e estou desde cedo aprendendo todos os ítens necessários para me tornar um bom desenvolvedor, afinal não quero ser mais um, mas quero ser um profissional equivalente a paixão que tenho por desenvolvimento, pois sei que assim serei um excelente desenvolvedor. Um abraço!


  14. Bruno Daniel

    Eu seria uma pessoa mais feliz se o dr. Júlio escrevesse um post sobre o SimpleTest ;)


  15. Julio Greff

    @Bruno: um post sobre testes realmente não é uma má idéia. Posso providenciar num futuro próximo ;)

    Ah, e por favor, “Dr.” não… xD


  16. J M

    seu Site tem algum erro de programação, pois utilizo o navegador internet explorer 8 e não o 6 como vc informa, para ver seu artigo utilizei o Chrome, ve se revisa antes de sair botando a boca, hehehe.


  17. igor developer

    Ótimo post. Parabens.
    desenvolvedor web


  18. Guilherme Serrano

    Boa! Destes o que eu só conheço de nome é TDD, que nunca utilizei e apenas sei o conceito “por cima”.

    RE eu também não domino, mas sempre que posso e “lembro” que ela pode ser utilizada, tento usar – acho legalzão, apesar de eu ainda ser meio lento pra pensar nelas.

    Parabéns pelo post!


  19. Rodrigo Scrideli de Oliveira

    Eu aind não domino todos os itens mencionados acima, mas tenho um pouco de conhecimento em alguns e outros já tenho mais experiência.
    Com o passar do tempo devemos mesmo dominar todas essas ferramentas.


Trackbacks

  1. Tópicos Avançados » Notícias Interessantes II Novembro 12, 2008 @ 18:58
  2. Blog da Visie.com.br » Blog Archive » Dicas para quem está procurando o primeiro emprego para trabalhar com web Novembro 17, 2008 @ 10:13
  3. Tópicos Avançados: Desenvolvimento Web » Notícias Interessantes Agosto 31, 2009 @ 19:03
  4. A importância das Expressões Regulares @ ThiagoRabelo Setembro 02, 2009 @ 17:42
  5. Sylverio » Blog Archive » 7 coisas que todo desenvolvedor web deveria saber Setembro 24, 2009 @ 22:51
  6. Dicas para um web design minimalista e usável - Cento e Vinte Maio 14, 2010 @ 9:36

Deixe seu comentário