SlideShare uma empresa Scribd logo
Além da universidade
Daniel Archer
Maio/2015
Quem sou eu
Formado pelo Senac
em 2011
Palestrante da PHP
Conference Brasil
5 Anos de experiência
em PHP
Atualmente analista de
sistemas na Servicoop
Diferenças de Mercado
Software House / inCompany
Software House
Software House
Websites
Portais
E-commerce
Blogs
Hotsites
Extranets
inCompany
inCompany
Intranet
CRM
ERP
Sistemas Diferentes
Abordagens diferentes
Escolha apenas 2
Rápido
BomBarato
Testes
Automatizados ou não, são necessários.
PHP Além da universidade
Testes
• Testar entradas
– Seu usuário vai escrever errado
• Testar qual o comportamento
– Em diferentes situações
• Mensagens de erro
– Provoque todas as mensagens
• Elas são compreensíveis para a pessoa que
vai utilizar o software?
Ninguém é dono da verdade
Não existe melhor tecnologia
Resolução de Problemas
Cada tecnologia tem como objetivo
resolver um ou mais problemas.
Algumas resolvem muitos, outras são
extremamente específicas.
• ZendAuthentication
• ZendBarcode
• ZendCache
• ZendCaptcha
• ZendCodeGenerator
• ZendConfig
• ZendConsole
• ZendConsoleGetopt
• ZendCrypt
• ZendDb
• ZendDebug
• ZendDi
• ZendDom
• ZendEscaper
• ZendEventManager
• ZendFeed
• ZendFile
• ZendFilter
• ZendForm
• ZendHttp
• ZendI18n
• ZendInputFilter
• ZendJson
• ZendLdap
• ZendLoader
• ZendLog
• ZendMail
• ZendMath
• ZendMemory
• ZendMime
• ZendModuleManager
• ZendMvc
• ZendNavigation
• ZendPaginator
• ZendPermissionsAcl
• ZendPermissionsRbac
• ZendProgressBar
• ZendSerializer
• ZendServer
• ZendServiceManager
• ZendSession
• ZendSoap
• ZendStdlib
• ZendTag
• ZendTest
• ZendText
• ZendUri
• ZendValidator
• ZendVersion
• ZendView
• ZendXmlRpc
• Map resource URIs to callback
functions
• That’s it.
Tecnologias Utilizadas
No mundo real, o que é mais utilizado
PHP Além da universidade
Fullstack
Fullstack
• Aplicações grandes
• Regras de negócios complexas
• Equipe madura
• Padronização forçada
Micro-frameworks
Micro-frameworks
• Aplicações Simples
• APIs
• Integração
• Padronização manual
Cargos
Atribuições técnicas de juniores, plenos e seniores.
Carreira PHP
https://github.com/abraphp/CarreiraPHP
Júnior
• Protocolo HTTP
• GET, POST, UPDATE, DELETE, OPTION
• SQL Básico
• Configurações do PHP.INI
• Noções de como funciona o APACHE
• “plus” Conhecimento básico em
algum framework.
Pleno
• Domínio da Linguagem
• SQL Avançado
– triggers e functions
• Configurações de Performance
• Conhecimento médio de linux
• Saber identificar e aplicar padrões de projeto
– Factory, Adapter, Facede
• Segurança
• Conhecimentos sólidos em algum framework
MVC
• Conhecimento em noSQL
Boas Práticas
O que fazer e o que evitar.
PHP Além da universidade
PHP Além da universidade
PHP Além da universidade
PHP Além da universidade
Tópicos interessantes
S.O.L.I.D.
Design
Patterns
Clean
Code
Object
Calisthenics
Object Calisthenics
1. Um nível de indentação por método.
2. Não utilize else
3. Encapsule os tipos primitivos
4. Apenas um -> por linha
5. Não Abrevie
6. Mantenha suas classes pequenas
7. Limite o número de Atributos
8. Utilize Coleções
9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.
2. Não utilize else
3. Encapsule os tipos primitivos
4. Apenas um -> por linha
5. Não Abrevie
6. Mantenha suas classes pequenas
7. Limite o número de Atributos
8. Utilize Coleções
9. Use Getters e Setters
PHP Além da universidade
PHP Além da universidade
Object Calisthenics
1. Um nível de indentação por método.
2. Não utilize else
3. Encapsule os tipos primitivos
4. Apenas um -> por linha
5. Não Abrevie
6. Mantenha suas classes pequenas
7. Limite o número de Atributos
8. Utilize Coleções
9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.
2. Não utilize else
3. Encapsule os tipos primitivos
4. Apenas um -> por linha
5. Não Abrevie
6. Mantenha suas classes pequenas
7. Limite o número de Atributos
8. Utilize Coleções
9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.
2. Não utilize else
3. Encapsule os tipos primitivos
4. Apenas um -> por linha
5. Não Abrevie
6. Mantenha suas classes pequenas
7. Limite o número de Atributos
8. Utilize Coleções
9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.
2. Não utilize else
3. Encapsule os tipos primitivos
4. Apenas um -> por linha
5. Não Abrevie
6. Mantenha suas classes pequenas
7. Limite o número de Atributos
8. Utilize Coleções
9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.
2. Não utilize else
3. Encapsule os tipos primitivos
4. Apenas um -> por linha
5. Não Abrevie
6. Mantenha suas classes pequenas
7. Limite o número de Atributos
8. Utilize Coleções
9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.
2. Não utilize else
3. Encapsule os tipos primitivos
4. Apenas um -> por linha
5. Não Abrevie
6. Mantenha suas classes pequenas
7. Limite o número de Atributos
8. Utilize Coleções
9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.
2. Não utilize else
3. Encapsule os tipos primitivos
4. Apenas um -> por linha
5. Não Abrevie
6. Mantenha suas classes pequenas
7. Limite o número de Atributos
8. Utilize Coleções
9. Use Getters e Setters
PHP Além da universidade

