SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
A Demanda da Santa Entrega, Batman
FLÁVIO GOMES DA SILVA LISBOA
www.fgsl.eti.br
bugs e gargalos em aplicações PHP
Quem sou eu?
http://romocavaleirodoespaco.blogspot.com/
Necessidade
e
vantagens de utilização
de um
ambiente integrado de
desenvolvimento
Fato
“Apesar dos avanços alcançados até o presente
momento em termos de reusabilidade, tem havido
um crescimento continuado tanto em termos do
tamanho quanto da complexidade dos sistemas
de software”. (MENDES, 2002, p. 4)
Fato
“Projeto de software é um problema perverso
Horst Rittel e Melvin Webber definiram um ‘problema perverso’
como aquele que poderia ser claramente definido apenas por
intermédio de sua solução ou pela solução de parte dele (1973).
Esse paradoxo sugere, basicamente, que você precisa ‘resolver’ o
problema uma vez pra defini-lo claramente e depois resolvê-lo
mais uma vez, para criar uma solução que funcione”.
(MCCONNELL, 2005, p. 106)
Fato
“O projeto de software é um processo desordenado (mesmo
que produza um resultado ordenado)
[…] O projeto de software é desordenado porque você dá muitos
passos em falso e passa por muitos corredores escuros – você
comete vários erros. Na verdade, cometer erros é o objetivo da
atividade de projeto de software – é mais barato cometer erros e
corrigir os projetos do que cometer os mesmo erros, reconhecê-los
após a codificação e ter de corrigir o código completo”.
(MCCONNELL, 2005, p. 107-108)
Fato
“O projeto de software não é determinístico
[…] Pode até haver mais de uma maneira de escalpelar um gato,
mas normalmente existem dezenas de maneiras de fazer o projeto
de um programa de computador”. (MCCONNELL, 2005, p. 108)
Fato
“O projeto de software é heurístico
[…] O projeto de software envolve ‘tentativa e erro’. Uma
ferramenta ou técnica de projeto de software que tenha funcionado
bem para uma tarefa ou para um aspecto de uma tarefa, pode não
funcionar bem no projeto seguinte”. (MCCONNELL, 2005, p. 108)
Desafio
“O principal desafio da computação é não
bagunçar”. (DJIKSTRA, 1996, tradução nossa)
Desafio
“Desenvolver software de qualidade assegurada,
com elevada produtividade, dentro do prazo
estabelecido e sem necessitar de mais
recursos do que os alocados, tem sido o
grande desafio da Engenharia de Software”.
(FIORINI, VON STAA e BAPTISTA, 1998, p. 1)
Necessidade
de um
ambiente integrado de
desenvolvimento
Emocionante, mas...
Não dá pra resolver tudo com uma
ferramenta só
Uma sugestão de IDE
Por quê?
Eclipse PHP Development Tools
E não é só isso!
Não é um ambiente é integrado?
Integrado com o quê?
Integração com banco de dados
Integração com banco de dados
Integração com ferramentas PHP
Integração com controle de versão
E muito mais!
E as vantagens?
Controle centralizado
Produtividade
Assim como ocorre com um padrão de projeto,
uma IDE comum para uma equipe estabelece um
vocabulário comum, facilitando comunicação,
documentação e aprendizado.
Como integrar um IDE
com ferramentas
de linha de comando
relacionadas à rotina
de construção de software
External Tools Configuration
External Tools Configuration
A questão da depuração de código
Derick Rethans
A questão da depuração de código
zend_extension=xdebug.[so | dll]
xdebug.remote_enable=1
xdebug.ini
https://xdebug.org/docs/
A questão da depuração de código
A questão da depuração de código
Técnicas para descoberta de
causas de bugs
Técnicas para descoberta de
causas de bugs
Coisas óbvias (ou não):
● Ler a mensagem de erro;
● Verificar a pilha de chamadas;
Essa é a postura REATIVA.
Técnicas para descoberta de
causas de bugs
Coisas não tão óbvias:
● Usar exceções (e tratá-las sempre que
possível);
● Usar níveis de log (Classe LogLevel – PSR);
● Usar TDD;
● Usar programação orientada a objetos.
Essa é a postura PREVENTIVA.
Ferramentas para localizar gargalos
no desempenho de aplicações PHP
Ferramentas para localizar gargalos
no desempenho de aplicações PHP
kcachegrind arquivo.out.algumacoisa
xdebug.ini
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = /var/log/php
Referências
● DJIKSTRA, Edsger. The next fifty years. 1996.
<https://www.cs.utexas.edu/users/EWD/transcriptions/EWD12x
x/EWD1243a.html>
● FIORINI, Soeli. VON STAA, Arndt. BAPTISTA, Renan M.
Engenharia de software com CMM. Rio de Janeiro: Brasport,
1998.
● MCCONNELL, Steve. Code complete: um guia prático para a
construção de software. 2.ed. Tradução: João Tortello. Porto
Alegre: Bookman, 2005.
● MENDES, Antonio. Arquitetura de software: desenvolvimento
orientado para arquitetura. Rio de Janeiro: Campus, 2002.
Obrigado
www.fgsl.eti.br

Contenu connexe

Tendances

eXtreme Programming (xp)
eXtreme Programming (xp)eXtreme Programming (xp)
eXtreme Programming (xp)Renato Pina
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareLetticia Nicoli
 
