Introdução ao DDD com PHP

Bruno Rodrigues
Jul 29, 2017 · 3 min read

Sou um desse profissionais que defende que o PHP é uma linguagem madura o suficiente para adentrar e ser utilizada em ambientes coorporativos, então nada mais justo e lógico que falarmos sobre DDD.

Por se tratar de um assunto extenso irei particionar esse post de forma a não torna-ló exastivo.

Afinal o que é DDD

Domain Driven Design (DDD) siginifica Projeto Orientado ao Domínio. O termo surgiu de um livro escrito por Eric Evans que possui o mesmo título.

Livro de Eric Evans

DDD não é um padrão de desenvolvimento e sim uma abordagem de desenvolvimento de software, utilizando um conjunto de práticas, técnicas e príncipios com foco no domínio e na lógica do domínio.

DDD no fim das contas vem nos fazer pensar de forma orientada a objetos, a questão é que DDD não é algo novo, algumas das boas práticas descritas no livro existem desde epóca remota do SmallTalk. Fato é que por alguns momentos esquecemos o que de fato é orientação a obejtos, se nos falam em orientação a objetos, logo o que nos vem a cabeça é: Herança, Polimorfismo, Encapsulamento e etc, e esquecemos que OO na verdade também tem haver com : Alinhamento do código com o negócio, Foco na reutilização, compromisso com o desaclopamento e o mais importante de tudo independência da tecnologia.

DDD é alheio a tecnologia, seu foco é aproximar os códigos que escrevemos das regras de negócio e como elas devem estar representadas e estruturadas dentro seu sistema. Daí a importância da palavra domínio.

Algumas das boas práticas descritas pelo DDD já utilizamos em alguns Frameworks PHP sem sequer nos dar conta, e com o passar dos artigos espero conseguir mostrar um pouco deles a vocês :)

Linguagem Oblíqua

Se tem algo que todos nós sabemos é que a comunicação e o entendimento do problema é algo essencial para atender aos requesitos do software que nos propuzemos desenvolver. A linguagem obliqua é justamente sobre isso. A ideia é que desenvolvedores, o conhecedor do domínio (geralmente o PO ou scrum master) e todos os demais envolvidos no projeto sejam capaz de se comunicar sem maiores problemas, de forma que essa comunicação também se reflita no código que é produzido.

Representação da equipe utilizando linguagem ubliqua

Trocando em miúdos a idéia é que termos do dia a dia do negócio sejam utilizados pelo time de desenvolvimento, e será a partir dessa comunicação que todo nosso sistema será estruturado, a partir dessa comunicação por exemplo, seremos capazes de definir nosssa Entidades (relaxa, falaremos sobre elas mais a frente).

No próximo episódio

Bem espero ter conseguido aguçar um pouco o interesse de vocês pelo assunto, no próximo post falarei um pouco sobre as camadas de arquitetura. Até o próximo post.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade