[SP-pm] OOA&D de vez em quando morde...

Luis Motta Campos luismottacampos em yahoo.co.uk
Terça Março 20 03:31:48 PDT 2007


On Mar 19, 2007, at 7:45 PM, Solli Honorio wrote:
> Puxa, agora eu fiquei confuso... tenho para mim que POO é uma  
> excelente forme de pensar qualquer tamanho de projeto, pois o cara  
> pode crescer sem complicação, e é apenas um pouco complicado no  
> início com os construtores e destrutores (DESTROY). Esta sua  
> afirmação vem de alguma complicação real que possa ser  
> compartilhada conosco ?
>

   Hum. Isto aqui é a minha opinião. Eu gosto de gente que discorda  
dela, especialmente quando discorda sem descer das tamancas e sem ser  
mal-educado. Eu estou postando isto aqui por que me perguntaram  
diretamente sobre o assunto. Se você se interessa sobre isso, e quer  
debater, sinta-se à vontade para responder.

   Quando a gente faz análise e projeto orientado a objeto (OOA&D,  
para quem gosta de sopa de letrinhas), normalmente tem de fazer  
opções: que base de dados usar? Postgres? MySQL? MSSQL Server?  
Oracle? Todas? Nenhuma?

   Dentro da mesma linha de raciocício, precisamos escolher e tomar  
decisões sobre que formas de autenticação utilizar (password?  
challenge-response? chaves criptográficas?), que arquitetura geral  
nosso sistema vai ter (MVC? Client-Server? Ambas? Outras?), e,  
lentamente, de escolha em escolha, vamos definindo um contrato, uma  
interface para o sistema, que vamos ser obrigados a seguir sem  
alterações por muito tempo depois do projeto ter terminado.

   Este "projeto por contrato" é o que eu acredito ser o maior perigo  
do OOA&D. Quando a gente começa a estabelecer contratos sem muito  
critério, nos comportamos como crianças que jogam aqueles jogos de  
embaralhar mãos e pés sobre um tabuleiro no chão, conforme se  
sorteiam cores, numeros ou formas. E, eventualmente, todas as  
crianças vão perder o equilíbrio e cair no chão, umas enroladas nas  
outras.

   A diferença é que, quando um engenheiro de software incauto faz  
isso, não tem graça nenhuma, e, normalmente, não é possível  
desembaralhar mãos e pernas e começar novamente o jogo.

   Assim, quando eu digo "tomem cuidado com OOA&D", é por que, em  
determinada altura da vida, eu comecei a reparar que a gente toma  
decisões e implementa coisas que são nojentas, simplemente por que é  
a única forma "lícita" de se fazer isso sem quebrar os contratos que  
foram estabelecidos até o momento.

   Claro, seu chefe nunca quer saber de nenhum contrato quebrado: se  
você não implementar as coisas em tempo, ele simplesmente te joga na  
rua e coloca outro incauto ali, que vai xingar, criticar, adaptar,  
escrever, pesquisar, tentar reformar, e... aderir ao contrato. Pelo  
menos, desta forma, não quebramos o "software legado" vão te dizer.  
Não é preciso fazer força, já veio quebrado "de fábrica"...

   Espero que isso te ajude a entender por que eu acho que OOA&D pode  
morder.
   Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}




Mais detalhes sobre a lista de discussão SaoPaulo-pm