domingo, setembro 23, 2007

Pra que ORM se não se usa OO?

Pra que usar um sistema de mapeamento objeto-relacional se você trata seus objetos como dados? Objeto sem comportamento é exatamente igual a uma estrutura de dados. Reza o mito que você deve ter "classes de negócio" que executam regras. Bom... essas classes fazem coisas com suas classes sem comportamento... então... qual a diferença disso para uma função PHP que manipula linhas em tabelas? Bom, UMA das diferenças, certamente, é que usamos um monte de traquitanas a mais para obter os dados. Outra é que ganhamos alguns métodos convenientes para buscar dados relacionados. Mas fora isso, qual o ganho? Sinceramente, mais de uma vez vejo gente defendendo com unhas e dentes frameworks de ORM e usando ele para fazer sistemas que são basicamente, um PHP com mais camadas. E batem no peito pra dizer que é um "Sistema Grande". Veja, não tenho nada contra ORM. É algo absolutamente necessário se você usa um sistema realmente OO... Caso contrário, é só um trambolho a mais para cuidar. Como vejo gente demais fazendo isso, eu devo estar deixando escapar alguma coisa muito importante. Mas alguém me diga o quê.

quarta-feira, setembro 12, 2007

Esbarrando com gente conhecida...

Ontem (ou foi anteontem?), entrevistei o Kenobi (posta muito no GUJ) para uma vaga na empresa em que eu trabalho. Fiz a maior confusão com as vagas e acabei falando a vaga errada pra ele :( ê vida besta. É um cara bastante seguro de si, só acho que causou uma má impressão na moça que comecou a conversa com ele. Engraçado como a gente vive esbarrando com gente "virtualmente" conhecida. Acho que o mundo da informática (pelo menos no Brasil) é menor do que eu suspeitava... ou então preciso viajar mais para o resto do país e sair um pouco da Cidade da Garoa :p

Melhorando o detector de "bullshit"

Sabe quando você está lendo um texto, não chegou nem na metade e pensa: "bullshit". Poisé, faz um tempo tenho um "detector mental de bullshit" pra esse tipo de coisa. Funciona igual aos "code bad smells": você está numa conversa, ou está lendo algo, e algumas palavras fazer o detector tilintar. Aí você lê com mais atenção pra ver se é balela mesmo ou se tem fundamento. Tem algumas palavras que fazem o detector simplesmente gritar :) Muitas delas juntas, então, quase dão dor de cabeça!
  • Enterprise (top top!)
  • Arquitetura (ou pior, um texto todo em português, mas usando o termo em inglês)
  • Flexível
  • Robusto
  • Ágil (todo mundo virou ágil depois que isso virou power word)
  • Escalável
  • Performance (principalmente se não vem com NENHUMA medição)
  • "O correto é" ("correto" depende muuuuito do que você está fazendo)
  • Grande porte (parece que o povo mistura "muitas regras de negócio", "muitos usuários" ou "transações bagaraio" sem muita discriminação)
Entre outras... Recentemente fiz um "upgrade" no detector. Adicionei uma regra: "discussões sobre méritos de tecnologias em que o cara dá argumentos sobre performance". Muito, mas muito raramente mesmo, isso tem algum embasamento maior do que mero "achismo". E, pessoalmente, "rápido o suficiente" já está bom. Por outro lado, tem palavras que entram no "white list" e aliviam a coisa:
  • Teste
  • Padrão ou Anti-padrão
  • Pragmático
É... minha white list tá pequena! :D E aí? Alguém tem outras palavras que fazem o "detector de bullshit" tocar? (Garanto que tem gente que coloca a palavra "Rails" na lista :D)

segunda-feira, setembro 10, 2007

Da série "Notas Mentais": Pessoas Sérias

Não consigo levar a sério pessoas que se levam muito a sério... Por quê? Bom, cedo ou tarde, vamos todos virar adubo pra grama, que é a mesma função que um belo monte de merda faz. Aliás, o "belo monte de merda" deve ser um adubo melhor do que nós seremos... :p Aí que está a parte complicada... O cara vem todo importante, botando marra e arrotando peru... aí me vem esse pensamento em mente e não consigo ficar sério. :)