DEV Community

Richardson
Richardson

Posted on

1

Explorando a programação orientada a objetos em PHP: Introdução

Durante esta semana, reservei algumas horas do meu dia para esclarecer as dúvidas de um membro da equipe em relação ao paradigma de orientação a objetos. Optamos por utilizar o livro "PHP Programando com Orientação a Objetos", escrito por Pablo Dall’Oglio, porque era o livro que ele tinha à disposição. Mesmo sendo mais antigo, o livro oferece uma boa introdução à orientação a objetos. Além disso, procurei incluir referências recentes em cada tópico.


Compreendendo a Programação Orientada a Objetos

Para iniciar a compreensão dos conceitos de orientação a objetos, eu sempre recomendo a leitura do Capítulo II do livro "Arquitetura Limpa: O Guia do Artesão para Estrutura e Design de Software", intitulado "Começando com os Tijolos: Paradigmas da Programação". Neste capítulo, são explorados os três principais paradigmas de programação: estruturada, orientação a objetos e funcional, acompanhados de um contexto histórico. Além disso, o capítulo apresenta figuras, como Edsger Wybe Dijkstra, cujo nome é reconhecido por todos devido ao Algoritmo de Dijkstra. A seguir, faço um breve resumo do conteúdo abordado:

1968: Surgimento da Programação Estruturada

  • Edsger Wybe Dijkstra introduziu a programação estruturada.
  • Ele destacou as desvantagens de usar saltos irrestritos (instruções goto) na programação.
  • Dijkstra defendeu construções estruturadas como if/then/else e do/while/until como alternativas às instruções goto.
  • A programação estruturada visa melhorar a estrutura e a legibilidade do programa.

1966: Descoberta da Programação Orientada a Objetos (OOP)

  • Ole Johan Dahl e Kristen Nygaard notaram que o quadro da pilha de chamadas de função na linguagem ALGOL poderia ser movido para um heap.
  • Isso permitiu que variáveis locais declaradas por uma função existissem muito depois do retorno da função.
  • O conceito de função evoluiu para um construtor de classe.
  • Variáveis locais tornaram-se variáveis de instância.
  • Funções aninhadas transformadas em métodos.
  • Esta descoberta lançou as bases para a Programação Orientada a Objetos.

É comum afirmar que a programação orientada a objetos possui a capacidade de modelar o mundo real. Eu costumava ouvir muito sobre isso durante as disciplinas da faculdade, porém, naquela época, o entendimento disso me parecia um tanto abstrato. O Capítulo 2 do livro "Orientação a Objetos - Aprenda seus conceitos e suas aplicações de forma efetiva" aborda o contexto histórico e esclarece a ideia de como sistemas digitais podem simular o mundo real.

Esses dois paradigmas, Programação Orientada a Objetos e Programação Estruturada, revolucionaram o desenvolvimento de software.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay