Pourquoi rédiger un guide de bonnes pratiques drupal pour les projets de mon entreprise/groupe ? Eléments de méthode pour le créer. Quels avantages pour le donneur d'ordres, les prestataires, développeurs, ...
6. La « promesse » Drupal
Pérennité de l'investissement
• Polyvalence
• Evolutivité
• Facilité de maintenance
• Performance
• Montée en charge
• Rapidité de mise en oeuvre
• Multilingue et multisite
• Solution industrielle
• Sécurité
Léon Cros - Chipway Drupalcamp Lyon 2012 6
7. Résultats parfois obtenus
• « Le premier qui met à jour ... »
• Core hacké pour mail sur inscription
• 9 pages de codes dans un block
• Hack first then talk
• Pas le temps
• Trop cher / concurrent incompétent
• Hacké à mort
• Développeur aux abonnés absents
• Drupal c'est de la « M. »
• ...
Léon Cros - Chipway Drupalcamp Lyon 2012 7
12. Bonnes Pratiques : où ?
• Cahier des Charges
• CCTP
• Spécifications
• ...
Guide de Bonnes Pratiques Projets Drupal
De VOTRE entreprise
Léon Cros - Chipway Drupalcamp Lyon 2012 12
13. Bonnes Pratiques : Réticences
• On connait
• C'est sur drupal.org
• On a un expert qui peut intervenir
• Pas la peine de rédiger
• Pas besoin qu'on me dise :-((
• Concerne que codage de modules
• Augmente le coût pour rien
• J'adore Hacker
• Pas le temps. On verra après
• Bâtons dans les roues
Léon Cros - Chipway Drupalcamp Lyon 2012 13
14. BP concerne quoi ?
• Codage Drupal
• Construction du site
• Theming
• Maintenance
• Evolutions
• Ergonomie
• SEO
• Déploiement
• Mises à jour, montées de version
Léon Cros - Chipway Drupalcamp Lyon 2012 14
15. BP concerne qui ?
• Tous les intervenants
– externes
– Internes
Léon Cros - Chipway Drupalcamp Lyon 2012 15
16. BP : Quels projets ?
• Tous les projets
Léon Cros - Chipway Drupalcamp Lyon 2012 16
17. Que mettre dedans ?
• Rappel des objectifs de nos BP
• Versions concernées
• Niveau d'exigence par BP
• Points de vue
• Bonnes Pratiques Drupal
Léon Cros - Chipway Drupalcamp Lyon 2012 17
18. Objectifs des Bonnes Pratiques
Faciliter
• maintenance et évolutions
• mises à jour Core + contributifs
• déploiements
• réutilisation du code
• contribution
• optimisation et performances
• design/redesign
• accessibilité
Léon Cros - Chipway Drupalcamp Lyon 2012 18
19. Drupal rocks
Faciliter
• maintenance et évolutions
• mises à jour Core + contributifs
• déploiements
• réutilisation du code
• contribution
• optimisation et performances
• design/redesign
• accessibilité
Léon Cros - Chipway Drupalcamp Lyon 2012 19
20. Versions concernées
• Concerne Toutes vos versions Drupal
– D5 ?
– D6
– D7
• Spécificités selon version
• Mettre à jour pour D8
Léon Cros - Chipway Drupalcamp Lyon 2012 20
21. Exigences du client / chaque BP
Fondements
• Politique technique
• Contraintes
– International
– Industrialisation
Contexte et Objectifs
Léon Cros - Chipway Drupalcamp Lyon 2012 21
22. Niveau d'exigence / chaque BP
Exigences
• Indispensable
• Obligatoire négociable
• Bonus
Léon Cros - Chipway Drupalcamp Lyon 2012 22
23. Points de vue
• Conception générale
• Organisation des dossiers
• Programmation ; Codage des modules
• Sécurité du code
• Optimisation
• Déploiement
• Accessibilité
• Theming
• Documentation
Léon Cros - Chipway Drupalcamp Lyon 2012 23
24. Quelques BP Indispensables
• Ne pas Hacker Drupal Core
• Respecter les règles de codage
• Site traduisible
• Theme()
• Nommage des fonctions, hooks, variables
• Cohérence BD / schema des tables
• Nettoyer les données saisies
• Accès BD via API Drupal
Léon Cros - Chipway Drupalcamp Lyon 2012 24
25. Obligatoires négociables, Ex ;
• Utiliser des modules existants
• Modules GLUE
• Ne pas hacker modules/themes contribs
• Suivi des patches dans doc
• Contribuer les patches
• Fork si importantes modifs
• Sites/all/modules & custom
• Sites/all/libraries
• Taille des fonctions
• Décomposition des traitements
Léon Cros - Chipway Drupalcamp Lyon 2012 25
26. Exemples de BP Bonus
• Limiter le nombre de modules
• Expliquer
– organisation des données
– organisation des vues/affichages
• Fichiers des chaînes à traduire dispos
• Contribuer modules non stratégiques
Léon Cros - Chipway Drupalcamp Lyon 2012 26
27. Détail d'une Bonne Pratique
• Codage
• Indispensable
• Chaque module doit respecter les règles
de codage Drupal et passer sans erreur
même mineure la revue par « Coder
Review »
• Référence : http://drupal.org/coding-standards
Léon Cros - Chipway Drupalcamp Lyon 2012 27
28. Détail d'une Bonne Pratique
• Theming
• Indispensable
• Chaque theme doit respecter les règles de
codage Drupal en particulier des CSS et
javascript
• Référence : http://drupal.org/coding-standards
Léon Cros - Chipway Drupalcamp Lyon 2012 28
29. Détail d'une Bonne Pratique
• Codage
• Obligatoire négociable
• Utiliser autant que possible les fonctions
de themes existantes
• Référence :
http://api.drupal.org/api/drupal/modules--
system--theme.api.php/group/themeable/7
Léon Cros - Chipway Drupalcamp Lyon 2012 29
30. Avantages Client
• Sécurise/pérennise son investissement
• Allège-complète CdC/CCTP
• Facilite les comparaisons
• rend les offres comparables
• Elargit palette de prestataires possibles
• Cadre/simplifie les recettes
• Améliore Qualité obtenue
• Facilite dialogues internes/externes
Léon Cros - Chipway Drupalcamp Lyon 2012 30
31. Avantages Fournisseur
• En parler montre son professionnalisme
• Valorise ses compétences
• Concurrence plus claire
• Aide à monter en compétences
• Facilite dialogues internes/externes
• Facilite intégration des nouveaux
Léon Cros - Chipway Drupalcamp Lyon 2012 31
32. Conclusion
Le Guide de Bonnes Pratiques Drupal
• Référence
• Propre à l'entreprise/groupe...
• Extensible
• Déclinable selon besoins
Léon Cros - Chipway Drupalcamp Lyon 2012 32
33. Conclusion
Le Guide de Bonnes Pratiques Drupal
• Facilite les dialogues
• Augmente la confiance
• Aide à monter en compétences
• Nouveaux développeurs
• Développeurs exprérimentés
• Pérennise la relation client - fournisseur
Léon Cros - Chipway Drupalcamp Lyon 2012 33
35. Autres BP Indispensables
• Aucun traitement dans modèles du thème
• Commentaires Doxygen
• Nettoyer les données saisies
• Formulaires créés via Form API
• Pas de PHP 4
Léon Cros - Chipway Drupalcamp Lyon 2012 35
36. Obligatoires négociables, Ex ;
• hook_menu en tête
• Fonctions _function()
• Fonctions de themes existantes
• Modules paramétrables
• Select via db_rewrite_sql()
• Désinstaller modules inutilisés
• Fonctions de calculs dans .inc
• Activer caches, optimisation CSS … avant
Prod
Léon Cros - Chipway Drupalcamp Lyon 2012 36
37. Obligatoires négociables, Ex ;
• Mises en forme par feuilles CSS
• Imbrication des templates
• Theme sans table
• Id et classes habituelles de base
• Pas de Flash en frontal
• Commentaires étendus des fonctions
• Principes de nommage / projet-client
• Uniquement le nécessaire sur la Prod
• Contenu attendu de la Doc du projet
Léon Cros - Chipway Drupalcamp Lyon 2012 37
38. Obligatoires négociables, Ex ;
• hook_help
• README.txt
• Blocs PHP => Appel fonction (pas inline)
• Outils de déploiement
• Tests codés pour modules custom
• Theme accessible
• Champs pour accessiblité
• Facile à indexer et SEO
• Intégration continue
Léon Cros - Chipway Drupalcamp Lyon 2012 38