somos jardineiros
DESCRIPTION
Acredito sem dificuldade ao ver e escutar de um engenheiro que uma ponte terá tantos metros, tantos pilares e que ela ficará exatamente daquele jeito quando pronta mas me recuso a acreditar em alguém que me diz que um software será entregue exatamente do jeito que foi pedido inicialmente. Eu não sou um engenheiro, sou um jardineiro!TRANSCRIPT
Somos JardineirosAugusto Pascutti
Monday, August 22, 2011
Engenharia de Software
Monday, August 22, 2011
Engenharia
• Requisitos
• Planejamento
• Execução
• Testes
• Entrega
Monday, August 22, 2011
Exemplo de Projeto
“Quero uma ilustração do arrebatamento”
(Cliente)
Monday, August 22, 2011
Exemplo de Projeto
Monday, August 22, 2011
Exemplo de Projeto
“Não é arrebentamento, é arrebatamento! É a história das pessoas boas irem para o céu com corpo e tudo ...”
(Cliente)
Monday, August 22, 2011
Exemplo de Projeto
Monday, August 22, 2011
Exemplo de Projeto
“Arrebatamento é um ato divino!”
(Cliente)
Monday, August 22, 2011
Exemplo de Projeto
Monday, August 22, 2011
Jardins
Monday, August 22, 2011
Jardins
• Nunca ficarão prontos
• Impossíveis de planejar (detalhadamente)
• Dependem de manutenção contínua
Monday, August 22, 2011
Um bom jardineiro
Monday, August 22, 2011
Um bom jardineiro
• É ágil
• Aprende e utiliza padrões (conhecimento coletivo)
• Favorece sempre a simplicidade
• Mantém o jardim
Monday, August 22, 2011
Manifesto Ágil
Monday, August 22, 2011
Manifesto Ágil
• Indivíduos e interações > processos e ferramentas
• Software funcional > boa documentação
• Colaboração com cliente > negociação contratual
• Responder a mudanças > seguir um plano
Monday, August 22, 2011
Padrões
Monday, August 22, 2011
Padrões
• Padrões de Design
• Padrões de Codificação
• Componentes
• Ferramentas
Monday, August 22, 2011
Padrões de Design
• Soluções comuns a problemas
• Vocabulário
• Facilmente identificados no código
• Flexibilidade
Monday, August 22, 2011
Padrões de Código
• Usar TABS ou Espaços?
• Os mais utilizados: Zend e PEAR
• Integração com outros sistemas/pacotes
• Autoloader universal
Monday, August 22, 2011
Padrões: Componentes
• Comunicação com Banco: PDO
• Componente de Console: Symfony_Console
• Componente de Log: Zend_Log
• Componente de Validação: Respect_Validator
• ORM: Doctrine
Monday, August 22, 2011
Padrões: Ferramentas
• Testes Unitários: PHPUnit
• Tarefas automáticas: PHING / ANT
• Banco de Dados: MySQL / MariaDB
• Métricas de Software: PHPMD
• Checkstyle: PHPCS
• Documentação: PhpDocumentor / DocBlox
Monday, August 22, 2011
Simplicidade
Monday, August 22, 2011
Simplicidade
• Não é fácil de obter
• Código é a melhor documentação que existe
• Encapsulamento e modularização
• Filosofia Unix (Reutilização)
• Menos é mais
Monday, August 22, 2011
Simplicidade
1 <?php2 $connection = new Socket_Connection_Type_Udp();3 $connection->setAddress('')->setPort('')->create();4 $connection->send("Hi");5 $file = new Socket_File('./silvio.jpeg');6 $parts = $file->divideInPartsOf(1024);7 8 foreach ($packages as $pack) {9 $connection->send($pack);10 }
Monday, August 22, 2011
Simplicidade
1 <?php2 $file = new Socket_File('s.jpg');3 $connection = new Socket_Connection();4 $connection->send($file);
Monday, August 22, 2011
Manutenção
Monday, August 22, 2011
Manutenção
• Código é um câncer
• Refatorar NÃO é uma opção
• Desenvolver é conhecimento
• Refatorar é sabedoria
Monday, August 22, 2011
Conhecimento é saber que tomate é um fruta. Sabedoria é não colocá-lo numa salada de
frutas.
Monday, August 22, 2011
Zen Gardening
Monday, August 22, 2011
Zen Gardening
Ou o que preciso para manter meu jardim saudável?
Monday, August 22, 2011
Zen Gardening
• PHPUnit
• PHPCS
• PHPMD
Monday, August 22, 2011
PHPUnit
• Permite as mudanças “Fuck-off”
• Melhora seu código
• Te poupa (MUITO) tempo
Monday, August 22, 2011
PHPCS
• Garante que todo mundo siga o padrão
Monday, August 22, 2011
PHPMD
• Busca por exageros no código
• Evita complexidades no código
• Mantém a sanidade da equipe
• As amizades também
Monday, August 22, 2011
Você faz errado
Monday, August 22, 2011
Você faz errado
Monday, August 22, 2011
Você faz errado
• Performance
Monday, August 22, 2011
Você faz errado
• Performance
• Model, View, Controller
Monday, August 22, 2011
Você faz errado
• Performance
• Model, View, Controller
• HTML
Monday, August 22, 2011
Você faz errado
• Performance
• Model, View, Controller
• HTML
• HTTP (Falar com: @alganet)
Monday, August 22, 2011
Perguntas?
Monday, August 22, 2011
Perguntas?
Apresentação inspirada no post: http://bit.ly/kN3uc6
Monday, August 22, 2011
Perguntas?
Apresentação inspirada no post: http://bit.ly/kN3uc6
Slides, comentários e brindes: http://joind.in/3651
Monday, August 22, 2011
Imagens utilizadas• bottles.jpeg - http://www.flickr.com/photos/cobalt/440637383/
• ilustrações arrebatamento - http://divasca.blogspot.com/2011/08/mas-e-pra-igreja.html
• garden.png - http://www.flickr.com/photos/epsos/3574411866
• garden2.jpeg - http://www.flickr.com/photos/virgomerry/19620399
• garden3.jpeg - http://www.flickr.com/photos/29738009@N08/2975653613
• skycrapers.png - http://www.flickr.com/photos/denvie/4049529132
• gardening.jpeg - http://www.flickr.com/photos/sovietuk/459807381
• origin.jpeg - http://www.flickr.com/photos/blyzz/5703084364
• railroad.jpeg - http://www.flickr.com/photos/helloeveryone123/4091250229
• rails.jpeg - http://www.flickr.com/photos/robotbrainz/1467565903
• tv.jpeg - http://www.flickr.com/photos/h2oalchemist/319537908
• zen.jpeg - http://www.flickr.com/photos/29738009@N08/2973500989
• zen2.jpeg - http://www.flickr.com/photos/josefeliciano/3849557951
Monday, August 22, 2011