Idées
Quelques idées de refactoring, optimisations, environnement et méthodologie de développements.
Forum PHP 2010
Les idées ci-dessous sont très largement inspirées des conférences du Forum PHP 2010, dont les slides sont disponibles sur le site de l'AFUP : Résumés du Forum 2010
pair programming pro-actif et test-unitaires
- 10 % du temps par exemple,
- faire un planning pour faire en sorte que toutes les paires soient faites, en insistant sur celles qui ont le plus d'intérêt
- Faire un planning et s'y tenir. Reporter en cas d'urgence.
- Faire des revues avec pour cible les revues de code des low perfs
- Utiliser des tests unitaires sur le cœur du framework
- Pourquoi pas étendre à quelques objets métiers importants
Analyse de code source
- Outils de suivi de standards de codage (syntaxe et pratiques)
- PHP-CodeSniffer
: cf. présentation pour les rulesets
- Plateforme d'intégration de métrique : phpUnderControl, mais surtout, SonarPHP (maintenu par le conférencier)
- D'autres outils plus pointus/expérimentaux :
- PHP-Depend : adhérence du code source
- PHPLoc : métriques de base mais efficace
- PHPCPD : copy paste detector (!)
- VLD : code inattegnable (!)
Lisibilité du code source
- PHP Doc systématique
- Splitter
CMbObject(2400 lignes !!!) :-
CPropsObject- Classification: modules
- Metamodel: properties, class, validation
-
CStoredObject extends CPropsObject- Observation: handlers
- Persistence: storage, navigation, querying, merging, seeking, cache, userlog
-
CMbObject extends CStoredObject- Configuration: permissions, object configs
- Business: notes, documents, aides, views, affectations personnels (!), model templates
-
Sécurité
- Arrimage de session plus fort, pour éviter le vol des cookies, par exemple sur l'adresse IP (le user agent est complètement falsifiable, l'IP l'est moins)
- Vérifier les ACL sur toutes les URL: analyse de syntaxe, présence d'un CCanDo dans toutes les vues.
Persistance
- Créer un driver
CPDODataSource - Logger les requêtes SQL lentes et sans index (?) : baisser le threshold à 500ms
- Envisager d'utiliser du NoSQL pour les données massives
- Envisager d'utiliser la mémoire partagée key-value distribuée pour la scalabilité et la mise en cache : MemCached (+++), Redis
Monitoring
- Nagios, zabbix : outil de monitoring apache
- Pinba : extension PHP pour durée CPU RAM
- Siege : tir de charge multi URL
- jMeter : outil ultime, existe un session logger pour Firefox pour permettre de rejouer en charge
- Zabbix : monitoring métier
Performances
- Apache : Extension keepAlive, vérifier on utilisation, positionner à 3 sec par exemple
- Xdebug : reprendre la présentation
- Webgrind sur le serveur de dev
- Aggrégation CSS,
- Data URI Pour les petites images
- toolbar monobloc au dessus de la barre des menus
- Utiliser le cache pour les médicament BCB
- Tracer toutes les data sources? SQL
Cloud computing
A titre indicatif, lire les slides
très intéressantes.
- Idée phare : self service de réssources formatiques, en particulier des serveurs web et mysql
- Amazon fournit des serveurs de 10c a 2€ de l'heure
- Pilotage par PHP possible, il existe des extensions et des classes pour monter/démonter des serveurs et les monitorer.
- Force de frappe utile pour faire de la conversion de masse, des imports de masse, etc.
- Il nous faut une image permettant d'avoir un Mb ready-to-go
- Baobapp
: plateforme beta du conférencier
Dernièrement modifié par Fabien
, Basé sur le travail de
lryo
et
mytto
.
Modifiée dernièrement le mardi 23 de novembre, 2010 14h21m06.
