Mensagens enviadas por: Java Vinicius Machine
Índice dos Fóruns » Perfil de Java Vinicius Machine » Mensagens enviadas por Java Vinicius Machine
Autor Mensagem
marciosantri wrote:
Acho que polimorfismo não resolve algo como



E se fosse um double?
Na boa, acho que ia ajudar muito ao invés de ficar colocando um monte de ifs.


Dá pra encapsular tudo isso usando o padrão de projeto Command. (É matar formiga com granada, mas mesmo assim... só pra ressaltar que dá pra encapsular).
Na minha opinião tá de bom tamanho, visto que estruturas switch são, na maioria das vezes, um bad smell. Se você pode usar polimorfismo pra que switch flexível?
Leonardo3001 wrote:Reeengenharia não implica na cópia da estrutura de objetos ou de chamadas a métodos presentes em uma linguagem para a outra, portanto a presença ou não de ferramenta que gera diagramas a partir de código é no mínimo questionável.


Ninguém falou em "cópia da estrutura de objetos ou de chamadas a métodos", niguém mencionou nada disso.
Mencionei a utilização de ferramentas para obtenção de diagramas de classes a partir do código fonte, isso é completamente diferente. Caso não tenha ciência, atividades de reengenharia envolvem atividades de engenharia reversa; se tivesse lido pelo menos uma referência confiável sobre o assunto estaria ciente disso. Atividades de engenharia reversa podem ser apoiadas por ferramentas.

Afinal de contas se você não tem uma representação de alto nível do que será alterado é bem complicado saber onde as alterações devem ser realizadas, e compreender o sistema como um todo. E quando a documentação disponível não está sincronizada com o estado atual do sistema? E os diagramas disponíveis na mesma também não refletem o que se encontra implementado? Vai continuar analisando e confiando cegamente na documentação?

Olha até posso sugerir algumas referências pra ti. Sem pedantismo nenhum, mas meu trabalho de mestrado é nessa área. Acho que sei do que estou falando. Se quiser pode começar por esse aqui: http://www.amazon.com/Oriented-Reengineering-Patterns-Engineering-Programming/dp/1558606394/ref=sr_1_1?ie=UTF8&s=books&qid=1210095211&sr=8-1

Toda a questão começou por "inferência de tipos", se você acha que é fácil fazer tal coisa em linguagens dinamicamente tipadas poderia publicar bastante. Há vários artigos na IEEE sobre tal assunto... se tiver alguma idéia revolucionária.
Vai ficar para a próxima, estou até a nuca de coisas pra fazer.
Leonardo3001 wrote:
Não sei o que você entende por "reengenharia", por que é uma palavra, digamos, "superutilizada" para designar qualquer coisa que tem que ser feita na fase de manutenção. Para mim, reengenharia é uma transformação no software para se adequar a uma mudança de ambiente ou uma mudança no paradigma de negócio. Isso envolve outras variáveis além de simplesmente código, como por exemplo arquitetura ou análise do negócio, cujo esforço é o mesmo independente da linguagem utilizada pelo software.


Primeiro, em momento nenhum afirmei que o domínio, que envolve regras de negócio etc e tal, não tem influência em esforços de reengenharia.

Segundo, nesse caso eu classifico reengenharia como manutenção preventiva.

Para esclarecer um pouco mais:

Normalmente atividades de reengenharia envolvem engenharia reversa, que consiste em analisar a documentação, quando disponível, o código fonte, enfim vários artefatos gerados durante o desenvolvimento do software. Após essa análise o propósito de atividades de engenharia reversa é criar representações em um nível mais alto de abstração, como por exemplo: diagramas de classe, seqüência etc. Geralmente, essas atividades de engenharia reversa são mais facilmente realizadas quando o sistema encontra-se implementado em uma linguagem estaticamente tipada (por exemplo, Java). Leonardo3001 quantas ferramentas você conhece que produzem diagramas de classes, a partir de engenharia reversa, de linguagens como Smalltalk, Ruby, etc? Foi isso que eu quis dizer. E afirmo isso por experiência própria, pois, tive que realizar reengenharia de um sistema em Smalltalk para reimplementá-lo em Java, e pode apostar que se a inferência de tipos tivesse sido realizada de maneira mais simples eu necessitaria refatorar menos o código Java.
Abraços.
Zakim wrote:Use um editor melhor se quiser. O JEdit é uma boa opção


Ou Emacs!
Só para acrescentar, a questão de uma liguagem ser dinamicamente tipada pode até ajudar durante o desenvolvimento (o que normalmente acontece). Mas dificulta bastante esforços de reengenharia, principalmente quando a inferência de tipos é necessária.
Já tinha visto, bem interessante mesmo.
balarini wrote:Estou no level 18.

marcushlm wrote:
parei no 16 pq tinha que trabalhar mesmo

Não disse que seria uma terça feira produtiva, nada melhor que trabalhar depois da jogatina!
(nem estou jogando mais, vou terminar a dissertação primeiro )
Se a resposta for não confira os jogos abaixo, garanto que valem muito a pena, principalmente o segundo.
(caso tais jogos já tenham sido difundidos no GUJ....uhn... desculpa! )

http://www.eyezmaze.com/eyezblog_en/blog/2005/09/grow_cube.html#monster

http://magic.pen.fizzlebot.com/

Abraços, e boa terça-feira a todo vapor!
ai ai.. o bom e velho caps quebrado.
Olha, já deu uma olhada no JFLAP? Acho que pode ajudar.
cv wrote:Que tal comprar um livro?

comprar_um_livro++
Dá pra ler no ônibus... voltando do trabalho, universidade, entre outros.
Bruno_Leonardo wrote:
Irmãozinho gente boa hein?


Mais gente fina impossível.

Parabéns pelo score. Agora é só aprender algumas práticas interessantes como refactoring e TDD, as nuances da linguagem você já conhece.

Abraço, boa sorte.

ps: ano que vem tiramos "a próxima".
Relaxa. Você já sai do centro autorizado prometric com um comprovante em mãos. (Se passar claro! )
 
Índice dos Fóruns » Perfil de Java Vinicius Machine » Mensagens enviadas por Java Vinicius Machine
Ir para:   
Powered by JForum 2.1.8 © JForum Team