Sugestão EAD

Black Friday Cursos Java 2017 – 50% OFF

Postado em

50% de desconto em todos os nossos cursos https://for-j.myedools.com válido até dia 30/11/17. Para aplicar o desconto, use o cupom “BlackFriday2017“! Bons estudos a todos!

“Que as suas conversas sejam sempre agradáveis e de bom gosto, e que vocês saibam também como responder a cada pessoa!” Colossenses 4:6

Anúncios

Porque eu uso Groovy? # 2

Postado em Atualizado em

Estes dias me perguntaram o por que eu parei de escrever meus programas Java com a linguagem Java e passei a utilizar a linguagem alternativa de Java chamado de Groovy. São vários os motivos, e hoje quero falar de alguns.

Dont Repeat Yourself – DRY

DRY é uma abreviação para o inglês Don’t Repeat Yourself, “Não se Repita”. É o primeiro princípio do desenvolvimento de software mencionado por Andy Hunt e Dave Thomas no clássico livro O Programador Pragmático. O princípio basicamente declara que não se pode fazer coisas repetidas ou duplicadas ao longo do desenvolvimento de software. Isso ocasiona alta manutenção, aumenta a complexidade, reduz a qualidade da solução final e deixa a coisa extremamente chato e cansativo de fazer.

Linguagem Java é repleta de DRY

Se você ainda não reparou, a linguagem Java padrão esta repleta de DRY, obrigando o desenvolver que a usa todos dias fazer a mesma coisa de sempre. E depois de 12 anos fazendo, eu simplesmente canseiiiiiiiiiiiiiiiiiiiiii 😦 .

Vamos a fatos?

Segue abaixo um simples POJO escrito na linguagem Java:

Segue abaixo o mesmo pojo escrito em groovy:

Vejamos os Dry’s:

  1. Na linguagem java você é obrigado a importar pacotes básicos para outras classes como Date e BigDecimal, sendo que o único import padrão é o java.lang. No groovy não, pois por padrão o groovy define vários pacotes bases com importação automática, sendo estes já importados implicitamente java.math. e java.util.
  2. Na linguagem java você é obrigado a digitar ponto e virgula no final de cada instrução. No groovy não, ponto e virgula é obrigatório somente se você for colocar mais de uma instrução por linha.
  3. Na linguagem java você é obrigado a digitar private para declarar atributos privados. No groovy não, pois todos os atributos de uma classe são por padrão private. Você já parou para pensar nisso? Regra básica de encapsulamento OOP diz que todos atributo de uma classe deve ser privado, ou seja, 90% dos casos, mas a linguagem java usa como padrão default? Me perdoem a grosseria, mas é muita “bobeira” isso…
  4. Na linguagem java você é obrigado a digitar public para declarar a classe pública. No groovy não, pois todas as classes são por padrão publica, sendo que á maioria dos casos. Me perdoem novamente, mas é bobeira igual ao item 2…..
  5. Na linguagem java você é obrigado a criar manualmente os grupos de construtores que vc deseja usar para criar seu objeto. No groovy não, pois existe um recurso dinâmico chamado de “Named Parameter Constructors” que gera automaticamente e dinamicamente qualquer combinação de grupos de construtores na criação de objetos.
  6. Na linguagem java você é obrigado a digitar os get’s e set’s para expor os atributos. No groovy não, pois eles serão automaticamente e dinamicamente gerado para você.

Qual a diferença?

Parando por aqui, e pontuando somente estes 5 recursos de muitos outros existente no groovy, você já ficaria com o pojo em java com 49 linhas e o em groovy com apenas 7 linhas. Ou seja, 700% a mais de código!!!! Imaginando que faremos um sistema com 500 classes, multiplica ai amigo e veja quanto de DRY você vai perder o seu precioso tempo digitando nesse projeto.

Se liberte

Vamos a verdade? O que eu vou falar pode doer em muita gente mas é a mais pura verdade: a linguagem java é verbosa e improdutiva. Todos que começam na plataforma Java tem que aprende-la, mas depois de passar por essa fase inicial, você não é mais obrigado a usa-la. Se liberte! Seja feliz!

Dentro da plataforma Java (JVM) hoje nós temos a liberdade de usar centenas de linguagens de programação diferentes, a gosto de cada “freguês”. Veja aula grátis sobre linguagens na JVM.

Observação

