{"id":9983,"date":"2023-12-04T20:38:07","date_gmt":"2023-12-04T23:38:07","guid":{"rendered":"https:\/\/elemarjr.com\/clube-de-estudos\/?post_type=artigos&#038;p=9983"},"modified":"2023-12-26T09:58:11","modified_gmt":"2023-12-26T12:58:11","slug":"o-srp-que-importa","status":"publish","type":"artigos","link":"https:\/\/elemarjr.com\/clube-de-estudos\/artigos\/o-srp-que-importa\/","title":{"rendered":"O SRP Que Importa"},"content":{"rendered":"\n<p>A jornada do desenvolvimento de software \u00e9 repleta de desafios e complexidades. Uma estrat\u00e9gia que vem ganhando destaque \u00e9 o <em>Domain-Driven Design<\/em> (DDD), onde a compreens\u00e3o profunda do dom\u00ednio do neg\u00f3cio \u00e9 essencial. Mas n\u00e3o \u00e9 suficiente apenas conhecer o DDD; \u00e9 preciso entender como ele se relaciona com princ\u00edpios fundamentais de design de software, como o <em>Single Responsibility Principle<\/em> (SRP). Voc\u00ea j\u00e1 parou para analisar a inter-rela\u00e7\u00e3o destes dois mundos?<\/p>\n\n\n\n<p>Em DDD, lidamos com subdom\u00ednios que s\u00e3o partes espec\u00edficas do neg\u00f3cio. Cada subdom\u00ednio tem sua complexidade e requer especializa\u00e7\u00e3o. No dia a dia de um time de engenharia de software, isso \u00e9 visivelmente importante. Imagine um time lidando com um subdom\u00ednio de &#8220;Pagamentos&#8221; e, ao mesmo tempo, com &#8220;Gest\u00e3o de Usu\u00e1rios&#8221;. N\u00e3o seria muito mais eficaz se o time pudesse focar em apenas uma dessas \u00e1reas, se tornando altamente competente nela? Isso nos leva ao SRP, que prop\u00f5e que uma classe, ou neste caso, um time de engenharia, deve ter somente uma responsabilidade &#8211; ou seja, uma raz\u00e3o para mudar.<\/p>\n\n\n\n<p>Ao aplicar o DDD, a organiza\u00e7\u00e3o dos times reflete os subdom\u00ednios do neg\u00f3cio. Isso assegura que cada equipe tenha uma \u00fanica responsabilidade alinhada ao subdom\u00ednio que atende, elevando a efic\u00e1cia e efici\u00eancia. Isso \u00e9 perfeitamente exemplificado pelo <em>Conway\u2019s Law<\/em>, que afirma que as empresas produzem designs de sistemas que s\u00e3o c\u00f3pias de suas estruturas de comunica\u00e7\u00e3o.<\/p>\n\n\n\n<p>Imagine o seguinte cen\u00e1rio exemplificado: uma empresa de com\u00e9rcio eletr\u00f4nico tem dois times de engenharia focados exclusivamente nos subdom\u00ednios de &#8220;Gerenciamento de Invent\u00e1rio&#8221; e &#8220;Experi\u00eancia do Usu\u00e1rio de Compras&#8221;. Cada time tem uma clareza inerente de objetivo e uma linha direta de comunica\u00e7\u00e3o com os especialistas de neg\u00f3cio relevantes. Isso n\u00e3o s\u00f3 facilita o desenvolvimento \u00e1gil e coeso de software, mas tamb\u00e9m garante uma contribui\u00e7\u00e3o direta para o valor percebido pelo cliente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p>O DDD n\u00e3o \u00e9 apenas uma metodologia de design t\u00e9cnico; \u00e9 uma filosofia orientada ao valor de neg\u00f3cio. Ao identificar e isolar responsabilidades baseadas em subdom\u00ednios, os times de engenharia podem colaborar mais efetivamente com os especialistas de neg\u00f3cios, resultando em solu\u00e7\u00f5es de software que refletem verdadeiramente as necessidades e complexidades de seus respectivos dom\u00ednios. A especializa\u00e7\u00e3o alinhada ao SRP leva a uma performance superior e a uma resposta mais \u00e1gil \u00e0s demandas do neg\u00f3cio.<\/p>\n\n\n\n<p>A implementa\u00e7\u00e3o do DDD, quando bem alinhada com princ\u00edpios como o SRP, mostra n\u00e3o apenas a import\u00e2ncia t\u00e9cnica, mas tamb\u00e9m estrat\u00e9gica, em termos de estrutura organizacional e efici\u00eancia operacional. Espero que este artigo o tenha levado a uma reflex\u00e3o cr\u00edtica sobre a organiza\u00e7\u00e3o atual do seu time e como a aplica\u00e7\u00e3o destes conceitos poderia ser aprimorada. E lembre-se, estamos sempre explorando essas e outras estrat\u00e9gias nos meus grupos de estudos e mentorias, buscando n\u00e3o s\u00f3 compreender, mas implementar pr\u00e1ticas que maximizem o valor entregue aos clientes e \u00e0 organiza\u00e7\u00e3o em sua totalidade.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TL;DR<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>O <em>Domain-Driven Design<\/em> (DDD) foca na especializa\u00e7\u00e3o dos dom\u00ednios e clareza das responsabilidades, proporcionando dire\u00e7\u00f5es mais estrat\u00e9gicas para a organiza\u00e7\u00e3o de times de engenharia.<\/li>\n\n\n\n<li>Integrar o <em>Single Responsibility Principle<\/em> (SRP) no DDD ajuda a estruturar times dedicados a subdom\u00ednios espec\u00edficos, melhorando a efici\u00eancia e efic\u00e1cia dos processos de software.<\/li>\n\n\n\n<li>A utiliza\u00e7\u00e3o efetiva de DDD transcende a cria\u00e7\u00e3o de c\u00f3digo e influencia diretamente a estrutura organizacional, permitindo uma entrega de valor mais alinhada com as necessidades do neg\u00f3cio.<\/li>\n<\/ol>\n","protected":false},"featured_media":9968,"parent":0,"template":"","cursos":[12],"class_list":["post-9983","artigos","type-artigos","status-publish","has-post-thumbnail","hentry","cursos-ddd-do-jeito-certo"],"acf":[],"_links":{"self":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/artigos\/9983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/artigos"}],"about":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/types\/artigos"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/media\/9968"}],"wp:attachment":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/media?parent=9983"}],"wp:term":[{"taxonomy":"cursos","embeddable":true,"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/cursos?post=9983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}