WordPress est mal codé ! (Créer un compte)

  • Statut : non résolu
15 sujets de 16 à 30 (sur un total de 62)
  • Auteur
    Messages
  • #585473
    Qwindoo
    Modérateur
    Maître WordPress
    2861 contributions

    Le problème, c’est justement que WordPress n’a connu aucun changement radical dans sa conception depuis la première release, ce qui fait que c’est peu à peu devenu un assemblage de code un peu n’importe comment, ce qui le fait de plus en plus ressembler à … PhpBB !! (et caÿ mal :fouet: )

    Programmer Orienté Objet ne veut pas (forcément) dire n’utiliser fanatiquement que des classes ! Ce genre de conception se retrouve justement dans LifeType (je dirais même que c’est un cas extrême): toute action est dispersée dans de multiples fichiers, ce qui enlève tous les avantages qu’elle était censé apporter au développeur et en particulier :

    ** Lenteur extrême due aux multiples instanciations des différentes classes (même si toutes ne sont bien évidemment pas instanciées en même temps, je dirais qu’il y en a une bonne trentaine qui tournent en même temps pour chaque page appelée par un visiteur)
    ** Difficulté de maintenir le code étant donné la multitude de fichiers (quoi qu’en disent les puristes, pour moi le fait de partitionner à ce point son application n’aide pas au développement et aux mises à jour)

    AmO wrote:
    A ce sujet vous saviez que Google est codé à 90% en Python ?

    Oui, en particulier tout ce qui concerne la section d’aide 😉

    AmO wrote:
    En passant Lifetype et le moteur de template Smarty… c’est pas vraiment une référence… très loin même !

    C’est clair 😕 😕 😕

    P.S: AmO, pourrais-tu demander à ton expert ès PHP s’il peut se pencher 2 secondes sur mon problème de preg_replace ? 😇 :D

    #585474
    AmO
    Participant
    Maître WordPress
    4447 contributions
    MS-DOS_1991 wrote:
    Le problème, c’est justement que WordPress n’a connu aucun changement radical dans sa conception depuis la première release, ce qui fait que c’est peu à peu devenu un assemblage de code un peu n’importe comment, ce qui le fait de plus en plus ressembler à … PhpBB !! (et caÿ mal :fouet: )

    Programmer Orienté Objet ne veut pas (forcément) dire n’utiliser fanatiquement que des classes ! Ce genre de conception se retrouve justement dans LifeType (je dirais même que c’est un cas extrême): toute action est dispersée dans de multiples fichiers, ce qui enlève tous les avantages qu’elle était censé apporter au développeur et en particulier :

    ** Lenteur extrême due aux multiples instanciations des différentes classes (même si toutes ne sont bien évidemment pas instanciées en même temps, je dirais qu’il y en a une bonne trentaine qui tournent en même temps pour chaque page appelée par un visiteur)
    ** Difficulté de maintenir le code étant donné la multitude de fichiers (quoi qu’en disent les puristes, pour moi le fait de partitionner à ce point son application n’aide pas au développement et aux mises à jour)

    AmO wrote:
    A ce sujet vous saviez que Google est codé à 90% en Python ?

    Oui, en particulier tout ce qui concerne la section d’aide 😉

    AmO wrote:
    En passant Lifetype et le moteur de template Smarty… c’est pas vraiment une référence… très loin même !

    C’est clair 😕 😕 😕

    P.S: AmO, pourrais-tu demander à ton expert ès PHP s’il peut se pencher 2 secondes sur mon problème de preg_replace ? 😇 :D

    La difficulté d’un projet comme WordPress est de faire évoluer le produit sans pour autant perdre la compatibilité avec la gamme de plugins et des thèmes existantes 🙂

    Je ne parlais pas spécialement des classes, meme si ca en fait parti, la modelisation objet passe logiquement par l’utilisation des classes, interfaces, etc 🙂

    Edit : la comparaison à phpBB est peu flatteuse…

    Expose ton problème dans le bar 🙂
    Tu auras peut etre des réponses 🙂 j’enverrai mes experts sur le sujet 😉

    #585475
    Qwindoo
    Modérateur
    Maître WordPress
    2861 contributions

    Comparaison peu flatteuse, certes, mais avoue qu’objectivement WP s’en rapproche un peu quand même, au moins en termes de temps d’exécution et de nombre de requêtes SQL par page (sans plugins) 😕
    Surtout qu’il suffirait de pas grand chose pour l’optimiser un maximum (par exemple virer les requêtes qui ne ramènent qu’un champ à chaque fois comme l’a dit ccvddt)

    Attention ! J’aime beaucoup WordPress et je le préfère de loin à Dotclear 😉

    P.S: Je vais de ce pas au bar :D

    #585476
    AmO
    Participant
    Maître WordPress
    4447 contributions

    Je suis d’accord… sur ce point… pour moi les bloginfo() devrait etre dans un fichier de configuration…

    #585477
    LH
    Membre
    Chevalier WordPress
    372 contributions

    Salut,

    En lisant ton post, on a l’impression que tout devrait être parfait dans ce monde… et aussi fait selon ta vision, tes intérêts et tes compétences. N’oublie pas que WordPress est en Open Source et que tout le monde n’est pas comme toi.
    Il y a plein de choses à améliorer dans WordPress, c’est sûr.
    Par contre, la plupart de tes arguments ne tiennent pas la route ou relèvent du débutant en programmation!

    cdvddt wrote:
    o Utilisation a outrance de fonctions pour chaque champ,
    dépendant d’un contexte scrict d’execution et de variables
    globales le fameux ‘The_Loop’, la ou la programmation object
    serait bien plus légere et souple.
    Pourquoi reinventer une semantique lourde avec ces
    concept fumeux de ‘tags’ ?

    Ou est l’utilite d’ecrire

    while(the_post()) {

    the_title();

    }

    au lieu de :

    foreach($posts as post) {

    echo $post->title;

    }

    Les fonctions, c’est le truc de base en programmation.
    C’est le premier point de modularité d’un programme.
    Par exemple, le jour où tu auras envie que the_title() retourne _e($post->title); au lieu de $post->title;
    Tu modifieras juste le code de ta fonction et les N appels dans ton code seront mis à jour.
    Alors que si tu code ‘en dur’, tu seras obligé de faire la modif partout!
    C’est d’autant plus important avec le système de plugin, vu que tu si Autommatic fait une modif dans son code, il faut que les milliers de plugin qui utlisent leur API continuent de marcher correctement.
    Jamais, on utilise des accès directs pour un programme qui se veut évolutif et modulaire !!!
    Ce serait une erreur énorme de conception.

    cdvddt wrote:
    o Melange de fonctions d’affichage et de fonction remvoyant une valeur
    sans aucnue uniformite dans les options :
    A quoi sert t’il de developper une fonction affichant un truc et une autre
    la renvoyant. php fournit des fonctions pour l’affichage …
    est equivalent a

    Parce WordPress s’adresse à des gens qui comprennent l’anglais et pas trop le php.
    Et aussi parce WordPress s’adresse à des gens qui comprennent le php autant que l’anglais.
    Suivant ce dont tu as besoin tu utilises l’un ou l’autre!
    C’est sur que pour l’une ou l’autre catégorie d’utilisateur, ça fait du code en trop, mais les serveurs web sont maintenant assez costauds pour gérer tout ça.

    cdvddt wrote:
    o Soupe de mélange entre presentationet contenu.
    Pourquoi diable la fonction list_cats s’occupe t’elle de formattage ?
    Et si je veux pas de liste dans des

  • ? Je developpe un neime
    plugin bancal pour faire une copie personnalisee de cette fonction ?
    Une liste d’objects bien faits feriaent l’affaire, je sais faire une boucle :
    $post->getCategories()
    ou toutes les categories
    $wp->allCategories();
    Et un moyen de descendre dedans recursivement, genre
    $cat->getChildCats();

