Skip to content

Instantly share code, notes, and snippets.

@rcarneiro
Created June 10, 2010 14:50
Show Gist options
  • Save rcarneiro/433106 to your computer and use it in GitHub Desktop.
Save rcarneiro/433106 to your computer and use it in GitHub Desktop.
Discussão sobre os motivos de não iniciar a modelagem de domínio
de um sistema pelo banco de dados.
@lucabastos
Copy link

Felipe

BDUF é praticamente inevitável e quase sempre existe, pelo menos um pouco. BD às vezes também precisa de refactoring. Se não for por BDUF, será porque não consideramos alguma coisa.

Não discordo do Rodrigo quanto ao uso de ferramentas como o Hibernate. Só que para mim isto é um detalhe que pode ser usado ou não na hora de criar as classes oriundas da modelagem (As do Rails são até melhores do que as do Hibernate)

Ainda prefiro modelar as classes no papel. E quando digo modelar as classes, estou pensando apenas no que vai representar minha solução enquanto são apenas um retangulozinho no papel. Tenho dificuldades de enxergar a necessidade de existir e o relacionamento entre classes direto na IDE.

@rodrigoy
Copy link

Lucca, BDUF é "BIG design up-front"... Design up front não é um problema. Todos os projetos que trabalho existe alguma modelagem, seja em cards, quadro-branco ou papel A4. O BDUF é querer modelar o sistema em detalhe logo no início.

Uma questão que tenho visto nesses quase 10 anos que eu estudo sobre modelagem é que algumas pessoas são mais visuais do que outras, e por isso a opinião sobre modelagem pode variar bastante. Eu gosto de modelar visualmente e acho que modelos visuais (mais uma vez, em papel, lousa-mágica, quadro-branco e etc...) fornecem uma visão excelente, principalmente em reuniões de planejamento de release ou iteração.

@lucabastos
Copy link

Rodrigo

Plenamente de acordo. Para mim, a modelagem visual só tem vantagens. Ajuda superar minhas dificuldades de enxergar o conjunto e principalmente ajuda explicar para o cara de negócio, seja ele um PO, seu chefe ou alguém de um cliente externo.

É que muitos desenvolvedores se prendem a siglas e se bloqueiam com medo delas. Não há mal nenhum em modificar o que inicialmente se imaginou como necessário. Os xiitas dizem que quando se corta coisas feitas no início aconteceu BDUF. Para mim isto é normal.

E voltando a pergunta inicial, acho que é o que mais acontece no dia a dia. Mesmo em um sistema em evoução, iterações posteriores dependem de bancos de dados definidos em iterações iniciais e eventualmente que já foram liberadas para produção. Aí é aquela história de só poder mexer de madrugada, com beneplácito de DBAs que já se apossaram do sistema e tudo o mais. É do dia a dia do desenvolvedor.

Resumindo: modelar com BD pronto talvez seja mais comum do que partir do zero.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment