Ich beherrsche inzwischen einige Sprachen ziemlich gut, aber es scheint mir schwer zu fallen, den besten Weg zu finden, um bestimmte Probleme zu lösen. Welche Möglichkeiten gibt es, um bei der eigentlichen Problemlösung des Programmierens besser zu werden?
Antworten
Zu viele Anzeigen?Hier einige Hilfsmittel, die ich in der Vergangenheit verwendet habe, um ein bestimmtes Problem und seine Lösung zu verstehen. Ich verwende sie heute nicht immer, aber sie haben mir geholfen zu lernen, wie ich ein Problem aufschlüsseln und eine Lösung finden kann.
-
Klasse-Verantwortung-Zusammenarbeit n (CRC) Karten Eine Karte pro Klasse, auf der die Zuständigkeit der Klasse und die anderen Klassen, mit denen sie zusammenarbeitet, angegeben sind. Mit Hilfe der Karten können Sie Ihren Entwurf für die Lösung entwerfen und sehen, wo Sie zu viel Kopplung oder zu viel Verantwortung haben. Sie ermöglichen es Ihnen, über den Entwurf nachzudenken, bevor Sie sich an den Code machen.
-
Anwendungsfälle Entweder echte strukturierte Anwendungsfälle, die die Interaktion des Benutzers mit dem System beschreiben, oder noch kürzere Geschichten oder Story Cards. Ich verwende immer noch Geschichten, obwohl ich sie stattdessen in einem Wiki festhalte. So kann man die Interaktion mit dem System auf informelle Weise erfassen. Stories sind im Grunde genommen Platzhalter für Gespräche, die Sie mit dem Kunden darüber führen müssen, was getan werden soll. Anhand der gesammelten Stories erhalten Sie einen Überblick über die allgemeine Absicht des Codes. Sie können auch sehen, wie Dinge zusammenwirken und was mit anderen Dingen funktioniert. Dies ist der eigentliche Beginn des Entwurfs.
-
UML-Diagramme - insbesondere Interaktionsdiagramme Eine Zeit lang habe ich diese sehr häufig verwendet. Es war sehr hilfreich, um zu sehen, wie die Dinge unter der Haube tatsächlich zusammenarbeiten. Ich werde immer noch informell einige komplexe Interaktionen in Diagrammen darstellen, um sicherzustellen, dass ich nichts Wichtiges übersehe. Das Durcharbeiten dieser Diagramme hat mir wirklich geholfen, darüber nachzudenken, wie meine Objekte interagieren, und jetzt ist es mir quasi in Fleisch und Blut übergegangen, in Form von Interaktionen zu denken.
-
Klassendiagramme - eine sehr detaillierte Ansicht des Codes. Diese ermöglichen es Ihnen, Ihren Code strukturell zu sehen, insbesondere wenn Sie das Diagramm in Komponenten oder Architekturschichten aufschlüsseln können. Meistens verwende ich diese Diagramme jetzt, um anderen Leuten den Code zu erklären, wenn es nötig ist. Für den Anfang sind diese Diagramme jedoch eine ziemlich gute Visualisierung, wenn man mit der Vogelperspektive des Codes zu kämpfen hat.
Der beste Rat, den ich Ihnen geben kann, ist, die "Regeln" zu befolgen, bis Sie wirklich wissen, was vor sich geht. Sobald Sie das Gefühl haben, dass Sie besser verstehen, was sie bewirken, können Sie sie nutzen oder nicht, oder Sie können sie so ändern, dass Sie nur das behalten, was hilfreich ist, und das andere weglassen.
- See previous answers
- Weitere Antworten anzeigen