Coder Social home page Coder Social logo

challenge-involves's Introduction

challenge-involves

Projeto desenvolvido - desafio involves.

Observações

  • Projeto foi desenvolvido utilizando algumas features java 8 (lambdas, stream e etc).
  • O programa é desenvolvido para ser multiplataforma:
    • Windows
      • Entrar no diretório challenge-involves/scr/main/dist e executar run.bat.
    • Linux
      • Entrar no challenge-involves/scr/main/dist e executar run.sh.

Se preferir abra em sua IDE predileta e execute a classe Main.

##Alterando fonte de dados

  • Projeto foi desenvolvido para ser flexivel e se adequar a qualquer arquivo CSV, independente do conteúdo. Para efetuar testes executar challenge-involves/scr/main/dist/scr/main/resources/config.properties.
    • Alterar propriedade load.dir.csv=src/main/resources/cidades.csv

##Requisitos

A prova consiste em criar um programa que leia todas as linhas do arquivo CSV e utilize esse arquivo como base para consultas, onde a primeira linha (cabeçalho) contém o nome das propriedades e as linhas subsequentes os valores. Após ler o arquivo, o programa deve começar a ouvir o console a espera dos comandos de consulta. Abaixo segue a lista dos comandos que devem ser interpretados:

  • count * - escreve no console a contagem total de registros importados (não deve considerar a linha de cabeçalho)

  • count distinct [propriedade] - escreve no console o total de valores distintos da propriedade (coluna) enviada

  • filter [propriedade] [valor] - escreve no console a linha de cabeçalho e todas as linhas em que a propriedade enviada possua o valor enviado

  • Testes unitários JUNIT.

  • Otimização de pesquisa (Matriz e lambdas).

  • Padrões SOLID (Pattern)

  • SRP Principio da Responsabilidade Única Uma classe deve ter um, e somente um, motivo para mudar.

  • OCP Princípio Aberto-Fechado Você deve ser capaz de estender um comportamento de uma classe, sem modificá-lo.

  • LSP Princípio da Substituição de Liskov As classes derivadas devem ser substituíveis por suas classes base.

  • ISP Princípio da Segregação da Interface Muitas interfaces específicas são melhores do que uma interface única.

  • DIP Princípio da inversão da dependência Dependa de uma abstração e não de uma implementação.

challenge-involves's People

Contributors

caibate avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.