Construindo uma plataforma de desenvolvimento rápido (CakePHP + Flex + Fake)
Specta TI Soluções em gestão Produtos e Serviços Specta Manager (Gestão Empresarial) Specta Dashboard (Painel de Controle Gerencial) Soluções sob Medida Tecnologias de Apoio Specta Platform Metodologia Scrum (Trac+Agilo) Cloud computing + SaaS
Specta TI
Palestrante Sócio-fundador da Specta Formação Engenheiro de Computação / PUC-Rio MBA em Gestão Empresarial Certificações: PMP, RHCE, MCSO Experiencia Desenvolvimento e montagem das duas primeiras operadoras de VoIP do Brasil entre 2002 e 2004  Alcatel (Responsável pela infra de servidores da Oi) Modulo Security (Coordenador de Qualidade)
PAUTA O que é um Plataforma RAD ? Motivação Premissas Escolha de  Tecnologias Arquitetura Funcionalidades Fake (versões 0.1 e 1.0a) Evolução Programando em Fake/CakePHP Referencias
O que é uma Plataforma RAD? Arquitetura orientada a produtividade Utilitários Geradores de código Design Patterns Plataforma porque serve como suporte/base para aplicações Metodologias ágeis: Agile, Scrum, TDD, entre outros
Motiva ç ão Evitar Retrabalho: Perca de tempo com desenvolvimento de funcionalidades básicas necessárias a todos os sistemas Melhoria Contínua: Evitar retrabalho e agregar conhecimento sempre para evoluir Renovar os desafios
Premissas Simplicidade Velocidade Design e Usabilidade Foco em regras de negócio Tecnologias de ponta (Web-based e RIA)
Escolha de Tecnologias CakePHP consolidado como um dos principais frameworks para PHP maturidade do projeto comunidade muito ativa Portais e IRC empresa/equipe dando constante suporte CakeDC
Escolha de Tecnologias Flex aproveitamento da experiencia da Adobe com Flash primeira solução RIA (exceto ajax) alinhamento com as ferramentas gráficas da Adobe evolução significativa da linguagem ActionScript (3.0) processamento da interface fica no  cliente
Escolha de Tecnologias Fake/CakeAMF alinhamento com o CakePHP (desenvolvido pelo Garrett Woodworth) mantendo os mesmos conceitos do CakePHP poderíamos reduzir a curva de aprendizado arquitetura simplificada (Cairngorm e PureMVC) transparência na comunicação entre cliente e servidor
Desenvolvimento Características do Projeto 7 meses 2 pessoas em média em tempo integral Desenvolvimento em paralelo com a solução de Gestão Empresarial Solução de Gestão Empresarial serviu de norte para as funcionalidades iniciais da plataforma
Arquitetura
Arquitetura CakeAMF Controller Front Controller Model C Behaviors Behav Components Comp DataSource DS DS DS M M C C C Components Behav C C Comp Comp Model M M M V V V M Helpers(UI) Comp Comp Comp Help Help Help
Arquitetura Cake's Components Cake's Behaviors Fake's Helpers Fake's Components Management Views Core Utilities Logable Soft Deletable Containable Auth Filter ACL Pagination Datagrid Action Bar Action Button Action List Combo Filter DateInterval Filter Relations Filter Pagination User Password Police Module Acl TreeGrid Module Layout Localization Session
Funcionalidades Design Patterns (MVC, ORM, Observer, Singleton) Comunicação transparente cliente- servidor Geração de código Internacionalização (I18n/L10n) AAA (Autenticação, Autorização, Auditoria) Geração de formulários Validação no cliente e no servidor Mapeamento das validações do servidor Interface de administração Modularização Componentes, Behaviors e Helpers “pré-instalados” Bibliotecas integradas (Degrafa, FlexLib)
Fake Actionscript 3 Conjunto de utilitários Conjunto de ferramentas Possibilita desenvolvimento de interfaces ricas arquitetura MVC comunicação transparente com CakePHP
Fake Fake 0.1 Comunicação cliente-servidor Model, CakeAMF, AMFDatasource Datasources (AMF, HTTP, ...) ORM (Object Relational Mapping) Conceito MVC para Flex Agrupamento de múltiplas requisições Configuração Múltiplas conexões e ambientes Conjunto de Test Suites
Fake Fake 0.1 (Configuração) ConfigManager Environment
Fake Fake 0.1 (Requisições) Model Datasource / AMFDatasource Resultset
Fake Singletons Dispatcher ModelRegistry
Fake Fake 1.0 alpha (este mês) Lógica do controller (igual ao CakePHP) Callbacks Suporte a I18n/L10n (gettext) Extensão Componentes Helpers Result sets Datasources FakeShell ??? (cake console)
Evolução Website dedicado a Plataforma/Fake Screencasts Showcase
Programando em Fake/CakePHP O que precisamos? CakePHP http://www.cakephp.org/ AMFEXT http://pecl.php.net/package/amfext CakeAMF https://trac.cakefoundation.org/amf/ Fake http://code.google.com/p/fake-as3/
Specta Manager 11 módulos (4/9 plugins) 82/120 tabelas de banco de dados 76 views (Flex) 83 controllers (CakePHP)
Referências Canais IRC para CakePHP (freenode) #cakephp #cakephp-pt Canal IRC para Fake-AS3 (freenode) #fake-as3
Agradecimentos Equipe Specta TI Garrett Woodworth Sean Chatman Comunidade CakePHP
Specta TI www.spectati.com.br Rafael Santos [email_address]

