Arquitetura de Software

SOLID e Design de Software na prática

Por em

Nessa live do Esquenta para a Imersão Full Cycle, eu recebo o convidado Rodrigo Branas, que é Desenvolvedor, Arquiteto de Software, Autor e Palestrante, com mais de 20 anos de experiência.  É cofundador e CTO da Gennera.

Ninguém melhor do que ele para falar sobre SOLID e Design de Software na prática, além disso, nos últimos 10 anos ele tem se dedicado a difundir conhecimento na comunidade de desenvolvimento de software, tendo formado milhares de desenvolvedores em Clean Code, Refatoração, TDD, DDD, Design Patterns, entre outros.

Rodrigo é autor do livro AngularJS Essentials, publicado pela Packt Publishing, que já vendeu milhares de exemplares no mundo todo e também pela Java Magazine, uma das publicações mais importantes e respeitadas sobre Java no Brasil.

O que é SOLID?

O termo SOLID é um acrônimo, ou seja, uma palavra que representa 5 princípios que fazem sentido para software orientado a objetos. Enfim, estes princípios podem ser aplicados a qualquer linguagem orientada a objetos, são eles:

S — Single Responsibility Principle (Princípio da responsabilidade única)

O — Open-Closed Principle (Princípio Aberto-Fechado)

L — Liskov Substitution Principle (Princípio da substituição de Liskov)

I — Interface Segregation Principle (Princípio da Segregação da Interface)

D — Dependency Inversion Principle (Princípio da inversão da dependência)

Na live o Rodrigo explica melhor sobre o que é, como e quando usar, e os conceitos de SOLID.

O que é Design de Software?

Algumas pessoas quando se deparam com o termo, já logo fazem associação a aparência e layout do software, porém, está muito além disso. Design é um conceito muito amplo, não é mesmo? Dependendo do contexto o termo muda drasticamente.

O design de software é um processo criativo. Ele busca como finalidade organizar e padronizar os problemas através de elementos comuns. Dessa forma, os princípios do SOLID e o Design de software são abordagens bem sucedidas. Que resolvem problemas com características em comum.

O design de software é um exercício no gerenciamento da complexidade. A complexidade vem da organização. Seus processos envolvem pessoas e também outras empresas. O Rodrigo durante a live faz a seguinte pergunta: “Por onde você começa a desenvolver seu software?” e diz: “Geralmente a maioria dos desenvolvedores começam pela parte visual ou pela modelagem do banco de dados.”.

O que não quer dizer que está errado, porém, quando estamos falando sobre grandes softwares, precisamos ter uma outra visão e planejamento de como ter uma melhor organização do projeto.

Live Completa

Gostou e quer saber mais? assista a live completa