Je vais sortir du troupeau pour cette fois. (Editer 7 ans plus tard : Je ne suis plus une voix isolée sur ce sujet, il y a un mouvement de codage entier pour faire exactement cela, appelé "Programmation fonctionnelle"). et fournir un point de vue alternatif :
Ne jamais créer de classes. Utilisez toujours des fonctions.
Edit : La recherche a montré à plusieurs reprises que les classes sont une méthode de programmation dépassée. Presque tous les documents de recherche sur le sujet se rangent du côté de la programmation fonctionnelle plutôt que de la programmation orientée objet.
La dépendance à l'égard des classes a une tendance significative à amener les codeurs à créer un code gonflé et lent. Les classes qui circulent (puisqu'elles sont des objets) nécessitent beaucoup plus de puissance de calcul que l'appel d'une fonction et le passage d'une chaîne ou deux. Des conventions de nommage appropriées pour les fonctions peuvent faire à peu près tout ce que la création d'une classe peut faire, avec une fraction seulement de la surcharge et une meilleure lisibilité du code.
Cela ne veut pas dire que vous ne devez pas apprendre à comprendre les cours. Si vous codez avec d'autres, les gens les utiliseront tout le temps et vous devrez savoir comment jongler avec ces classes. Écrire votre code pour qu'il repose sur des fonctions signifie que le code sera plus petit, plus rapide et plus lisible. J'ai vu d'énormes sites écrits en n'utilisant que des fonctions qui étaient vifs et rapides, et j'ai vu de minuscules sites aux fonctionnalités minimales qui s'appuyaient fortement sur des classes et se cassaient constamment. (Lorsque vous avez des classes qui étendent des classes qui contiennent des classes comme partie de leurs classes, vous savez que vous avez perdu tout semblant de maintenabilité facile).
En fin de compte, toutes les données que vous souhaitez transmettre peuvent être facilement traitées par les types de données existants.
Les classes ont été créées comme une béquille mentale et n'apportent rien. réel et le code trop compliqué qu'ils ont tendance à créer va à l'encontre de l'intérêt de cette béquille à long terme.
Edit : Mise à jour 7 ans plus tard... Récemment, un nouveau mouvement dans le codage a validé ce point exact que j'ai fait. Il s'agit du mouvement visant à remplacer la programmation orientée objet (POO) par la programmation fonctionnelle, et il est basé sur un grand nombre des mêmes problèmes que la POO. Il y a beaucoup de documents de recherche qui montrent les avantages de la programmation fonctionnelle par rapport à la programmation orientée objet. En plus des points que j'ai mentionnés, elle rend la réutilisation du code beaucoup plus facile, la correction des bogues et les tests unitaires plus rapides et plus faciles. Honnêtement, avec le grand nombre d'avantages, la seule raison de préférer la POO à la programmation fonctionnelle est la compatibilité avec le code existant qui n'a pas encore été mis à jour.