Computaria Explícita

Gostaria de ter sabido dessa há uns 2 anos :).

Eles são bem mais simples do que o título dá a entender, mas ilustram bem o que é realmente se importar com o código no qual você está trabalhando.

Uma tática interessante (e um padrão de design clássico na verdade). No meu trabalho a gente usa mais Presenters, mas acho que os Decorators também tem seu lugar por lá.

A Litania do Macho Aplicada à Programação

Um amigo meu costumava recitar uma espécie de Litania do Macho: uma série de frases intencionalmente absurdas que sempre começavam com “Macho que é macho…”. Possivelmente, você já escutou algumas delas:

  • Macho que é macho não usa camisinha, manda plastificar.
  • Macho que é macho joga o favo e chupa a abelha.
  • Macho que é macho é adiabático. Essa é para quando mandarem você por uma blusa porque está frio.
  • Etc.

Pois bem, macho que é macho programa o próprio gerenciador de conteúdo, e foi isso que eu comecei a fazer hoje. Não sou tão ultra-macho assim a ponto de usar borboletas e física quântica, portanto mantive basicamente as mesmas ferramentas do meu emprego normal: git, Cream, ROXTerm, ZenTest e RSpec. Ao invés de trabalhar com Rails, entretanto, decidi aprender um pouco e usar o Merb, que tem sido muito bem falado.

Comecei, então, usando também o DataMapper ao invés do ActiveRecord, porque os tutoriais de Merb que eu achei assim o recomendavam. Tenho certeza de que ele é muito bem implementado, e comprovei que é fácil de usar. Porém, sua principal diferença em relação ao AR é também a sua principal desvantagem: o suporte a migrações. No DataMapper, as colunas das tabelas são declaradas nos próprios modelos, e uma task chamada rake dm:db:automigrate aplica essas colunas automaticamente ao banco de dados.

É prático no início, mas não possui o conceito de versionamento do banco (que é a grande sacada das migrações do AR). Sempre que o “automigrate” é rodado, o banco de dados é destruído e reconstruído do nada. Como eu tenho certeza de que vai ser necessário fazer alterações no banco até depois que o bendito gerenciador entrar em “produção”, amanhã eu mudo de volta para o ActiveRecord.