Arquivo para 'Arquitetura'
Como medir a coesão do seu código? A métrica LCOM
Postado em 23. jan, 2013 por Mauricio Aniche.
Aqui no blog da Caelum já discutimos métricas como complexidade ciclomática e acoplamento, e chegamos em maneiras quantitativas de medi-las. Agora, uma boa pergunta é: como medir coesão? Mais claramente, como chegar em um número que diz o quão coesa uma classe é? Vamos estudar novamente o que é coesão. Sabemos que uma classe deve more »
Continue Lendo
Orientação a objetos: uma outra perspectiva sobre o acoplamento
Postado em 24. out, 2012 por Mauricio Aniche.
Todo mundo que já viu orientação a objetos alguma vez na vida conhece a frase “classes devem ter alta coesão e baixo acoplamento“. Uma classe altamente acoplada pode ser sim um problema. Veja o diagrama abaixo, por exemplo, onde temos a classe GerenciadorDeNotaFiscal, que depende de outras 3 classes: um DAO, uma classe que envia more »
Continue Lendo
Comece a trabalhar com Java no Amazon S3
Postado em 14. ago, 2012 por Leonardo Wolter.
É relativamente simples colocar sua aplicação no cloud da Amazon. Um dos serviços oferecidos e bastante utilizados é o Amazon Simple Storage Service (S3), para armazenamento de dados em cloud. A vantagem do serviço S3 é justamente não precisarmos ter tanta preocupação com a gestão do hardware e infraestrutura, podendo também diminuir custos. O S3 more »
Continue Lendo
Entenda os MVCs e os frameworks Action e Component Based
Postado em 03. jul, 2012 por Adriano Almeida.
É muito comum encontrar desenvolvedores que aprendem componentes do JSF como o Primefaces e o Richfaces e gostariam de usá-las em seus projetos que utilizam frameworks web como o Spring MVC, Struts e VRaptor, porém, isso não é possível. Por que? Entenda os diferentes funcionamentos do MVC, aprenda como funcionam os frameworks e tire para more »
Continue Lendo
Revisitando a Orientação a Objetos: encapsulamento no Java
Postado em 14. jun, 2012 por Mauricio Aniche.
Façamos uma aposta. Tenho certeza que você, ao ver a classe abaixo, consegue perceber um problema nela: Sim. Os atributos estão todos públicos! Isso vai exatamente contra uma das nossas primeiras lições quando aprendemos Java: atributos devem ser privados e precisamos de getters e setters para acessá-los. Vamos então fazer essa mudança no código. Agora more »
Continue Lendo
Java EE versus Spring: retomando a discussão
Postado em 27. mar, 2012 por Nico Steppat and Flávio Almeida.
De tempo em tempo surgem artigos que retomam a velha disputa entre Spring e Java EE (algumas vezes mais focado em EJBs). O artigo mais recente é do polêmico Bill Burke que já cutucou várias vezes, dando suas razões para justificar sua visão na qual o Spring morrerá e o Java EE ganhará a batalha. more »
Continue Lendo
Medindo a complexidade do seu código
Postado em 01. mar, 2012 por Mauricio Aniche.
Sabemos que um dos grandes vilões na hora de mantermos um sistema legado são os trechos de código difíceis ou complicados de entender. Todo programador já se deparou com (ou mesmo escreveu!) códigos com péssimos nomes de variáveis ou muitas linhas de código em um único método, sem contar o excesso de responsabilidade. Mas, sem more »
Continue Lendo
Rodando sua aplicação na Amazon do Brasil
Postado em 20. dez, 2011 por Guilherme Silveira.
Desde o início de nosso trabalho com o cloud em 2009 temos investido tempo e pesquisa na utilização do cloud como plataforma para diminuir custos (e trabalho!) e potencializar produtos, através de diversos vendors. Com a Amazon não é diferente: nosso sistema de ensino online está deployado lá. Com o lançamento de grande parte da more »
Continue Lendo
Lançamento do livro Introdução à Arquitetura e Design de Software
Postado em 15. dez, 2011 por Paulo Silveira.
Depois de uma longa espera, temos o tão aguardado lançamento. O livro está sendo distribuído para as livrarias, e já é bem fácil encontrá-lo nas lojas online, como na Saraiva. Foi bastante tempo e trabalho para criar uma introdução abrangente, e ao mesmo tempo com uma necessária profundidade, de alguns dos principais tópicos da plataforma more »
Continue Lendo
NoSQL – Do teorema CAP para P?(A|C):(C|L)
Postado em 07. dez, 2011 por Nico Steppat.
Existem muitas motivações para os bancos NoSQL, como por exemplo usar um modelo mais adequado para os seu dados ou facilitar alterações de schema; ou ainda além, melhorar o desempenho e simplificar a replicação para ter a tão sonhada escalabilidade linear. O teorema CAP Claro que todos os benefícios não vem sem custo, comparado com os more »
Continue Lendo
Screencast: sua App no Cloud com OpenShift
Postado em 01. dez, 2011 por Hanneli Tavante.
O cloud vem se espalhando pelo mercado de TI e em especial entre os desenvolvedores de software. Heroku, Cloud Foundry, Microsoft Azure, Google App Engine, entre outros serviços de cloud no modelo PaaS, (Platform as a Service), popularizaram-se muito nos últimos tempos. Para disponibilizar serviços de cloud, é necessário que haja uma infraestrutura de servidores more »
Continue Lendo
Adequar o banco às entidades ou o contrário?
Postado em 09. ago, 2011 por Erich Egert.
Uma das features interessantes do Hibernate é gerar a Data Definition Language para criação da estrutura de tabelas do banco de dados (schema). Tudo que precisamos fazer é pensar em nosso modelo Orientado a Objeto que o banco é gerado automaticamente a partir das entidades. Aparentemente o processo de pensar na modelagem do banco de more »
Continue Lendo
Caçando seus gargalos com o Hibernate Statistics
Postado em 08. jun, 2011 por Guilherme de Almeida Moreira.
Uma reclamação frequente dos novos usuários do Hibernate é o excesso de queries realizadas pelo framework, afetando não só a performance mas também a escalabilidade da aplicação. Será realmente culpa do framework? Práticas simples podem ajudar a enfrentar esses gargalos ao usar o Hibernate, mas como detectá-los numa aplicação que já foi mapeada sem muito more »
Continue Lendo
Como não aprender orientação a objetos: o excesso de ifs
Postado em 12. abr, 2011 por Guilherme Silveira.
Aglomerados de ifs aparecem com frequência, e chegam até a ter um aspecto engraçado. Em alguns casos poder dar a impressão de que estamos usando orientação a objetos, já que cada cláusula costuma envolver a invocação de um método, dependendo do tipo do objeto. Infelizmente, essa sensação é falsa, e chegou até a gerar o more »
Continue Lendo
Facilitando a manutenção dos testes ao diminuir o acoplamento com o código
Postado em 01. mar, 2011 por Mauricio Aniche and Guilherme Silveira.
É fácil entender por que devemos diminuir o acoplamento entre classes: a alteração em um ponto do sistema pode propagar a necessidade de mudanças em outros. Dependendo do acoplamento, uma simples alteração exige um esforço enorme. Em alguns casos as mudanças não são feitas, e a funcionalidade é simplesmente descartada, devido a esse alto custo more »
ASSINE NOSSO RSS