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.
- Sobre a Capgemini
- Dependências necessárias
- Lógica de Programação com JAVA // Projetos em TI
- Java Avançado
- HTML Avançado
- CSS Avançado
- Contato
- Crédito das imagens
É uma iniciativa da Capgemini para acelerar a formação de novos talentos em tecnologia, valorizando a inclusão e a diversidade.
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
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
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.
- Definição geral do projeto
- Requisitos
- Regras de negócio
- 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.
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
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
- Título da aba
- 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
- 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
- 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
- Bom para atração de público
- Boa usabilidade em dispositivos móveis
- Fácil de ser desenvolvido
- Aumenta a audiẽncia do site
- Boas práticas de acessibilidade da Mozilla Fondation.
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
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.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ãmicaPriorizar 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 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
- baseado em js.
- reduz redundancia de codigo
Variáveis:
@cor = blue;
@cor3 = navy;
Hierarquia
p {
color: @cor;
b {
background-color = cor3;
}
}
@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;
}
Author: Jonas Araujo de Avila Campos
Confira mais projetos: AQUI
- 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.