Draft:Conférences et Présentation Dolibarr
From Dolibarr Wiki
Cette page représente des plans type de conférences possibles sur Dolibarr ERP/CRM.
THEME DE CONFERENCE A: REUSSIR UNE APPLI DE GESTION PHP PAR L'EXEMPLE DE DOLIBARR ERP/CRM
Titre/Durée
REUSSIR UNE APPLI DE GESTION PHP PAR L'EXEMPLE DE DOLIBARR ERP/CRM
Durée: 45mn minimum (sans séance de questions) ou 1h (dont séances de questions)
Objectif
Présenter les pratiques PHP, et règles de l'art du développement PHP, à mettre en oeuvre pour réaliser un gros projet comme un ERP/CRM, pour chacune des grandes problématiques d'un tel projet (Sécurité, performances, qualité du code, maintenance, ...) et les illustrer par un retour d'expérience de leur mise en œuvre dans la réalisation de Dolibarr ERP/CRM.
Plan de la présentation
Principe de la présentation
- 8 thèmes seront abordés.
- Pour chaque thèmes, 3 paragraphes évoqués: pourquoi, comment par l'exemple, résultat par l'exemple
Thèmes abordés
Les thèmes abordés seront les suivants:
- Thème 1: Documentation technique
- Thème 2: Accès aux données (DAO)
- Thème 3: Design pattern MVC et moteur de templates
- Thème 4: Performances
- Thème 5: Traduction
- Thème 6: Portabilité
- Thème 7: Sécurité
- Thème 8: Tests unitaires/non régression
Choix de l'exemple
Présentation de Dolibarr ERP/CRM, le produit et surtout le projet qui servira aux exemples.
Présentation fonctionnelle
Énumération des fonctionnalités
Présentation technique
Énumération des caractéristiques techniques
Présentation historique
Background du développement de l'application.
Thème 1: Bonnes pratiques PHP Documentation
- Pourquoi
-> Faciliter la maintenance et développement
- Comment
-> Tags et outils types Eclipse + Doxygen
- Résultat
-> Présentation de la documentation
Thème 2: Bonnes pratiques PHP Design pattern DAO
- Pourquoi
-> Banaliser le développement et maintenance
- Comment
-> Présentation du générateur de DAO fait maison Dolibarr
- Résultat
-> Adhésion rapide au développement.
Thème 3: Design pattern et moteur de templates (MVC by part versus MVC by file)
- Pourquoi
-> Faciliter la lecture du code, maintenance
- Comment
-> Comparaison des Frameworks "MVC by file" (Smarty, ...) ou pratique Dolibarr "MVC by part" (controlleur et présentation séparés mais se suivant dans le même fichier)
- Résultat
Tableau comparatif
| Avantage/Inconvénient | Moteur template (Smarty, ...) | Template natif PHP (choix Dolibarr) |
| Garantie "technique" isolation code/présentation | oui | non |
| Maintenance | Plus simple | |
| Evolutivité | Plus fermé | Plus souple |
| Fonctionnalités | ||
| Performances | Moins bonne (attention aux annonces de "cache"). 120 | Base 100 |
- Résultat
-> Retour expérience sur Dolibarr: Résultat en terme de performance sur Dolibarr Résultat en terme de lisibilité Abandon de templates Smarty au profit de templates ... PHP -> Adhésion rapide au développement.
Thème 4: Bonnes pratiques PHP Performances
- Pourquoi
-> Optimiser la génération et travail du browser -> Réduire le flux réseau
- Comment
-> Demo du plugin Firebug / Google PageSpeed.
- Résultat
-> Bilan gain des modifications faites sur Dolibarr.
Diagnostique avec Xdebug
- Pourquoi
-> Identifier les portions de code "ratés"
- Comment
-> Présentation d'une lecture avec XCacheGrind (WinCacheGrind ou KCacheGrind)
- Résultat
-> Bilan gain des modifications faites sur Dolibarr.
Utilisation d'un serveur de cache
- Pourquoi
-> Réduire le temp d'initialisation des données persistantes réinitialisées à chaque accès PHP.
- Comment
-> shared memory ou serveur memcached ?
- Résultat
-> Bilan gain des modifications faites sur Dolibarr.
Thème 5: Bonnes pratiques PHP Traduction
- Pourquoi
-> Avoir un projet internationnalisé.
- Comment
-> Favoriser les contributions externes spontannées par un socle technique adapté.
- Résultat
-> Résultat obtenus sur Dolibarr.
Thème 6: Bonnes pratiques PHP Portabilité
PHP est déjà un langage portable. Mais certain sujets requiert malgré tout une couche de portabilité supplémentaire.
Base de données (iso/utf, mysql/postgresl/mssql)
- Pourquoi
-> Un projet indépendant du serveur de base de données
- Comment
-> Comparaison de la couche d'abstration PDO et de celle de Dolibarr
| Avantage/Inconvénient | PDO | Surcouche Dolibarr |
| Portabilité ordres DDL
(select, insert...) |
Oui | Oui |
| Portabilité ordres DML
(create, truncate, ...) |
Non | Oui |
| Portabilité code erreurs | Incomplète | Oui |
| Gestion transactions imbriquées | Non | Oui |
- Résultat
-> Résultat obtenus sur Dolibarr sur portabilité sans double maintenance.
Encodage du système de fichiers (ansi windows/utf linux)
- Pourquoi
-> Un produit multiplateforme -> Permettre des développements sous Windows et une mise en production sous Linux
- Comment
-> Présentation portion de code d'abstraction au système de fichier
- Résultat
GET-POST-REQUEST
- Pourquoi
-> Un système de passage de paramètre unique
- Comment
-> Abandon de l'utilisation de REQUEST au profit d'une fonction GETPOST()
- Résultat
-> Résolution des problème dus aux cookies homonymes des paramètres. Un souci technique de moins.
Thème 7: Bonnes pratiques PHP Sécurité
- Pourquoi
-> Définition des dangers (Rappel du top 10 des dangers recensés par l'OWASP)
- Comment
-> Danger OWASP 1 -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
-> Danger OWASP 2 -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
-> Danger OWASP n -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
-> Danger OWASP 10 -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
- Résultat
-> Pas de retour à offrir. Mais quand on parle de sécurité, n'est-ce pas en soit un bon bilan ?
Thème 8: Tests unitaires et PHPUnit
- Pourquoi
-> Améliorer la qualité -> Réduire le travail répétitif des tests
- Comment
-> PHPUnit - Selenium
- Résultat
-> Bilan couverture de tests PHPUnit -> Pas de bilan Selenium (trop nouveau)
Conclusion
Petite conclusion...
-> Ouverture sur d'autres bonnes pratiques non abordés car non mise en œuvre dans Dolibarr ERP/CRM
- Génération de code MDA (exemple ....)
- Utilisation de Framework PHP clés en main (Symphony, ...)
Pour plus d'informations:
- Le socle de développement de Dolibarr: http://wiki.dolibarr.org/index.php/Environment_and_development_tools
- Le portail officiel du projet: http://www.dolibarr.org
THEME DE CONFERENCE B: DOLIBARR ERP/CRM: Gérer votre entreprise ou association facilement
Titre/Durée
Gérer votre entreprise ou association avec Dolibarr ERP/CRM. Durée: 20mn minimum (sans séance de questions) ou 45mn (dont séances de questions)
Introduction/Objectifs
Présenter l'installation et grandes fonctionnalités de Dolibarr
- Produits
- Tiers (Clients/Prospect/Fournisseurs)
- Devis
- Commandes
- Factures
- Banque et rapprochement
Produits
Tiers
Devis
Commandes
Factures
Banque et rapprochement
Autres fonctions importantes non abordées
- Point de vente/Caisse enregistreuse
- Contrats de services (suivi d'abonnement ou services à durée limitée dans le temps)
- Autres modules transverses
Conclusion
Quelques adresses pour plus d'information:
- Le portail officiel: http://www.dolibarr.org
- La documentation: http://wiki.dolibarr.org
- La démo en ligne: http://demo.dolibarr.org
- La place de marché de modules/extension: http://www.dolistore.com
Create an account to help us to complete this documentation ->
