Gehirn kann das Verständnis von Designmustern für das Entwerfen einer Echtzeitanwendung nicht verstehen

StackOverflow https://stackoverflow.com/questions/2342474

Frage

Ich habe mir die Aufgabe gemacht, eine Echtzeit -MIDI -Anwendung zu implementieren. Wie alle anderen Software, die ich bisher geschrieben habe, begann ich mit dem Codieren. Ich habe eine winzige GUI (GTK2) -Anwendung implementiert, die den Transportzustand der steuern kann Jack Audio Connection Kit und seine Kunden.

Ich habe noch nie eine Echtzeitanwendung geschrieben und immer nur ein Multi-Thread-Programm geschrieben. Beide Details sind zusammen, um dies zu einer erheblichen Herausforderung für mich zu machen, da die bisherige Software, die ich bisher geschrieben habe, nicht erforderlich bin, um sie zuerst zu entwerfen. Ich habe nur gelegentlich einen Stift und Papier benötigt, um die Dinge auszuarbeiten.

Dieses Projekt lässt mich jedoch nicht durch Codierung fortfahren. Aber ich weiß so gut wie nichts über Software -Design, ich werde selbst unterrichtet (Abzüge eines 2 -jährigen Computerstudienkurses Mitte der neunziger Jahre). Ich habe immer schrittweise gearbeitet, etwas zum Laufen gebracht und dann darauf aufgebaut.

Während meiner Forschung bin ich auf das Modell der Modellansicht Controller gestoßen, aber ich finde es wirklich schwierig, nicht über Details nachzudenken, und kann keine Grundlage finden, auf die ich aufbauen kann, ohne Probleme zu finden, die alles zusammenfassen.

Ich brauche Ratschläge, um diesen Block zu überwinden. Ich muss aufhören, Ablenkungen zu finden, die meinen Gedankengang verlieren. Dies ist eine der Ablenkungen. Wie komme ich an diesem Block vorbei?

War es hilfreich?

Lösung

In sehr breiter Hinsicht ist "Software -Design" der Prozess, in dem Sie das Problem in einer Reihe von Modul entgegennehmen und angeben, was jedes Modulverantwortung liegt und wie jedes Modul mit den anderen Modulen kommunizieren soll (wenn überhaupt).

Es gibt verschiedene Möglichkeiten, mit dieser Aktivität fortzufahren. Wenn man bedenkt, dass dies Ihr erster Versuch ist, halten Sie die Dinge so einfach wie möglich: Schnappen Sie sich ein paar Papierblätter und einen Stift.

Erster Schritt: Schreiben Sie eine Liste von Aufgaben auf, die Ihre neue Anwendung ausführen kann. Versuchen Sie danach, die Aufgaben in verschiedenen Sätzen zu gruppieren, von denen Sie glauben, dass sie logisch zusammen sind.

Suchen Sie für jede Teilmenge einen Namen, schreiben Sie ihn auf leeres Blatt (eine für die Teilmenge) und beschreiben Sie, was das Modul in etwas detaillierter tut, einschließlich der Art von Daten, an der es arbeiten und/oder mit anderen austauschen sollte. Jeder von diesen ist ein "Moduldesignpapier"

Zeichnen Sie auf einem anderen leeren Blatt eine Box für jede Teilmenge, kennzeichnen Sie sie mit dem eigentlichen Namen und versuchen Sie, Pfeile von einem Feld zum anderen zu zeichnen. Jeder Pfeil sollte einen Namen haben und stellt einen Ihrer Modul dar, der ein anderes aufruft. Nennen wir dies Ihr Modul "Schnittstellendesignpapier".

Überprüfen Sie die Beschreibung Ihrer Module mit den Schnittstellen, die sie anderen Modulen anbieten sollten, und prüfen Sie, ob dies eine Änderung der ursprünglichen Aufgabenliste erfordert und wie sich dies auf die von ihnen verwalteten Daten auswirkt.

Module können iterativ unterteilt werden, wenn sie für Sie zu komplex/groß aussehen. Zeichnen Sie einfach ein anderes Schnittstellen -Designpapier, wenn Sie ein Modul in Submodules teilen, und denken Sie daran, dass die Summe der Submodules in der Lage sein sollte, alle Aufgaben zu erledigen, die Sie ursprünglich für Ihr Modul vorgestellt hatten, und in der Lage sein, die Anfragen des Restes zu beantworten das System.

Siehe auch CRC -Karten Weitere Details.

Andere Tipps

In diesem Thread gibt es einige Geigen, die gerade in ein Plugin umgewandelt wurden, das sich ziemlich einfach an Ihre Situation anpassen würde,

Benutzerdefinierte Dropdown-Panel mit jQuery

edit: Wird angezeigt, dass die Demos zum Erstellen des Dropdowns von einer Auswahl von einem ausgewählten POST ausgeführt, den Beitrag von der Position entfernt und diese Geige zurücksetzen

http://jsfiddle.net/6zcrk/

Eine Möglichkeit besteht darin, Ihre Anforderungen zu besprechen und ein Design mit jemandem zu senken, der mit DesignPattern und vertraut ist Entwerfen Software. Während dieses Prozesses konnten Sie die Konzepte des angewandten Designs erörtern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top