Sugestão de livro: Two Scoops of Django

2scoops

O Django é uma baita ferramenta que auxilia muitos desenvolvedores a concretizar seus projetos web com agilidade e simplicidade impressionantes. A documentação do framework é bastante vasta. São blogs de desenvolvedores, listas de email, livros bem completos, a trilha no StackOverflow, além de muitos e muitos projetos abertos no GitHub e BitBucket, e é claro, a excelente e completíssima documentação oficial. Até aí, tudo perfeito. Material para iniciantes querendo aprender Django existe de monte, mas quando as dúvidas começam a ficar um pouco mais específicas, ou questões relacionadas à boas práticas em projetos Django, a coisa começa a ficar mais escassa. Felizmente para nós, Djangonautas, o Daniel Greenfeld e a Audrey Roy começaram a resolver um pouco desse problema escrevendo o excelente Two Scoops of Django: Best Practices for Django 1.5.

O livro não é um tutorial e tampouco uma documentação exaustiva do Django, mas sim uma valiosa coleção de dicas e conselhos sobre boas práticas em projetos Django, atualizada para a versão 1.5. Já nos primeiros capítulos, fiquei com aquela sensação de “putz, eu tô fazendo tudo do jeito mais difícil nos meus projetos!”. Os autores vão mostrando os problemas e apresentando as soluções de uma forma bem prática, passando dicas, alertas, e, o que achei mais legal de tudo, as Package Tips, que são dicas sobre pacotes de terceiros que os autores costumam usar em seus projetos e que são uma verdadeira mão-na-roda.

Talvez você esteja pensando consigo próprio: “ah, eu já vi várias coisas dessas espalhadas pela web…”. Aí é que está o ponto principal, pois os autores pegaram a vasta experiência que possuem e compilaram uma série de dicas em um só lugar. E quando falo de dicas, não pense que são trechinhos pequenos de texto com links para outros recursos. Pelo contrário, os autores se preocuparam em explicar bem o porquê das coisas, sem cansar o leitor.

Outra coisa que achei interessante é que, diferentemente de um monte de livros que a gente vê por aí, parece que os autores deixaram de lado a preocupação de que o livro deles possa ficar obsoleto por passar dicas pontuais de pacotes específicos para resolver determinados problemas. Me parece que muitos autores limitam a abrangência de seus livros por medo de abordar um assunto mais específico, que poderia sofrer mudanças em breve (talvez o sentimento de estar sendo eternizado pelo livro deixe alguns autores meio confusos). Os autores do Two Scoops of Django não se preocuparam muito com isso e até se comprometeram em publicar erratas caso alguns elementos sofram mudanças nos próximos tempos.

O livro em si é muito bem organizado, com um formato muito bom para a leitura. Os autores se preocuparam MUITO e conseguiram fazer um layout excelente para ser lido em e-readers. Eu comprei a versão para Kindle, e esse é o primeiro livro técnico que leio em que não é preciso ficar diminuindo o tamanho da fonte para conseguir ler decentemente os trechos de código. Parabéns aos autores pela preocupação com os leitores da versão digital do livro!

O conteúdo

Não vou fazer aqui uma análise completa do livro. Vou listar apenas algumas coisas importantes que aprendi com o livro:

  • Como estruturar meus projetos Django;
  • Que as class-based-views são muito fáceis de usar;
  • Que na versão 1.5 do Django ficou barbada estender o modelo User;
  • Que realizar processamento nos templates é roubada;
  • Que dá pra manter configurações (settings.py) específicas para diferentes ambientes;
  • Que import relativo existe; (isso mesmo, eu não conhecia esse recurso)
  • Que select_related() quebra um galhão pra consultas grandes;
  • E muitas outras coisas! (muitas mesmo!) 🙂

Enfim, o conteúdo do livro é fantástico! Recomendo a todo mundo que tem um pouquinho de experiência com o Django que compre e leia esse livro. Não é preciso ser especialista no framework para se aproveitar do conteúdo dele. Se você está na dúvida se o livro é adequado para você, dê uma conferida no conteúdo dele na página oficial.

Eu recomendo!

De 0 a 10, dou nota 10 para esse livro. Li ele apenas uma vez, mas já vou começar a reler para fixar bem as dicas, pois são muitas coisas novas.

Se quiser seguir minha dica, estão à venda as versões impressa e digital do livro. Comprando direto pela página do livro, é possível comprar o pacote digital (formatos PDF, mobi e ePub, tudo DRM-free) por 17 dólares (preço em 22/06/2013). Na Amazon americana, está à venda a versão impressa. E ainda, se quiser comprar pela Amazon Brasil, eles estão vendendo a versão para Kindle.

Se ainda estiver na dúvida se o livro vale mesmo a pena, leia os reviews dos leitores na Amazon.

15 comentários sobre “Sugestão de livro: Two Scoops of Django

  1. O Django por si só já é uma ferramenta fantástica, mas quando o desenvolvedor conhece bem o framework, aí que o negócio fica bom, e com certeza esse livro deve agregar muito pra quem tem interesse nessa ferramenta.

  2. Parece massa!
    Muito boa a parada de mandarem o livro pra quem não pode pagar, também — kudos pros autores.
    Mas aí, fiquei curioso sobre o que é o tal de select_related()… Conta aí! 🙂

    • Ele faz com que, ao executar uma query (ex.: Pessoa.objects.select_related().all()), os relacionamentos via ForeignKey sejam obtidos e anexados ao QuerySet de resultado da consulta. A documentação oficial tem um exemplo muito bom:

      b = Book.objects.select_related().get(id=4)
      p = b.author         # Doesn't hit the database.
      c = p.hometown       # Doesn't hit the database.
      
      b = Book.objects.get(id=4) # No select_related() in this example.
      p = b.author         # Hits the database.
      c = p.hometown       # Hits the database.
      

      Isso é particularmente interessante quando, dentro de um template, é necessário ficar acessando dados de entidades relacionadas através de chave estrangeira. Vai resultar, em um primeiro momento, em uma quantidade de dados maior, mas vai evitar a latência de várias requisições posteriores.

      https://docs.djangoproject.com/en/1.5/ref/models/querysets/#select-related

  3. Valdir, blog sensacional o teu, obrigado por compartilhar teu conhecimento amigo, é um dos locais mais completos com tutoriais e exemplos em português. Encontrei-o faz poucos dias e estou aprendendo um monte com ele e constatando a poder de python 😀

    Estou no segundo ano do curso de Sistemas de Informação. Ano passado, tivemos contato apenas com Pascal na faculdade…acabei conhecendo o python/Django no emprego que consegui, achei a linguagem fenomenal, penso que esta deveria ser a primeira linguagem que os estudantes aprendem na faculdade, acho que foi perdido um tempo considerável no primeiro ano da faculdade apenas com pascal, tempo esse que poderíamos estar investindo em algo realmente útil e bem legal como python.
    O que você acha disso?

    • @gustavosdo:

      Obrigado por acompanhar o blog, fico muito feliz em poder ajudar!

      Sobre o uso de Python para o aprendizado de programação: em minha opinião é a melhor linguagem de programação para quem está iniciando, pois tem vários recursos legais: desde o shellzinho para experimentação, até ferramentas de apoio bem legais pra entender os programas, como o PythonTutor (http://pythontutor.com/), dentre outros. Além disso, é uma linguagem simples e consistente, o que faz com que não sejam criadas condições especiais na cabeça do alunos, do tipo: “isso funciona sempre assim, menos no caso de…”.

      No Brasil, Python acaba tendo uma quantidade ainda pequena de empresas que a utilizam, o que faz com que as faculdades/universidades acabem adotando outras linguagens como base para os cursos, pois buscam preparar profissionais pro mercado já existente.

  4. Exatamente isso cara, caso python fosse mais popular no mercado de trabalho nacional aposto que a situação seria diferente.

    Outra pergunta Valdir: vejo que você tem bastante conhecimento com a área de desenvolvimento em geral, gostaria de saber com quantos anos você começou a estudar uma linguagem de programação? você passou por dificuldades no início? Como foi o processo de aprendizado?
    Pergunto isso pois às vezes penso que poderia estar muito melhor. Meu primeiro contato com programação foi no ano passado, logo depois que iniciei a faculdade…sei que já aprendi bastante até agora (mais no meu trabalho do que do que na faculdade por sinal), mas gostaria de ter algum parâmetro de como estou, comparando com outras pessoas. Amo muito essa área, fico maravilhado com as possibilidades do que é possível desenvolver, mas gostaria de estar melhor, gostaria de já estar programando várias aplicações, etc… 🙂
    Acredito que essa é uma preocupação não apenas minha mas de vários estudantes que estão iniciando no mundo da programação.

    • @gustavosdo: eu não comecei muito cedo não (com 20 anos). Comecei na universidade mesmo (linguagem C). Como comecei estudando para a universidade, o estudo foi mais focado na linguagem C mesmo. Talvez você esteja se sentindo um pouco confuso pela grande quantidade de tecnologias que existem e que vê no dia a dia. Isso pode te deixar até mesmo um pouco perdido. Mas, isso não significa que você deva ficar restrito a uma linguagem/tecnologia, mas sim o contrário. O que eu penso é que o principal é que você desenvolva a capacidade de resolver problemas para não ficar travado nessas tecnologias.

      No início é normal você criar expectativa de desenvolver sistemas “úteis”, quando na verdade fica brigando para conseguir implementar coisinhas bem mais simples. Isso é natural, o importante é não desanimar e seguir estudando.

      • É, o negócio é seguir estudando! Eu também tinha essa sede de fazer coisas úteis logo quando era estudante (diabos, tenho até hoje), mas é bom aproveitar pra estudar os fundamentos — hoje penso que poderia ter aproveitado melhor o tempo na facul.

        Mas tem um texto muito bom do Peter Norvig*, “Aprenda a programar em 10 anos”, altamente recomendado, segue o link do original: http://norvig.com/21-days.html
        e da tradução: http://pihisall.wordpress.com/2007/03/15/aprenda-a-programar-em-dez-anos/

        A propósito, ano que vem eu fecho os 10 anos! 🙂

        * Peter Norvig é um cientista da computação famoso, é diretor de pesquisa do Google, autor de livros de computação e programador super-herói em geral: http://en.wikipedia.org/wiki/Peter_Norvig

      • Agradeço por compartilharem como foram suas experiências Valdir e Elias…realmente suas palavras são bastante estimulantes ^^
        Um amigo me deu a oportunidade de trabalhar com ele, o mesmo já desenvolve há muitos anos e é um dos grandes nomes na área de tecnologia, já contribuiu em vários projetos. Quando eu vejo ele desenvolver, dá muita vontade de fazer as mesmas coisas, o cara tem muito conhecimento.
        Bate uma frustração quando tento iniciar algo e não consigo levar adiante :/ rsrsrs
        Mas imagino que a maioria passa por isso no início, é importante continuar estudando e não desanimar.

        Valeu a força pessoal 🙂

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s