Archive for Livros

Outro dia destes eu estava assistindo um episódio de The Big Bang Theory no qual um dos personagens menciona o experimento de Schrödinger. Isso me fez lembrar do livro The Pragmatic Programmer (PragProg) que eu li recentemente.

O experimento é mais ou menos o seguinte: imagine um gato dentro de uma caixa fechada com alguma substancia radioativa, onde há 50% de chances desta substancia infectar o gato. Se isso acontecer o gato morrerá, se não ele ficará bem. Então, neste momento o gato está vivo ou morto? Segundo Schrödinger, a resposta correta é ambos. As duas possibilidades acontecem em universos paralelos, em um universo o gato morre e no outro ele vive. Apenas precisamos abrir a caixa para descobrirmos em qual universo nós estamos.

No seriado, o personagem mencionou o experimento para persuadir uma garota que estava na duvida ser deveria sair com ele ou não. Bom, ela só saberá se vale a pena se ela abrir a caixa. :)

No PragProg, os autores mencionam o experimento fazendo um comparativo com evolução do código em desenvolvimento de softwares:

Think of code evolution along the same lines as a box full of Schrödinger’s cats: every decision results in a different version of the future. How many possible futures can your code support? Which ones are more likely? How hard will it be to support them when the time comes?

O livro questiona o quão flexível à mudanças é o seu software e ressalta a importância de ser ter arquiteturas que suportem mudanças sem grandes custos.

Certa vez, eu vi um projeto ter que ser praticamente todo reescrito quando chegou a hora de criar o módulo que seria usado no Palm. Muitas decisões que foram tomadas no início do projeto não levaram em conta este futuro. Em conseqüência disso, houve um re-trabalho enorme, gerou um estresse gigantesco e exigiu bastante esforço da equipe que virou noites e finais de semana para que tudo fosse entregue no prazo.

O quão flexivel à mudanças é o seu software?

Nesta semana eu terminei de ler o The Pragamatic Programmer: From Journeyman to Master e afirmo com todas as palavras que este livro é essencial para qualquer um que programe profissionalmente.

O livro traz questões importantes como testes, ortogonalidade, desacoplamento, até a forma como se deve fazer a previsão de horas gastas para implementar funcionalidades.

Não me lembro onde li (ou ouvi) um comentário sobre este livro uma vez, mas foi mais ou menos algo do tipo:

“Se todos lessem este livro não haveriam programadores Jr. no mercado, somente Pleno e Senior”

Isso é bem verdade, os autores do livro tentam passar da melhor maneira possível os seus conhecimentos de anos de carreira e acertaram em cheio nessa compilação.

Sem dúvida essa não será a única vez que eu terminarei de lê-lo, pretendo lê-lo outras vezes. Vale muito a pena. Fica aí a dica pra quem ainda não leu o livro.