0

SRP: Princípio da Responsabilidade Única

#Arquitetura de Sistemas
Vinicius Souza
Vinicius Souza

Você já deve ter ouvido falar de SOLID e ficou se perguntando sobre o que é isso. Vou fazer uma série de posts discutindo estes 5 princípios da Arquitetura de Sistemas.

S = Single Responsibility Principle

O SRP nos diz que o que a estrutura de um software reflete a estrutura da organização que usa o software. Desta forma, um módulo de software tem só uma razão para mudar, se necessário.

Isso quer dizer que os módulos do programa só podem fazer uma coisa?

Errado!

Vamos pensar...Por que os sistemas mudem? Para atender a demanda de um usuário ou stakeholder. Se a sua empresa tem 3 stakeholders- o cliente, o vendedor e o gerente - seu software tem que ter 3 módulos, um pra cada.

O que é módulo?

A definição mais simples é que um módulo é um arquivo-fonte. Mas também podemos dizer que é um conjunto de funções e estruturas de dados que estão fortemente relacionados.

Um exemplo de como fazer errado:

def horas_trabalhadas(horas, dias):
  return horas * dias

def calc_pagamento(valor, horas, dias):
  return horas_trabalhadas(horas, dias) * valor

def relatorio_horas(faltas, horas, dias):
  return horas_trabalhadas(horas, dias) - faltas

Neste caso, a função calc_pagamento é utilizada pelo setor de contas e relatorio_horas pela chefia imediata.

Imagine se a chefia pede para mudar alguma coisa para controlar melhor a produtividade da equipe! O setor de contas não vai conseguir calcular o salário e muita gente vai ficar brava.

Por isso, o melhor é que exista um módulo para a chefia utilizar e outro para o setor de contas. E hoje em dia, existem muitas formas de compartilhar dados dentro do sistema sem quebrar a responsabilidade única.


Para saber mais:


Esta série de texto se inspira no livro "Arquitetura Limpa", de Robert C Martin

0
1

Comentários (0)

None

Brasil