DEV Community

Felipe
Felipe

Posted on

Leitura comentada - Arquitetura Limpa - Capítulo 3, 4, 5 e 6 - Panorama dos Paradigmas

Descrição

Neste capítulo, o Bob Martin busca dar uma visão geral sobre os paradigmas de programação.

Programação Estruturada

Se refere ao uso de if/then/else e do/while/until em vez do uso de declarações goto. A programação estruturada impõe disciplina sobre a transferência direta do controle. A programação estruturada nos força a decompor um programa em um conjunto de pequenas funções comprováveis. Temos que testar essas pequenas funções para comprovar que atendem aos nossos propósitos. A programação estruturada é o motivo arquitetural de considerarmos decomposição funcional como uma boa prática.

Programação Orientada a Objetos (P.O.O)

Descobriram que a memória heap poderia armazenar um valor muito depois do retorno de uma função. Nisso, entenderam que era possível fazer uma função que instancia uma classe, variáveis locais se transformaram em variáveis de instância, e funções aninhadas se tornaram métodos. A consequência disso foi a descoberta do polimorfismo através do uso disciplinado de ponteiros de função. De forma geral, a P.O.O pode ser resumida em: a programação orientada a objetos impõe disciplina sobre a transferência indireta do controle. Uma interface pode servir para ser executada de forma que independa da implementação.

A programação orientada a objetos se sustenta a algumas coisas que existem, como encapsulamento, herança e polimorfismo. Contudo, Bob defende que essas coisas não existem por causa da P.O.O.

Inversão de dependência também é citada como sendo efeito do polimorfismo, de forma a ressaltar a dependência de interfaces ao invés de implementações - o fluxo de controle é delegado para a implementação, enquanto a única dependência é a interface. Para Martin, OO se trata da possibilidade de ter controle absoluto através do polimorfismo, sobre cada dependência do código de um sistema.

Programação Funcional

A programação funcional foi pensada partindo do principio de que valores dos símbolos não mudam, isso significa que uma linguagem funcional não tem nenhuma declaração de atribuição. A programação funcional impõe disciplina sobre a atribuição.

O Tio Bob diz que cada um dos paradigmas removem capacidades de um programador, considerando que cada um deles impõe algum tipo de disciplina, dizendo o que não fazer. Removem declarações goto, ponteiros de função e atribuições.


Top comments (0)