Pesquisar

quinta-feira, 29 de maio de 2008

As atribuições de um arquiteto de software

Na última edição da revista The Architecture Journal ,de número 15, foi tratado quais são as atribuições de um arquiteto de software, o pôrque de um arquiteto, quais habilidades são requiridas e etc. A edição ainda traz, como de costume, o perfil de um arquiteto para ser analisado.
Gostei da edição porque simplesmente há vários pontos de vista sobre "essa" profissão, há esclarecimentos sobre o que faz, qual a necessidade de conhecimento técnico. Enfim são várias opiniões sobre o mesmo assunto com diferentes pontos de vista.

Resumo.

* Foreword
* We Don’t Need No Architects
* Becoming an Architect in a System Integrator
* Architecture Journal Profile: Paul Preiss
* The Open Group’s Architect Certification Programs
* The Need for an Architectural Body of Knowledge
* A Study of Architect Roles by IASA Sweden
* The Softer Side of the Architect
* An A-Z Guide to Being an Architect

Para essa edição (15 - The Role of an Architect)
Acesse o site aqui. (já adianto que não é sobre como usar tecnologias (nem .net nem java))

quarta-feira, 21 de maio de 2008

Mais do mesmo

Depois de ler + um ótimo post .
Darei mais alguns exemplos que já vivenciei:
lógica para somar pontos a clientes...

cliente.setPontos(cliente.getPontos()+1);
(e isso se espalhava por todo código...)
Se alguma data do ano (especial, comemorativa, aniversário da loja...) quisesem oferecer uma promoção de a cada compra o cliente aumentaria os pontos em 10 seria MUITO chato...

Mais simples
cliente.adicionarPontos();
Se houvesse alguma mudança bastaria fazê-la no método.

Ou ainda quantas vezes vi algo semelhante...

if (funcionario.getSalario() > 1000.0d){
funcionario.setAjuste(0.03d);
//além do fato do pessímo uso dos double, float para $
}


Um comportamento que deveria ser interno ao "objeto" funcionário sendo tratado em outro local, talvez melhor seria algo como... (o próprio método do funcionário conter essa "lógica")

public double getAjust(){
if (getSalario()>1000.d){
setAjuste(0.03d);
}
}



ps: acredito que tudo visa um final menos complexo.(final = manutenção) Centralizar os comportamentos nos objetos...