NeriOliveira / Infnet-Java-Clean-Code

Projeto de Estudo de Java com Clean Code e Boas Práticas de Desenvolvimento.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Primeira Entrega:

LISTA 1:

Implemente um projeto JAVA de uma Loja virtual ACME que vende downloads de músicas, videos e imagens.

Classes de modelo Produto [String nome, Path file, BigDecimal Preco] Cliente [String Nome] Assinatura [BigDecimal mensalidade, begin, end (Optional) Cliente] Obs: Crie 2 construtores, um com o "end" e outro sem.

Quando um usuário realiza uma nova compra um "Pagamento" é utilizado para representá-la.

Pagamento [List, dataCompra, Cliente]

1 - Crie uma Classe com um método main para criar alguns produtos, clientes e pagamentos. Crie Pagamentos com: a data de hoje, ontem e um do mês passado.

2 - Ordene e imprima os pagamentos pela data de compra.

3 - Calcule e Imprima a soma dos valores de um pagamento com optional e recebendo um Double diretamente.

4 - Calcule o Valor de todos os pagamentos da Lista de pagamentos.

5 - Imprima a quantidade de cada Produto vendido.

6 - Crie um Mapa de <Cliente, List , onde Cliente pode ser o nome do cliente.

7 - Qual cliente gastou mais?

8 - Quanto foi faturado em um determinado mês?

9 - Crie 3 assinaturas com assinaturas de 99.98 reais, sendo 2 deles com assinaturas encerradas.

10 - Imprima o tempo em meses de alguma assinatura ainda ativa.

11 - Imprima o tempo de meses entre o start e end de todas assinaturas. Não utilize IFs para assinaturas sem end Time.

12 - Calcule o valor pago em cada assinatura até o momento.

13 - Após finalizar faça o Pull do seu projeto para o GITHub colocando o nome do Grupo no Arquivo README

LISTA 2:

(Fazer commit em uma branch separada)

Seguindo os padrões de Cleancode e solid:

  • Refatore o seu código para deixá-lo orientado a objetos.
  • Crie 3 tipos de assinatura, anual, semestral e trimestral.
  • Crie um método para calcular uma taxa para cada assinatura. Obs. Imagine que esse método rodará todo último dia do mes.
  • Anual -> Isento da taxa.
  • Semestral -> 3% do valor total da assinatura até o presente momento.
  • Trimestral -> 5% do valor total da assinatura até o presente momento.
  • Crie um atributo para controlar assinaturas com atraso de pagamento.
  • Crie um mecanismo para validar clientes que tentarem fazer compras com assinatura em atraso e não deixá-los comprar.
  • Rode o seu código no SonarQube.
  • Se possuir problemas corrija-os... Se não, parabéns.
  • Coloque os prints do SonarQube dentro de uma pasta chamada sonar na raiz do seu projeto.

Versione seu novo código em outro repositório ou uma branch diferente da tarefa anterior.

Segunda Entrega

  • Identificar os Bad Smells e aplicar os princípios de Clean Code enquanto refatorar o código existente.
  • (Fazer junto com a Lista 2 da primeira entrega)

Terceira Entrega

  • Implementar de forma simples 2 Patterns criacionais, 1 Pattern estrutural e 1 Pattern comportamental.

... . ... . ... . ... . ... . ... . ...

Forma de Envio no Moodle:

  • Assim que terminar, salve o seu arquivo PDF e poste no Moodle.
  • Utilize o seu nome para nomear o arquivo, identificando também a disciplina no seguinte formato: nomedoaluno_nomedadisciplina_pd.PDF.

Equipe:

  • Bruno Apostólico Silva
  • Ivana Batista Marinho
  • Luiz Fernando de Oliveira Braz Silva
  • Matheus William dos Santos Loose
  • Niky Palleta Moura Lima
  • Patrick Neri de Oliveira

Repositórios do Professor:

About

Projeto de Estudo de Java com Clean Code e Boas Práticas de Desenvolvimento.


Languages

Language:Java 100.0%