TDD Vs UML?? Oo  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
Elizeu_Santos
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2008 20:21:57
Mensagens: 670
Localização: RJ
Offline

rsrsrs então pera ai.
eu te dou um projeto pra fazer, você simplesmente abre o eclipse, da um "add jars" no junit e começa a programar?

e quando outro programador for fazer manutenção no seu sistema? ah ta, ele vai abrir mil classes uma a uma lendo os "//" e "/** */" e vai entender tudo néh?

sempre que ele tiver duvida de algo ele vai ter que procurar dentro do código. rsrs

isso sim é ser programador!

JSF 2
EJB 3
Spring 3
Hibernate 4


"É um prazer puro da alma espalhar pelo mundo o fruto de seus estudos e meditações, ainda sem outra remuneração que a consciência de fazer bem."
José Bonifácio
immortalSoul
JavaGuru

Membro desde: 25/06/2006 13:41:50
Mensagens: 200
Offline

Elizeu_Santos wrote:rsrsrs então pera ai.
eu te dou um projeto pra fazer, você simplesmente abre o eclipse, da um "add jars" no junit e começa a programar?

e quando outro programador for fazer manutenção no seu sistema? ah ta, ele vai abrir mil classes uma a uma lendo os "//" e "/** */" e vai entender tudo néh?

sempre que ele tiver duvida de algo ele vai ter que procurar dentro do código. rsrs

isso sim é ser programador!


OK,
então, pra começar, para um programador é melhor que a regra esteja documentada onde?
E onde é mais prático fazer manutenção dessa documentação?


s4nchez
Virtual Machine Man
[Avatar]

Membro desde: 05/06/2006 11:35:55
Mensagens: 674
Localização: London, UK
Offline

Elizeu_Santos wrote:rsrsrs então pera ai.
eu te dou um projeto pra fazer, você simplesmente abre o eclipse, da um "add jars" no junit e começa a programar?

e quando outro programador for fazer manutenção no seu sistema? ah ta, ele vai abrir mil classes uma a uma lendo os "//" e "/** */" e vai entender tudo néh?

sempre que ele tiver duvida de algo ele vai ter que procurar dentro do código. rsrs

isso sim é ser programador!


Isso ja aconteceu comigo. Entrei num projeto ja em andamento e nao havia nenhuma documentacao que nao fosse executavel. Por outro lado haviam centenas de testes de aceitacao (FitNesse) e milhares de testes de unidade. Nao tive que ler uma linha sequer de comentarios (o codigo era extremamente limpo), e consegui aprender tudo o que precisava para trabalhar naquele codigo sem maiores problemas. Sempre que tinha uma duvida eu podia recorrer aos testes, e ate mesmo modifica-los para explorar cenarios do tipo "e se?". Pode ser soh minha preferencia, mas nao troco essa abordagem por nenhum outro tipo de documentacao que eu conheco.

Ivan Sanchez | coding dojo | blog | twitter
[WWW]
Elizeu_Santos
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2008 20:21:57
Mensagens: 670
Localização: RJ
Offline

foi mal mano, então tenho de admitir VOCÊ É O CARA!

deve ser engenheiro do Google ou quem sabe da IBM no mínimo. o mais provável é que você~e seja engenheiro da Nasa e que faça metade do serviço sozinho!

classe tal herda de tal... implementa tal.... ai você vai nos testes e descobre tudo que a outra tem... ou você vai abrindo todas as classes pra ver... quando você poderia simplesmente olhar em um pedaço de papel ¬¬. e por fim, se desse algo errado, você faria testes para entender melhor como funciona.

veja que você já menosprezou até os comentários de código.
não vou me exaltar ou levar sua opinião em consideração, já entendi seu artigo ¬¬.

JSF 2
EJB 3
Spring 3
Hibernate 4


"É um prazer puro da alma espalhar pelo mundo o fruto de seus estudos e meditações, ainda sem outra remuneração que a consciência de fazer bem."
José Bonifácio
Marcio_Nogueira
JWizard
[Avatar]

Membro desde: 21/05/2007 20:14:54
Mensagens: 2781
Localização: xxxxxxxxxxxxxxxxxxxxxxxxxx
Offline

Uma boa documentação ajuda e muito não somente no desenvolvimento do sistema/aplicação, mas também na manutenção.

