Heute haben einer meiner Kollegen und ich eine Debatte über "Sollten wir die Spezifikationsdokumente in ein Quellcodeverwaltungssystem wie SVN einfügen?". Meiner Meinung nach sollte es sein. Alles, was mit der Entwicklung eines Projekts zu tun hat, sollte sorgfältig mit dem Quellcodeverwaltungssystem kontrolliert werden. Ist es ein falsches Konzept im Softwareentwicklungsprozess?
version-control
specifications
Edison Chuang
quelle
quelle
Bei einem Festplattenspeicher von ein paar Cent pro Gigabyte und Monat gibt es keinen guten Grund, keine Dokumente in das Quellcodeverwaltungssystem zu stellen, und dies ist wahrscheinlich nützlich. Meine persönliche Präferenz ist es, Dokumente mit Inline-Markup zu schreiben, z. B. Wiki-Markup oder DocBook . Dies ermöglicht die Verwendung leistungsstarker Tools zum Vergleichen und Überarbeiten von Dokumenten.
quelle
Die Versionierung von Spezifikationsdokumenten ist definitiv ein würdiges Ziel.
Sind Ihre Spezifikationsdokumente jedoch nur in Textform und in einer Nur- Text-Datei ? Wenn ja, kann dies eine gute Lösung sein.
Wenn nicht, ist die Quellcodeverwaltung wahrscheinlich nicht der richtige Ort für sie - die Quellcodeverwaltung ist schlecht für Binärdateien .
Normalerweise eignen sich Nur-Text-Dateien weder zum Formatieren noch zum schnellen Anzeigen. Daher ist ein Wiki mit Versionierung wahrscheinlich die bessere Idee.
quelle
Alle Dokumente sollten in irgendeiner Form archiviert sein (vorzugsweise mit Revisionskontrollen).
Versionsverwaltungssysteme sind eine Lösung. Normalerweise sind diese Systeme jedoch für Nur-Text-Dokumente ausgelegt. Daher passen Dinge wie Word- oder RTF-Dokumente usw. nicht so gut (insbesondere, wenn Sie versuchen, verschiedene Versionen zu vergleichen).
Es gibt jedoch auch andere Lösungen, die speziell für Dokumente entwickelt wurden. SharePoint fällt mir ein, aber ich bin mir sicher, dass es noch andere gibt.
quelle
Bestimmt. Das Problem, dass Dokumente als Binärdateien gespeichert werden (z. B. Word-Dokumente), ist ärgerlich. Eine gute Problemumgehung ist, wenn Sie eines der Tortoise-Tools verwenden (ich habe SVN und Mercurial ausprobiert), können Sie "Visual Diff" auswählen, mit dem Sie docdiff auswählen können. Mit docdiff können Sie alle Änderungen mit Farben und Sachen sehen :-). Der Hauptnachteil besteht darin, dass jedes Mal, wenn Sie eine Änderung vornehmen, das gesamte Dokument erneut festgeschrieben wird (nicht nur die Änderung). Aber wenn man bedenkt, dass Textdokumente normalerweise nicht sehr groß sind und der Speicherplatz wahrscheinlich nicht Ihr Hauptproblem ist, ist dies kein Problem.
Ich bin sicher, Sie können docdiff ohne Tortoise verwenden. Ich habe es nur nicht ausprobiert.
quelle
Es gibt einen alternativen Ansatz, den Sie diskutieren sollten: BDD
Bitte berücksichtigen Sie die verhaltensgesteuerte Entwicklung mit ausführbaren Spezifikationen. Ihre Spezifikationen werden in eine Reihe von Given - When - Then-Anweisungen vereinfacht, die in Textdateien gespeichert sind. Ein BDD-Tool wie Cucumber oder SpecFlow konvertiert diese Textdateien in ausführbare Tests, die Ihr Build-Tool ausführen kann.
Gurke: http://cukes.info/ - BDD für Ruby
SpecFlow: http://www.specflow.org/ - BDD für .Net
Eine schnelle Demo des Workflows mit einem Tool wie SpecFlow finden Sie in Rob Conerys SpecFlow-Anleitung: http://tekpub.com/view/concepts/5
Jetzt versionieren Sie nicht nur Ihren Code, sondern auch Ihre Spezifikationen, und Ihr Continuous Integration-Tool (denken Sie an TeamCity, CruiseControl, Hudson usw.) erzwingt, dass alle Spezifikationen für JEDEN Build noch gültig sind ... Ist das für Sie wertvoll?
quelle