php além da universidade
TRANSCRIPT
Além da universidadeDaniel 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 MercadoSoftware House / inCompany
Software House
Software House
Websites
Portais
E-commerce
Blogs
Hotsites
Extranets
inCompany
inCompany
Intranet
CRM
ERP
Sistemas DiferentesAbordagens diferentes
Escolha apenas 2
Rápido
BomBarato
TestesAutomatizados ou não, são necessários.
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 verdadeNã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.
• Zend\Authentication• Zend\Barcode• Zend\Cache• Zend\Captcha• Zend\Code\Generator• Zend\Config• Zend\Console• Zend\Console\Getopt• Zend\Crypt• Zend\Db• Zend\Debug• Zend\Di• Zend\Dom• Zend\Escaper• Zend\EventManager• Zend\Feed• Zend\File• Zend\Filter• Zend\Form• Zend\Http• Zend\I18n• Zend\InputFilter• Zend\Json• Zend\Ldap• Zend\Loader
• Zend\Log• Zend\Mail• Zend\Math• Zend\Memory• Zend\Mime• Zend\ModuleManager• Zend\Mvc• Zend\Navigation• Zend\Paginator• Zend\Permissions\Acl• Zend\Permissions\Rbac• Zend\ProgressBar• Zend\Serializer• Zend\Server• Zend\ServiceManager• Zend\Session• Zend\Soap• Zend\Stdlib• Zend\Tag• Zend\Test• Zend\Text• Zend\Uri• Zend\Validator• Zend\Version• Zend\View• Zend\XmlRpc
• Map resource URIs to callback functions
• That’s it.
Tecnologias UtilizadasNo mundo real, o que é mais utilizado
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
CargosAtribuiçõ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áticasO que fazer e o que evitar.
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 else3. Encapsule os tipos primitivos4. Apenas um -> por linha5. Não Abrevie6. Mantenha suas classes pequenas7. Limite o número de Atributos8. Utilize Coleções9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.2. Não utilize else3. Encapsule os tipos primitivos4. Apenas um -> por linha5. Não Abrevie6. Mantenha suas classes pequenas7. Limite o número de Atributos8. Utilize Coleções9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.2. Não utilize else3. Encapsule os tipos primitivos4. Apenas um -> por linha5. Não Abrevie6. Mantenha suas classes pequenas7. Limite o número de Atributos8. Utilize Coleções9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.2. Não utilize else3. Encapsule os tipos primitivos4. Apenas um -> por linha5. Não Abrevie6. Mantenha suas classes pequenas7. Limite o número de Atributos8. Utilize Coleções9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.2. Não utilize else3. Encapsule os tipos primitivos4. Apenas um -> por linha5. Não Abrevie6. Mantenha suas classes pequenas7. Limite o número de Atributos8. Utilize Coleções9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.2. Não utilize else3. Encapsule os tipos primitivos4. Apenas um -> por linha5. Não Abrevie6. Mantenha suas classes pequenas7. Limite o número de Atributos8. Utilize Coleções9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.2. Não utilize else3. Encapsule os tipos primitivos4. Apenas um -> por linha5. Não Abrevie6. Mantenha suas classes pequenas7. Limite o número de Atributos8. Utilize Coleções9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.2. Não utilize else3. Encapsule os tipos primitivos4. Apenas um -> por linha5. Não Abrevie6. Mantenha suas classes pequenas7. Limite o número de Atributos8. Utilize Coleções9. Use Getters e Setters
Object Calisthenics
1. Um nível de indentação por método.2. Não utilize else3. Encapsule os tipos primitivos4. Apenas um -> por linha5. Não Abrevie6. Mantenha suas classes pequenas7. Limite o número de Atributos8. Utilize Coleções9. Use Getters e Setters