SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Drupal 7
direto das trincheiras
      Rafael Caceres
      Vinicius Freitas
Escolha seu exercito
Decida quem vai lutar nesa batalha
Tipos de Equipe
● Fisicamente juntas
  ○ Insourcing
  ○ Outsourcing onsite
  ○ Joint-venture onsite
● Fisicamente separadas
  ○ Outsourcing
  ○ Insourcing offsite
  ○ Joint-venture offsite
  ○ Pode ser onshore ou offshore
O Pelotão
Ux Designers
Visual Designers
Front end engineers
Developers
Testers
Sysadmin
Gerente de Projetos (ou ScrumMaster)
Cliente (PO, Stakeholders)
Todo mundo é general (e soldado)
Grandes equipes costumam ser equipes de
amigos
Auto gerenciaveies
Equipes grandes, problemas grandes
Tamanho entre 3 - 7 pessoas
Especialista em uma coisa só, é amador em
todo o resto (Akita)
Defina a estratégia
  (ou "Traçando o Plano")
Escolha um método
Desenvolvimento go horse
Desenvolvimento cascatão
Desenvolvimento Ágil
Agile UX
Gestão e comunicação
Quadro branco, caneta e post its
Basecamp (+ wallsome)
Pivotal
Jira (GreenHopper)
Tantos outros...
Tenha uma Maquete do terreno
Importante para ajudar na definição da
estratégia de arquitetura de modulos

Axure
Balsamiq mockup
Mockflow
Mocking bird
Não abandone seus
     soldados
  comunique-se sempre
Troca de idéias...
Skype
Gtalk (hangout)
Campfire
Hipchat
Vox.io
...
Vá alem...
Deixe o bugtracker armado até os dentes

Awesome screenshot (chrome)
Jing (publicação autmotica screencast.com)
Join.me (screenshare com controle remoto)
Colaboração (ão, ão, ão)
Open Atrium
Podio
Basecamp
Defina a tatica
 vamos pra batalha!
Proteja a retaguarda
        sério!
Controle de Versão
CVS (o vovô)
Git
Subversion (svn)
Mercurial
Drupal usa GIT
  e a dropit também
Controle de versão na Cloud
Beanstalk (git, svn)
Github (git :P)
Bitbucket (mercurial, git)
Assembla (svn, git, mercurial)
Codebase (git, mercurial, svn)
Usando o GIT
Crie Branches
Crie branches
$ git checkout -b bugfix002
Modifique o codigo
$ git push
Volte para o branch principal
$ git checkout master
Faça a junção
$ git merge bugfix002
Armas em punho
   hora do ataque
O problema do Drupal
Legal, meu código está versionado, coisa linda!

Mas e o conteúdo? #comofaz
Mas e as configurações no banco?
#comofaz++
E o layout? #comofaz+++
Features
Exporte (tudo para código)
ctools
features (uma feature é um módulo)
strongarm (integra com features)
hook_update_N
Criando uma feature
E o layout?
Context
Panels
Boxes
BEAR
E o conteúdo?
Deploy module
UUID module
Node Export module
Migrate module
Drush, seu fiel escudeiro!
                          Extensivel - Plugins!
drush dl views
drush en views            -drush make
drush cc (all)            -drush deploy
drush arq                 - module integration
drush sql-dump            - padrão de
sql-connect               integração Drupal
drush updb (update.php)   com outros program
drush features update
drush features-revert
Configure
drush/examples
aliases.drush.rc
           $aliases['dropit'] = array(
            'uri' => 'dropit.lh',
            'root' => '/var/www/dropit/web',
            'db-url' => 'mysqli://user:senha@localhost/dropit',
            'path-aliases' => array(
                '%files' => 'sites/default/files',
            ),
           );
Extenda
Crie seus comandos
hook_drush_command
function drush_dgd_branch($name, $alias = '@self') {
 $teste = drush_invoke_process(drush_sitealias_get_record('@self'), 'sql-
dump', array(), array('--result-file' => '../databases/' . $file));
  foreach ($teste['log'] as $key => $log) {
     $messages = array('success', 'error', 'notice');
        if(in_array($log['type'], $messages)) {
           drush_print_r($log);
        }
   }
  drush_op_system('git checkout -b' . $name);

}
Reutilize (ou distribuições)
Acquia
Open Atrium
Open Publish
Open Public
Tatler
Pressflow
drush make file
Preparando o terreno



 DEV      TESTE    STAGE   LIVE
Deployment
Capistrano
Beanstalk
Springloops
Faça Alianças
Acquia dev cloud
Pantheon
Atlassian
E agora, josé?
dá pra ganhar essa guerra?
    - tática e gerenciamento
futuro da batalha
   - alianças são chaves
novidades por ai!
   - Continuous Integration com Drupal
   - Drupal Mobile
   "Se eu estivesse começando o Drupal hoje, eu faria
para mobile primeiro" - Dries
Perguntas?
Obrigado!!

Rafael Caceres
rafael@dropit.com.br

Vinicius Freitas
vinnie@dropit.in

Contenu connexe

En vedette

Introdução ao Drupal 6
Introdução ao Drupal 6Introdução ao Drupal 6
Introdução ao Drupal 6Rafael Caceres
 
Desenvolvimento Ágil com Drupal
Desenvolvimento Ágil com DrupalDesenvolvimento Ágil com Drupal
Desenvolvimento Ágil com DrupalRafael Caceres
 
Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de ...
Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de ...Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de ...
Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de ...Rafael Caceres
 
Metodologia para criação de sites
Metodologia para criação de sitesMetodologia para criação de sites
Metodologia para criação de sitesCelina Uemura
 

En vedette (7)

Introdução ao Drupal 6
Introdução ao Drupal 6Introdução ao Drupal 6
Introdução ao Drupal 6
 
Desenvolvimento Ágil com Drupal
Desenvolvimento Ágil com DrupalDesenvolvimento Ágil com Drupal
Desenvolvimento Ágil com Drupal
 
Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de ...
Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de ...Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de ...
Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de ...
 
Desenvolvimento Ágil com Drupal
Desenvolvimento Ágil com DrupalDesenvolvimento Ágil com Drupal
Desenvolvimento Ágil com Drupal
 
Metodologia para criação de sites
Metodologia para criação de sitesMetodologia para criação de sites
Metodologia para criação de sites
 
Projeto de WEB Site
Projeto de WEB SiteProjeto de WEB Site
Projeto de WEB Site
 
Arco en C
Arco en CArco en C
Arco en C
 

Similaire à Drupal 7 direto das trincheiras

Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Pablo Dall'Oglio
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLRaul Oliveira
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIRudá Almeida
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Fabrízio Mello
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...tdc-globalcode
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012Douglas Drumond
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoFreedom DayMS
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Fabrízio Mello
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Serverpichiliani
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlDiego Tremper
 

Similaire à Drupal 7 direto das trincheiras (20)

Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
jQuery
jQueryjQuery
jQuery
 
jQuery
jQueryjQuery
jQuery
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLI
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 
Arquitetura CSS
Arquitetura CSSArquitetura CSS
Arquitetura CSS
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com Django
 
Palestra cbq
Palestra cbqPalestra cbq
Palestra cbq
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010
 
Introdução ao Drupal
Introdução ao DrupalIntrodução ao Drupal
Introdução ao Drupal
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Server
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
 

Drupal 7 direto das trincheiras