Aplicação para calculo de ganho de capital em compra e venda de ações, as regras de negocio estão definidas no documento com a descrição do problema.
Os detalhes da implementação especificações e informaçẽes adicionais ṕodem ser encontrados na pagina:
A linguagem escolhida para implmentar o teste foi o Kotlin, por se tratar de uma linguagem multiparadigma com sintaxe simples e de facil entendimento. O build e controle de dependencias da aplicação é feito através Gradle, usando notação de kotlin. Abaixo link de referencia das tecnologias.
A aplicação foi implementada seguindo os conceitos do paradigma funcional as variaveis da aplicação são imutaveis, e toda mudança de estado na aplicação ocorre através da aplicação de uma função. Foi tirado muito proveito dos aspectos funcionais do o kotlin como as funções de escopo
Todo a aplicação foi desenvolvimento atravẽs do TDD. Os casos de funcionamento entrgues foram usados como ponto de partida para a construção de todos os testes, e atrvés deles todas as funcçẽos foram implementadas.
Todo o codigo foi organizado seguindo o principios da arquietura hexagonal,
porem como o escopo do teste é extramamente simples, foi usado apenas um esboço dela, onde as funções de
stdin
e stdout
estão é um pacote adapter apartado do dominio, e as funções que operam as regras, ou seja
o dominio esta aprtaddo em um pacote só delas, sem depencias de detalhe de leitura e escrita.
Afim de simplificar a execução da aplicação, foi implementado script bem simples que realiza o build da aplicação e executa os seis cenarios disponilizados. Para executar a aplicação, siga os passos abaixos:
- Abra o terminal do sistema operacional
- Navegue até a pasta que se encontra os codigos da aplicação.
- a partir da pasta raiz do projeto execute o codigo abaixo no terminal
$ ./start-app.sh
Se tudo ocorrer como esperado deve-se obter ma saida seis listas com o valor do imposto a ser cobrado em cada operação.