<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: ArthurBCarv</title>
    <description>The latest articles on Forem by ArthurBCarv (@arthurbcarv).</description>
    <link>https://forem.com/arthurbcarv</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3536071%2Fa4e51abf-0bb5-46ca-bed0-e9f7981e72ea.png</url>
      <title>Forem: ArthurBCarv</title>
      <link>https://forem.com/arthurbcarv</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/arthurbcarv"/>
    <language>en</language>
    <item>
      <title>Polimorfismo Estrutural em Arquiteturas de Software</title>
      <dc:creator>ArthurBCarv</dc:creator>
      <pubDate>Mon, 29 Sep 2025 01:37:20 +0000</pubDate>
      <link>https://forem.com/arthurbcarv/polimorfismo-estrutural-em-arquiteturas-de-software-18m2</link>
      <guid>https://forem.com/arthurbcarv/polimorfismo-estrutural-em-arquiteturas-de-software-18m2</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. INTRODUÇÃO&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A arquitetura de software é a espinha dorsal de um sistema, definindo seus componentes, relações e os princípios que guiam seu desenvolvimento. Essa escolha é uma decisão estratégica que afeta diretamente a escalabilidade, manutenção e segurança do projeto. Contudo, na prática, arquiteturas raramente são implementadas de forma pura ou dogmática. A complexidade das demandas atuais exige soluções que transcendem um único padrão arquitetural, o que leva ao conceito de Polimorfismo Estrutural.&lt;/p&gt;

&lt;p&gt;Inspirado no polimorfismo da orientação a objetos, este conceito descreve a capacidade de combinar diferentes estilos arquiteturais para construir uma solução coesa. Este artigo analisa esse fenômeno através das arquiteturas tradicionais, Monolítica, Cliente-Servidor, MVC, REST e em Camadas, demonstrando como elas se integram na prática para formar sistemas híbridos. O objetivo é discutir os benefícios e desafios dessas integrações, defendendo que a estrutura ideal é aquela que combina os pontos fortes de múltiplos paradigmas de forma coerente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. FUNDAMENTAÇÃO TEÓRICA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.1 Arquitetura Monolítica&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A estrutura monolítica é um modelo de desenvolvimento acoplado, onde todas as abstrações do sistema compartilham os mesmos recursos, como bibliotecas e modelos de persistência. Embora seja de fácil compreensão, esse modelo pode se tornar um emaranhado complexo e de difícil manutenção com o tempo. (Mendes, 2021)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.2 Arquitetura Cliente-Servidor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O modelo cliente-servidor se baseia em uma plataforma onde um ou mais clientes acessam servidores para executar uma aplicação. Nessa estrutura, o processamento é distribuído entre as partes, utilizando a rede e o sistema operacional como base de comunicação. (CRUZ, I. [199-?])&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.3 Arquitetura Model-View-Controller (MVC)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O padrão MVC, surgido nos anos 80, divide a aplicação em três componentes com responsabilidades bem definidas. As requisições são recebidas pelo Controller, que interage com o Model (lógica de negócio) para processá-las e, por fim, exibe o resultado na View (camada de apresentação), modularizando o fluxo da aplicação. (LUCIANO, J. Et. Al., 2011)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.4 Arquitetura Representational State Transfer (REST)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;REST é um estilo arquitetural proposto por Roy Fielding que utiliza o protocolo HTTP para promover interoperabilidade e escalabilidade em sistemas distribuídos. Ele se baseia em restrições como separação cliente-servidor, ausência de estado (stateless), e uma interface uniforme, que orientam a construção de APIs (RESTful) para uma comunicação padronizada e independente de plataforma. (NETO, J., 2020)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.5 Arquitetura em Camadas / Três Camadas&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Este padrão organiza o sistema em camadas horizontais com responsabilidades distintas, sendo o modelo de três camadas o mais comum. As camadas típicas são: Apresentação (interface do usuário), Lógica de Negócio (regras do sistema) e Dados (armazenamento). Uma regra fundamental é que uma camada só pode depender da camada imediatamente inferior, garantindo a separação de responsabilidades. (DNC, 2025)&lt;br&gt;
&lt;strong&gt;3. DISCUSSÃO: POLIMORFISMO E HIBRIDAÇÃO&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Arquiteturas tradicionais, quando analisadas isoladamente, mostram-se insuficientes para resolver os problemas complexos dos cenários modernos. O polimorfismo estrutural emerge como resposta, permitindo que diferentes estilos arquiteturais coexistam em uma mesma solução, alinhando-se à ideia de que a arquitetura de um sistema é composta por múltiplas estruturas e seus relacionamentos.&lt;/p&gt;

&lt;p&gt;Na prática, cada arquitetura pode ser uma peça do quebra-cabeça. Um sistema pode iniciar como um monolito e, com o tempo, hibridizar-se com padrões mais complexos para atender a novas demandas. Essa combinação melhora a adaptabilidade, refletindo o que Fowler (2003) destacou sobre a importância de dividir o sistema em partes que evoluem de forma independente. Um exemplo comum é um sistema que nasce monolítico, adota MVC e camadas para se organizar, expõe funcionalidades via REST e, finalmente, usa o modelo cliente-servidor para distribuir a carga.&lt;br&gt;
Contudo, essa abordagem exige cautela. O principal desafio é evitar a criação de um "Frankenstein" arquitetural, onde a falta de coerência compromete a manutenção e a escalabilidade. A arquitetura deve ser guiada por princípios de design consistentes, mesmo ao incorporar múltiplos padrões. Quando aplicado com critério, o polimorfismo estrutural permite criar sistemas resilientes e com capacidade de evoluir organicamente diante de novas demandas. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. CONCLUSÃO&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O estudo demonstra que a busca por uma arquitetura de software "pura" é mais um ideal acadêmico do que uma realidade prática. A análise das arquiteturas monolítica, cliente-servidor, MVC, REST e em camadas revela que seus pontos fortes são complementares. A verdadeira evolução arquitetural reside na habilidade de combinar diferentes padrões de forma coerente, em vez de adotar um único modelo de maneira dogmática.&lt;/p&gt;

&lt;p&gt;O polimorfismo estrutural permite que a arquitetura evolua com o sistema, adotando uma postura pragmática. Um projeto pode, de forma coerente, nascer como um monolito, organizar-se com MVC e camadas, e expor serviços via REST.&lt;/p&gt;

&lt;p&gt;O principal desafio é o risco de criar uma arquitetura incoerente, o que reforça a necessidade de amplo conhecimento em design e visão estratégica. Conclui-se que o valor das arquiteturas tradicionais está no seu potencial de combinação. O polimorfismo estrutural não é apenas uma opção, mas uma abordagem necessária para garantir a adaptabilidade e o sucesso dos projetos de software contemporâneos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. REFERÊNCIAS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;BASS, L.; CLEMENTS, P.; KAZMAN, R. &lt;strong&gt;Software Architecture in Practic&lt;/strong&gt;e. 3rd ed. Addison-Wesley, 2012. &lt;/p&gt;

&lt;p&gt;CLEMENTS, P. et al. &lt;strong&gt;Documenting Software Architectures: Views and Beyond.&lt;/strong&gt;2nd ed. Addison-Wesley, 2010. &lt;/p&gt;

&lt;p&gt;FOWLER, M. &lt;strong&gt;Patterns of Enterprise Application Architecture&lt;/strong&gt;. Addison-Wesley, 2003.&lt;/p&gt;

&lt;p&gt;RICHARDS, M. &lt;strong&gt;Software Architecture Patterns&lt;/strong&gt;. O'Reilly Media, 2015.&lt;/p&gt;

&lt;p&gt;MENDES, A. &lt;strong&gt;Arquitetura Monolítica vs Microsserviços: uma análise comparativa&lt;/strong&gt;. Brasília. 2021. Disponível em: &lt;a href="https://bdm.unb.br/bitstream/10483/30715/1/2021_IasminSantosMendes_tcc.pdf" rel="noopener noreferrer"&gt;https://bdm.unb.br/bitstream/10483/30715/1/2021_IasminSantosMendes_tcc.pdf&lt;/a&gt; Acessado em: 28 de Set. de 2025&lt;/p&gt;

&lt;p&gt;CRUZ, I. *&lt;em&gt;Fundamentos da Arquitetura Cliente/Servidor. *&lt;/em&gt;[199-?]. Disponível em: &lt;a href="https://www.academia.edu/8212738/Fundamentos_da_Arquitetura_Cliente_Servidor?source=swp_share" rel="noopener noreferrer"&gt;https://www.academia.edu/8212738/Fundamentos_da_Arquitetura_Cliente_Servidor?source=swp_share&lt;/a&gt; Acessado em: 28 de Set. de 2025&lt;/p&gt;

&lt;p&gt;DNC. &lt;strong&gt;O que é arquitetura em camadas e como funciona?&lt;/strong&gt;. 2025. Disponível em: &lt;a href="https://www.escoladnc.com.br/blog/arquitetura-em-camadas-fundamentos-e-aplicacoes-na-engenharia-de-software" rel="noopener noreferrer"&gt;https://www.escoladnc.com.br/blog/arquitetura-em-camadas-fundamentos-e-aplicacoes-na-engenharia-de-software&lt;/a&gt;. Acessado em: 28 de Set. de 2025&lt;/p&gt;

&lt;p&gt;NETO, J. &lt;strong&gt;Um mapeamento de práticas em projetos de APIs REST&lt;/strong&gt;. Bebedouro, São Paulo, 2020. Disponível em: &lt;a href="https://unifafibe.com.br/revistasonline/arquivos/revistaepeqfafibe/sumario/20/16112011142249.pdf" rel="noopener noreferrer"&gt;https://unifafibe.com.br/revistasonline/arquivos/revistaepeqfafibe/sumario/20/16112011142249.pdf&lt;/a&gt; Acessado em: 28 de Set. 2025&lt;/p&gt;

&lt;p&gt;LUCIANO, J., ALVES, W. &lt;strong&gt;PADRÃO DE ARQUITETURA MVC: MODEL-VIEW-CONTROLLER.&lt;/strong&gt; Epeq Fafibe, São Paulo n.3, v.1. 2011. p. [102-107] Disponível em: &lt;a href="https://unifafibe.com.br/revistasonline/arquivos/revistaepeqfafibe/sumario/20/16112011142249.pdf" rel="noopener noreferrer"&gt;https://unifafibe.com.br/revistasonline/arquivos/revistaepeqfafibe/sumario/20/16112011142249.pdf&lt;/a&gt; Acesso em: 28 de Set. de 2025&lt;/p&gt;

</description>
      <category>programming</category>
      <category>architecture</category>
      <category>productivity</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
