Archive

Author Archive

Por que Modelagem de Domínio

April 11th, 2014 No comments

Rebecca Wirfs-Brock. Why Domain Modeling?
[online] Disponível na Internet via WWW. URL: http://wirfs-brock.com/blog/2013/02/27/why-domain-modeling/. Arquivo capturado em 27 de fevereiro de 2013

Uma barreira ao considerar arquiteturas ricas em modelo de domínio é a ideia errônea do valor ou propósito de um modelo de domínio. Para alguns, criar um modelo de domínio parere retroceder à aqueles dias iniciais onde projeto e modelagem eram percebidas como atividades discretas, longas e muitas vezes improdutivas.

Quando a tecnologia objeto era jovem, vários autores fizeram uma forte distinção entre análise orientada a objeto, projeto orientado a objeto e programação. Ostensivamente, durante análise orientada a objeto você analisou uma tarefa com intuito de automatizá-la e desenvolveu um modelo conceitual (de objeto) daquele domínio. Você produziu um conjunto de descrições de tarefa e um modelo de objetos que incluiu representações de conceitos do domínio e mostrou como estes objetos interagiram para concluir algum trabalho. Mas você não conseguiu implementar diretamente estes objetos. Durante o projeto orientado a objeto você refinou esse modelo da análise de forma a considerar a implementação e restrições tecnológicas. Somente então, ao terminar o projeto, escreveria seu programa. A implicação era que qualquer modelo que você produzisse durante a análise ou projeto necessitaria ampla manipulação e refinamento antes de poder escrever seu programa.

Mas mesmo naqueles dias iniciais, muitos de nós borrou as linhas entre análise, projeto e programação orientada a objeto. Na prática, como trabalhávamos era frequentemente bem diferente do sugerido pela literatura popular daquele tempo. Podíamos analisar o problema, rapidamente esboçar algumas ideias de projeto e então implementá-las. Podíamos usar cartões CRC para modelar nossos objetos (os quais descartaríamos). Não havia lacunas distintas entre análise do problema e projeto e implementação da solução. Algumas vezes diferentes pessoas faziam análise enquanto outras o projeto e programação; mas muitas vezes um desenvolvedor faria todas essas atividades. Algumas vezes, criávamos representações permanentes de alguns modelos (além de nosso código). Isso dependia da situação e da necessidade.

Esses dias, raramente vejo alguém produzir análise de objeto ou modelos de projeto. Na verdade, projeto e modelagem tornaram-se algo sem sabor (ou de má reputação). Um bom projeto de objeto é considerado muito difícil por programadores “médios”, e não há tempo fora da codificação para pensar sobre o domínio e propor alguns modelos.

Os modelos de objeto mais comuns que vejo, são criados para um dos seguintes propósitos: pequenos modelos conceituais construídos para ganhar entendimento de uma funcionalidade significante; ou esboços de projeto informal com o intuito de fornecer uma visão rápida para recém-chegados ou pessoas que não leem código que necessitam “saber mais” do software. A falta de modelagem (a menos que você considere código e testes modelos – Eu não!) é predominante se ou não a equipe segue práticas ágeis. Os modelos mais comuns que vejo são modelos ER detalhados que são mais especificações de implementação do que modelos. Eles não deixam nenhum detalhe dificultando a busca de partes importantes.

Entender e descrever um domínio e criar qualquer modelo dele de algum forma, fica fora de muitas atividades de desenvolvimento.
Mas se seu software é complexo, sofre mudanças repentinas, estratégico e você não está fazendo nenhuma modelagem de domínio, você pode estar perdendo alguma coisa realmente importante. Se seu software é complexo o bastante, você pode notavelmente se beneficiar da modelagem de domínio e certamente realizar algumas atividades do Projeto Dirigido por Domínio(Domain-Driven Design).
Por exemplo, a “Estratégia de Projeto” do Projeto Dirigido por Domínio é um esforço consciente para criar um entendimento comum entre visionários do negócio, especialistas do domínio e desenvolvedores. Discussões de domínio iniciais de alto nível leva ao entendimento do que é central ao problema(o núcleo do domínio) e ao relacionamento entre todas as partes(subdomínios) que se interagem. Ganhar tal consenso te ajuda a manter o foco em melhores práticas de projeto e estruturar (ou restruturar) seu software habilitando-o a crescer e evoluir sustentavelmente.
Mas não para por aí. Se você compra a ideia de modelagem de domínio, você também se compromete a desenvolver um profundo compartilhamento do entendimento do domínio do problema ao lado do seu código. Sua missão não é somente entregar operações funcionais, mas incorporar conhecimento do domínio em sua solução. Seu código terá objetos que representam conceitos do domínio. Você será mais minucioso ao nomear classes e métodos, assim refletindo exatamente a linguagem do domínio. Você terá discussões progressivas com especialistas de domínio e em conjunto discutir e refinar seu entendimento do domínio. Ao longo do caminho você pode rascunhar e revisar modelos de domínio. Se esforçará para identificar, preservar, fortalecer e tornar explícito as conexões entre o problema do negócio e seu código. Quando refatorar seu projeto ao ganhar mais entendimento, você não esquecerá de refletir o domínio em seu código. Seu modelo de domínio vive e evolui junto com o código.
Como consequência, não há aquela grande desconexão entre o que você codifica e o que o negócio diz. E essa pode ser uma poderosa força para uma colaboração mais próxima entre desenvolvedores e especialistas do domínio.

Os Segredos dos Casais Inteligentes (Gustavo Cerbasi)

December 6th, 2013 No comments

Nesta entrevista entre Seiiti Arata (Arata Academy) e Gustavo Cerbasi (Mais Dinheiro), aborda-se temas importantes para a vida financeira a dois, como a construção de riqueza, o bom diálogo entre o casal em assuntos relacionados a dinheiro, as infidelidades financeiras e também o divórcio e a importância em atentar para o regime de separação de bens. Você pode fazer o download desta entrevista na área de membros de nosso site aclassealta.com e conferir mais detalhes no novo livro Os Segredos dos Casais Inteligentes (Editora Sextante)

Maioridade Penal: por Ariovaldo Ramos

November 27th, 2013 No comments

Por Ariovaldo Ramos

Precisamos ter discernimento e clareza nesse assunto.

Firmeza

November 8th, 2013 No comments

 

Firmeza

Leitura Bíblica: Atos 14.21-23

Bem-aventurados os perseguidos por causa da justiça, pois deles é o reino dos céus (Mt 5.10).

 

O livro de Atos registra um cristianismo corajoso e saudoso, que ia acontecendo na medida em que as pessoas contavam umas às outras suas descobertas na caminhada com Deus, crendo que Cristo era o enviado de Deus ao mundo. Os apóstolos punham sua vida em risco por amor às pessoas, para que estas conhecessem a Deus. Aqueles que abraçavam a fé em Cristo, em vez de se dar bem, sofriam perseguição religiosa, discriminação e até ameaças. Não havia promessas de conseguir um emprego melhor, nem de prosperidade financeira ou ascensão social. O que havia era a experiência viva com Deus e isso bastava.

Chama-me a atenção a frase que Paulo e Barnabé dizem aos discípulos, estimulando-os à firmeza: “É necessário que passemos por muitas tribulações para entrarmos no Reino de Deus”. Isso parece bem o oposto do que se proclama hoje! Quando surge uma “tribulação” (um problema, uma enfermidade, um revés qualquer) muitos já a conectam a uma ação diabólica, como se cristãos fossem isentos de problemas, como se Deus fosse um tipo de super-herói pessoal que está sempre alerta para nos livrar dos problemas assim que estes surgirem. Isso gera um cristianismo oportunista e infantil. Quem não tem problemas? Quem não sofre angústias? Quem não tem sua fé questionada vez ou outra?

Ser cristão implica ter fibra, exercer a justiça, demonstrar amor, compaixão e verdade. Ser cristão não é um seguro contra problemas, e o nome de Jesus não é uma senha ou palavra mágica que abre todas as portas. Aqueles discípulos perseguidos foram encorajados a permanecer firmes na fé apenas porque criam em Jesus e se reconheciam amados por Deus, e isso lhes bastava. Que Deus nos torne hoje cristãos maduros, que enfrentam os problemas do dia a dia porque os pés estão bem firmados em Cristo que nos sustenta! – WMJ

 

Vida cristã não é uma carona para o céu, mas uma caminhada em solo firme e seguro.

 

Autor: Wanderley de Mattos Júnior, São Paulo – SPEdição: Transcrito do Pão Diário, 15 de maio de 2011 – Rádio Trans Mundial(RTM) Prezado amigo, caso queira interagir conosco sobre as MENSAGENS REFLEXIVAS, ou qualquer outro contato, favor utilizar o endereçoibm.palmas@gmail.com

Não copie ou reproduza este texto. Colabore com a missão da RTM, adquirindo seu exemplar do Pão Diário. Para adquirir o seu exemplar do Pão Diário clique aqui.

Grupos do Google
Participe do grupo Mensagens Reflexivas
E-mail:
Visitar este grupo

Vida Melhor: Gustavo Cerbasi (Casais Inteligentes Enriquecem Juntos)

October 29th, 2013 No comments

Sábias palavras.

Clássicos Nacionais – Pollyanna

October 25th, 2013 No comments

pollyanna-classicos-nacionais

Aos 11 anos, Pollyanna fica órfã e vai morar com a tia. Passa por muitos momentos difíceis, mas sempre encontra um motivo para ficar feliz. Curiosa e atrevida, essa menina transforma os lugares por onde passa e as pessoas que conhece, com seu incrível “Jogo do Contente”, descobrindo sempre alguma coisa para se alegrar e levando bom humor onde só havia amarguras, desencadeando em todo o mundo uma impressionante onda de esperança, de boa vontade e de entusiasmo, tornando-se símbolo da bondade e do otimismo.

O que pensavam os filósofos a respeito de Deus?

August 29th, 2013 No comments

Vendo que o jovem Marco Polo refletia sobre os mistérios da existência, Falcão adicionou:
- Você pode duvidar de que Deus existe, mas Deus não duvida de que você existe. É nisso que creio.
Marco Polo ficou inquieto. Esfregou as duas mãos no rosto. Suspirou, colocou a mão no queixo, apoiou o cotovelo sobre a coxa como um pensador e perguntou:
- O que pensavam os filósofos a respeito de Deus?


O Futuro da Humanidade pág. 52 e 53, Augusto Jorge Cury

Livre-se do duplo click

May 22nd, 2013 No comments

Primeiro screen-cast

Como assistir: botão direito do mouse sobre a imagem, escolha PLAY ou EXECUTAR.

Melhor visualização: escolha FULL SCREEN ou TELA INTEIRA

Instale Oracle JDK7 no openSUSE

February 21st, 2013 No comments

Realize o download a partir deste local: Java SE Development Kit 7 Downloads, em um diretório de sua escolha – escolhi: /Softwares_usados/Tools/java/jdk/ .

Depois como super usuário (root) utilize a Ferramente de Gerencimanto de Software – Zypper - para instalar o pacote (arquivo RPM):

gilberto.andrade@A37710:~$ su -
Senha:
A37710:~ # cd /dados/D/Softwares_usados/Tools/java/jdk/
A37710:/dados/D/Softwares_usados/Tools/java/jdk # ll
total 439208
-rw-r----- 1 gilberto.andrade users   8405307 Feb 11 20:14 javafx-2_2_7-apidocs.zip
-rw-r--r-- 1 gilberto.andrade users  54426218 Oct 11 15:12 javafx_scenebuilder-1_1-beta-linux-x64.tar.gz
-rw-r--r-- 1 gilberto.andrade users 216263278 Jun 13  2012 javatutorials.zip
-rw-r----- 1 gilberto.andrade users  60768483 Feb 11 18:10 jdk-7u15-apidocs.zip
-rw-r----- 1 gilberto.andrade users 109860709 Feb 16 04:08 jdk-7u15-linux-x64.rpm
 
A37710:/dados/D/Softwares_usados/Tools/java/jdk # zypper install jdk-7u15-linux-x64.rpm

Vamos “avisar” o mecanismo do sistema que é responsável por estes serviços – update-alternatives- que existe uma nova versão do jdk instalada. O diretório (melhor dizendo, link) /usr/java/latest representa a versão mais recente instalada e irá apontar para última e mais nova versão:

A37710:/usr/java # ll
total 12
lrwxrwxrwx 1 root root   16 Feb 15 16:09 default -> /usr/java/latest
drwxr-xr-x 4 root root 4096 Feb 15 15:13 jdk1.7.0_07
drwxr-xr-x 3 root root 4096 Feb 21 14:36 jdk1.7.0_13
drwxr-xr-x 8 root root 4096 Feb 21 14:36 jdk1.7.0_15
lrwxrwxrwx 1 root root   21 Feb 21 14:36 latest -> /usr/java/jdk1.7.0_15

A partir do diretório latest/bin e latest/jre/bin realize as seguintes modificações:

A37710:/usr/java # cd latest/bin/
A37710:/usr/java/latest/bin # for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 20000; done
A37710:/usr/java/latest/bin # cd ..
A37710:/usr/java/latest # cd jre/bin/
A37710:/usr/java/latest/jre/bin # for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 20000; done
A37710:/usr/java/latest/jre/bin #

Por fim, atualizaremos o plugin java – javaplugin.so - para os navegadores instalados no sistema:

update-alternatives --install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/java/latest/jre/lib/amd64/libnpjp2.so 20000

Olhe com atenção pois utilizamos como referência para atualizar o update-alternatives o caminho base /usr/java/latest.
Por quê? Você sabe explicar?

Categories: Geral, Java, Linux Tags: ,

openSUSE – Repositórios adicionais

October 9th, 2012 3 comments

Vira e mexe (entre uma instalação e outra, ou um upgrade e outro) preciso adicionar alguns repositórios(repository) ao Yast para aplicativos que costumo utilizar. Registro logo abaixo os que não podem faltar:

Nome Como adicionar
VirtualBox zypper addrepo -r http://download.virtualbox.org/virtualbox/rpm/opensuse/11.4/virtualbox.repo
Fonts zypper addrepo -r http://download.opensuse.org/repositories/M17N:/fonts/openSUSE_12.2/M17N:fonts.repo
Google Chrome zypper ar -f -n Google-Chrome http://dl.google.com/linux/chrome/rpm/stable/x86_64 Google-Chrome
Restricted formats zypper addrepo -r http://packman.inode.at/suse/12.2/packman.repo
zypper addrepo -r http://www.opensuse-guide.org/repo/12.2/libdvdcss.repo

E aí, quais você mais usa?