Mais conteúdo relacionado

Mais procurados

Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Adler Medrado
 
Zephir
ZephirZephir
Zephir
Luiz Gavinho
 
Rumo à Certificação PHP
Rumo à Certificação PHPRumo à Certificação PHP
Rumo à Certificação PHP
Ari Stopassola Junior
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019
Cassio Santos
 
Mini Curso Zend Framework
Mini Curso Zend FrameworkMini Curso Zend Framework
Mini Curso Zend Framework
Adler Medrado
 
Prepare-se para o próximo estágio da evolução PHP
Prepare-se para o próximo estágio da evolução PHPPrepare-se para o próximo estágio da evolução PHP
Prepare-se para o próximo estágio da evolução PHP
Raphael Almeida
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
Rafael Jaques
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
Michael Cardoso
 
Segurança PHP em 2016
Segurança PHP em 2016Segurança PHP em 2016
Segurança PHP em 2016
Er Galvão Abbott
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
Luís Cobucci
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
Paulo Dayvson
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
Bruno Rocha
 
Delphi Conference 2012 - Qualidade no Código
Delphi Conference 2012 - Qualidade no CódigoDelphi Conference 2012 - Qualidade no Código
Delphi Conference 2012 - Qualidade no Código
José Araújo
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
Sérgio Souza Costa
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
Relsi Maron
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
Luiz Junior
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPPHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
iMasters
 
TDC 2016 - PHP7
TDC 2016 - PHP7TDC 2016 - PHP7
TDC 2016 - PHP7
Marcelo Aymone
 

Mais procurados (19)

Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
 
Zephir
ZephirZephir
Zephir
 
Rumo à Certificação PHP
Rumo à Certificação PHPRumo à Certificação PHP
Rumo à Certificação PHP
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019
 
Mini Curso Zend Framework
Mini Curso Zend FrameworkMini Curso Zend Framework
Mini Curso Zend Framework
 
Prepare-se para o próximo estágio da evolução PHP
Prepare-se para o próximo estágio da evolução PHPPrepare-se para o próximo estágio da evolução PHP
Prepare-se para o próximo estágio da evolução PHP
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
 
Segurança PHP em 2016
Segurança PHP em 2016Segurança PHP em 2016
Segurança PHP em 2016
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
 
Delphi Conference 2012 - Qualidade no Código
Delphi Conference 2012 - Qualidade no CódigoDelphi Conference 2012 - Qualidade no Código
Delphi Conference 2012 - Qualidade no Código
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPPHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
 
TDC 2016 - PHP7
TDC 2016 - PHP7TDC 2016 - PHP7
TDC 2016 - PHP7
 

Destaque

Lidando com Código Duplicado - DevInSantos 2013
Lidando com Código Duplicado - DevInSantos 2013Lidando com Código Duplicado - DevInSantos 2013
Lidando com Código Duplicado - DevInSantos 2013
Evaldo Junior
 
SOLID a 6 mãos
SOLID a 6 mãosSOLID a 6 mãos
SOLID a 6 mãos
João Batista Neto
 
Dafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a SérioDafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a Sério
Evaldo Junior
 
Evolucao php2
Evolucao php2Evolucao php2
Evolucao php2
Evaldo Junior
 
Code Refactoring
Code Refactoring Code Refactoring
Code Refactoring
Levi Ferreira
 
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
Evaldo Junior
 
PHP-CLI em 7 passos
PHP-CLI em 7 passosPHP-CLI em 7 passos
PHP-CLI em 7 passos
Henrique Moody
 

Destaque (7)

Lidando com Código Duplicado - DevInSantos 2013
Lidando com Código Duplicado - DevInSantos 2013Lidando com Código Duplicado - DevInSantos 2013
Lidando com Código Duplicado - DevInSantos 2013
 
SOLID a 6 mãos
SOLID a 6 mãosSOLID a 6 mãos
SOLID a 6 mãos
 
Dafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a SérioDafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a Sério
 
Evolucao php2
Evolucao php2Evolucao php2
Evolucao php2
 
Code Refactoring
Code Refactoring Code Refactoring
Code Refactoring
 
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
 
PHP-CLI em 7 passos
PHP-CLI em 7 passosPHP-CLI em 7 passos
PHP-CLI em 7 passos
 

Semelhante a PHP Além da universidade

Potencializando a qualidade de código
Potencializando a qualidade de códigoPotencializando a qualidade de código
Potencializando a qualidade de código
Maykel dos Santos Braz, ZCE
 
Objects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do códigoObjects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do código
BonoBee
 
Object calisthenics
Object calisthenicsObject calisthenics
Object calisthenics
Daniel Baptista Dias
 
Clean code em C#
Clean code em C#Clean code em C#
Clean code em C#
Gustavo Araújo
 
Clean code
Clean codeClean code
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
Rafael Paz
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
Danilo Pinotti
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
PrinceGuru MS
 
Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinho
Alexandre Andrade
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
Rangel Javier
 
Code Smells
Code SmellsCode Smells
Code Smells
Rodrigo Branas
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de Programação
COTIC-PROEG (UFPA)
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de Programação
Paulo Souza
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
Isaac de Souza
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Domingos Teruel
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
Augusto Pascutti
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Thiago Barradas
 
Refatoração de Código Legado
Refatoração de Código LegadoRefatoração de Código Legado
Refatoração de Código Legado
Caesar Ralf Franz Hoppen
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017
Thiago Barradas
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"
Cesar Romero
 

Semelhante a PHP Além da universidade (20)

Potencializando a qualidade de código
Potencializando a qualidade de códigoPotencializando a qualidade de código
Potencializando a qualidade de código
 
Objects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do códigoObjects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do código
 
Object calisthenics
Object calisthenicsObject calisthenics
Object calisthenics
 
Clean code em C#
Clean code em C#Clean code em C#
Clean code em C#
 
Clean code
Clean codeClean code
Clean code
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinho
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Code Smells
Code SmellsCode Smells
Code Smells
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de Programação
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de Programação
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 
Refatoração de Código Legado
Refatoração de Código LegadoRefatoração de Código Legado
Refatoração de Código Legado
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"
 

Mais de Daniel Archer Marques Cramer

Filas e mensageria com RabbitMQ
Filas e mensageria com RabbitMQFilas e mensageria com RabbitMQ
Filas e mensageria com RabbitMQ
Daniel Archer Marques Cramer
 
