Salut, si le code est rangé intelligemment, il ne devrait y avoir aucun problème la suite, on ne devrait pas être bloqué le jour où on décide de faire modif à un endroit mais pas à d'autres. Si c'est le cas, c'est qu'une partie du code qui a été factorisée n'aurait pas dû l'être, et ça peut aussi révéler un problème structurel.
Tu peux très bien factoriser une partie du code responsable de l'affichage des stats d'un pnj et d'un joueur : code responsable de la récupération des données, de leur traitement... Et pour leur affichage, on peut envisager de partir sur le même fichier template ; rien n'empêchera par la suite de dupliquer le fichier et de le différencier de l'autre. Ce schéma s'apparente à une structure MVC. Pour faire plus simple, dans ton exemple de la page stats, tout ce qui pourrait changer c'est l'affichage des données, qui n'est qu'une partie du problème. Donc c'est cette partie là qu'il ne faut pas factoriser. Pour le reste, si un joueur et un npc sont identiques, unifier le code dans des fonctions prend tout son sens.
L'utilisation des templates permet de s'affranchir de ce genre de problèmes, je t'invite à les utiliser si c'est pas encore le cas, quelque soit la structure de ton jeu / site / programme .
Par exemple pour ton problème, on peut imaginer 4 fichiers templates :
- fichier "stats" => Affiche les stats communes aux joueurs et aux npc
- fichier "liste_amis" => Affiche uniquement la liste des amis d'un joueur
- fichier "joueur_stats" => Affiche les stats du joueur, fait appel au fichier stats et au fichier liste_amis
- fichier "pnj_stats" => Affiche les stats du npc, fait uniquement appel au fichier stats,.
Tu as ainsi du code générique pour l'affichage des stats, mais tu es totalement libre d'afficher ce que tu veux pour les pnj et les joueurs.
A l'extrême, ton raisonnement s'oppose à la factorisation du code et à l'utilisation des fonctions. Or, la possibilité de créer des fonctions a une utilité indéniable, je pense que tu es d'accord avec moi sur ce point... Le tout, c'est d'utiliser des fonctions génériques pour ce qui est réellement générique.
Tu peux très bien factoriser une partie du code responsable de l'affichage des stats d'un pnj et d'un joueur : code responsable de la récupération des données, de leur traitement... Et pour leur affichage, on peut envisager de partir sur le même fichier template ; rien n'empêchera par la suite de dupliquer le fichier et de le différencier de l'autre. Ce schéma s'apparente à une structure MVC. Pour faire plus simple, dans ton exemple de la page stats, tout ce qui pourrait changer c'est l'affichage des données, qui n'est qu'une partie du problème. Donc c'est cette partie là qu'il ne faut pas factoriser. Pour le reste, si un joueur et un npc sont identiques, unifier le code dans des fonctions prend tout son sens.
L'utilisation des templates permet de s'affranchir de ce genre de problèmes, je t'invite à les utiliser si c'est pas encore le cas, quelque soit la structure de ton jeu / site / programme .
Par exemple pour ton problème, on peut imaginer 4 fichiers templates :
- fichier "stats" => Affiche les stats communes aux joueurs et aux npc
- fichier "liste_amis" => Affiche uniquement la liste des amis d'un joueur
- fichier "joueur_stats" => Affiche les stats du joueur, fait appel au fichier stats et au fichier liste_amis
- fichier "pnj_stats" => Affiche les stats du npc, fait uniquement appel au fichier stats,.
Tu as ainsi du code générique pour l'affichage des stats, mais tu es totalement libre d'afficher ce que tu veux pour les pnj et les joueurs.
A l'extrême, ton raisonnement s'oppose à la factorisation du code et à l'utilisation des fonctions. Or, la possibilité de créer des fonctions a une utilité indéniable, je pense que tu es d'accord avec moi sur ce point... Le tout, c'est d'utiliser des fonctions génériques pour ce qui est réellement générique.