MBA em Desenvolvimento de Sistemas em Ambiente Web
Bacharel em Desenho Industrial / Programação Visual
Marcio Nogueira C. Pinto
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
immortalSoul
JavaGuru

Membro desde: 25/06/2006 13:41:50
Mensagens: 200
Offline

Elizeu_Santos wrote:foi mal mano, então tenho de admitir VOCÊ É O CARA!

deve ser engenheiro do Google ou quem sabe da IBM no mínimo. o mais provável é que você~e seja engenheiro da Nasa e que faça metade do serviço sozinho!

classe tal herda de tal... implementa tal.... ai você vai nos testes e descobre tudo que a outra tem... ou você vai abrindo todas as classes pra ver... quando você poderia simplesmente olhar em um pedaço de papel ¬¬. e por fim, se desse algo errado, você faria testes para entender melhor como funciona.

veja que você já menosprezou até os comentários de código.
não vou me exaltar ou levar sua opinião em consideração, já entendi seu artigo ¬¬.


É justamente por não ser um "engenheiro da google ou da IBM ou qualquer outro que faça metade do serviço sozinho" é que ele prefere um código bem escrito, limpo e com muitos testes. E quanto mais bem escrito o código estiver, menos comentários vão ser necessários, concorda?

Os testes são ( ou podem ser) uma documentação muito mais eficiente do que um diagrama UML. E o melhor é que ele sempre vai ter que estar atualizado, ao contrário do que sempre acontece na prática com os casos de uso, por exemplo. E além disso os testes são capaz de fazer muito mais, mostrando se alguma intervenção no código afetou alguma funcionalidade.

Sobre a UML, o esforço pra manter os documentos atualizado é bem elevado. A empresa precisa estar bem avançada na implantação de seus processos para que os documentos reflitam de fato a situação do sistema no momento. Por isso existe uma aproximação forte entre a UML e o 'modelo em cascata'. Na verdade o tal 'modelo em cascata' é em espiral. Mas nesse modelo a mudança é desencorajada e evitada. Não que não possa acontecer ( existem processos para gestão da mudança), mas é algo que se tenta minimizar.
Para desenv. software é quase sempre melhor adotar uma abordagem mais flexivel e que aceite melhor a mudança, que não veja a mudança como algo que deva ser evitado. Os testes permitem essa flexibilidade e a manutenção é mais simples.





s4nchez
Virtual Machine Man
[Avatar]

Membro desde: 05/06/2006 11:35:55
Mensagens: 674
Localização: London, UK
Offline

Elizeu_Santos wrote:..


Uma pena que voce prefere baixar o nivel nessa discussao que poderia ser util para outros. Seja feliz com seus diagramas

Ivan Sanchez | coding dojo | blog | twitter
[WWW]
immortalSoul
JavaGuru

Membro desde: 25/06/2006 13:41:50
Mensagens: 200
Offline

Estou impressionado como mesmo hoje, depois de algum tempo da popularização do agil, TDD, BDD e etc, as idéias de processos rigidos ( foco no processo) no lugar do resultado (Algo que eu mesmo questiono até hoje), ou de um esforço em uma extensa documentação no lugar do esforço na tentativa de criar um código limpo e simplificado ainda seja predominante em um forum como esse.


Acho que alguns professores de faculdade estão precisando voltar pro mercado e deixar de espalhar idéias do século passado.
Marcio_Nogueira
JWizard
[Avatar]

Membro desde: 21/05/2007 20:14:54
Mensagens: 2781
Localização: xxxxxxxxxxxxxxxxxxxxxxxxxx
Offline

Estaria errado utilizar UML para representar as classes, interfaces e objetos do sistema em conjunto com testes unitários / integração?

MBA em Desenvolvimento de Sistemas em Ambiente Web
Bacharel em Desenho Industrial / Programação Visual
Marcio Nogueira C. Pinto
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
Daniel_MV
JavaEvangelist
[Avatar]
Membro desde: 30/04/2007 07:43:01
Mensagens: 425
Offline

immortalSoul wrote:
Elizeu_Santos wrote:foi mal mano, então tenho de admitir VOCÊ É O CARA!

deve ser engenheiro do Google ou quem sabe da IBM no mínimo. o mais provável é que você~e seja engenheiro da Nasa e que faça metade do serviço sozinho!

classe tal herda de tal... implementa tal.... ai você vai nos testes e descobre tudo que a outra tem... ou você vai abrindo todas as classes pra ver... quando você poderia simplesmente olhar em um pedaço de papel ¬¬. e por fim, se desse algo errado, você faria testes para entender melhor como funciona.

