Navegando em novos mares

Olá pessoal! Passando rapidamente aqui para falar um pouco do projeto que venho trabalhando.

Trata-se de um sistema web contendo um controle financeiro, estoque, compras e vendas, sendo multiempresa e multiusuário. Um tema novo no blog se considerarmos tudo que foi abordado até o momento, ou seja, que era focado no desenvolvimento para desktop e tendo como linguagem o Delphi.

Para este sistema, estou utilizando o Aws EC2 para hospedagem na nuvem.  A escolha se deve ao fato de querer total controle do servidor além de poder contar com todo o poder de fogo do Aws. Poderia ter escolhido Digital Ocean, mas eu já havia utilizado EC2 no passado. Então resolvi não reinventar.

Desta vez meu Delphi não estará me acompanhando. Ficará para eventuais necessidades que por ventura exijam sua utilização no futuro. Abaixo, segue um resumo das ferramentas que venho utilizando.

Template

Sem muita inspiração e nem tempo a perder, fui direto para o AdminLTE:

Frontend

Para o frontend, estava em dúvida entre Angular e Vue.js. Após uma breve pesquisa, um vídeo me fez tomar a decisão:

Deixo aqui o meu agradecimento ao Fábio Vedovelli por disponibilizar seus vídeos (Vimeo e Youtube), principalmente este em especial, para a comunidade.

A cada dia que passa, estou mais convencido de que fiz a escolha certa. Eu sei que nesta área tudo é muito dinâmico, com mudanças e reviravoltas do dia para a noite, mas tenho me divertido com o Vue.js e não penso em adotar outra ferramenta, pelo menos não por enquanto.

Backend

Aqui foi onde houve uma troca importante e trabalhosa.

Em dezembro de 2016, quando estava me preparando para este projeto, busquei artigos que tratavam de backend. Queria ter uma informação sólida de quais linguagens seriam interessantes e que não tivessem uma curva de aprendizagem muito íngreme. Pois bem, desde o início, estava inclinado para o Node. Tinha o desejo de manter a mesma linguagem de programação, ou seja, tanto no backend quando no frontend queria utilizar Javascript.

Escolhido o Node, optei pelo framework Express, que tem como ORM o Sequelize.

No início, tudo fluía perfeitamente bem. Os primeiros cadastros foram gerados rapidamente. Porém, quando passei para entidades mais complexas, comecei a me deparar com um aumento na dificuldade de ler o código por conta das “Promisses“. Talvez me faltasse experiência para lidar com este assunto e por vezes acabava por complicar algo que fosse simples lidar. Por exemplo:

  • Determinada ação deveria:
    1. atualizar o registro de uma tabela
    2. inserir registro em outra
    3. somar valor total dos registros inseridos na tabela que recebeu o novo registro
    4. verificar se esta soma seria válida para a atualização no processo inicial 1.
  • Tudo isso dentro de uma mesma transação. Caso algum procedimento falhasse, todo o processa voltaria ao estado anterior ao início da transação.

Este é um exemplo e só para constar, eu me deparei com casos mais complexos.

Ok! Tudo funcionando perfeitamente. Para isto, eu criava um array de promisses, então ia chamando cada uma seguindo a sequência correta para a obtenção e processamento dos dados. Porém, toda vez que me deparava com situações como esta, perdia algum tempo analisando o impacto no processamento dos dados. Se estes estavam ocorrendo dentro do esperado, ou se  alguma promisse não estava sendo processada corretamente ou com dados que não representassem o estado atual dos registros no banco de dados.

Novamente, eu sei, pode ser incompetência minha. Mas, o fato é que não me sentia confortável.

Após 2 meses de trabalho e de muito relutar contra este sentimento (o de sentir não estar confortável, rsrsrs), resolvi procurar uma linguagem que fosse mais compatível com a minha experiência de desenvolvimento, ou seja, uma que fosse me trouxesse uma transição mais natural, eu que utilizo Delphi. Analisei C#, Java, e finalmente Python, sendo este último minha escolha!

Para chegar a esta conclusão, estudei a documentação encontrada no site do Python (https://docs.python.org/3/), li artigos, fiz cursos e claro, várias videoaulas no Youtube.

Iniciei a transição, e logo de início percebi que este era o caminho. Por mais complexo fosse determinada ação, o código gerado se mantinha fácil de ser lido.

Conclusão

Ainda tenho um longo caminho pela frente e muita coisa a ser implementada, porém irei num ritmo um pouco mais devagar a partir de agora.

Terminei a transição do backend para a nova linguagem e neste momento, estou implementando novos requisitos do meu cliente.

Estou muito satisfeito por ter o Vue.js no front e o Python no back.

Abraços.

Sobre o autor: Luiz Carlos (60 Posts)

Desenvolvedor de software Balsas/MA


Compartilhe:

2 Replies to “Navegando em novos mares”

    1. Sou muito grato a você, Vedovelli, pois sei que não é fácil tirar um tempo, que as vezes não temos, para compartilhar conhecimento. Seus vídeos me ajudaram na tomada de decisão e com certeza a muitos outros desenvolvedores.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *