Question optimisation : à l'écriture ou à la lecture ?

Eléphant du PHP | 171 Messages

11 mai 2011, 13:03

Bonjour à tous,

Je viens aujourd'hui vous poser une question d'optimisation.
J'ai réaliser un blog personnel ou je suis donc seul à rédiger des articles.

Mes articles portant sur le sujet de la programmation, j'ai besoin de mettre le code avec une coloration syntaxique, et qui respecte les retours à la ligne.
J'ai choisi Geshi : http://qbnz.com/highlighter
Donc, actuellement j'ai choisi que lorsque j'écrivais un article, je mettais mon code entre des balise et que je venais remplacer son contenu avec preg_replace_callback par le retour du traitement Geshi.
Ce qui me donnerai par exemple pour : \

Code : Tout sélectionner

apt-get install php\[/code\] ===> Traitement Geshi ===> <pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">su</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> php5</pre> Donc voilà, ça nous fait pas mal d'entités HTML pour une ligne et donc ça peut faire devenir lourd dans la base de données au bout d'un moment. La question est que je ne sais pas si il est mieux de faire le remplacement à chaque lecture par un visiteur ou de traiter les blocs à l'écriture. De plus, lorsque j'édite l'article, ça veut dire que je dois éliminer les blocs <pre><span> etc.. pour ravoir quelque chose comme : \[code\] code_source\ [\/code\], sinon à éditer c'est pas possible. Que me conseillez vous ? J'attends vos conseils :) Merci d'avance. PS : L'antislash devant [code], c'est pour éviter que ça fasse un bloc de code, car j'utilise le même nom de balise.
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Mammouth du PHP | 672 Messages

12 mai 2011, 13:38

bonjour.

A partir du moment où il y a une écriture pour (je l'espère pour toi) plusieurs lecture, ça me semble logique de le faire à l'écriture.
Comme en plus c'est toi qui te charges de l'écriture, si ça mouline un peu tu attendras Alors qu'un lecteur risque de partir s'il y a de l'attente...

Eléphant du PHP | 171 Messages

12 mai 2011, 19:00

Oui, c'est sur. Et bien je vais continuer de faire comme ça alors. J'ai pensé la même chose dès le début mais en voyant que la quantité devenait plus importante, je me suis demandé si c'était bon ou pas de faire comme ça. Mais bon voilà maintenant je suis sûr de quelle solution prendre. Merci.
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Eléphant du PHP | 92 Messages

13 mai 2011, 10:55

Hello,

Si je peux me permettre d'ajouter :
Je me rends pas compte ce que tu peux appeler très lourds en base de données, mais si tu es le seul à poster et combien même tu posterais plusieurs fois par jour, je pense que la base de données est parfaitement capable d'encaisser tes pages d'articles ;)
Programmer c'est 20% de syntaxe pour 80% de réflexion et dans les 20% de syntaxe il faut encore compter une bonne dose de réflexion...
Je vous donne des conseils, pas des solutions toutes faites...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 mai 2011, 20:25

Perso j’opterais pour le contraire, simplement opur l'argument indiqué, soit il un reverse du html vers le bbcode / wiki c'que tu veux soit c'est imbuvable, et c'est la merde pour mettre a jour un "article".

Par contre pour éviter la régénération à chaque affichage il est intéressant d'utiliser un système de cache afin justement de minimiser l'impact sur le temps de chargement ;)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 171 Messages

13 mai 2011, 21:50

Finalement, je réalise une conversion BBCODE vers HTML et je l'ajoute dans la DB et j'ajoute aussi la version BBCODE que je récupère à chaque fois que je veux éditer l'article.
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.