Mes deux cents pour telle et vieille question
Certaines personnes déjà mentionnées, pratiquent et refactorisent. Je crois que le bon ordre pour en savoir plus sur les modèles est le suivant:
- Apprendre le développement piloté par les tests (TDD)
- Apprenez le refactoring
- Apprenez les modèles
La plupart des gens ignorent 1, beaucoup pensent qu'ils peuvent faire 2, et presque tout le monde va droit au 3.
Pour moi, la clé pour améliorer mes compétences logicielles était d'apprendre TDD. Le codage peut être long et long, mais écrire d'abord vos tests vous fait certainement beaucoup réfléchir à votre code. Si une classe a besoin de trop de passe-partout ou se casse facilement, vous commencez à remarquer les mauvaises odeurs assez rapidement
Le principal avantage de TDD est que vous perdez votre peur de refactoriser votre code et vous forcez à écrire des classes hautement indépendantes et cohérentes. Sans un bon ensemble de tests, il est tout simplement trop douloureux de toucher quelque chose qui n'est pas cassé. Avec le filet de sécurité, vous allez vraiment vous aventurer dans des changements drastiques de votre code. C'est le moment où vous pouvez vraiment commencer à apprendre de la pratique.
Arrive maintenant le point où vous devez lire des livres sur les modèles, et à mon avis, c'est une perte de temps complète d'essayer trop dur. J'ai seulement très bien compris les modèles après avoir remarqué que j'avais fait quelque chose de similaire, ou je pouvais l'appliquer au code existant. Sans les tests de sécurité, ni les habitudes de refactoring, j'aurais attendu un nouveau projet. Le problème de l'utilisation de modèles dans un nouveau projet est que vous ne voyez pas comment ils affectent ou modifient un code de travail. Je n'ai compris un modèle de logiciel qu'une fois que j'ai refactorisé mon code dans l'un d'eux, jamais quand j'en ai introduit un nouveau dans mon code.