🐘🏜️🤠

PROGRAMAÇÃO DIALÉTICA

Vivendo entre 2 mundos


O Sertão Tech - Parnaiba-PI | 2025-08-22 16:25

PARNAHYBA

  • Rio das Águas Inavegáveis
  • Rio de Águas Barrentas
  • Nutrientes, se você tratar, tem um bom retorno

PHPeste

A maior conferencia de PHP do Brasil (since 2015)

40 palestras/palestrantes

Networking

Coffee Break

R$ 2,50 por palestra

Alessandro Feitoza

  • Fortaleza, Ceará
  • Professor de códigos e outras computarias ( ͡° ͜ʖ ͡°)
  • Programador/Dev/Severino
  • PHP com Rapadura | PHPeste
  • Techlead / Software Engineer Bússola Social

Agenda


  • Por que isso é importante?
  • Definições
  • Outras Definições
  • Mais Definições
  • e Exemplos Práticos

⚠️ Essa talk não é um mandamento


  • É uma coletânea de devaneios que tenho baseados na academia, literatura, e conhecimento das ruas
  • Só quero que você abra sua mente, seja mais realista consigo (e entenda a importância da academia)
  • Aproveite o que achar bom e descarte o restante

1 - Por que isso é importante?


Algumas pessoas desistem (ou não começam) a faculdade, por acharem que ela não ensina o que o mercado quer


Algumas fazem faculdade, terminam, se formam, mas não conseguem entrar no mercado

Voltando... Qual o curso de vocês?

Quem você contrata quando precisa concerta uma casa?

Pedreire

E porque não Engenheire?

Ciencias/Engenharias/Tecnicos/Analistas

das Computarias das Informáticas

Técnolódia

Afinal, o que é computaria? 🖌️ 🎨

Computação


do Latim, Computare/computo

com- Junto, Adicionar
putare- ( calcular, avaliar, analisar)
"Calcular Junto / Processar / Construir com base na lógica"

  • Implementar
  • Estruturar
  • Planejar
  • Desenhar

DESIGN?

É o momento de decidir como os códigos do sistema se organizam, se comunicam e se comportam para alcançar os objetivos desejados.

Design


do Latim, designare

de- (de dentro, para fora)
signare- ( signum, indicar algo, marcar)
"Designar, Determinar"

O processo de planejar e estruturar a solução técnica.

Mas qual é o momento de "planejar e estruturar"?

No "inicio" do projeto

Precisamos voltar alguns passos

2 - DEFINIÇÕES


Engenharia de Software

Engenharia


do Latim, Ingeniare

Ingenium (Engenho -> Engenhar, conceber da imaginação / Maquinar)
Ingeniator ( Quem criava ou operava "engenhos")

  • Eng Civil: +5000 anos
  • Eng mecanica: Século XVIII / 1700 DC
  • Eng de Software: 1960 DC

Como funciona a engenharia de software?

Como seria melhor?


Como entregar bem, mais, melhor?


Já que todo Projeto começa bonito e depois fica feio

3 - OUTRAS DEFINIÇÕES

Dialética

  • Tese: Arquitetura limpa, DDD, padrões de projeto, boas práticas
  • Antítese: Startup enxuta, MVP rápido, adaptação ao mercado
  • Síntese: Processos ágeis e escaláveis, sem abrir mão da qualidade

O Caminho Dialético

  • Hegel — a espiral do conhecimento: tese → antítese → síntese
  • Marx — adaptação das ideias à realidade material
  • Sócrates — dialética como ferramenta para questionar e evoluir
  • Na terapia dialética: equilíbrio entre aceitação e mudança





Meirmão esse bicho ou tá muito fumado

Ou tem razão


Ou os dois

Aplicação no Desenvolvimento Web

  • Arquitetura Limpa e DDD para robustez e longevidade
  • Lean Startup para validar ideias com rapidez
  • Testes automatizados (unitários, integração, e2e) para segurança
  • Entrega Contínua para encurtar o ciclo de feedback
  • Documentação mínima, porém suficiente

Processo Dialético na Engenharia de Software

  • Inicia com requisitos ideais (tese)
  • Enfrenta limitações reais (antítese)
  • Constrói soluções pragmáticas e escaláveis (síntese)

O Ciclo Dialético no Desenvolvimento

Tese Arquitetura limpa DDD, boas práticas Antítese Startup enxuta MVP rápido Síntese Processo ágil Qualidade + Velocidade

Patterns


Soluções "gerais" repetitiveis, para resolverem problemas comuns.

Cristopher Alexander, 1977

Um padrão descreve uma solução comprovada para um problema recorrente no design

Gang of Four, 1994

Cataloga e explica padrões comuns para resolver problemas de software orientado a objetos.

E como ninguém conhece esse livro?

O mesmo livro com outra capa

Sim, é um livro de arquitetura e urbanismo

E tá tudo bem, afinal,

Design de Software é uma parte da Engenharia de Software

Peguemos o

REACT JS

e o REACT?

Composite Pattern

Antes de falar de Components, é preciso entender o que significa isso

Componente

o que compõe ou ajuda na composição de algo;

o que é parte constituinte de um sistema maior;

tem mais?

Observer Pattern

Reflexão Final

“A dialética não é apenas teoria, é prática consciente para equilibrar perfeição e entrega.”

Na engenharia de software, a síntese é um produto que é ao mesmo tempo viável, útil e sustentável.

Valeu o Boi, valeu o Vaqueiro


@alessandro_feitoza
https://linkedin.com/in/AlessandroFeitoza
slides.feitoza.tec.br