Skip to content

Latest commit

 

History

History
523 lines (371 loc) · 17.4 KB

README.md

File metadata and controls

523 lines (371 loc) · 17.4 KB

Java

Java

Programa Start Java

Notas, projetos e insights gerados ao longo do curso, com o objetivo de documentar o aprendizado para futuras consultas e auxiliar interessados em programação no seu pontapé inicial.

LinkedIn Badge

Table of Contents

É uma iniciativa da Capgemini para acelerar a formação de novos talentos em tecnologia, valorizando a inclusão e a diversidade.

Sobre a Capgemini

A Capgemini tem um papel fundamental a desempenhar para garantir que o futuro cumpra todas as suas promessas. Acreditamos que todas as tecnologias podem trazer o progresso para todos, se, antes de mais nada, forem projetadas por e através das pessoas. Como empresa responsável, o Grupo Capgemini é realista, tanto no que diz respeito às promessas como aos riscos da inovação tecnológica: o nosso papel é torná-la útil, acessível e ética. Esse propósito deve funcionar como uma bússola para cada um dos funcionários.”

Paul Hermelin, Chairman of the Board, and Aiman Ezzat, Chief Executive Officer of Capgemini

Dependências necessárias

Instruções para instalação no linux

JAVA

 sudo apt-get purge oracle-java7-installer*
 sudo apt-get install ppa-purge
 sudo ppa-purge ppa:eugenesan/java
 sudo apt-get clean
 sudo apt-get update

XAMPP

//verificar a versão mais recente em
// https://www.apachefriends.org/pt_br/download.html


wget https://www.apachefriends.org/xampp-files/7.4.29/xampp-linux-x64-7.4.29-0-installer.run
chmod +x xampp-installer.run
sudo ./xampp-installer.run

Lógica de Programação com JAVA // Projetos em TI

Lista de Exercício I - Lógica com Java
  • 01 - Soma de dois números
  • 02 - Operações matemáticas elementares
  • 03 - Cálculo de consumo médio de combustível
  • 04 - Cálculo de comissão de um vendedor
  • 05 - Boletim escolar
  • 06 - Troca de valores entre variáveis
  • 07 - Conversor de temperatura
  • 08 - Conversor monetário
  • 09 - Cálculo rendimento aplicação
  • 10 - Cálculo valor prestações
  • 11 - Cálculo de preço de venda com base em margem de lucro
  • 12 - Cálculo de preço de venda de um veículo
  • 13 - Verifique se o valor inserido é maior que 10
  • 14 - Verifique qual o maior número de 2 valores
  • 15 - Verifique se os números digitados estão entre 100-200
  • 16 - Boletim escolar melhorado
  • 17 - Verifica se o número está em um intervalo
  • 18 - Verifica se possui mais de 18 anos de x pessoas
  • 19 - Algoritmo que coleta informações pessoais e classifica-as no final
  • 20 - Sistema da concessionária Carango velho
Lista de Exercício II - Orientação a Objetos com Java
  • 1 - Crie uma classe para representar uma Pessoa com os atributos privados de nome, data de nascimento e altura. Crie os métodos públicos necessários para getters e setters e também um método para imprimir todos dados de uma pessoa. Crie um método para calcular a idade da pessoa.
  • 2 - Crie uma classe para implementar uma ContaCorrente. A classe deve possuir os seguintes atributos: número da conta, nome do correntista e saldo. Os métodos são os seguintes: alterarNome, depósito e saque; No construtor, saldo é opcional, com valor default zero e os demais atributos são obrigatórios.
  • 3 - Crie uma classe para representar uma BombaCombustivel. A classe BombaCombustivel deve conter os seguintes atributos: tipo de combustível, valor por litro e quantidade de combustível. Além desses atributos a classes deve conter os seguintes métodos: a. abastecerPorValor; //método onde é informado o valor a ser abastecido e mostra a quantidade de litros que foi colocada no veículo b. abastecerPorLitro; // método onde é informado a quantidade em litros de combustível e mostra o valor a ser pago pelo cliente. c. alterarValor; //altera o valor do litro do combustível. d. alterarCombustivel; //altera o tipo do combustível. e. alterarQuantidadeCombustivel; //altera a quantidade de combustível restante na bomba.
  • 4 - Crie uma classe denominada Elevador para armazenar as informações de um elevador dentro de um prédio. A classe deve armazenar o andar atual (térreo = 0), total de andares no prédio (desconsiderando o térreo), capacidade do elevador e quantas pessoas estão presentes nele.
  • 5 -
  • 6 - Crie uma classe chamada Invoice que possa ser utilizado por uma loja de suprimentos de informática para representar uma fatura de um item vendido na loja. Uma fatura deve incluir as seguintes informações como atributos: o número do item faturado, a descrição do item, a quantidade comprada do item e o preço unitário do item. Sua classe deve ter um construtor que inicialize os quatro atributos. Se a quantidade não for positiva, ela deve ser configurada como 0. Se o preço por item não for positivo ele deve ser configurado como 0.0. Forneça os métodos getters e setters para cada variável de instância. Além disso, forneça um método chamado getInvoiceAmount que calcula o valor da fatura (isso é, multiplica a quantidade pelo preço por item) e depois retorna o valor como um double. Escreva um aplicativo de teste que demonstra as capacidades da classe Invoice.
Projetos em TI

Melhor do que pensar e começar a codificar, é em um papel as ideias anotar.

  1. Definição geral do projeto
  2. Requisitos
  3. Regras de negócio
  4. Escopo tecnológico

O projeto desenvolvido nesta curso foi um gerenciador de tarefas, que está disponível e documentado neste repositório.

Os requisitos foram levantados, a documentação inicial foi feita e foi confeccionado um checklist para acompanhamento do desenvolvimento.

Java Avançado

Interfaces

Interfaces são objetos do Java que podem ser utilizadas de forma específica para cada classe.

É um agrupamento de classes que contenham caracteríscas em comum. Diferente da herança, uma interface pode ser utilizada em várias classes.

Os métodos na interface não possue retorno.

Ex.: Podemos criar um construtor de AnimaisFazenda, e todos os animais criados teriam obrigatoriamente os mesmos métodos, mas com saídas diferentes.

Construtores

Construtor com sobrecarga é quando definimos que os dados serão passados diretamente no construtor.

Enumeradores

Como se fosse um case, uma valor predefinido dentro no método.

Serve para evitar que tenhamos que criar uma tabela no banco de dados para guardar apenas alguns valores.

Modificadores de Acesso

private > default > protected > public

Existem em dois níveis, nível superior e nível de membro.

Arrays Arrays são estruturas de dados homogêneos. Podem ser declarados como a seguir:
int[] numeros = new int[4];

int numerosOutroJeito;
numerosOutroJeito = new int[4];

//varios arrays
int numeros1 = new int[10], numeros2 = new int[11], numeros3 = new int[5];

valores padrão array
numetos = 0
boolean = false
referencias = null

Matrizes

Java Collections

Colection é uma estrutura de dados que permite adicionar diversos objetos.

arrayList não é um array

Altera/resgata com base na posição Remove com base no conteúdo

ArrayList = meio da lista LinkedList = extremidades da lista

Anotations (informações comnplementares no codigo fonte)

São como metadados, fornecem dados sobre um programa que não faz parte do próprio programa. As anotações não têm efeito direto sobre a operação do código que anotam.

As anotações têm vários usos, entre eles:

  • Informações para o compilador: As anotações podem ser usadas pelo compilador para detectar erros ou suprimir avisos.
  • Processamento em tempo de compilação e implantação: Ferramentas de software podem processar informações de anotação para gerar código, arquivos XML e assim por diante.
  • Processamento em tempo de execução: Algumas anotações estão disponíveis para serem examinadas em tempo de execução.

Para saber mais

The Java™ Tutorials Lesson: Annotations

Nelson Glauber Java Custom Annotations

HTML Avançado

Onpage SEO
  • não confundir com site OnePage!
  • não tem relação com colocar palavras chave nos códigos. Isso era usado quando os mecanismos de busca verificavam o código
  • é o inverso do outbound (panfletagem). Aqui primeiro você explica, e depois mostra o produto

offpage é o que está fora, de comos os outros sites falam de você.

principais elementos

  • url amigável
  • meta title
  • meta description
  • site map
  • título da página
  • conteúdo de texto

☑️ Checklist ONPAGE SEO

  • Título da página (h1): Sem limite de caracteres, mas usar bom senso
  • Meta Title (SEO Title):
    • Título da aba <title>
    • Máx. 70 caracteres
  • Meta Description
    • Deve conter o resumo da página
    • call to action (verbo no imperativo)
    • máx. 160 caracteres.
  • URL Amigável
    • incluir palavras chave, sem caracteres especiais
    • separar por hífen
  • Sitemap (0arts?)
    • xml com todas as páginas do site
    • facilita o acesso, pois não é preciso esperar o crawler do google encontrar seu site
  • Imagens
    • usar atributo ALT e DESCRIÇÃO da imagem
    • nome do arquivo otimizado
    • camisa polo rosa
    • usar title na imagem
  • Campos únicos
    • Dados relacionados ao SEO, como meta title
    • Não copiar de outras empresas
    • Não copiar de suas próprias páginas
  • Conteúdo
    • Sempre original
    • Preze pela qualidade
    • Relevância para o tema abordado
  • Hiperlinks
    • Use sempre que possível, deixando o texto interativo
  • Intertítulos

    • Facilita a leitura
    • Organiza do conteúdo

  • Mobile-frendliness
  • Velocidade de Carregamento
  • Legibilidade
  • Sem Erros
  • Segurança
  • +200...
Acessibilidade

Aplicações devem ser acessíveis independentemente da capacidade auditiva, visual, física ou cognitiva dos usuários.

Sites seguros (do ponto de vista da saúde do usuário)

  • Pensar nas cores e tamanhos
  • Sem telas piscantes (prejudicam pessoas com epilepsia)
  • Sem itens que possam causar dor de cabeça

Teste compatibilidade dispositivos móveis

  1. Bom para atração de público
  2. Boa usabilidade em dispositivos móveis
  3. Fácil de ser desenvolvido
  4. Aumenta a audiẽncia do site
Segurança (de software)
  • SSL/TLC
  • CORS
  • CSP
  • OWASP top 10

SSL: Secure Sockets Layer. Camadade Socket Segura. Depreciado, se possível usar o TLS.

TLS: Transport Layer Secure. Segurança na camada de transporte Protocolos criptografados que garantem maior segurança na comunicação, impedindo o uso das informações por terceiros. Usuários podem usar com http ou com https

CORS: Cross-origin resource Sharing (compartilhamento de recursos de origem diferentes)

Possíveis erros

  • XML HTTP Request - objetos pra interafir com servidores. Da obetanção de dados da url até uma atualização completa
  • Fetch APIs - interfaces para buscar recursos, usadas para acessar e manipular recursos ctml
  • CSS shapes
  • carregamentos de imagens

soluções possívels CORS

Geralmente problemas são causados por ausência de header há a possibilidade de fazer estas configurações no servidor web

CSP: Content Secure policy

Camada adicional de seguranção, que visa detectar ataques, como inselão de dados e Cross Site Scripting XSS

Content Security Policy Reference

The Mozilla Observatory

OWSP Top 10 Aponta as principais falhas de segurança, de acordo com especialistas do mundo todo. É um documento de conscientização para segurança web.

Site oficial

PWA (Progressive Web Application)

É basicamente uma página web. Pode ser desenvolvido para se comportar como app nativo

Vantagens de uso

  • Poucas alterações no fonte
  • usos API para controle de hardware
  • Envio de notificações push
  • Pode ser usado offline
  • Multiplataforma

Desvantagens

  • Não fica disponível nas lojas de apps
  • Fica lento se a aplicação for pesada
  • Acesso limitado ou inexistente para alguns recursos

Para ver quais recursos são suportados nas plataformas, usar o What Web Can Do Today?

App Shell É um mínimo de html, js e css que alimenta a interface para o usuário, com o objetivo de: Carregamento rápido GFerar armazenamento em cache Ter exibição dinãmica

Priorizar cache inicial Carregamento assíncrono ferramentas de gerenciamento de conteúdo confiável para armazenar e atualizar o cache

npm install serviceWorker

<script>
    if ('serviceWorker' in navigator) {
        navigator.serviceWorker.register('generate-sw.js');
}
</script>

Ferramentas úteis para gerar o PWA

cache

Service Worker e suas principais etapas

  • Install: só é chamado uma vez,é chamamo novamnte somente em caso de alteração
  • Activate
  • Fetch
  • message
  • sync
  • push

CSS Avançado

Css são folhas de estilo compostas por camadas. CSS avançado expande a capacidade traz algumas melhorias ao css raiz.

Pré processadores CSS

A falta de dinamismo do css deixa o código repetitivo e extenso.

Pré porcessadores são linguagens intermediárias, que adicionam recursos com menos linhas de código. Lêem todo o código gerado e convertem para css.

Exemplos de pré processadores de css:

  • LESS
  • Sass
  • Stylus

Vantagens

  • Criação de variáveis, condicionais, laços, imports, extends, funções, Mixins
  • Facilita a manutenção do código
  • Permite um código limpo
  • Códigos reutilizáveis
  • Código mais legível

Desvantagens

  • Aumenta de complexidade em relação ao CSS
  • Pode acarretar baixo desempenho caso mau uso
LESS

lesscss.org

  • baseado em js.
  • reduz redundancia de codigo

Variáveis:

@cor = blue;
@cor3 = navy;

Hierarquia

 p {
    color: @cor;
    b {
        background-color = cor3;
        }
    }

Funções

@larguraColuna = 0.75;

p {
   width: percentage(@width);
}

MixIns (como uma função)

usado quando há itens iguais em mais de um seletor

.cores(){
    color: @cor1;
}

Contato

Author: Jonas Araujo de Avila Campos

Confira mais projetos: AQUI

Crédito das imagens

  • O badge Java no início do arquivo são do FlatIcon.
  • A logomarca da Capgemini foi retirada do site da Capgemini e foi inserido neste documento com finalidade de contextualizar o leitor.