Trabalhe remotamente e ganhe em dólar com Programação – pt 5
Elaboração de um projeto de TI: alguns pontos importantes
Ao se aplicar à uma vaga que requer a elaboração de um projeto:
- Tenha conhecimento e controle do que está sendo desenvolvido: Por isso recomendo você se aplicar às vagas para as quais você já tenha experiência prévia em uma linguagem de programação específica que seja pedida.
- Caso alguma informação esteja ausente ou não esteja clara, você pode e deve consultar o recrutador (às vezes eles não fornecerão tal informação). Contudo, é importante que você tenha proatividade, no sentido de checar se os requisitos fazem sentido e se são possíveis de serem completados. Exemplo: em um dos testes, a descrição do projeto pedia para utilizar uma API de conversão de moedas que estava fora do ar. Ao invés de esperar os avaliadores mencionarem este fato, encontrei uma outra API que pudesse substituir a mencionada no escopo do projeto e fiz a sugestão do seu uso para os avaliadores.
- Revise os conteúdos relacionados aos pré-requisitos para a vaga alguns dias antes de realizar o projeto (por exemplo, se a vaga requer desenvolvimento de projetos incluindo aplicações em PHP, revise este conteúdo). Eles servirão como referência para mostrar o que a empresa está esperando.
- Durante o teste, planeje de forma objetiva cada etapa a ser desenvolvida, com prioridade aos critérios obrigatórios e posteriormente, os bônus. Geralmente as instruções para o projeto já são enviadas para você de forma organizada em tópicos, certifique-se de que cumpriu cada um deles.
Tenha certeza de que cada requisito está funcionando adequadamente de forma segura, para isso:
Fig 1. Elementos das boas práticas de programação
IBTI - boas práticas de programação
Fonte: https://www.computermusicdesign.com/max-programming-best-practices-an-overview/
- Escreva testes unitários
- Teste a cobertura do código
- Teste o seu projeto com o olhar de um usuário leigo
- Forneça o seu projeto para outra pessoa testar (que não seja alguém participando do mesmo processo seletivo)
- Em geral, use as ferramentas, módulos e plug-ins padrões fornecidos pela linguagem de programação e/ou framework para um desenvolvimento mais rápido. Não reinvente os requisitos e evite ferramentas de geração de código pré-existentes no framework (ex. migrações de banco de dados, geração básica de crud, carregamento automático, etc.). Isso apenas atrasará seu processo de codificação e diminuirá sua pontuação.
- Utilize as boas práticas na programação: nomes significativos para objetos, métodos, funções, variáveis, caminhos, etc [Fig. 1 e Fig. 2].
- Faça comentários no código nos trechos essenciais, algumas empresas reclamam do excesso de comentários nos códigos. Mas também não deixe o seu código sem comentários, a chave aqui é o balanço.
- Use sempre URLs limpas ou amigáveis (endereços simples, fáceis de lembrar e que levam o usuário exatamente aonde ele deseja no seu projeto).
- Evite usar caminhos absolutos.
- Sempre revise o projeto várias vezes antes de enviar: Da primeira vez, revise se todos os requisitos foram cumpridos, em uma segunda vez verifique se há warnings no projeto que possam vir a ocasionar erros em casos de teste mais complexos, em uma terceira vez verifique se há algum erro ou comentário que não seja importante e faça uma limpeza no seu código.
Fig 2. Nomenclatura para variáveis
Submissão do projeto
IBTI - Github Gitlab Bitbucket
Ao final desta etapa, geralmente é requisitado que você submeta o projeto a um repositório (GitHub, BitBucket, Gitlab etc) e compartilhe o link com o responsável pela seleção, sempre seguindo os comandos da descrição do projeto. Mas atenção: às vezes a entrega pode ser de outra forma que não inclua a submissão em um repositório online.
Adicione instruções de instalação (se aplicável) criando um arquivo README.md e o script (código-fonte) em uma pasta separada, se necessário. Essas instruções devem incluir quaisquer requisitos de instalação para fazer seu projeto rodar. Por exemplo: Em um projeto desenvolvido utilizando a stack LAMP, qualquer coisa além de uma instalação básica do Apache, PHP e MySQL devem ser incluídos no arquivo README.md. Certifique-se de adicionar os comandos apropriados para um possível teste (se aplicável).
Um arquivo README.md torna o projeto mais profissional e claro de ser compreendido pelos avaliadores.
Avaliação do projeto
Em geral, a empresa utiliza outros desenvolvedores para avaliar o seu projeto. Os critérios de avaliação normalmente são:
- Corretude do projeto: as funcionalidades obrigatórias realmente funcionam?
- Arquitetura utilizada: o projeto desenvolvido possui uma arquitetura de software? é escalável? utiliza padrões de projeto? as classes possuem responsabilidade única?
- Boas práticas de programação: o código é fácil de entender? está comentado? Possui nomes significativos?
- Testes automatizados: foram desenvolvidos testes automatizados? Possui cobertura de código?
- Eficiência do código: às vezes o projeto deve rodar dentro de um limite de tempo, mas nem sempre se pede isso.
Exemplos de projetos
Sistema de chatbot, Construtor de blog, alguma aplicação front-end que necessite consumir dados de um serviço externo (API), extração de relatórios por meio de consultas complexas em banco de dados, ou até mesmo um mini app.
- Se o projeto envolver a implementação de um banco de dados, verifique na descrição do projeto qual é o mecanismo de banco de dados que deverá ser utilizado e não se esqueça de informar as instruções para a instalação.
- Caso você precise utilizar um framework para implementar o projeto,siga a estrutura padrão dele, sem utilizar muitas customizações.
- Se o projeto envolver front-end, busque utilizar boas práticas tais como o ATOMIC design e garanta que os componentes do front são genéricos o suficiente para poderem ser reutilizados.
Dicas extras
A elaboração de um projeto tem um prazo pré-definido pela empresa, podendo durar de algumas horas até alguns dias para sua elaboração. Em geral, você informa ao recrutador quando irá iniciar o projeto e a partir daí o tempo começa a correr.
A sugestão aqui é: caso não haja tempo de implementar todas as funcionalidades obrigatórias, tente negociar com a empresa uma extensão de prazo.
Uma última dica importante é: caso o projeto a ser desenvolvido seja web, juntamente com o código-fonte entregue um link para a aplicação rodando. Isso facilita a vida do avaliador, pois não terá que instalar o seu projeto localmente. Exemplo de hosts para aplicações web são o Vercel e o Heroku. Ao entregar sua aplicação já hospedada e rodando, mostra profissionalismo e conhecimentos em infraestrutura, o que com certeza te dará pontos na avaliação.
Para ir além
Código limpo: Habilidades práticas do Agile Software
por Robert C. Martin
Este livro traz as principais técnicas para melhorar a qualidade e legibilidade do seu código, e também os principais erros cometidos por programadores menos atentos.
Espero que estejam gostando do conteúdo disponibilizado para vocês, esperamos que os mesmos estejam agregando conhecimento e sendo úteis na sua carreira. Agradeço se puderem compartilhar este conteúdo no seu linkedin!
Aguardem os próximos posts com conteúdos exclusivos que estamos planejando para as próximas semanas!
Até logo!
Igor Augusto Brandão
#igorabrandaoHello, world! My name is Igor and I am a system analyst professional with degrees in Systems Analysis, Business Administration, Information Technology, a specialization of IT applied to the Legal Area, an MSc in Bioinformatics, and +10 years of experience working with systems development.