1
resposta

[Projeto] Dúvida sobre a estrutura de um projeto

Olá,
Estou iniciando o processo de desenvolver um projeto que já está em funcionando, mas não por completo. Como não consigo contatar o desenvolvedor que iniciou o projeto, e ele está confuso, sem documentação e já foi mexido por outras pessoas, pensei em pegar o que funciona e fazer algo do zero.

Gostaria de compartilhar a proposta de arquitetura que estou desenvolvendo para automatizar o processo de bloqueio e desbloqueio de usuários nos principais sistemas (como Email, Active Directory e sistema interno), em resposta a diferentes eventos de RH, como afastamentos, férias e admissões, e pedir a opinião sobre o modelo.

A solução foi desenhada para ser modular, escalável e auditável. O fluxo é dividido em múltiplas camadas de centralização:

  • Arquivos por sistema de ação:
    Para cada sistema de destino (por exemplo, Email, AD, sistema), criamos arquivos dedicados. Cada arquivo lista as ações que precisam ser realizadas naquele sistema específico, como bloqueios ou desbloqueios, contendo os dados pertinentes do colaborador e da ação.

  • Arquivos centralizadores por evento (RPA de evento):
    Para cada evento de negócio (por exemplo, afastamento, férias, admissão), geramos um arquivo RPA correspondente. Este arquivo funciona como um centralizador — nele referenciamos e organizamos todas as ações necessárias para todos os sistemas relacionadas àquele tipo de evento.

  • Rotina principal (main):
    Uma rotina principal (“main”) orquestra toda a automação: ela lê os arquivos RPA dos eventos, consolida e distribui as ações para os respectivos scripts ou robôs que realizam o bloqueio ou desbloqueio em cada sistema.

Com essa estrutura, o processo fica bem organizado e fácil de manter. As regras de negócio e a execução técnica nas integrações permanecem desacopladas. Isso facilita tanto auditoria quanto expansão para novos cenários ou sistemas — basta adicionar mais um arquivo de ações ou atualizar o RPA do evento.

Minha dúvida é se considera essa abordagem adequada do ponto de vista de organização de dados e modularidade, ou se acredita que poderia haver um modelo ainda mais eficiente, especialmente pensando em cenários futuros de crescimento da automação ou aumento nos tipos de eventos e sistemas integrados.

Outra coisa, tem alguma indicação de curso específico aqui na plataforma que possa me ajudar com esse projeto de automação em Python?

Ficarei muito grata pelo feedback e sugestões!

1 resposta

Olá Camila, tudo bem?

Esse desafio é no mínimo interessante! A sua proposta de arquitetura parece bem pensada, considerando especialmente a modularidade e a escalabilidade, fundamentais em projetos de automação. A divisão em camadas, com arquivos dedicados para cada sistema e eventos específicos, é uma abordagem que tende a facilitar a manutenção e a expansão futura.

A ideia de ter uma rotina principal que orquestra todo o processo também é inteligente, pois centraliza o controle e permite que as integrações sejam geridas de forma mais organizada. Isso pode ser especialmente útil quando você precisar adicionar novos sistemas ou eventos, como mencionou.

Quanto à sua dúvida sobre a eficiência da abordagem, ela parece sólida, mas sempre há espaço para melhorias dependendo do contexto específico e das necessidades do projeto. Por exemplo, você pode considerar a adoção de um sistema de filas (como o RabbitMQ ou Kafka) para gerenciar as ações de forma assíncrona, o que pode aumentar a eficiência em cenários de alta demanda.

Sobre cursos de automação em Python, a plataforma geralmente oferece ótimas opções:

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.