Criando um processador de carteiras em C++ - Dia 03: Algo mais profissional
Olá pessoal :D Recentemente decidi me aventurar num projetinho pessoal para ampliar meu portfolio de backend: criar um processador de carteiras em C++. Para documentar e compartilhar todo esse processo, vou todos os dias escrever um artigo curto relatando o que fiz e adicionando considerações importantes em cada etapa do processo.
O código do processador ficará aberto à todos através deste link. Quem quiser acompanhar mais de perto e quem sabe até colaborar com o projeto, pode ficar à vontade para dar follow, fork ou stars no repositório.
Sobre a comunidade tech
Desde que comecei esse projeto há dois dias atrás, a comunidade aqui do TabNews já se mostrou super disposta a colaborar. Vários programadores que trabalham com C++ há bem mais tempo que eu, deram ótimas contribuições e elas já começaram a mudar o rumo do projeto.
Uma bem especial foi a do @macedot que me sugeriu dar uma olhada nesse repositório que contém várias dicas sobre boas práticas ao programar em C++. Para esse momento do projeto, acho que ninguém poderia dar uma contribuição melhor.
Assim que comecei a explorar o repositório, vi a dica de usar um build tool para tornar mais consistente o build do projeto. Comecei então tentando explorar o cmake, mas tive bastante dificuldade. Fui procurar uns tutoriais no youtube e acabei caindo nessa série super legal da univesp e, com ela, decidi usar o gradle para fazer o build e os testes do projeto.
Fora isso, também adotei outra sugestão do @macedot e passei a utilizar vectors ao invés de arrays como parâmetros de entrada e saída das minhas funções :D
Resolvendo pendências
Como disse no artigo anterior, estava com a sensação de que ainda faltava algo para as interfaces serem finalizadas. Especificamente a documentação de cada método e alguns ajustes neles (ser mais preciso no tipo do retorno, nos parâmetros de entrada, etc).
Então também foquei nisso hoje e acho que o resultado ficou bem bom. Abaixo segue o link dos três commits fazendo o fix nas interfaces:
- https://github.com/letsaguiar/personal-wallet-processor/commit/94f742ef732d09c3e529e226df0faaea90998fa7
- https://github.com/letsaguiar/personal-wallet-processor/commit/4f6898ef9abec372fc8d8b714f1b903ce9d91f31
- https://github.com/letsaguiar/personal-wallet-processor/commit/f6f4ed196d0175e0065110d5b879e8e2c69cd91e
Ainda faltou uma coisa que só percebi depois com o gradle: adicionar o namespace personal_wallet_processor em todos eles. Conforme fui aprendendo a usar o gradle, tive que deletar esses arquivos para debugar erros de build, mas os commits estão salvos e amanhã devo adicionar todos os módulos de novo, com as alterações necessárias.
Conclusão
Bem, por hoje foi isso. Quero mais uma vez agradecer à todos que já estão tornando esse processo bastante colaborativo e me ensinando diversas coisas novas. Amanhã volto com mais atualizações :D