Sugestão EAD

Programação Orientada a Objetos com Java

Postado em Atualizado em

Programação Orientada a Objetos é um paradigma de programação que usa abstração para criar modelos baseados no mundo real. POO usa várias técnicas vindas de paradigmas previamente estabelecidos, incluindo modularidade, polimorfismo e encapsulamento. Atualmente, muitas linguagens de programação populares (como Java, JavaScript, C #, C ++, Python, PHP, Ruby e Objective-C) permitem a programação orientada a objetos (POO).

A POO pode ser vista como o projeto de software utilizando uma coleção de objetos em cooperação, em oposição a uma vista tradicional, em que um programa pode ser visto como uma série de funções, ou simplesmente como uma lista de instruções para o computador. Em OOP, cada objeto é capaz de receber mensagens, processar dados e envio de mensagens para outros objetos. Cada objeto pode ser visto como uma pequena máquina independente, com um papel ou responsabilidade distinta.

A POO se destina a promover uma maior flexibilidade e facilidade de manutenção na aplicação, e é muito popular em engenharia de softwares de grande escala. Em virtude de sua forte ênfase na modularidade, código orientado a objetos destina-se a ser mais simples de desenvolver e mais fácil de entender mais tarde, prestando-se a uma análise mais direta, codificação e compreensão de situações e procedimentos mais complexos do que nos métodos de programação menos modulares.

Classe
Define as características do objeto. Uma classe é uma definição modelo das propriedades e métodos de um objeto.
Objeto
Um exemplar de uma classe.
Atributo
Uma característica do objeto, como cor, modelo, fabricante se estivemos representando um veículo, por exemplo.
Método
Uma ação do objeto, como ligar, desligar, frear se estivemos representando um veículo, por exemplo. É uma subrotina ou função associada a uma classe.
Construtor
Um método chamado assim que um novo exemplar do objeto for criado. Ele geralmente tem o mesmo nome da classe que o contém.
Herança
Uma classe pode herdar características de outra classe.
Encapsulamento
Uma maneira de agrupar os dados e os métodos que usam os dados.
Abstração
A conjunção de herança complexa, métodos, propriedades de um objeto devem refletir adequadamente um modelo da realidade.
Polimorfismo
Diferentes classes podem definir o mesmo método ou propriedade.

Como aprender tudo isso?

Aprender tudo isso da trabalho, é cansativo e precisa de vários livros. Para aqueles que não querem trilhar esse caminho por conta, nós criarmos 2 cursos em Java que cobrem todos esses assuntos, de forma rápida, direta e com profissionais certificados, credenciados e com décadas de anos de experiência real:

Estamos a sua disposição para qualquer dúvida!

“Vocês o amam, mesmo sem o terem visto, e creem nele, mesmo que não o estejam vendo agora.”1 Pedro 1:8

Swing com RAD

Postado em

De vez em quando eu também faço um Swingão com RAD…Pois, ninguém é de ferro né! kkk

Quer aprender também a fazer? Veja nosso curso de Java SE Swing – Desenvolvedor de Interfaces Gráficas Desktop. Te vejo por la!

“Por isso purifiquemos a nós mesmos de tudo o que torna impuro o nosso corpo e a nossa alma.”2 Coríntios 7:1

Como construir um bom sistema?

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!

Sorteio Grátis Do Curso

Nossa promoção do mês de maio sera o sorteio desse curso no dia 31/05/17. Compartilhe esse post no seu facebook, faça um print e envie juntamente com seu nome para fernandofranzini@gmail.com. Boa sorte a todos!

“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

Porque eu uso Groovy? # 2

Postado 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

Devo eu aprender a plataforma Java?

Postado em

Para reunir informações sobre o estado do ecossistema da plataforma Java da atualidade, foi conversado com nove executivos que estão familiarizados com o ecossistema. Foi perguntado a esses experientes profissionais de Java “O que você considera ser os elementos mais importantes do ecossistema Java?” Vejam nesse link oque eles responderam.

Se você precisa de ajuda para ingressar no mundo Java, quer ter suporte de profissionais Java com décadas de experiências, credenciados e certificados oficiais Java @Oracle, colocamos nossos cursos e nossos instrutores a sua disposição. Temos cursos básicos como JSE M1 cobrindo apenas o inicial e pacotes com super descontos, com formação completa de um desenvolvedor profissional Java como Java P1 – Pacote Programador Profissional Java. Estudando por conta ou fazendo cursos, não deixe de investir e aprender essa fantástica plataforma. Futuro garantido! Bom final de semana a todos 😉 .

“Porque para Deus nada é impossível.” Lucas 1:37

Usando Lambdas Java 8 no JSE 5, 6 e 7

Postado em Atualizado em

java-lambda-expressionOuvi muita gente comentar que gostaria de usar Lambdas do Java 8, mas que, por algum motivo ainda não consegue atualizar a versão do projeto para a JDK8. O projeto RetroLambda oferece suporte retroativo para usar instruções Lambdas nas versões Java 6, 7, 5 e etc. É só colocar a dependência no pom e ser feliz! Existe alguma limitação nas interfaces, mas vale muito a pena!

Você gostaria de aprender a como usar todos os novos recursos do Java 8? Veja nosso curso de Java SE F5 – Desenvolvedor Funcional Java 8. Uma ótima semana a todos!

“Quem toma cuidado com o que diz está protegendo a sua própria vida, mas quem fala demais destrói a si mesmo.” Provérbios 13:3

Dicas de Arquitetura de Software com Java

Postado em Atualizado em

org-320%2fschool-320%2f7d9bfc5e9dc56593d4a38668fdf743e1%2farquiteto2No curso AQT  M1 – Arquitetura de Software com Java, nós ajudamos os desenvolvedores Java a subir um pouco mais o nível de seus conhecimentos, deixando de ser meros programadores e passando a ter uma visão de arquiteto de software, compreendendo questões e princípios básicos de arquitetura. No final do curso, nós implementamos uma solução completa em java, desde de interfaces gráficas desktop , web, regras de negócio, até a persistência em banco de dados relacionais, provando então todos esses conceitos na prática.

Dezenas de alunos e profissionais tem feito o curso e além do feedback 100% positivo, eles tem me perguntando “como” poderiam evoluir a proposta arquitetural ministrado no curso, para um nível mais sofisticado e mais profissional. Hoje eu gostaria abrir essa conversa e dar cinco dicas sobre isso, a como adicionar mais produtos e melhorar a arquitetura proposta:

1.Validação de Negócio

No curso, a validação de negócio ficou dentro da classe domínio Cliente [domain model pattern], implementada de forma manual. Uma sofisticação dessa opção seria substituir a validação manual pela especificação java bean validation, evitando assim DRY e tendo uma melhor produtividade na validação. Sugiro provedor hibernate validation.

2.Fabricas

No curso, a criação do objeto responsável pela implementação da persistência seguindo o contrato da camada repositório [domain model repository pattern] ClienteJdbcImp, foi a classe FabricaPersistencia [Factory method pattern] implementada de forma manual. Uma sofisticação dessa opção seria substituir a fabrica manual pela injeção de dependência de uma especificação de um container IoC, evitando DRY e uma melhor produtividade. Sugiro provedor Spring IoC.

3.Persistência JDBC

No curso, o framework adotando como tecnologia de persistência da camada repositório foi o JDBC. Uma sofisticação dessa opção seria substituir o JDBC pelo JPA, evitando implementação improdutiva e burocrática das API de baixo nível, seus DRY e uma melhor produtividade. Sugiro provedor hibernate JPA.

4.Comandos SQL

No curso, os comandos SQL’s foram colocados dentro de atributos estáticos finais no formato string na classe ClienteJdbcImp. Uma sofisticação dessa opção seria não fazer SQL, deixando JPA gerar todos essas instruções dinamicamente via estratégia de ORM, evitando DRY e uma melhor produtividade. Sugiro provedor hibernate JPA.

5.Transação JDBC

No curso, os controle transacional ficou a a cargo JDBC usado de forma automática via connection=autocommit na classe ClienteJdbcImp. Uma sofisticação dessa opção seria usar controle de transações declarativas por AOP, evitando DRY, uma melhor produtividade e consistência. Sugiro Spring transactions.

Conclusão

Como pode ser visto, seria impossível e impraticável ensinar cada um desses produtos/tecnologias nesse mesmo curso, ficando ai de sugestão para você, aluno do nosso curso estudar e avançar gradualmente em cada um desses tópicos, a medida que você se despertar para eles. Eu me coloco a total disposição para ajudar sobre o assunto. Até a próxima 🙂 !

“Portanto, não percam a coragem, pois ela traz uma grande recompensa. Vocês precisam ter paciência para poder fazer a vontade de Deus e receber o que ele promete.” Hebreus 10:35-36