réussir son projet drupal
DESCRIPTION
Réussir son projet Drupal. Plusieurs clefs du succès par Maxime TOPOLOV (@mtopolov) CTO de @adyax, Leader Européen sur Drupal.Méthodes qui marchentEquipe projetOrganisationEstimation du projetChoses à faire et à pas faire....TRANSCRIPT
![Page 1: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/1.jpg)
Réussir son projet DrupalPar @mtopolov, CTO de @adyax
![Page 2: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/2.jpg)
C’est 40 gros sites Drupal en 2011
![Page 3: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/3.jpg)
Les principaux points
forts de Drupal
![Page 4: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/4.jpg)
Un fort niveau d’abstraction donne...
![Page 5: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/5.jpg)
… un système modulaire qui permet de créer …
![Page 6: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/6.jpg)
… un beau CMS mais surtout un Framework, avec …
![Page 7: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/7.jpg)
… une API riche de nombreux « hooks » …
![Page 8: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/8.jpg)
Grâce à la license GPL et drupal.org on a …
![Page 9: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/9.jpg)
… une communauté très active, qui …
![Page 10: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/10.jpg)
MOIDrupal10 ans 1/2et 7 versions
![Page 11: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/11.jpg)
des sites sérieux…
![Page 12: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/12.jpg)
pour les jeunes…
![Page 13: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/13.jpg)
… et les moins jeunes
![Page 14: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/14.jpg)
Des sites roses…
![Page 15: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/15.jpg)
… bleus …
![Page 16: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/16.jpg)
… gris …
![Page 17: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/17.jpg)
… ou jaunes.
![Page 18: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/18.jpg)
… de gauche …
![Page 19: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/19.jpg)
… ou de droite …
![Page 20: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/20.jpg)
Pour les riches…
![Page 21: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/21.jpg)
… et les moins riches, …
![Page 22: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/22.jpg)
PLUS DE 7 MILLIONSDE SITESDANS LE MONDE
![Page 23: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/23.jpg)
![Page 24: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/24.jpg)
Drupal pour quel projet ?
Plutôt difficileProjet idéal
CorporateCorporate
EcommerceEcommerce
CommunautaireCommunautaireMédia statiqueMédia statique
Média interactifMédia interactif App statiqueApp statique
App temps réelApp temps réel
![Page 25: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/25.jpg)
Méthodes Agiles ou Classiques ?
Les deux conviennent, Drupal se prête très bien aux méthodes Agiles (modulaire & évolutif).
EstimationEstimation ConceptionConception DesignDesign Dev.Dev. TuningDebugTuningDebug MEPMEP
Sprint 1Sprint 1 Sprint 2Sprint 2 Sprint 3Sprint 3 Sprint 4Sprint 4 Sprint 5Sprint 5 Sprint 6Sprint 6
![Page 26: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/26.jpg)
Petit dico Français/Drupal
• Nœud (node) -> tout contenu
• Views -> module Drupal pour créer, afficher et gérer des listes de contenus
• Panels -> module Drupal pour créer en drag’n’drop des pages
• Taxonomies -> manière de tagguer ou classer le contenu dans des rubriques.
![Page 27: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/27.jpg)
Equipe projet Drupal ?
![Page 28: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/28.jpg)
Estimer un projet Drupal
• Définissons trois types de projet
• (S)imple : site de contenu simple, pas de zone utilisateur, pages simples
• (M)oyen : site de contenus avec une zone utilisateur, pages de complexité moyenne
• (C)omplexe : site communautaire, e-commerce ou très complexe, pages lourdes avec nombreux blocs & contextes.
![Page 29: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/29.jpg)
Estimer un projet Drupal
• Mise en place de Drupal = Création de types de contenus + Views + Panels de base + Modules principaux et leur configuration
• Si S = 2 – 3 jours
• Si M = 6 – 7 jours
• Si C = 15 jours ou plus
![Page 30: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/30.jpg)
Estimer un projet Drupal
• Intégration HTML W3C, cross-browser, pixel-perfect + debug CSS/JS pendant le projet
• S = 2 jours + 0,3 jours par page
• M = 3 jours + 0,7 jours par page
• C = 4 jours + 1,2 jour par page
![Page 31: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/31.jpg)
Estimer un projet Drupal
• Theming Drupal = Montage pages Panels, création du thème, Création des blocs.
• S = 0,5 jours par page
• M = 1 jour par page
• C = 1,5 jour page page
![Page 32: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/32.jpg)
Estimer un projet Drupal
• Multilingue ? +2-3 jours
• Vous gérez des sessions utilisateurs ? +2-3 jours
• Moteur de recherche à tuner ? +2 jours
• Et ainsi de suite pour chaque fonctionnalité !
![Page 33: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/33.jpg)
Les dangers dans l’estimation
• Règles de gestion complexes sur les blocs & contextes (tout ce qui sort du champs d’application de Views)
• WYSIWYG & « Améliorations » du back-office, mises en avant éditoriales complexes.
• Migration du contenu existant & synchronisation de bases
• Alertes email, fort trafic / pics.
![Page 34: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/34.jpg)
Fainéant, le développeur ne code que 1/3 de son temps…
• 35% développement• 30% écriture et exécution des tests• 10% déploiements• 10% trad, perfs, sécurité, permissions…• 5% divers scripts• 5% documentation• 5% démos
![Page 35: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/35.jpg)
Comment spécifier pour Drupal ?
• Types de contenus• Structure du contenu• Taxonomies• Contextes
• Plan du site• Rubriques• Pages• Blocs
Allez voir la session « Spécifier pour Drupal » de Chris JOSEPH, à 14h !
• Fonctionnalités
![Page 36: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/36.jpg)
Comment spécifier pour Drupal ?
• Types de contenus : Article, Produit, Brève, Fiche Auteur, Photo, Vidéo
• Structure du contenu : Les champs composant les types de contenus.
• Taxonomies : Rubriques, Tags, Marques, …
• Contextes : Quel bloc s’affiche où
![Page 37: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/37.jpg)
![Page 38: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/38.jpg)
![Page 39: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/39.jpg)
Outils pour spécifier ?
• Evitez Axure, très à la mode, mais pas adapté à Drupal (très orienté Page -> Navigation -> Clicks et pas assez contenu)
• Un bon document Word
• Des copies d’écrans annotées
![Page 40: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/40.jpg)
Un « design » Drupal ?
![Page 41: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/41.jpg)
Spécifications des taxonomies
• Taxonomies : Tags, Rubriques, Type de recette, Marque de voiture
• Une taxonomie sert (ou servira!) obligatoirement dans plusieurs types de contenus, si non, utiliser un champ classique.
![Page 42: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/42.jpg)
Blocs : Panels everywhere !
![Page 43: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/43.jpg)
Contextes
• Contextes c’est plus que des rubriques
• Vont vous servir à définir le triptyque :
• Titres des pages, métas
• URLs
• Plan de taggage des stats
• Permettent de placer les panes sur vos pages
![Page 44: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/44.jpg)
7.000 modules c’est pas pour rien !
Avant de spécifier une fonctionnalité à votre manière, vérifiez s’il n’existe pas un module Drupal qui fait l’affaire.
![Page 45: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/45.jpg)
… et essayez de faire simple
Et ça sur 300 pages
![Page 46: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/46.jpg)
Environnement de développement
• GIT + Redmine (ou TRAC, ou autre chose)
• Dev / Test / Prod
• Attention à la manière de gérer les déploiements incrémentaux.
• Tests automatisés conseillées sur projets long terme (Selenium RC)
![Page 47: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/47.jpg)
GIT
: Co
mm
ent g
érer
les
bran
ches
![Page 48: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/48.jpg)
Problème du déploiement sur Drupal
• Contenu et configurations sont dans la base
• Utiliser le module Features + utiliser les fonctions hook_update_X()
• Pensez à Capistrano pour vous aider
• Vos développeurs et admins doivent connaître Drush
![Page 49: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/49.jpg)
Dangers du hook_update_N()
• L’utilisateur $user est probablement l’admin ou NULL
• Drupal exécutera d’abord toutes les fonctions _update d’un module avant de passer à un autre
• Attention a bien refactorer votre code .install de temps à autre, pour éviter des centaines de _update.
![Page 50: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/50.jpg)
Architecture logicielle type
Panels, Views -> Moteur de renduPanels, Views -> Moteur de rendu
WS SortantsServices
WS SortantsServices
JSONJSON
SOAPSOAPXML-RPCXML-RPC
WS EntrantsFeeds
WS EntrantsFeeds
SOAP, JSON XMLSOAP, JSON XML
Standard : RSS, CSVStandard : RSS, CSV
Flux spécifiquesFlux spécifiques
Module Apache SOLR
Module Apache SOLR
Moteur de rechercheSOLR (TomCat)
Moteur de rechercheSOLR (TomCat)
Module MemcacheModule
MemcacheCache memoire
MemcachedCache memoire
Memcached
Cache statique : VARNISHCache statique : VARNISH
NewslettersSimpleNewsNewslettersSimpleNews ??????
Temps RéelMongoDB
Temps RéelMongoDB
Base NoSQLMongoDB
Base NoSQLMongoDB
Back Office amélioré : NodeQueue, Media, Scheduler, Rules, Actions, …
Back Office amélioré : NodeQueue, Media, Scheduler, Rules, Actions, …
![Page 51: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/51.jpg)
Les 10 commandementsDrupal
![Page 52: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/52.jpg)
I. Structurer ton contenu en premier lieu, tu devras (Entités, Champs, Taxonomies)
![Page 53: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/53.jpg)
II. Aucune fonctionnalité dans les templates tu ne coderas
![Page 54: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/54.jpg)
II bis. (pas de requêtes SQL non plus, hein !)
![Page 55: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/55.jpg)
III. Le cœur de Drupal tu ne toucheras point (ni les modules contribs)
![Page 56: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/56.jpg)
![Page 57: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/57.jpg)
IV. Views, Ctools & Panels tu utiliseras !
![Page 58: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/58.jpg)
V. Les caches, dès le début du projet tu activeras (Varnish, Memcached, Boost, AuthCache)
![Page 59: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/59.jpg)
VI. Du WYSIWYG tu n’abuseras point
![Page 60: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/60.jpg)
VII. Les déploiements par le code et les scripts tu feras (Drush, Features, Deploy…)
![Page 61: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/61.jpg)
VIII. Avant de coder une fonctionnalité, le module existant 10 fois tu chercheras
![Page 62: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/62.jpg)
IX. Apache SOLR pour la recherche tu utiliseras !
![Page 63: Réussir son projet Drupal](https://reader036.vdocuments.net/reader036/viewer/2022081413/548c9aa5b4795927358b4daf/html5/thumbnails/63.jpg)
X. Si faire soi-même tu ne sais pas, à un professionnel tu t’adresseras