Tu sais peut-être faire une boucle, mais plein d’autres utilisateurs ne savent pas.
Regarde un peu le type de questions sur ce forum…
WordPress n’a pas été fait que pour toi.

cdvddt wrote:
o Passage de parametres farfelus.
J’ai jamais compris pourquoi il fallait passer
les parametres avec une chaine occulte genre « addchild=1&toto=truc »
php gere les passage de parametres optionnels et les parametres par defaut.

Tu connais les URLs et les Query String ?
Les paramètres que gère PHP viennent de l’utilisateur qui communique de son navigateur au serveur par des URLs et en Query String…
Ca permet d’utiliser directement les Query Strings sans avoir à coder un parser… C’est un gain de temps, si, si…

cdvddt wrote:
o Les globales en folies :
La gestion de variables globales en php est une horreur, et son mecanisme
va a l’encontre des choix de tous les autres langages de programmation.
Pourquoi ne pas tout regrouper dans un unique object contenant tous
les object ‘contextuels’ nexcessaire a l’affichage de chaque page :
genre
$wp->
/* Des parametres globaux */
blogTitle
rssEntriesURL
rssCommentsURL
….
allPages (liste des pages)
allCategories (liste des categories)
recentPosts (liste d’object post)

/* Les information sur le conetnu courant a afficher*/
currentEntries (list des posts/pages selectionnees)
context (contexte d’affichage : soit un unique post ()single, ou une categories, des mots clefs de recherche, etc)
currPageIdx
NbPages (pour la pagination)

Le tout avec une utilisation intelligente de la programmtion object
pour se debarrasser de ce fouilli de fonctions inutiles.

Encore une fois, même si tu fais des objets, il faudra faire des méthodes !
C’est une erreur de conception de laisser les variables en accès direct.

Autrement, WordPress se veut pour le moment compatible avec PHP4, qui n’offre qu’un programmation orientée objet assez limitée (tous les attributs sont ‘public’, pas de ‘protected’ ou ‘private’).
En faisant un petit effort de souplesse d’esprit, ça revient donc strictement au même d’écrire $wp_blogTitle que $wp->blogTitle, pour les variables globales. (Au niveau exécution, c’est même plus rapide sans objet…)
Il faut attendre que WordPress passe complètement à PHP5 pour avoir beaucoup plus de code objet qui en vaille la peine.

cdvddt wrote:
Tout ca fait que le developpement de themes sous WordPress est lourd
et sale : C’est une suite de bidouillages tordus pour contourner
de gros problemes de conception.

Voila,
Qu’en pensez vous ? Par ou commencer pour proposer une refonte en ce sens
du code de wordpress (je veux bien aider).

Raphael

Il n’y a pas de programme parfait; ce sont juste des outils pour faire ce dont tu as besoin.
WordPress est peut-être lourd, mais son framework essaye de laisser le plus de souplesse possible.
Forcément, à un moment ça coince et il faut aller dans la bidouille.

De tout ton post, ce qui en ressort, c’est que tu as l’air d’avoir des notions plutôt ‘théoriques’ sur la programmation !

Il y a plein d’autres outils de blog et conçus ‘orienté-objet’, si tu veux partir sur des bases ‘plus saines’, tu n’as qu’à les faire évoluer pour les rendre ‘meilleurs’ que WordPress. Alors ne t’inquiète pas, tout le monde utilisera ton logiciel. (Le monde de l’open source est assez Darwinien…)
Mais si tu t’es attaché un peu à WordPress (malgré toutes tes doléances), je te conseille de préparer la migration vers PHP5.

Have Fun.