Meine zwei Cent für solche und alte Fragen
Einige Leute haben bereits erwähnt, üben und umgestalten. Ich glaube, die richtige Reihenfolge, um etwas über Muster zu lernen, ist folgende:
- Lernen Sie Test Driven Development (TDD)
- Refactoring lernen
- Muster lernen
Die meisten Leute ignorieren 1, viele glauben, dass sie 2 können, und fast jeder geht direkt für 3.
Für mich war der Schlüssel zur Verbesserung meiner Software-Kenntnisse das Erlernen von TDD. Es mag eine lange Zeit schmerzhafter und langsamer Codierung sein, aber wenn Sie zuerst Ihre Tests schreiben, denken Sie sicherlich viel über Ihren Code nach. Wenn eine Klasse zu viel Heizplatte benötigt oder leicht bricht, bemerken Sie ziemlich schnell schlechte Gerüche
Der Hauptvorteil von TDD besteht darin, dass Sie Ihre Angst vor einer Umgestaltung Ihres Codes verlieren und gezwungen sind, Klassen zu schreiben, die sehr unabhängig und zusammenhängend sind. Ohne eine Reihe guter Tests ist es einfach zu schmerzhaft, etwas zu berühren, das nicht kaputt ist. Mit dem Sicherheitsnetz werden Sie wirklich drastische Änderungen an Ihrem Code erleben. Dies ist der Moment, in dem Sie wirklich anfangen können, aus der Praxis zu lernen.
Jetzt kommt der Punkt, an dem Sie Bücher über Muster lesen müssen, und meiner Meinung nach ist es reine Zeitverschwendung, sich zu sehr anzustrengen. Ich habe Muster erst wirklich gut verstanden, nachdem ich bemerkt hatte, dass ich etwas Ähnliches getan habe, oder ich konnte das auf vorhandenen Code anwenden. Ohne die Sicherheitstests oder die Gewohnheiten des Refactorings hätte ich bis zu einem neuen Projekt gewartet. Das Problem bei der Verwendung von Mustern in einem neuen Projekt besteht darin, dass Sie nicht sehen, wie sie sich auf einen Arbeitscode auswirken oder diesen ändern. Ich habe ein Softwaremuster erst verstanden, als ich meinen Code in einen von ihnen umgestaltet habe, nie, als ich einen neuen in meinen Code eingeführt habe.