Perfil
Propostas
Como deixar a lógica do sistema na mão do cliente e de forma visual usando diagramas de ações (exemplos no Odoo)
No desenvolvimento de sistemas, especialmente para empresas, o código acaba cheio de IFs que evaluam expressões hardcoded para enfrentar situações específicas que não foram documentadas ou informadas nas especificações ao inicio do projeto. Isso faz com que seu sistema seja muito mais difícil de manter e acabe cheio de gambiarras.
Misturando programação funcional, eventos, diagramas e padrões de software, achamos um modo de deixar todas essas exceções na mão do cliente. Inclusive conseguimos que o cliente mesmo altere a interface web da aplicação para adicionar botões para lançar as ações por ele programadas, ou até que programe tarefas cron recurrentes para executar determinadas ações definidas por ele mesmo.
Hoje ele consegue fazer sozinho, e de forma visual num diagrama, coisas do tipo:
- Quero um botão que apareça só quando o valor total da fatura for maior que R$ 1000,00 e que, quando pulsado, gere um relatório PDF com essas informações aqui e envie por email para o cliente usando esse modelo aqui
- Quando o usuário alterar a data de visita, mas só no caso do cliente X, estabelece a data de finalização para visita + 2 dias úteis.
- Uma vez por semana, pega as fotos anexas de cada documento, coloca uma watermark e coloca elas em um PDF com esse cabeçãlho, e envia por SFTP
- ...
A lógica do nosso código se reduziu muito, e a manutenção do sistema ficou mínima.
Todos os exemplos que serão mostrados foram feitos sobre #odoo (https://www.odoo.com), feito em #python, mas a ideia pode ser aplicada a qualquer outro framework ou linguagem.
Nota: essa funcionalidade não faz parte do odoo core, foi implementada como módulo extra.