Angenommen, Sie müssen eine mittelgroße Software vollständig selbst entwickeln. Als ob es ein persönliches Projekt wäre, das Sie durchführen möchten.
Welche Methoden / Tools würden Sie verwenden, um zu definieren, was entwickelt, gelernt und eine globale Vorstellung davon sein muss, was das System in seinen Details ist?
Grundsätzlich, um sich auf dem Laufenden zu halten und sich unterwegs nicht zu verlaufen.
tools
methodology
Cassio
quelle
quelle
Antworten:
Normalerweise benutze ich nur Mercurial. Wenn ich eine Funktion möchte, füge ich sie einfach hinzu und wenn ich sie nicht mehr möchte, entferne ich sie einfach. Außerdem versuche ich, meine Commit-Kommentare gut zu schreiben, damit ich mich nicht verliere.
quelle
Es kann leicht außerhalb der Reichweite Ihrer Aufmerksamkeit wachsen . Nicht die Spannweite , die Breite .
Es ist schwer, zu viele Elemente gleichzeitig zu berücksichtigen .
Und dann ... wird es eine Regressionsachterbahn .
Alles, was Sie tun, bricht frühere Dinge und das Zurückrollen hilft nicht.
Um dies zu vermeiden, sollten Sie aggressiv auf Regression testen .
Automatisch. (Das kannst du sonst nicht machen und gesund bleiben)
Das Testen wird Ihre Energien stark belasten.
Wenn es bei dem Projekt nur um die Benutzeroberfläche geht ... stoßen Sie wahrscheinlich an:
Andere Probleme:
(Es existiert eigentlich nicht als Bedingung, es ist eine beliebte Fehlbezeichnung, die Menschen an ihre mangelnde Disziplin knüpfen. )
Wenn Sie es gewohnt sind und eine Art Versionskontrolle lieben , verwenden Sie sie. Wenn Sie jetzt anfangen
zu lernen, werden Sie abgelenkt .
Wie bereits erwähnt, kann es hilfreich sein, Ihre Ideen zu entwerfen .
Ich habe Freemind , CMaps , XMind , yEd , graphviz und ... etwas anderes verwendet.
XMind ist weniger sinnlos:
Ein Bleistift und ein Notizbuch punkten immer noch ziemlich gut in meinen Top Ten:
Ich mache viele kleine erklärende Zeichnungen.
Als letzten Ausweg können Sie Powerpoints immer für Ihren eigenen Verbrauch vorbereiten :)
quelle
Literate Programming.
Wenn Sie eine Arbeit (oder ein Buch, einen Bericht oder ein Dokument) über Ihr Projekt schreiben, bleiben Sie in der Regel bei der Arbeit.
Beginnen Sie mit einem Überblick über Ihre Aktivitäten: Anwendungsfallübersicht, Version 1, Version 2, Version n. Schreiben Sie eine Zusammenfassung der Anwendungsfälle auf. Priorisieren Sie sie. Bring sie in Sprints und Releases.
Jede Version verfügt über eine Anwendungsfallansicht, eine logische Ansicht, eine Verarbeitungsansicht, eine Komponentenansicht und eine Bereitstellungsansicht. Geben Sie für den Sprint die Anwendungsfälle an. Veröffentlichen Sie das HTML-Dokument, um zu zeigen, was Sie tun werden. Schreiben Sie das logische Modell, nachdem Sie die Anwendungsfälle für den Sprint detailliert beschrieben haben. Schreiben Sie Code, um dies zu unterstützen. Schreiben Sie die Verarbeitungsdokumentation. Schreiben Sie Code, um dies zu unterstützen. Module erstellen. Schreiben Sie die Dokumentation zur Komponentenansicht. Schreiben Sie die Tests und die dazugehörige Dokumentation. Veröffentlichen Sie die Sprint-Ergebnisse als HTML-Dokument.
Wiederholen Sie dies für jeden Sprint. Überprüfen und bearbeiten Sie Ihr Dokument von Zeit zu Zeit.
Es gibt viele, viele gebildete Programmierwerkzeuge. Sie können Ihnen dabei helfen, eine Quelle zu erstellen, die die Dokumentation und den Code aus einem einzigen Text erstellt.
Ich benutze Sphinx und PyLit, aber das liegt daran , dass ich ein Python-Programmierer bin.
quelle
Wenn Sie Ihre Ideen aufschreiben möchten, können Sie ein Mind-Mapping-Tool wie XMind oder FreeMind verwenden . Beide Tools sind kostenlos (für Einzelpersonen für XMind) und eignen sich hervorragend für das Brainstorming und die Organisation Ihrer Ideen. Das Besondere an diesen Tools ist nur, dass Sie weniger Chancen haben, etwas zu vergessen.
Ich persönlich habe Freemind verwendet, bevor ich mein letztes persönliches Projekt gestartet habe. Ich hatte keine besondere Methodik per se . Ich habe meine Ideen nur einmal pro zwei Tage in einstündigen Sitzungen dargelegt. Ich denke, dass der Abstand zwischen den Brainstorming-Sitzungen mir geholfen hat, besser zu erkennen, was falsch war, was nicht wesentlich war, aber in nachfolgenden Versionen nützlich sein könnte usw.
Bei meinem ersten Code-Commit habe ich auch die Brainstorming-Datei im Quellcode-Repository gespeichert (ich habe Bitbucket verwendet ) und sie mit meinen neuesten Ideen auf dem neuesten Stand gehalten.
quelle
Behandle es wie ein echtes Softwareprojekt (weil es eines ist). Es gibt nur wenige Dinge, die sich ändern, da die Anzahl der Entwickler eins beträgt. Sie benötigen noch eine Quellcodeverwaltung. Sie benötigen noch eine Möglichkeit, Funktionen zu organisieren, um Fehler hinzuzufügen und zu beheben. Sie benötigen weiterhin einen automatisierten Test, um sicherzustellen, dass Sie keine Regressionen im Code erstellen. Sie sollten auch eine automatische Möglichkeit haben, den Code zu kompilieren (falls erforderlich), die Tests auszuführen und die Berichte anzuzeigen.
Ich arbeite an einem persönlichen Projekt, wie Sie es beschrieben haben. Ich verwende Git, Redmine, JUnit und Jenkins, um alle von mir beschriebenen Kategorien zu erfüllen. Mein Arbeitsablauf ist:
Es ist genauso wichtig, alles verwaltet und organisiert zu halten, wie wenn es viele Entwickler gibt. Bei vielen Entwicklern müssen Sie sich organisieren, damit Informationen an alle weitergegeben werden. Wenn es nur Sie sind, haben Sie bereits alle Informationen, aber es ist schwierig, sich an jeden Teil des Systems zu erinnern. Ein verwaltetes System erleichtert es Ihnen und Sie können sich auf die jeweilige Aufgabe konzentrieren.
quelle
Werkzeuge:
Control Version System (auch wenn Sie der einzige Entwickler in Ihrer Garage oder Ihrem Heim-PC sind): GIT, Mercurial, Tourtoise
Editor mit Quellcode-Hervorhebung, auch wenn Sie eine IDE haben (Scintilla, Vim, Notepad)
Echte Tafel, Whiteboard, einige Dinge passen einfach nicht in Ihre Designer Tools-Anwendung.
Design-Tool: Rational Rose, Umbrello, (UML, ER,) Visio oder "Designer-Tools für arme Entwickler" wie Power Point, Corel Draw und Open Office Draw
Text / Quellcode Textvergleichstool, zB WinMerge
quelle
Dies hängt davon ab, wie Sie verschiedene Aufgaben unterscheiden und bearbeiten können, da Sie sich jeden einzelnen Schritt des Entwicklungsprozesses ansehen müssen.
Ich denke, Werkzeuge sind nur dann nützlich, wenn Sie bereits wissen, wie man sie verwendet, und einer der schlimmsten Fehler darin besteht, zu lernen, wie ein Werkzeug funktioniert, anstatt zu lernen, wie man damit umgeht.
Meiner Meinung nach müssen Sie zunächst aufschreiben, was die Software voraussichtlich tun wird und was nicht. Das ist ein entscheidender Punkt. Der nächste Schritt besteht darin, das endgültige System in niedrigere Subsysteme zu unterteilen, um den Bauprozess zu vereinfachen. Und zu guter Letzt müssen Sie Ihre Werkzeuge auswählen. Grundsätzlich eine gute IDE, ein VCS und ein Datenmodellierer. Sie können viele andere Tools hinzufügen, um zu helfen, aber achten Sie darauf, nicht auf dem falschen Weg zu beginnen.
Nun, der Anfang scheint nicht so attraktiv zu sein, aber der Prozess wird im Laufe der Zeit Spaß machen.
quelle