Skip to content

Technical assessment for the position of full-stack web delevoper at VC-X Solutions.

License

Notifications You must be signed in to change notification settings

guligon90/vcx-solutions-challenge

Repository files navigation

VC-X Solutions Challenge

Avaliação técnica para a posição de full-stack engineer (Python) na VC-X Solutions.

Escopo

O objetivo aqui é realizar a implementação de duas estruturas de dados clássicas: a fila e pilha, não utilizando outras estruturas auxiliares, que sejam nativas da linguagem de programação em questão (eg. listas, tuplas, etc.). A especificação e demais orientações acerca da execução do teste, submetidas pela empresa, podem ser conferidas aqui.

Preliminares

Requisitos

O seu workspace já deve possuir instalados os seguintes ítems:

Em relação ao gerador de ambientes virtuais para Python, nesse projeto foi utilizado o venv. Para instalá-lo, execute no terminal:

sudo apt-get install python3-venv

Ambiente virtual

De modo a instalar o ambiente virtual do Python, e as dependências de projeto, executar no terminal:

python3 -m venv env \                                  # Instala ambiente virtual
&& source env/bin/activate \                           # Ativa ambiente virtual localmente
&& pip install --upgrade pip --no-cache-dir \          # Instala e atualiza package manager, sem usar ~/.cache/pip
&& pip install -r requirements.txt --no-cache-dir      # Instala dependências de projeto, sem usar ~/.cache/pip

Testes unitários

Com o ambiente virtual e dependências instaladas, os testes unitários pode ser executados. Nesse projeto, o pytest está sendo utilizado, pelo fato de o mesmo possuir uma verbosidade superior ao unittest, (na minha opinião). Assim, para executar os testes e também gerar o relatório de cobertura, execute no terminal:

pytest --cov=src -vv src/tests/

Caso você queira só executar os testes unitários, com verbosidade:

pytest -vv

Code linting

Concernindo padronização de código, o code linting nesse projeto está sendo feito mediante a utilização da ferramenta prospector, que por sua vez converge vários outros analisadores de integridade de código (como mypy para análise estática de tipos e mccabe, para aferição de complexidade ciclomática).

Para rodar o code linting no código em Python, basta executar:

prospector

A saída deverá, no cenário em que nenhuma inconsistência é encontrada, será similar à:

image

About

Technical assessment for the position of full-stack web delevoper at VC-X Solutions.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages