Category Archives: Tecnologia

Domain Driven Design

Domain Driven Design, ou seja, Desenvolvimento Orientado a Domínio.

O objetivo é focar no domínio da solução, através de um contexto apresentado, determinar a solução de maneira que atenda:

  1. Alinhar o código com as regras de negócio – para atender, pode-se utilizar XP, aproximando a equipe de negócio a equipe de desenvolvimento
  2. Minimizar acoplamento – fazer com que as partes do sistema interaja entre si, evitando dependência entre os módulos
  3. Favorecer o reuso – módulos do sistema, podem ser reutilizados em outras funções
  4. Independência de tecnologia – focar na regra de negócio e código

O modelo de software típico de DDD consiste:

  1. Interface com Usuário – responsável por interagir com o usuário, capturando intenções e informações
  2. Aplicação – camada intermediária entre a camada 1 e 3, atuando como comunicação de dados
  3. Domínio – camada com as regras de negócio. Toda a inteligência do sistema está aqui.
  4. Infra-estrutura – camada responsável pelos recursos técnicos, geralmente são classes que se comunicam com Banco de Dados e mensagens

mapping-ddd-to-java-ee

Exemplos:

https://github.com/paoesco/cargotracker-ddd

https://github.com/citerus/dddsample-core

https://github.com/olivergierke/spring-restbucks

http://www.the-coder-life.com/2016/02/domain-driven-design-hands-on-example.html

https://github.com/simbo1905/root-objects

Links:

http://www.agileandart.com/2010/07/16/ddd-introducao-a-domain-driven-design/

 

KumuluzEE – Framework para microserviços

A utilização da arquitetura de microserviços vem se tornando padrão entre as empresas.

Com a busca de informações dessa nova forma de desenvolver os aplicativos, encontrei uma solução de framework para utilização de microserviços, o KumuluzEE.

Por ser uma solução compatível com JEE, torna-se uma grande opção, tanto para novos projetos quanto para aplicações existentes e que deseja-se transformá-las em microserviços.

Fonte:

https://ee.kumuluz.com/

Conheça o KumuluzEE – seu novo framework para Microservices

 

Maven – Tutorial

Introdução

O Maven é uma excelente ferramenta para gerenciar e implantar projetos Java. O objetivo desse post é apresentar de forma clara e fácil como utilizar o Maven.

Instalação

  1. Baixe o Maven de https://www.apache.org/.
  2. Descompacte onde deseja que fique a instalação.
  3. Em Variáveis de Ambiente, crie a variável MAVEN_HOME ou MVN_HOME
  4. Na variável Path, inclua no início do trecho %MAVEN_HOME%\bin;
  5. Abra um Prompt de Comando e digite mvn -version (deverá aparecer a versão instalada)
  6. Pronto! É só utilizar

Criação de um projeto Web

Através do Prompt de Comando, vá no diretório onde deseja criar o projeto e digite

mvn archetype:generate -DgroupId=br.com.emp -DartifactId=WebAppDemo -DarchetypeArtifactId=maven-archetype-webapp

 

Microservices

Introdução

Arquitetura de microservices consiste em dividir a aplicação em conjunto de serviços. É recomendável utilizar em aplicações robustas e/ou que necessitam evoluir rapidamente.

 

Links:

https://www.infoq.com/br/articles/microservices-intro

https://dzone.com/articles/building-microservices-with-java

GitHub Desktop

Download

Procurando no Google, encontrei o GitHub Desktop em: https://desktop.github.com/

  1. Clique no link Download GitHub Desktop
  2. Instale o aplicativo
  3. Serão criados 2 atalhos no Desktop, GitHub e Git Shell

Git Shell

Baixando um projeto (Clone)

  1. Abra o programa Git Shell
  2. Vá no diretório onde deseja baixar o projeto, por exemplo c:\opt\wokspace\github
  3. Digite: git clone https://github.com/[[DIR_USER]]/[[REPOSITORY]]
    1. Pode ocorrer erro no Checkout, devido a incompatibilidade de arquivos (entre diferentes sistemas operacionais)

Criando novo arquivo

  1. Com o projeto baixado, crie o seu arquivo localmente
  2. Para verificar o status dos arquivos, utilize
    1. git status
    2. Apresentará o arquivo untracked em vermelho
    3. git log (apresenta o log de todas as alterações feitas pelo usuário)
  3. Para adicionar o arquivo novo
    1. git add [NOME_DO_ARQUIVO]
    2. Quando efetuar o “git status” deverá apresentar o nome do arquivo em verde
    3. Para cancelar o comando add
      1. git reset HEAD [NOME_DO_ARQUIVO]
    4. Para adicionar todos os arquivos
      1. git add .
  4. Comitando o arquivo adicionado
    1. git commit -m ‘Arquivo atualizado com nova regra’
    2. Se vários arquivos foram adicionados no “add”, o comentário será adicionado a todos. Para adicionar comentários diferentes, os comandos “add” devem ser isolados.
  5. Enviando para o servidor
    1. git push origin master
    2. Todos os arquivo comitados, serão efetivados no master do Github
  6. Resetando todo o projeto
    1. Para retornar a última versão remota, utilize o comando
      1. git reset –hard
  7. Pronto, arquivo atualizado no Github

Criando uma Branch

  1. Comando para criar branch
    1. git checkout -b [NOME_BRANCH]
    2. Os comandos para atualizar os arquivos são os mesmos (add e commit)
    3. O comando push agora deve ser feito apontando a nova branch
      1. git push origin [NOME_BRANCH]
    4. Trocando de branch
      1. git checkout [NOME_BRANCH]

Sincronizando Branch

  1. Estando na branch de destino (master)
  2. git merge [NOME_BRANCH]
  3. git push origin master

Comando Pull

  1. Quando existe um arquivo novo no Git não é possível consultar essa alteração com “git status”
  2. Para sincronizar com o master
    1. git fetch
    2. Agora podes-se usar o “git status”
  3. Para pegar todas as atualizações
    1. git pull
    2. O arquivo será atualizado na máquina do desenvolvedor

Iniciando um diretório no Git (por exemplo Github)

  1. Acesse o site www.github.com e crie o repositório (exemplo: java-redis)
  2. Acesse o diretório onde será enviado ao repositório (diretório: java-redis)
  3. Digite os comandos na sequência
    1. git init
    2. git add –all
    3. git commit -m “Initial version”
    4. git remote add origin https://github.com/lfchaim/java-redis.git
    5. git pull origin master
    6. git push -u origin master

Outros comandos

  1. git diff (mostra a diferença entre o arquivo local e a branch)
  2. git clean -d -f (remove modificações efetuadas localmente)

Problema com nome longo de arquivos (filename too long)

  1. git config –system core.longpaths true

 

MySQL – Configuração Windows

Instalando MySQL – Arquivo Zip

Quando utiliza-se o MySQL baixado como zip, é necessário:

  1. Baixar o MySQL, por exemplo mysql-5.7.16-winx64.zip
  2. Descompactar no local desejado, no meu caso foi o próprio drive C (C:\mysql-5.7.16-winx64)
  3. Abrir o prompt de comando como administrador
  4. Estando em C:\mysql-5.7.16-winx64\bin, digitar
    1. mysqld –initialize
    2. Após o comando, verifica-se a criação do diretório /data

 

My.ini

Na instalação do MySQL, é apresentado o arquivo my-default.ini. Devemos renomeá-lo para my.ini e editar a linhas:

  1. basedir = C:\\mysql-5.7.16-winx64
  2. datadir = C:\\mysql-5.7.16-winx64\data
  3. port = 3306
  4. server_id = 1

 

MySQL – Alterando a senha root

Caso esteja rodando o MySQL como serviço, parar o serviço.

  1. Criar um arquivo txt (exemplo: C:\mysql-5.7.16-winx64\MySQL.txt)
  2. Criar o seguinte conteúdo no arquivo criado (válido para 5.7.6 ou superior)
    1. ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘root’;
  3. Salvar o arquivo
  4. Abrir o prompt de comando
  5. Digitar em C:\mysql-5.7.16-winx64\bin
  6. mysqld –init-file=C:\mysql-5.7.16-winx64\MySQL.txt
  7. O MySQL subirá e alterará a senha. Basta então matar o processo mysqld que foi criado e nos serviços do Windows subir novamente.

 

Instalando MySQL como serviço do Windows

Para instalar o MySQL como serviço, devemos:

  1. Abrir um Prompt de Comando
    1. Windows 10
      1. Clique no botão Iniciar e digite “prompt”
    2. Aparecendo o item “Prompt de Comando”, clique com o botão direito do mouse e escolha “Executar como Administrador” (sem esta opção, não funciona)
  2. Com a tela de Prompt de Comando aberta, vá até o diretório do MySQL
    1. No meu caso, C:\Program Files\MySQL\MySQL Server 5.6\bin
    1. Digite: mysqld –install MySQL
  3. Abra a tela de serviços (services.msc) e verifique que foi criado um item “MySQL”

Elasticsearch – Guia de Introdução

Este texto tem como objetivo apresentar a solução Elasticsearch, um motor de busca capaz de manipular grandes quantidades de dados. Possui código-fonte aberto, sob licença da Apache.

Características

  • Open Source, baseado em Apache Lucene e Hadoop
  • Escrito em Java
  • Foco em escalabilidade – Comece pequeno e cresça
  • Pode utilizar dados de qualquer fonte, analisar e entregá-lo
  • Trabalha com JSON sob Http

Conceito

Como foi baseado no Lucene, herdou suas características:

  • Índice: define o endereço para acesso às informações guardadas no ES. De forma parecida com o esquema nos BDRs, necessitamos saber o nome e a localização na rede de um índice (por exemplo, localhost:9200/nome_indice) para conectar-se e manipular as estruturas de armazenamento do ES;
  • Type: recurso usado para nomear conjuntos de documentos armazenados em um índice, podendo ser comparado ao conceito de tabela em BDRs, pois contém vários documentos que obedecem a uma mesma estrutura de campos;
  • Documento: é um texto plano – isto é, não corresponde a formatos binários como .doc ou .pdf – organizado em campos delimitados por chaves e vírgulas, de acordo com o padrão JSON. Sua função é similar ao das linhas de tabelas, já que é sobre os documentos que as operações de manuseio de dados (inserção, recuperação, alteração e exclusão) são realizadas;
  • Campo (field): é a unidade mínima de informação armazenada em um documento. Deve possuir um tipo, que pode ser padrão – por exemplo: string, integer/long, float/double, boolean, ou null – ou criado pelo desenvolvedor. O campo tem a mesma função de uma coluna no BDR;
  • Mapeamento (mapping): define a estrutura de um documento, contendo campos e a maneira como cada um deve ser armazenado e recuperado. O mapeamento funciona como a definição de colunas nas tabelas em BDRs;
  • Query DSL: é a linguagem de busca (para mais detalhes, veja a seção Links). Está para o Lucene como o SQL está para os BDRs;
  • Score: valor numérico que representa quão bem um documento está relacionado a uma busca em Query DSL;
  • Analisador: mecanismo para transformação de texto – por exemplo: a conversão de letras maiúsculas em minúsculas, o tratamento de espaços em branco – durante o armazenamento e recuperação de informações.

Aguarde nova atualização.

How to Configure BitBucket Git Repository with eGit

bitbucket_logo - Crunchify Tips

Bitbucket is a distributed version control system (DVCS) code hosting site that supports Mercurial and Git. With Mercurial and Git, your data is distributed by definition but you still need a place to share it and keep track of your development. That is where Bitbucket comes in.

You may need to check why I choose bitbucket over github.

Bitbucket provides a fully-featured environment for managing your development project, including a code repository, a wiki (naturally backed by Mercurial and Git – you can clone it), a powerful issue tracker and easy collaboration with others.

Simply put, Bitbucket takes the pain out of sharing code and lets you focus on what you do best: Code. Bitbucket offers both commercial plans and free accounts. It offers free accounts with an unlimited number of private repositories (which can have up to five users in the case of free accounts).

Here are quick steps to setup BitBucket Repository to you Eclipse Environment.

Step-1

Register for Bitbucket.

Step-2

Create Private/Public repository

Step-3

On Overview page https://bitbucket.org/dashboard/overview, look for your repository information.

Bitbucket Dashboard Overview page

Mouse hover will give you Repository URL which we will use later to import project into Eclipse.

Step-4

Now let’s make Eclipse ready for Git.

  • Open Eclipse
  • Click on Help menu
  • Click Install New Software

Eclipse Install New Software

Step-5

Install eGit into Eclipse. Git version control with Eclipse (EGit) – Tutorial.  How to use bitBucket with EGit in Eclipse.

URL: http://download.eclipse.org/egit/updates

Eclipse - Add Repository

Step-6

Select Eclipse Git Team Provider and JGit form option and click next and finish install.

Eclipse Install Git

Step-7

Now Open Perspective and choose Git from list.

Eclipse Git Prospective

Step-8

Click Clone Repository Button

Clone Git Repository to Eclipse and Add to View

Step-9

Enter your Bitbucket URL and User Information as mentioned in below diagram. Click Next andFinish. No need to change other configuration in next window.

Clone Repository Options Page in Eclipse

Step-10

You should see your Bitbucket repository now in eclipse.

Checked Out Bitbucket repository in Eclipse

Step-11

Now you may want to import the project so you can work on the source code.

  1. Click
    1. ‘Windows’ >
    2. ‘Open Perspective’ >
    3. ‘Resource’
  2. Click
    1. ‘File’ >
    2. ‘Import’ >
    3. ‘Git’ >
    4. ‘Projects from Git’ >
    5. ‘Existing local repository’ >
    6. ‘Select a Git Repository’ >
    7. ‘Import as General Project’ >
    8. ‘Next’ >
    9. ‘Finish’
  3. The code should then appear in your ‘Project Explorer’ window as a normal project
  4. Now make changes to your file as you want
  5. Look at ‘Git Staging’ view to see your changed files and Click ‘Commit and Push

Git Staging View in Eclipse