Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre "arquitetura" do código

Olá Vinicíus, tudo certo? Cara, antes dessa aula eu já havia implementado uma classe bem simples para poder utilizar as flash messages por que usar as sessions diretamente já estava me incomodando muito, tanto pelo espalhamento de código quanto ao ar procedural que estava aparentando.

Nessa aula você utilizou as traits para refatorar o código, enquanto eu criei uma classe e usei a composição para esse refatoramento. Você usou traits por ser a melhor abordagem ou por que queria mostrar o uso dela para quem ainda não conhecia? Já usei traits algumas vezes para evitar repetição de código, mas sempre com uma pulga atrás da orelha, até por que se não tomar cuidado pode quebrar o encapsulamento da aplicação, é mais uma "neura" minha, sei que o recurso é bem útil. Mas essa minha "neura" se vem pelo fato de que muitos recursos são apresentados a nós como um verdadeiro canivete suiço ou algo magnífico, mas que na verdade deve ser evitado, como por exemplo o caso da herança, que muitos desenvolvedores usam e abusam e só deve ser utilizada em situações bem específicas, sei que os mais puristas em OO odeiam ela (a herança). Enfim...

Queria saber se você usou traits por ser uma abordagem "ok" nesse caso simples ou mais para apresentar um conceito diferente para quem não conhecia ou se tanto faz traits ou uma nova classe para representar as flash messages.

2 respostas
solução!

Opa, Diego. To adorando suas dúvidas, cara! Muito bom ver que você vai além do simples que é proposto no curso.

Eu utilizei traits principalmente para introduzir o conceito sim. É totalmente possível e aceitável utilizar composição. Inclusive muitos diriam que sua abordagem é mais recomendável do que a minha, até por ser mais agnóstica de linguagem.

:-D

Obrigado Vinicius, você já é uma referência em PHP para mim, grande abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software