CakeSP - Specta Platform: CakePHP, Flex, Fake

  • 1.
    Construindo uma plataformade desenvolvimento rápido (CakePHP + Flex + Fake)
  • 2.
    Specta TI Soluçõesem gestão Produtos e Serviços Specta Manager (Gestão Empresarial) Specta Dashboard (Painel de Controle Gerencial) Soluções sob Medida Tecnologias de Apoio Specta Platform Metodologia Scrum (Trac+Agilo) Cloud computing + SaaS
  • 3.
  • 4.
    Palestrante Sócio-fundador daSpecta Formação Engenheiro de Computação / PUC-Rio MBA em Gestão Empresarial Certificações: PMP, RHCE, MCSO Experiencia Desenvolvimento e montagem das duas primeiras operadoras de VoIP do Brasil entre 2002 e 2004 Alcatel (Responsável pela infra de servidores da Oi) Modulo Security (Coordenador de Qualidade)
  • 5.
    PAUTA O queé um Plataforma RAD ? Motivação Premissas Escolha de Tecnologias Arquitetura Funcionalidades Fake (versões 0.1 e 1.0a) Evolução Programando em Fake/CakePHP Referencias
  • 6.
    O que éuma Plataforma RAD? Arquitetura orientada a produtividade Utilitários Geradores de código Design Patterns Plataforma porque serve como suporte/base para aplicações Metodologias ágeis: Agile, Scrum, TDD, entre outros
  • 7.
    Motiva ç ãoEvitar Retrabalho: Perca de tempo com desenvolvimento de funcionalidades básicas necessárias a todos os sistemas Melhoria Contínua: Evitar retrabalho e agregar conhecimento sempre para evoluir Renovar os desafios
  • 8.
    Premissas Simplicidade VelocidadeDesign e Usabilidade Foco em regras de negócio Tecnologias de ponta (Web-based e RIA)
  • 9.
    Escolha de TecnologiasCakePHP consolidado como um dos principais frameworks para PHP maturidade do projeto comunidade muito ativa Portais e IRC empresa/equipe dando constante suporte CakeDC
  • 10.
    Escolha de TecnologiasFlex aproveitamento da experiencia da Adobe com Flash primeira solução RIA (exceto ajax) alinhamento com as ferramentas gráficas da Adobe evolução significativa da linguagem ActionScript (3.0) processamento da interface fica no cliente
  • 11.
    Escolha de TecnologiasFake/CakeAMF alinhamento com o CakePHP (desenvolvido pelo Garrett Woodworth) mantendo os mesmos conceitos do CakePHP poderíamos reduzir a curva de aprendizado arquitetura simplificada (Cairngorm e PureMVC) transparência na comunicação entre cliente e servidor
  • 12.
    Desenvolvimento Características doProjeto 7 meses 2 pessoas em média em tempo integral Desenvolvimento em paralelo com a solução de Gestão Empresarial Solução de Gestão Empresarial serviu de norte para as funcionalidades iniciais da plataforma
  • 13.
  • 14.
    Arquitetura CakeAMF ControllerFront Controller Model C Behaviors Behav Components Comp DataSource DS DS DS M M C C C Components Behav C C Comp Comp Model M M M V V V M Helpers(UI) Comp Comp Comp Help Help Help
  • 15.
    Arquitetura Cake's ComponentsCake's Behaviors Fake's Helpers Fake's Components Management Views Core Utilities Logable Soft Deletable Containable Auth Filter ACL Pagination Datagrid Action Bar Action Button Action List Combo Filter DateInterval Filter Relations Filter Pagination User Password Police Module Acl TreeGrid Module Layout Localization Session
  • 16.
    Funcionalidades Design Patterns(MVC, ORM, Observer, Singleton) Comunicação transparente cliente- servidor Geração de código Internacionalização (I18n/L10n) AAA (Autenticação, Autorização, Auditoria) Geração de formulários Validação no cliente e no servidor Mapeamento das validações do servidor Interface de administração Modularização Componentes, Behaviors e Helpers “pré-instalados” Bibliotecas integradas (Degrafa, FlexLib)
  • 17.
    Fake Actionscript 3Conjunto de utilitários Conjunto de ferramentas Possibilita desenvolvimento de interfaces ricas arquitetura MVC comunicação transparente com CakePHP
  • 18.
    Fake Fake 0.1Comunicação cliente-servidor Model, CakeAMF, AMFDatasource Datasources (AMF, HTTP, ...) ORM (Object Relational Mapping) Conceito MVC para Flex Agrupamento de múltiplas requisições Configuração Múltiplas conexões e ambientes Conjunto de Test Suites
  • 19.
    Fake Fake 0.1(Configuração) ConfigManager Environment
  • 20.
    Fake Fake 0.1(Requisições) Model Datasource / AMFDatasource Resultset
  • 21.
  • 22.
    Fake Fake 1.0alpha (este mês) Lógica do controller (igual ao CakePHP) Callbacks Suporte a I18n/L10n (gettext) Extensão Componentes Helpers Result sets Datasources FakeShell ??? (cake console)
  • 23.
    Evolução Website dedicadoa Plataforma/Fake Screencasts Showcase
  • 24.
    Programando em Fake/CakePHPO que precisamos? CakePHP http://www.cakephp.org/ AMFEXT http://pecl.php.net/package/amfext CakeAMF https://trac.cakefoundation.org/amf/ Fake http://code.google.com/p/fake-as3/
  • 25.
    Specta Manager 11módulos (4/9 plugins) 82/120 tabelas de banco de dados 76 views (Flex) 83 controllers (CakePHP)
  • 26.
    Referências Canais IRCpara CakePHP (freenode) #cakephp #cakephp-pt Canal IRC para Fake-AS3 (freenode) #fake-as3
  • 27.
    Agradecimentos Equipe SpectaTI Garrett Woodworth Sean Chatman Comunidade CakePHP
  • 28.
    Specta TI www.spectati.com.brRafael Santos [email_address]