veja que você já menosprezou até os comentários de código.
não vou me exaltar ou levar sua opinião em consideração, já entendi seu artigo ¬¬.


É justamente por não ser um "engenheiro da google ou da IBM ou qualquer outro que faça metade do serviço sozinho" é que ele prefere um código bem escrito, limpo e com muitos testes. E quanto mais bem escrito o código estiver, menos comentários vão ser necessários, concorda?

Os testes são ( ou podem ser) uma documentação muito mais eficiente do que um diagrama UML. E o melhor é que ele sempre vai ter que estar atualizado, ao contrário do que sempre acontece na prática com os casos de uso, por exemplo. E além disso os testes são capaz de fazer muito mais, mostrando se alguma intervenção no código afetou alguma funcionalidade.

Sobre a UML, o esforço pra manter os documentos atualizado é bem elevado. A empresa precisa estar bem avançada na implantação de seus processos para que os documentos reflitam de fato a situação do sistema no momento. Por isso existe uma aproximação forte entre a UML e o 'modelo em cascata'. Na verdade o tal 'modelo em cascata' é em espiral. Mas nesse modelo a mudança é desencorajada e evitada. Não que não possa acontecer ( existem processos para gestão da mudança), mas é algo que se tenta minimizar.
Para desenv. software é quase sempre melhor adotar uma abordagem mais flexivel e que aceite melhor a mudança, que não veja a mudança como algo que deva ser evitado. Os testes permitem essa flexibilidade e a manutenção é mais simples.




Assino embaixo.

x___Daniel_MV________________
Elizeu_Santos
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2008 20:21:57
Mensagens: 670
Localização: RJ
Offline

escrevi 72 linhas de resposta, porém prefiro RIR e manter longe do tópico meus comentários.

eu crio uma classe main
ai crio uma outra classe
crio mais 3 classes
ai vejo que uma é mais genérica que a outra e se tratam de algo parecido
ai eu misturo e crio uma super-classe
ai eu começo a estender.
ai vejo que preciso de uma outra classe e a crio
ai o ciclo recomeça do segundo pra baixo.
código limpíssimo!

tenho que rir. sem comentários.


JSF 2
EJB 3
Spring 3
Hibernate 4


"É um prazer puro da alma espalhar pelo mundo o fruto de seus estudos e meditações, ainda sem outra remuneração que a consciência de fazer bem."
José Bonifácio
Elizeu_Santos
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2008 20:21:57
Mensagens: 670
Localização: RJ
Offline

a idéia de TDD sem documentação e organização previa de projeto me parece mais XGOHourse.

JSF 2
EJB 3
Spring 3
Hibernate 4


"É um prazer puro da alma espalhar pelo mundo o fruto de seus estudos e meditações, ainda sem outra remuneração que a consciência de fazer bem."
José Bonifácio
Elizeu_Santos
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2008 20:21:57
Mensagens: 670
Localização: RJ
Offline

http://www.gojava.org/node/135

pode ser interessante ler os comentários.

JSF 2
EJB 3
Spring 3
Hibernate 4


"É um prazer puro da alma espalhar pelo mundo o fruto de seus estudos e meditações, ainda sem outra remuneração que a consciência de fazer bem."
José Bonifácio
RafaFloripa
JavaChild
[Avatar]

Membro desde: 10/09/2009 20:22:37
Mensagens: 127
Offline

Bom...

testes são uma forma de documentação
se realmente consegue manter um controle sobre os métodos e criar religiosamente os casos
não vejo porque não

até vejo como muito melhor que UML
minha opinião
rmendes08
GUJ Master
[Avatar]

Membro desde: 29/05/2008 14:09:28
Mensagens: 1618
Offline

Marcio_Nogueira wrote:Estaria errado utilizar UML para representar as classes, interfaces e objetos do sistema em conjunto com testes unitários / integração?


Não, não é errado. Mas se o código dos testes e da implementação forem bem escritos não é necessário.

"A Técnica é transformada em Arte por quem a emprega"

"O futuro pertence àqueles que acreditam na beleza de seus sonhos"

Computadores Fazem Arte

http://www.uaijug.com.br

"É importante estabelecer uma estrutura de alto nível, mas isso não significa criar uma infinidade de diagramas de classes detalhados."
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team