image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Jorge Júnior
Jorge Júnior26/10/2023 12:31
Compartilhe

💥💥 SOLID Design: qual a regra mais importante?

  • #Arquitetura de Sistemas

A qualidade do código é um fator crítico no desenvolvimento de software. Neste artigo, vou explorar a regra mais importante do Clean Code e tentar explicar da maneira mais simples possível para que não reste dúvida sobre o tema, tudo centrado na aplicação dos princípios SOLID. 

Para tanto, entenda que os princípios são diretrizes essenciais para escrever código robusto, legível e facilmente mantido. Eles foram apresentados pela primeira vez por Robert C. Martin e posteriormente consolidados por Michael Feathers, visando melhorar a arquitetura de software. São eles:

S - Princípio da Responsabilidade Única (Single Responsibility Principle)

O - Princípio Aberto-Fechado (Open-Closed Principle)

L - Princípio da Substituição de Liskov (Liskov Substitution Principle)

I - Princípio da Segregação de Interfaces (Interface Segregation Principle)

D - Princípio da Inversão de Dependência (Dependency Inversion Principle)

Cada princípio SOLID visa resolver problemas específicos no desenvolvimento de software, promovendo a coesão, a flexibilidade e a extensibilidade do código.

image

Para entender melhor, existe uma diferença entre Programação e Boa Programação. A programação tradicional visa apenas a funcionalidade. A boa programação se baseia nos princípios SOLID. Ela busca ir além da simples funcionalidade e foca na legibilidade, manutenção e escalabilidade do código.

Um código limpo é caracterizado por várias qualidades. Ele é claro, o que significa que sua intenção é facilmente compreendida por outros desenvolvedores. A simplicidade também é uma característica importante, já que um código simples é mais fácil de manter e menos propenso a erros. 

Além disso, um código limpo é modular, dividido em pequenos componentes independentes que podem ser reutilizados e testados separadamente. A formatação adequada também é crucial para manter um código limpo. O uso de nomes descritivos para variáveis e funções torna o código mais legível. 

A indentação consistente e o alinhamento adequado de blocos de código facilitam a compreensão da estrutura do programa. Além disso, a adesão a convenções de nomenclatura, como o CamelCase ou o snake_case, melhora a consistência do código e torna-o mais acessível a outros desenvolvedores.

image

O polimorfismo é um dos pilares da orientação a objetos e desempenha um papel significativo na criação de código limpo. Ele permite que objetos de diferentes classes sejam tratados de maneira uniforme por meio de interfaces e herança. Isso promove o reuso de código e reduz a duplicação.

Pode-se usar polimorfismo ao substituir estruturas condicionais (ifs) por implementações polimórficas. Isso evita blocos de condicionais aninhados complexos. Para isso, pode-se criar classes específicas que implementam um mesmo contrato e delegar o comportamento apropriado a essas classes.

Agora que abordamos esses tópicos, podemos ver como os princípios SOLID se alinham com a criação de código limpo e eficiente. Vamos explorar um exemplo prático de como aplicar essas diretrizes.

Vamos considerar um exemplo de sistema de pagamento. Na programação tradicional, o processamento de pagamento pode ser realizado com um bloco de condicionais para determinar o método de pagamento e executar a lógica apropriada. Isso pode levar a código confuso e difícil de manter:

if metodo_pagamento == 'cartao': 
  processar_pagamento_cartao() 
elif metodo_pagamento == 'paypal': 
  processar_pagamento_paypal() 
elif metodo_pagamento == 'bitcoin': 
  processar_pagamento_bitcoin()

Agora, vamos aplicar os princípios SOLID, em particular o Princípio da Responsabilidade Única (SRP) e o Princípio Aberto-Fechado (OCP). Em vez de usar condicionais, criamos classes separadas para cada método de pagamento, cada uma com uma responsabilidade única:

class PagamentoCartao: 
  def processar_pagamento(self): 
  # Lógica de pagamento com cartão 
class PagamentoPaypal: 
  def processar_pagamento(self): 
  # Lógica de pagamento com PayPal 
class PagamentoBitcoin: 
  def processar_pagamento(self): 
  # Lógica de pagamento com Bitcoin

Agora, podemos escolher facilmente o método de pagamento desejado sem alterar o código existente, seguindo o Princípio Aberto-Fechado (OCP). Além disso, a lógica de pagamento para cada método está contida em sua própria classe, cumprindo o Princípio da Responsabilidade Única (SRP).

Essa abordagem torna o código mais legível, extensível e de fácil manutenção, alinhando-se com a regra mais importante do Clean Code: manter o código limpo aplicando os princípios SOLID.

Em resumo, a regra mais importante do Clean Code está intrinsecamente ligada à aplicação dos princípios SOLID. Ao adotar os princípios SOLID, os desenvolvedores podem criar código limpo que seja mais legível, sustentável e eficiente. 

image

Estes princípios promovem a coesão, o baixo acoplamento, a extensibilidade e a simplicidade do código. Através da aplicação dessas diretrizes, o desenvolvimento de software se torna uma tarefa mais organizada e eficaz.

Portanto, a regra mais importante do Clean Code é adotar os princípios SOLID. Isso resulta em sistemas mais confiáveis, fáceis de manter e mais bem adaptados às mudanças da programação. Ao seguir essas diretrizes, estará no caminho para escrever código limpo que atenda aos padrões de qualidade.

🚀 https://github.com/mdsjjorge

Referências:

  1. "Clean Code: A Handbook of Agile Software Craftsmanship" - Robert C. Martin
  2. "Refactoring: Improving the Design of Existing Code" - Martin Fowler
  3. https://www.youtube.com/watch?v=CpfbAfidVeA
  4. https://www.freecodecamp.org/news/solid-design-principles-in-software-development/#:~:text=SOLID%20is%20a%20set%20of,while%20developing%20the%20software%20systems.
  5. https://www.bmc.com/blogs/solid-design-principles/
  6. https://blog.betrybe.com/tecnologia/clean-code/
  7. https://medium.com/@ibraheem.ahmed/good-coding-practices-and-writing-clean-code-b13e710f31ec
Compartilhe
Recomendados para você
Microsoft 50 Anos - Prompts Inteligentes
Microsoft 50 Anos - GitHub Copilot
Microsoft 50 Anos - Computação em Nuvem com Azure
Comentários (0)