Programming Highlight - 2
Tweetcompilação dos melhores links da semana
Leitura
- Zen Coder or Distraction-Junkie
http://www.componentowl.com/blog/2012/02/zen-coder-vs-distraction-junkie/
- Jeff Atwood anunciou sua saida da equipe do Stack Overflow.
http://www.codinghorror.com/blog/2012/02/farewell-stack-exchange.html
- Poster do The Zen of Python para impressao
http://www.dirtymonkey.co.uk/blog/zen-of-python-poster
- Lembra do Hacker way do Facebook nos Highlights da semana passada? Então, posters sobre o ele em creative commons pra voce baixar
http://www.designforfun.com/facebookposters/
- Uma otima apresentação sobre como e porque customizar os admin do django. Indica varios pros e contras de cada abordagem
http://www.slideshare.net/lincolnloop/customizing-the-django-admin/
- Se voce usa vim, veja se está fazendo isso certo!
http://blog.sanctum.geek.nz/vim-anti-patterns/
- Patterns de ORM
http://techspot.zzzeek.org/2012/02/07/patterns-implemented-by-sqlalchemy/
- Css Box Model
http://css-tricks.com/the-css-box-model/
- Podcasts for Hackers
http://designpepper.com/podcasts-for-hackers
Projetos
- Django-Facebook - o principal destaque desse projeto é a integracao com o Open Graph beta.
[Review] Nao me faça pensar! Uma Abordagem de Bom Senso À Usabilidade na Web
Tweet
Eu recentemente acabei de ler este livro sensacional sobre usabilidade na web.
Ele trata sobre a arquitetura de informação de uma pagina web, mostrando elementos básicos que toda pagina deve ter, o que fazer e o que não fazer, como montar sua pagina principal e como executar testes de usabilidade. Te abre os olhos pra questões básicas muitas vezes esquecidas por nós em nossos projetos web.
Mas eu sou desenvolvedor!
Por isso mesmo! Você deve ser plural, conhecer um pouco de tudo. Design, infraestrutura, usabilidade, CSS, HTML, semantica, protocolo http e todo o ecosistema que engloba a web.
Neste otimo post o Henrique Bastos fala mais sobre pluralidade para programadores web. Vale a leitura!
Se você quiser ler somente um livro sobre usabilidade na sua vida, LEIA ESTE!
Ok, legal. Onde eu compro?
Voce pode escolher o melhor preço no buscapé, por esse link.
Ou se preferir, pode comprar a versao em ingles, na amazon.
Pode ter certeza, este livro é um otimo investimento para melhorar seus projetos web, e deixar seus usuarios mais felizes! Aproveite e boa leitura.
Até a proxima!
Programming Highlight - 1
Tweetuma compilação dos melhores links que li na semana.
- Lightning talk sensacional feita pelo Gary Bernhardt no CodeMash 2012 falando sobre as bizarrices das linguagens ruby e javascript:
https://www.destroyallsoftware.com/talks/wat
- O twitter lançou a versao 2.0 do seu bootstrap. Aqui tem uma palestra explicando as principais mudanças.
http://speakerdeck.com/u/mdo/p/bootstrap-2
- O “Hacker Way” do Facebook, segundo o Mark Zuckerberg. Vale a leitura! Documento original
http://www.startuplessonslearned.com/2012/02/hacker-way.html
- Tem duvida do que é REST, RESTful e tudo isso? Leia essa thread do stackoverflow.
http://stackoverflow.com/questions/671118/what-exactly-is-restful-programming
- Teste quais features de css3 seu browser suporta.
Testes em Javascript - Jasmine
TweetTestes automatizados emergiram como uma das boas praticas da engenharia de software, e seus resultados sao comprovadamente eficazes.
Eu utilizo bastante essas tecnicas quando programo em python/django com ferramentas como o splinter, unittest entre outras. Porem quando programava em javacript, eu sempre senti falta desses testes automatizados.
E o Jasmine?
tl;dr - Jasmine is a behavior-driven development framework for testing your JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.
Em setembro do ano passado (2011), comecei a trabalhar no projeto de cobertura de eventos na globo.com. E tinhamos como desafio principal, atualizar uma pagina em tempo real via streaming com fotos, videos e textos. Pra isso os componentes da pagina teriam que interagir muito, recebendo e tratando os dados enviados do streaming. Usamos muito js com o framework mootools, e pra testar usamos o jasmine, o que nos proporcionou uma segurança e qualidade de codigo excelentes!
Agora chega de falar!
Show me the code
Pra começar, vc descreve um cenario que vai testar.
Como exemplo, vamos fazer um fizzbuzz
describe("Fizz Buzz", function(){
it("numero igual a tres deve retornar fizz", function(){
expect(fizzbuzz(3)).toEqual("fizz");
});
});
Depois de escrever o teste, a gente escreve um codigo pra passar:
var fizzbuzz = function(numero) {
return "fizz";
}
Agora mais um cenario:
it("numero igual a cinco, deve retornar buzz",function() {
expect(fizzbuzz(5)).toEqual("buzz");
});
mais um pouco de codigo:
var fizzbuzz = function(numero) {
if (numero === 3) {
return "fizz";
}
return "buzz";
};
Bom ai vcs podem continuar a brincar e terminar o codigo.
E pra rodar?
Bom vc pode carregar os scripts(download aqui) do jasmine numa pagina html estatica e por ultimo carregar o seu teste. Um exemplo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jasmine Test Runner</title>
<link rel="stylesheet" type="text/css" href="lib/jasmine-1.0.2/jasmine.css">
<script type="text/javascript" src="lib/jasmine-1.1.0/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-1.1.0/jasmine-html.js"></script>
<!-- include source files here... -->
<script type="text/javascript" src="aquivo/que/voce/quer/testar.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="arquivo/de/teste.js"></script>
</head>
<body>
<script type="text/javascript">
jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
jasmine.getEnv().execute();
</script>
</body>
</html>
Se vc tem um projeto em ruby com rails, vc pode usar uma gem pra rodar os testes.
Se vc tem um projeto em python, pode usar o jasmine-test-runner, feito pelo cobrateam.
Se vc tem um projeto em outra linguagem, veja aqui como rodar o jasmine.
Entao é isso!
Até a proxima, []’s
Palestra ministrada no FISL 12 em 2011 sobre TDD, Refactoring e boas praticas de programação!
Feedbacks sao bem vindos!
Até mais!