Programação simultânea em pares
Programação simultânea em paresProgramação simultânea em pares
Programação simultânea em paresHerez Moise Kattan
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a ModelagemRodrigo Branas
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
 
Coding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios ÁgeisCoding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios ÁgeisLorival Smolski Chapuis
 
Agilidade foco no conhecimento
Agilidade   foco no conhecimentoAgilidade   foco no conhecimento
Agilidade foco no conhecimentoYoris Linhares
 
Escrevendo C# moderno 2019 - MVPConf
Escrevendo C# moderno 2019 - MVPConfEscrevendo C# moderno 2019 - MVPConf
Escrevendo C# moderno 2019 - MVPConfAntonio Maniero
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingPedro Pereira Martins
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareLucas Teles
 
TDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featureTDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featuretdc-globalcode
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteAislan Fernandes
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamentothiagodp
 

Tendances (20)

eXtreme Programming (xp)
eXtreme Programming (xp)eXtreme Programming (xp)
eXtreme Programming (xp)
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo software
 
Programação simultânea em pares
Programação simultânea em paresProgramação simultânea em pares
Programação simultânea em pares
 
[CEFETMG][ESw] Aula 6 - Conceitos de projeto
[CEFETMG][ESw] Aula 6 - Conceitos de projeto[CEFETMG][ESw] Aula 6 - Conceitos de projeto
[CEFETMG][ESw] Aula 6 - Conceitos de projeto
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Coding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios ÁgeisCoding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios Ágeis
 
Agilidade foco no conhecimento
Agilidade   foco no conhecimentoAgilidade   foco no conhecimento
Agilidade foco no conhecimento
 
Escrevendo C# moderno 2019 - MVPConf
Escrevendo C# moderno 2019 - MVPConfEscrevendo C# moderno 2019 - MVPConf
Escrevendo C# moderno 2019 - MVPConf
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCasting
 
Código limpo php
Código limpo phpCódigo limpo php
Código limpo php
 
Clean Code na Prática
Clean Code na PráticaClean Code na Prática
Clean Code na Prática
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo software
 
TDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featureTDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e feature
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do Teste
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 

Similaire à A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP

XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agiledayCarlos Felippe Cardoso
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012Luís Cobucci
 
TDD (Test Driven Development)
TDD (Test Driven Development)TDD (Test Driven Development)
TDD (Test Driven Development)Felipe Pimentel
 
DevOps - Como remover barreiras para a adoção?
DevOps - Como remover barreiras para a adoção?DevOps - Como remover barreiras para a adoção?
DevOps - Como remover barreiras para a adoção?Mateus Prado
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
Fisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmoFisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmoGustavo Neves
 
MVC com Zend Framework
MVC com Zend FrameworkMVC com Zend Framework
MVC com Zend FrameworkFlávio Lisboa
 
Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Vanderson Silva
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareDextra Sistemas / Etec Itu
 
Gt 10 FCSI- ambiente de desenvolvimento
Gt 10  FCSI- ambiente de desenvolvimentoGt 10  FCSI- ambiente de desenvolvimento
Gt 10 FCSI- ambiente de desenvolvimentoMax_Antonelli
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Fábio Nogueira de Lucena
 

Similaire à A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP (20)

XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Minicurso de TDD
Minicurso de TDDMinicurso de TDD
Minicurso de TDD
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agileday
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
 
TDD (Test Driven Development)
TDD (Test Driven Development)TDD (Test Driven Development)
TDD (Test Driven Development)
 
Linear Engineering
Linear EngineeringLinear Engineering
Linear Engineering
 
DevOps - Como remover barreiras para a adoção?
DevOps - Como remover barreiras para a adoção?DevOps - Como remover barreiras para a adoção?
DevOps - Como remover barreiras para a adoção?
 
Gt 10 fcsi
Gt 10   fcsiGt 10   fcsi
Gt 10 fcsi
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Fisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmoFisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmo
 
MVC com Zend Framework
MVC com Zend FrameworkMVC com Zend Framework
MVC com Zend Framework
 
Bdd&tdd
Bdd&tddBdd&tdd
Bdd&tdd
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
 
Over engineering
Over engineeringOver engineering
Over engineering
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 
clean code
clean codeclean code
clean code
 
Gt 10 FCSI- ambiente de desenvolvimento
Gt 10  FCSI- ambiente de desenvolvimentoGt 10  FCSI- ambiente de desenvolvimento
Gt 10 FCSI- ambiente de desenvolvimento
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
 

Plus de Flávio Lisboa

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPFlávio Lisboa
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaFlávio Lisboa
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasFlávio Lisboa
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoFlávio Lisboa
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework LaminasFlávio Lisboa
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?Flávio Lisboa
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Flávio Lisboa
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoFlávio Lisboa
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamFlávio Lisboa
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosFlávio Lisboa
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosFlávio Lisboa
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasFlávio Lisboa
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadoresFlávio Lisboa
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)Flávio Lisboa
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Flávio Lisboa
 
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Flávio Lisboa
 

Plus de Flávio Lisboa (20)

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHP
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com Laminas
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com método
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
Amanhecer esmeralda
Amanhecer esmeraldaAmanhecer esmeralda
Amanhecer esmeralda
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadores
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)
 
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
 

A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP