Troca de Bibliotecas em Sistemas com e sem Arquitetura Limpa: Uma Análise de Esforço
Resumo
A arquitetura limpa é uma abordagem de desenvolvimento de software que visa facilitar a compreensão, manutenção e evolução do código, através da separação de responsabilidades em camadas claramente definidas. No entanto, essa arquitetura aumenta a verbosidade e a complexidade do sistema devido ao uso de muitas interfaces e classes adicionais, exigindo uma maior curva de aprendizado. Este trabalho avalia o esforço de troca de bibliotecas em sistemas com e sem arquitetura limpa. Um sistema desenvolvido com uma arquitetura convencional foi convertido para seguir todas as diretrizes da arquitetura limpa. Em seguida, três bibliotecas foram substituídas: typeorm por prisma, express por apollo-server e bull por bullmq. O esforço foi medido em termos de linhas de código alteradas e tempo necessário para as trocas. A conclusão foi que a arquitetura limpa apresentou menor esforço para trocar as bibliotecas, mas maior tempo de implementação, resultando em um sistema mais fácil de manter.
Referências
Felipe Buzzi. Prisma: uma das melhores coisas que já aconteceu no ecossistema? Disponível em: [link], 2022. Acesso em: 13 fev. 2023.
Shyam R. Chidamber and Chris F. Kemerer. A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6):476–493, 1994.
Samuel da Silva Feitosa and Rafaela Lunardi Comarella. Aprendendo conceitos de orientação a objetos usando as ferramentas Scratch e Snap! Anais do Computer on the Beach, 11(1):490–496, 2020.
Godwin Ekuma. Asynchronous task processing in node.js with bull. Disponível em: [link], 2020. Acesso em: 13 fev. 2023.
Norman E. Fenton. Software Metrics: A Rigorous and Practical Approach. CRC Press, 1999.
Elton Fonseca. O que é orm? Disponível em: [link], 2020. Acesso em: 13 fev. 2023.
Guilherme Forte. Over-fetching and under-fetching: Rest apis’ exhaustion signs. Disponível em: [link], 2022. Acesso em: 13 fev. 2023.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
S. Henry and D. Kafura. Software metrics: a research evaluation. IEEE Transactions on Software Engineering, SE-7(6):576–590, 1981.
Robert C. Martin. Agile Software Development, Principles, Patterns, and Practices. Prentice Hall, 2002.
Robert C Martin, James Grenning, Simon Brown, Kevlin Henney, and Jason Gorman. Clean architecture: a craftsman’s guide to software structure and design. Prentice Hall, 2018.
Danilo Masotti. Clean architecture: descubra o que é e onde aplicar arquitetura limpa. Disponível em: [link], 2021. Acesso em: 13 jan. 2022.
Cairo Noleto. Bancos de dados. Disponível em: [link], 2021. Acesso em: 13 fev. 2023.
Jacqueline Oliveira. Log4j: entenda mais sobre a vulnerabilidade do bug. Disponível em: [link], 2021. Acesso em: 13 fev. 2023.
Marudhu Pandiyan. Bullmq — message queue in node.js. Disponível em: [link], 2023. Acesso em: 13 fev. 2023.
Priyadarshi Tripathy and Kshirasagar Naik. Software evolution and maintenance: a practitioner’s approach. John Wiley & Sons, 2014.
Bruna Vidanya. Graphql vs. rest: Qual o melhor para o desenvolvimento de api? Disponível em: [link], 2021. Acesso em: 13 fev. 2023.
Larry | Peng Yang. System design - message queues. Disponível em: [link], 2020. Acesso em: 13 fev. 2023.