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. obter o 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.

6 thoughts on “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.

  1. Top Top Top!

    Luiz Carlos, seu blog é uma das minhas principais referencia de estudos em Delphi e agora fico muito feliz em saber que está avançando em outras tecnologias. Tenho certeza de que és um profissional e principalmente uma pessoa com capacidades ímpares, sendo assim, o sucesso é consequência e mérito.

    Vedovelli também acompanho desde a época do AdobeFlex, um dos melhores profissionais e pessoa dedicada em ajudar a comunidade.

    O que desejo a vocês é que Deus continue lhes abençoando em tudo que fizerem, tenho muito a agradecer em meus 20 e tantos anos de profissão, ao que compartilham conosco, NÃO TEM PREÇO! parabéns.

    1. Carlos Eduardo, agradeço de coração por suas palavras e fico muito feliz por saber que acompanha meu humilde blog. Obrigado!

      Aproveito para pedir desculpas para você e a todos que seguem este espaço. Peço desculpas por não ter atualizado o blog, e já há um bom tempo, mesmo tendo muitas ideias e assuntos a abordar.

      Muitos dizem aprender aqui, porém a verdade é que o maior beneficiário em aprendizagem sou eu próprio. Aprendo sempre que posto algo novo.

      Nós desenvolvedores de software, principalmente os que iniciaram na mesmo época em que eu iniciei (onde acesso a informação não era, digamos, tão prática e acessível quanto hoje), ao longo da carreira acabamos por criar alguns vícios. E isto acaba por prejudicar a legibilidade e a manutenibilidade do nosso código. Já evoluí muito desde que resolvi manter este blog. Ainda tenho um longo caminho pela frente, mas a vida é assim, uma eterna busca pelo conhecimento.

      Abraços.

  2. Excelente artigo!
    Eu fiz a opção pelo Vue tmb no ano passado mas no caso do Back me sinto mais seguro usando o Laravel já que a minha linguagem de entrada foi o PHP.
    Parabéns pelo seu trabalho, seu blog é sensacional!

Deixe um comentário

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