Porque escolhemos Web2py para criar uma aplicação analítica near real time?

Lucas Misael
4 min readFeb 17, 2021

--

Meu nome é Lucas e sou Engenheiro de Dados no time de DataLab do Delivery Center.

No início deste ano nossa equipe recebeu um desafio incrível… hum? Como assim Lucas?

Bom. Antes de explicar sobre este desafio, tenho que falar um pouco sobre como foi nosso ano de 2020. Em 2020 criamos uma ferramenta para monitorar as operações da empresa, com foco na exibição de dados near real time, criado pelo Fernando Trevisan e o Rafael Anizio.

Eles já detalharam sobre o projeto e quem quiser conhecer um pouco sobre a ferramenta que eles desenvolveram,

Conheça os artigos:

-> Como construir uma ferramenta de monitoramento operacional com atualizações a cada 10 segundos

-> Construindo um pipeline near real time resiliente de forma simples e rápida!

Enfim. Este projeto de 2020 colocou a empresa em outro patamar e agora, em 2021, tínhamos um desafio ainda maior — como produtizar esta ferramenta, tornando uma aplicação escalável, flexível e integrada aos demais produtos da empresa.

Existem várias formas de transformar dados em produto e aqui nós optamos por um conceito de uma aplicação analítica, ou seja, software integrado aos demais produtos que consome dados e gera inteligência numa única experiência ao cliente.

Mas o início não foi tão simples assim e começaram a surgir perguntas. Qual Linguagem de programação usaremos? Quais Frameworks usaremos? Vamos usar ferramentas de BI embedadas? Como será o banco de dados?

O primeiro ponto que veio na cabeça foi que programamos e escrevemos scripts no dia a dia, mas na prática não somos desenvolvedores de software, somos engenheiros e cientistas de dados que estamos focados em trabalhar dados para que outras pessoas possam ser data driven. Então, resolvemos iniciar pelos estudos sobre Frameworks de desenvolvimento web, já imaginando que esta seria nossa base para a aplicação analítica.

Inicialmente levamos em consideração o Ruby On Rails, visto que é o framework com muita aceitação na empresa. Percebemos que ele é voltado a facilidade no desenvolvimento de CRUDs, com poucos comandos no terminal conseguiríamos criar toda a estrutura MVC necessária, porém, notamos que Ruby on Rails era muito bom, só que para um propósito diferente do que precisávamos.

É válido lembrar que nossa aplicação teria apenas interações de leitura no banco de dados, então a questão de facilitar CRUD não faz muita diferença.

Então, mudamos nosso foco e fomos buscar outras formas de construirmos nossa aplicação. Foi então que chegamos no PHP. 😅

Com o PHP, vimos que tínhamos potencial, pois é uma linguagem que performa bem para aplicações web, e tem uma comunidade gigantesca para suporte. Porém analisamos nossa situação, e, para nossa aplicação analítica teríamos vários cálculos matemáticos e implementação de inteligência artificial num futuro bem próximo. E com isso, desanimamos com o PHP.

Foi então que pensamos em linguagens mais usadas na ciência de dados, decidimos pelo Python!

Ao escolher Python, tínhamos mais um desafio, qual framework utilizaremos?

Existem muitooos frameworks famosos em python e precisávamos de um que não fosse muito flat, ao ponto de termos que desenvolver coisas básicas, mas também não queríamos um framework muito robusto que dependesse de uma curva de aprendizagem muito longa. Em resumo, tínhamos apenas um mês para efetuar a construção da aplicação 🤯 (versão inicial).

Portanto, nos aprofundamos em três frameworks de python: Flask, Web2py, e Django!

Flask: É um framework bem bacana, com uma curva de aprendizado pequena, por ser relativamente mais simples e leve. Porém vimos que é um framework minimalista, e não seria o ideal para o projeto.

Django: Django é um framework incrível, e conta com uma comunidade gigantesca, ele tem tudo que precisávamos para desenvolvermos nossa aplicação. Porém a curva de aprendizado seria grande, e complicaria nossas entregas no prazo.

Web2py: É um framework que foi lançado em setembro de 2007, por Massimo Di Pierro, inicialmente o foco do projeto era apenas para ensino nas universidades, para seus alunos. Por ser baseado no Ruby on Rails e Django, acabamos encontrando um framework que estava no meio entre um framework básico e um muito completo.

Mas tivemos um motivo especial por ter escolhido web2py. Por mais que seja um framework bem completo e traga facilidade para o desenvolvimento das aplicações, o web2py não é muito disseminado no Brasil.

Achou que tomamos uma decisão louca né? Achou errado, estávamos bem lúcidos com o nosso objetivo! Então… aceitamos esse desafio com o objetivo de nos transformar em disseminadores de web2py, com foco em ciência de dados, no Brasil!

Gostou da nossa decisão? Sim? Não? Comente e participe conosco deste desafio de aproximar web2py e ciência de dados. Nos próximos posts, vou contar um pouco sobre as primeiras impressões que tivemos do web2py.

--

--