Monitorando aplicações com Prometheus
Monitorando aplicações com PrometheusMonitorando aplicações com Prometheus
Monitorando aplicações com Prometheus
Daniel Archer Marques Cramer
 
Over engineering
Over engineeringOver engineering
Frameworks e microframeworks php - conexão kinghost
Frameworks e microframeworks php - conexão kinghostFrameworks e microframeworks php - conexão kinghost
Frameworks e microframeworks php - conexão kinghost
Daniel Archer Marques Cramer
 
Case Kinghost + Elasticsearch
Case Kinghost + ElasticsearchCase Kinghost + Elasticsearch
Case Kinghost + Elasticsearch
Daniel Archer Marques Cramer
 
Aplicando SOLID com PHP7
Aplicando SOLID com PHP7Aplicando SOLID com PHP7
Aplicando SOLID com PHP7
Daniel Archer Marques Cramer
 
Php on the cloud
Php on the cloudPhp on the cloud
Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014
Daniel Archer Marques Cramer
 
PHP Tools for Fast coding
PHP Tools for Fast codingPHP Tools for Fast coding
PHP Tools for Fast coding
Daniel Archer Marques Cramer
 

Mais de Daniel Archer Marques Cramer (9)

Filas e mensageria com RabbitMQ
Filas e mensageria com RabbitMQFilas e mensageria com RabbitMQ
Filas e mensageria com RabbitMQ
 
Monitorando aplicações com Prometheus
Monitorando aplicações com PrometheusMonitorando aplicações com Prometheus
Monitorando aplicações com Prometheus
 
Over engineering
Over engineeringOver engineering
Over engineering
 
Frameworks e microframeworks php - conexão kinghost
Frameworks e microframeworks php - conexão kinghostFrameworks e microframeworks php - conexão kinghost
Frameworks e microframeworks php - conexão kinghost
 
Case Kinghost + Elasticsearch
Case Kinghost + ElasticsearchCase Kinghost + Elasticsearch
Case Kinghost + Elasticsearch
 
Aplicando SOLID com PHP7
Aplicando SOLID com PHP7Aplicando SOLID com PHP7
Aplicando SOLID com PHP7
 
Php on the cloud
Php on the cloudPhp on the cloud
Php on the cloud
 
Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014
 
PHP Tools for Fast coding
PHP Tools for Fast codingPHP Tools for Fast coding
PHP Tools for Fast coding
 

