• # Très rapide review

    Posté par . En réponse au journal Petit Framework de jeu 2d en C++. Évalué à 10.

    J'ai jeté un coup d'oeil au code (très vite) et voici quelques retours:

    • JAMAIS de using namespace xxx dans un header, JAMAIS, JAMAIS! Ça casse l'intérêt principal d'avoir des namespace
    • L'encapsulation est brisée un peu partout via des getter (non constant) renvoyant des pointers sur des choses internes de tes classes. À quoi ça sert de faire de l'encapsulation si tu renvoie un pointeur nue que n'importe qui peut modifier et briser ainsi tous les invariants ? Pour la grande majorité, ces getters devraient être marqués const.
    • De manière plus générale, ton API manque beaucoup de modifiers const.
    • Les pointeurs nus, c'est souvent mal. On préfère utiliser au maximum les références quand c'est possible, ou un pointeur intelligent à défaut.
    • Le pattern singleton, c'est un peu le pattern sur-utilisé et presque toujours mal. Cf http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons pour une discussion sur les singletons.
    • Il faut utiliser les listes d'initialisation dans les constructeurs
    • Les objets "un peu gros" doivent (en général) être passé par référence constante plutôt que par valeur
    • Quand tu manipule des pointeurs, gare aux constructeurs par copie, et n'oublie pas d'avoir un destructeur qui libère correctement les ressources (bon évidemment pour l'instant, il n'y a quasiment que des singletons).

    Beaucoup d'autres choses à dire encore, mais il faudrait que je regarde de plus prêt.