Estou te dizendo para trocar de linguagem de programação e não de plataforma! Você continua usando a plataforma Java, JDK e todas as mesmas opções de sempre: Spring, JPA, Hibernate, JSF, IReport etc…! Só que ao invés de programar usando a “velhinha” linguagem Java padrão, você passa a usar Groovy 🙂 . Mas já vou te avisando que é um caminho sem volta kkkk 😀 , depois de que você aprender, vai ter raiva de não ter usado bem antes!

Gostaria de aprender Groovy?

Colocamos a disposição nosso Pacote com 2 cursos de Groovy básico + avançado com 10% de desconto para você aprender uma linguagem realmente moderna, dinâmica e produtiva.

Filho, preste atenção quando o SENHOR Deus o castiga e não se desanime quando ele o repreende. Porque o SENHOR corrige quem ele ama, assim como um pai corrige o filho a quem ele quer bem.” Provérbios 3:11-12

Integração, Front-end Mobile, Microservices e Front-end JavaScript

Postado em Atualizado em

Nenhuma solução hoje nasce para ser executada sozinha. Inevitavelmente você terá que fazer integração da sua nova solução com outras existentes. Serviços de SMS, NFE, Gatway de pagamentos, serviços bancários e etc. A chave de sucesso para criação de um novo sistema hoje é saber conversar com outros!

Estamos também ligando aplicativos mobile no backend Java. Android, IOS, Windows Mobile e Apps Cordova Híbridos estão hoje sendo usado por milhares usuários, integrados com servidores Java.

Umas das novidades mais recentes é que em alguns casos específicos, estamos parando de desenvolver front-end na tecnologia Java, jogando toda a velha e conhecida estrutura MVC do servidor para o lado do cliente, usando novas tecnologias JavaScript com Node.js, NPM e Angular, tudo integrado com servidores Java.

Estamos quebrando soluções que se iniciaram como monolíticas e que acabam tomando proporções grandes, em soluções baseadas na filosofia de microservices, fazendo orquestração de todas elas de forma isolada e independente.

Integração, Front-end Mobile, Microservices e Front-end JavaScript

A base da implementação de todas essas features acima citadas é uso do modelo de web services REST que praticamente se torna a tecnologia para a implementação de todas essas opções de uso de arquitetura.

Para suprir então esse know-how, nós criamos um curso especifico e completo de web services REST com java, com o objetivo de capacitar um desenvolver Java para aprender e dominar essas nessas novas formas de arquitetura e aplicabilidade – Java EE REST – Desenvolvedor de Web Services REST. Bora aprender? Gostaria de treinar sua equipe toda? Entre em contato que podemos negociar bons descontos acima de 5 pessoas. Bom final de semana 🙂 .

“Então quem pode nos separar do amor de Cristo? Serão os sofrimentos, as dificuldades, a perseguição, a fome, a pobreza, o perigo ou a morte?” Romanos 8:35

É hora de morfar!!!

Postado em Atualizado em

img-20161019-wa0000

E você? Sabe realmente o que é e para que serve isso no Java? A maioria dos livros ensinam somente a parte técnica, deixando os profissionais na prática sem realmente entender os fundamentos de sua verdadeira aplicabilidade. Assim, temos um curso especialmente feito para ensinar tudo que um desenvolvedor Java profissional precisa verdadeiramente saber sobre interfaces, polimorfismo e programação baseada em interfaces. Quer se tornar um verdadeiro power Java Ranger? Te espero nas aulas!

Curso Java SE Polimorfismo – Projeto e Design Orientados a Objetos

“A justiça trará paz e tranquilidade, trará segurança que durará para sempre.” Isaías 32:17

Seu código hoje ta lindo e ano que vem?

Postado em Atualizado em

Você sabe o que é desenvolver e entregar um bom sistema? Não estou falando do ponto de vista do consumidor, estou falando do ponto de vista do desenvolvedor. Estou me referindo da qualidade das “estruturas internas” que suportam a existência de um sistema, muitas das vezes chamado de “arquitetura de software”. O legal do assunto, é que não precisa ser respondido por nenhum ser humano, sendo que o próprio código da solução fala por si. Como?

  • A solução esta fácil de alterar?
  • Esta fácil localizar itens internos?
  • Esta fácil trocar componentes velhos por novos?
  • Esta fácil trocar frameworks velhos por novos?

Se sim, o sistema esta muito bem! Parabéns!!! E se:

  • Não esta fácil de alterar.
  • Não se acha nada.
  • Não da para trocar nada, tudo amarrado.
  • Sistema funcionando não se mexe!
  • Ninguém quer assumir a bucha?
  • Toda vez que mexe quebra alguma coisa?

Ai meu querido, “azedou o pé do frango”. Esse sistema ta ruim 😦 .

Um bom sistema, cresce e evolui de complexidade ao longo do tempo, dentro de um controle e de uma gestão. Um sistema ruim, cresce e aumenta de complexidade ao longo do tempo fora de controle, ficando pior a cada dia, como se fosse uma “bomba relógio”.

Aprenda a lidar como essa situação fazendo nosso curso ead de AQT M1 – Introdução a Arquitetura de Software com Java e venha entender os fundamentos de como construir um bom sistema!

“Porque Deus amou o mundo tanto, que deu o seu único Filho, para que todo aquele que nele crer não morra, mas tenha a vida eterna.” João 3:16

Economizando semanas com TDD

Postado em Atualizado em

Essa semana tive que atualizar um projeto java web para a ultima versão do spring 4.3.12 e hibernate 5.2.11. Para quem sabem como isso funciona, eu teria agora que retestar o sistema inteiro, justamente pelo fato do spring controlar todos os objetos do sistema e o hibernate fazer toda a geração de SQL e persistência. Muita coisa pode ter mudado, gerando erros, fazendo que com a solução estável em produção apresentasse bugs na próxima versão.

Esse sistema, tem 396 testes/processos de negocio a ser testado, partindo da métrica simples que eu demoraria em torno de 8 minutos para testar cada um desses processos, contanto o trabalho de:

  1. abrir navegador
  2. logar no sistema
  3. entrar no menu
  4. preencher os dados dos processos
  5. gerar o processamento
  6. validar a resposta

Eu gastaria (396 x 8 = 3168 minutos / 60 (h) = 52 horas / 8 horas por dia) 7 dias de trabalho.

Que tédio cara! Você gastaria uma semana fazendo isso? E semana que vem que sai o spring novo? + 1 semana de retrabalho! E na outra semana sai o hibernate 6 novo? + 1 semana de retrabalho né. E ai? Se gosta dessa vida de cachorro? Melhor nem atualizar não é mesmo? Só da retrabalho!

É exatamente o que acontece com a maioria das empresas, preferem nem atualizar justamente para não desestabilizar e não ter que gastar recursos em ciclos de retrabalho DRY sem fim.

Mas para quem usa TDD, esse problema já ficou para trás 🙂 ! O TDD desse sistema demorou 37 segundos para rodar todos os testes e me dar o feedback e a segurança que eu precisava garantindo que a nova versão do sistema com os frameworks atualizados não gerou bugs.

Gostaria de aprender a desenvolver sua solução orientada a TDD? Veja nosso curso TDD – Desenvolvimento Java Guiado por Testes.

“…a luz verdadeira que veio ao mundo e ilumina todas as pessoas.” João 1:9

Como construir um bom sistema?

Postado em

Você sabe o que é entregar um bom sistema? Não estou falando do ponto de vista do consumidor, estou falando do ponto de vista do desenvolvedor. Estou me referindo da qualidade das “estruturas internas” que suportam a existência de um sistema, muitas das vezes chamado de “arquitetura de software”. O legal do assunto, é que não precisa ser respondido por nenhum ser humano, sendo que a própria solução fala claramente por si. Como?

  • A solução esta fácil de alterar?
  • Esta fácil localizar itens internos?
  • Esta fácil de trocar componentes velhos por novos?
  • Esta fácil trocar frameworks velhos por novos?

Se sim, o sistema esta muito bem! Parabéns!!! E se:

  • Não esta fácil de alterar.
  • Não se acha nada.
  • Não da para trocar nada, tudo amarrado.
  • Sistema funcionando não se mexe!
  • Ninguém quer assumir a bucha

Ai meu querido, “azedou o pé do frango”. Seu sistema ta ruim 😦

Um bom sistema, cresce e aumenta de complexidade ao longo do tempo, dentro de um controle e de uma gestão.

1-p81_580mm2qvl3hbphqn9a

Um sistema ruim, cresce e aumenta de complexidade ao longo do tempo fora de controle, ficando pior a cada dia, como se fosse uma “bomba relógio”.

101163297

Venha conosco e aprenda a lidar como essa situação fazendo nosso curso de AQT M1 – Introdução a Arquitetura de Software com Java e venha aprender a lançar fundamentos sólidos de como construir uma solução profissional.

“Por isso, não fiquem preocupados com o dia de amanhã, pois o dia de amanhã trará as suas próprias preocupações. Para cada dia bastam as suas próprias dificuldades.” Mateus 6:34