PHP Além da universidade

  • 1. Além da universidade Daniel Archer Maio/2015
  • 2. Quem sou eu Formado pelo Senac em 2011 Palestrante da PHP Conference Brasil 5 Anos de experiência em PHP Atualmente analista de sistemas na Servicoop
  • 10. Testes Automatizados ou não, são necessários.
  • 12. Testes • Testar entradas – Seu usuário vai escrever errado • Testar qual o comportamento – Em diferentes situações • Mensagens de erro – Provoque todas as mensagens • Elas são compreensíveis para a pessoa que vai utilizar o software?
  • 13. Ninguém é dono da verdade Não existe melhor tecnologia
  • 14. Resolução de Problemas Cada tecnologia tem como objetivo resolver um ou mais problemas. Algumas resolvem muitos, outras são extremamente específicas.
  • 15. • ZendAuthentication • ZendBarcode • ZendCache • ZendCaptcha • ZendCodeGenerator • ZendConfig • ZendConsole • ZendConsoleGetopt • ZendCrypt • ZendDb • ZendDebug • ZendDi • ZendDom • ZendEscaper • ZendEventManager • ZendFeed • ZendFile • ZendFilter • ZendForm • ZendHttp • ZendI18n • ZendInputFilter • ZendJson • ZendLdap • ZendLoader • ZendLog • ZendMail • ZendMath • ZendMemory • ZendMime • ZendModuleManager • ZendMvc • ZendNavigation • ZendPaginator • ZendPermissionsAcl • ZendPermissionsRbac • ZendProgressBar • ZendSerializer • ZendServer • ZendServiceManager • ZendSession • ZendSoap • ZendStdlib • ZendTag • ZendTest • ZendText • ZendUri • ZendValidator • ZendVersion • ZendView • ZendXmlRpc
  • 16. • Map resource URIs to callback functions • That’s it.
  • 17. Tecnologias Utilizadas No mundo real, o que é mais utilizado
  • 20. Fullstack • Aplicações grandes • Regras de negócios complexas • Equipe madura • Padronização forçada
  • 22. Micro-frameworks • Aplicações Simples • APIs • Integração • Padronização manual
  • 23. Cargos Atribuições técnicas de juniores, plenos e seniores.
  • 25. Júnior • Protocolo HTTP • GET, POST, UPDATE, DELETE, OPTION • SQL Básico • Configurações do PHP.INI • Noções de como funciona o APACHE • “plus” Conhecimento básico em algum framework.
  • 26. Pleno • Domínio da Linguagem • SQL Avançado – triggers e functions • Configurações de Performance • Conhecimento médio de linux • Saber identificar e aplicar padrões de projeto – Factory, Adapter, Facede • Segurança • Conhecimentos sólidos em algum framework MVC • Conhecimento em noSQL
  • 27. Boas Práticas O que fazer e o que evitar.
  • 33. Object Calisthenics 1. Um nível de indentação por método. 2. Não utilize else 3. Encapsule os tipos primitivos 4. Apenas um -> por linha 5. Não Abrevie 6. Mantenha suas classes pequenas 7. Limite o número de Atributos 8. Utilize Coleções 9. Use Getters e Setters
  • 34. Object Calisthenics 1. Um nível de indentação por método. 2. Não utilize else 3. Encapsule os tipos primitivos 4. Apenas um -> por linha 5. Não Abrevie 6. Mantenha suas classes pequenas 7. Limite o número de Atributos 8. Utilize Coleções 9. Use Getters e Setters
  • 37. Object Calisthenics 1. Um nível de indentação por método. 2. Não utilize else 3. Encapsule os tipos primitivos 4. Apenas um -> por linha 5. Não Abrevie 6. Mantenha suas classes pequenas 7. Limite o número de Atributos 8. Utilize Coleções 9. Use Getters e Setters
  • 38. Object Calisthenics 1. Um nível de indentação por método. 2. Não utilize else 3. Encapsule os tipos primitivos 4. Apenas um -> por linha 5. Não Abrevie 6. Mantenha suas classes pequenas 7. Limite o número de Atributos 8. Utilize Coleções 9. Use Getters e Setters
  • 39. Object Calisthenics 1. Um nível de indentação por método. 2. Não utilize else 3. Encapsule os tipos primitivos 4. Apenas um -> por linha 5. Não Abrevie 6. Mantenha suas classes pequenas 7. Limite o número de Atributos 8. Utilize Coleções 9. Use Getters e Setters
  • 40. Object Calisthenics 1. Um nível de indentação por método. 2. Não utilize else 3. Encapsule os tipos primitivos 4. Apenas um -> por linha 5. Não Abrevie 6. Mantenha suas classes pequenas 7. Limite o número de Atributos 8. Utilize Coleções 9. Use Getters e Setters
  • 41. Object Calisthenics 1. Um nível de indentação por método. 2. Não utilize else 3. Encapsule os tipos primitivos 4. Apenas um -> por linha 5. Não Abrevie 6. Mantenha suas classes pequenas 7. Limite o número de Atributos 8. Utilize Coleções 9. Use Getters e Setters
  • 42. Object Calisthenics 1. Um nível de indentação por método. 2. Não utilize else 3. Encapsule os tipos primitivos 4. Apenas um -> por linha 5. Não Abrevie 6. Mantenha suas classes pequenas 7. Limite o número de Atributos 8. Utilize Coleções 9. Use Getters e Setters
  • 43. Object Calisthenics 1. Um nível de indentação por método. 2. Não utilize else 3. Encapsule os tipos primitivos 4. Apenas um -> por linha 5. Não Abrevie 6. Mantenha suas classes pequenas 7. Limite o número de Atributos 8. Utilize Coleções 9. Use Getters e Setters