Link para o artigo no meio
Confira o artigo para saber mais sobre o conceito e também a implementação.
A arquitetura limpa é uma solução prática de arquitetura de software do lendário Robert C. Martin (também conhecido como "tio Bob"). Ao aplicar as regras universais da Chitecture de software, você pode melhorar drasticamente a produtividade do desenvolvedor ao longo da vida de qualquer sistema de software.
Por que maximizar o número de decisões não tomadas? !! Como desenvolvedores, sabemos pelo experimento que as estruturas que escolhemos no início do projeto (bancos de dados ou estruturas da web etc.) são difíceis de substituir durante a vida útil do projeto e isso é por causa de um acoplamento apertado e muitas outras decisões iniciais, um dos erros comuns é que construímos nosso projeto baseado nessas estruturas e, em seguida, a lógica comercial a ser envolvida. A resposta é que devemos construir uma arquitetura que permita a mudança, sim, enfatizo a mudança. Mudança de baixos componentes e estruturas sem atingir a lógica do núcleo e os componentes de alto nível.
O padrão enfatiza que todo projeto de software é construído de apenas dois elementos da política e dos detalhes. A política (componentes de alto nível) é o núcleo do sistema de software, que inclui todas as regras de negócios, todas as entidades e tudo o que faz uma identidade única com esse software. Como uma entidade do cliente ou ação de check-out em uma plataforma de comércio eletrônico. Os detalhes (componentes de nível inferior) são as maneiras pelas quais os seres humanos podem interagir com as regras de negócios, os padrões os nomeiam como dispositivos de IO, bancos de dados, servidores da Web etc. como um botão de checkout que aciona a regra de negócios correspondente ou persistindo essa entidade do cliente em um banco de dados ou arquivo ou qualquer mecanismo de persistência.
O objetivo final do padrão é separar os componentes de alto nível dos componentes de baixo nível e tentar mantê-los trabalhando juntos e fazendo imune a alterações de alterações nos detalhes. Deixe -me tornar toda essa ideia concreta em sua mente por alguns exemplos. Imagine o software criado em cima de um banco de dados relacional como o MySQL e usa o Express JS como um servidor da Web, depois de um ano as partes interessadas introduzem novos requisitos e recursos que são inconsistentes com o banco de dados relacional e requerem banco de dados NoSQL. Se a implementação do software seguir uma boa arquitetura com acoplamento frouxo entre componentes, você não precisa fazer revolução com as alterações. É muito fácil substituir o banco de dados ou servidor da Web ou qualquer outro detalhe do software que se encaixe na solução sem afetar as regras de negócios e os componentes de nível superior.
O tio Bob enfatiza os princípios sólidos incorporam com o padrão de arquitetura limpa para formar uma solução de software legível, sustentável, escalável e fácil implantável.