É dito em um texto do curso "Quando já conhecemos bem o domínio, fica muito mais fácil dividir uma aplicação em vários serviços." Quais são esses fatores do dominio que vão facilitar a divisão em vários serviços ?
É dito em um texto do curso "Quando já conhecemos bem o domínio, fica muito mais fácil dividir uma aplicação em vários serviços." Quais são esses fatores do dominio que vão facilitar a divisão em vários serviços ?
Acredito que o significado seja que quanto mais sabemos sobre o domínio da aplicação mais informações teremos para dividi-la em vários serviços.
Por exemplo, sabermos que a aplicação é sobre uma escola, que cadastra alunos, cursos, aulas, nos dá uma certa informação. Já se nos aprofundarmos no domínio e entedermos que a aplicação gera boletos para pagamento das mensalidades, envia emails de confirmação, etc, já identificamos um outro serviço Financeiro, por exemplo.
Existem alguns fatores, expressos em princípios que acredito que possam facilitar a identificação e divisão dos serviços. O livro Clean Architecture aborda bem esses princípios. Posso pensar, por exemplo, no Princípio do Fechamento Comum, em que as classes reunidas em um componente devem mudar pelos mesmos motivos. Ou seja, no exemplo acima, os serviço Financeiro mudaria quando o setor de Financeiro da escola alterasse suas regras. Não faria sentido as classes que tratam desse domínio estarem no serviço Escola, pois toda vez que o setor financieto mudar suas regras, teríamos que alterar, testar, recompilar, implantar o serviço Escola inteiro por um motivo que não lhe diz respeito.