réussir son projet drupal

63
Réussir son projet Drupal Par @mtopolov, CTO de @adyax

Upload: adyax

Post on 14-Dec-2014

7.829 views

Category:

Technology


1 download

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

Réussir son projet DrupalPar @mtopolov, CTO de @adyax

Page 2: Réussir son projet Drupal

C’est 40 gros sites Drupal en 2011

Page 3: Réussir son projet Drupal

Les principaux points

forts de Drupal

Page 4: Réussir son projet Drupal

Un fort niveau d’abstraction donne...

Page 5: Réussir son projet Drupal

… un système modulaire qui permet de créer …

Page 6: Réussir son projet Drupal

… un beau CMS mais surtout un Framework, avec …

Page 7: Réussir son projet Drupal

… une API riche de nombreux « hooks » …

Page 8: Réussir son projet Drupal

Grâce à la license GPL et drupal.org on a …

Page 9: Réussir son projet Drupal

… une communauté très active, qui …

Page 10: Réussir son projet Drupal

MOIDrupal10 ans 1/2et 7 versions

Page 11: Réussir son projet Drupal

des sites sérieux…

Page 12: Réussir son projet Drupal

pour les jeunes…

Page 13: Réussir son projet Drupal

… et les moins jeunes

Page 14: Réussir son projet Drupal

Des sites roses…

Page 15: Réussir son projet Drupal

… bleus …

Page 16: Réussir son projet Drupal

… gris …

Page 17: Réussir son projet Drupal

… ou jaunes.

Page 18: Réussir son projet Drupal

… de gauche …

Page 19: Réussir son projet Drupal

… ou de droite …

Page 20: Réussir son projet Drupal

Pour les riches…

Page 21: Réussir son projet Drupal

… et les moins riches, …

Page 22: Réussir son projet Drupal

PLUS DE 7 MILLIONSDE SITESDANS LE MONDE

Page 23: Réussir son projet Drupal
Page 24: Réussir son projet Drupal

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

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

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

Equipe projet Drupal ?

Page 28: Réussir son projet Drupal

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

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

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

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

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

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

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

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

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
Page 38: Réussir son projet Drupal
Page 39: Réussir son projet Drupal

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

Un « design » Drupal ?

Page 41: Réussir son projet Drupal

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

Blocs : Panels everywhere !

Page 43: Réussir son projet Drupal

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

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

… et essayez de faire simple

Et ça sur 300 pages

Page 46: Réussir son projet Drupal

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

GIT

: Co

mm

ent g

érer

les

bran

ches

Page 48: Réussir son projet Drupal

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

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

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

Les 10 commandementsDrupal

Page 52: Réussir son projet Drupal

I. Structurer ton contenu en premier lieu, tu devras (Entités, Champs, Taxonomies)

Page 53: Réussir son projet Drupal

II. Aucune fonctionnalité dans les templates tu ne coderas

Page 54: Réussir son projet Drupal

II bis. (pas de requêtes SQL non plus, hein !)

Page 55: Réussir son projet Drupal

III. Le cœur de Drupal tu ne toucheras point (ni les modules contribs)

Page 56: Réussir son projet Drupal
Page 57: Réussir son projet Drupal

IV. Views, Ctools & Panels tu utiliseras !

Page 58: Réussir son projet Drupal

V. Les caches, dès le début du projet tu activeras (Varnish, Memcached, Boost, AuthCache)

Page 59: Réussir son projet Drupal

VI. Du WYSIWYG tu n’abuseras point

Page 60: Réussir son projet Drupal

VII. Les déploiements par le code et les scripts tu feras (Drush, Features, Deploy…)

Page 61: Réussir son projet Drupal

VIII. Avant de coder une fonctionnalité, le module existant 10 fois tu chercheras

Page 62: Réussir son projet Drupal

IX. Apache SOLR pour la recherche tu utiliseras !

Page 63: Réussir son projet Drupal

X. Si faire soi-même tu ne sais pas, à un professionnel tu t’adresseras