guten Tag
Ich würde gerne wissen, wie ihr eure Projektordner organisiert.
Ich hatte einmal einen Chef, der mir vorschlug, mich nach Kunden zu organisieren.
Projects
|
|----Customer 1
|---- A Cool Solution 1
|---- source
|---- version1.0
|---- version1.1
|---- docs
|---- analysis
|---- meetings
|---- manuals
|----Customer 2
|----Customer 3
Ein Freund von mir sagte mir, ich solle die Technik organisieren
Projects
|
|----.NET
|---- C#
|---- Customer 1
|---- A Cool Solution 1
|---- source
|---- version1.0
|---- version1.1
|---- docs
|---- analysis
|---- meetings
|---- manuals
|----Ruby
|----PHP
Und du? Haben Sie eine clevere Möglichkeit, Ihre Projektordner zu organisieren?
organization
Junior M
quelle
quelle
Antworten:
Das haben wir benutzt:
Wir verwenden diese Struktur seit Jahren für mehrere Projekte mit vielen verschiedenen Kunden und sie funktioniert sehr gut.
Es ist Ihrem ursprünglichen Vorschlag sehr ähnlich, aber wir verwenden die Versionskontrolle, um die Versionierung zu verwalten. Die Server-Repositorys tragen nicht den Namen "Kunde X - Projekt Y". Auf diese Weise können externe Auftragnehmer an einigen Projekten arbeiten, jedoch nicht auf andere zugreifen, da wir Berechtigungen im Stammverzeichnis der Versionskontrolle festlegen können.
Jeder checkt seine Arbeitskopien auf seinem (Windows) -Entwicklungscomputer nach Belieben aus und ordnet diesem Speicherort mit dem Befehl SUBST einen Laufwerksbuchstaben zu. Auf diese Weise können wir fest codierte relative Pfade in Build-Dateien usw. haben, die für alle Setups geeignet sind. So können wir zum Beispiel Links zu gemeinsam genutzten Bibliotheken haben, wenn wir dies wünschen. Wir verwenden normalerweise Links / Aliase zur Versionskontrolle, um dies zu erreichen.
Ein großer Vorteil dieser Struktur ist, dass Sie den Kundencode voneinander isolieren können. Dies ist nützlich, wenn Sie (a) regelmäßige Aktualisierungen der Quelle für Integrationszwecke senden müssen, (b) externe Auftragnehmer an ausgewählten Teilen des Codes arbeiten müssen.
Ihr zweiter Vorschlag funktioniert bei einem komplexen Projekt, das mehr als eine Technologie verwendet, nicht so gut.
quelle
Ich bin ziemlich flach:
/ Projekte
Je nach Box gibt es einige Unterschiede, aber dahinter befinden sich nur viele einzelne Ordner für Projekte. Real Deal lebt sowieso in der Quellcodeverwaltung, daher ist dies nur das vorübergehende Zuhause vor Ort.
quelle
Ich habe eine Struktur, die wie folgt aussieht:
Archives
Enthält alte Projekte, an denen ich nicht mehr arbeite.Work
enthält arbeitsbezogene Projekte.Current
ist alles aktuelle Entwicklung. Dann symlinke ich in meinem Home-VerzeichnisProjects
zu~/Developer/Projects/Current
.~/Projects
Enthält auch Symlinks zu einigen Arbeitsprojekten.quelle
Ich habe auch eine flache Struktur.
/ Projekte
Wenn Sie mit Wyatt Barnett einverstanden sind, liegt das echte Geschäft sowieso in der Quellcodeverwaltung.
Ich möchte nur hinzufügen, dass die Ordnerstruktur sowieso nichts Besonderes sein sollte, da viele IDEs ohnehin Verknüpfungen zu aktuellen Projekten / Dateien bereitstellen. Und an wie vielen Projekten arbeitet überhaupt jemand? Wirklich, nur per Definition, die jüngsten.
Außerdem füge ich ohnehin nur aktuelle Projekte in den Ordner der obersten Ebene ein. Ich archiviere alle älteren und abgeschlossenen Sachen in:
/ Projekte / Altes
oder etwas ähnliches. Ich archiviere, woran ich in der Regel nicht mehr arbeite.
quelle
In der Vergangenheit habe ich Subversion-Repositorys zum Speichern meiner Quelldokumente verwendet und mich an die "Project-Minor" -Konvention für die Organisation von Repositorys gehalten, die sowohl für große als auch für kleine Organisationen sehr gut funktioniert.
Wir würden unsere Endlagerzweige strukturieren. Tags & Trunk wie folgt:
Innerhalb des eigentlichen Quellbaums würden wir (so etwas wie) die folgende Struktur verwenden:
Die Idee war (und ist), die Struktur des Repositorys zu verwenden, um die Kommunikation zwischen dem Engineering-Team zu strukturieren. der kundenorientierte Teil des Geschäfts und verschiedene andere Stakeholder und Domain-Experten.
Übrigens: Quelldokumente, die sich in einem der "Projekt" -Verzeichnisse befinden, werden nur einmal verwendet (und verdienen Geld). Dokumente, die sich in einem der "productLines" -Verzeichnisse befinden, verdienen so viel Geld, wie ein Produkt aus dieser bestimmten Zeile verkauft wird. Dokumente, die sich in einem der "Bibliotheks" -Verzeichnisse befinden, verdienen so viel Geld, wie Produkte, die sie verwenden, verkauft werden.
Der Begriff der Amortisation von Kosten wird explizit erwähnt, und es wird eine Unterstützung für die Wiederverwendung von Quelldokumenten im gesamten Unternehmen geschaffen.
In einer idealen Welt würde ein Teil des Unternehmens, der Kunden gegenübersteht, diese Struktur auch zum Speichern von Präsentationen und anderen Verkaufssicherheiten verwenden, damit Entwickler direkt neben dem relevanten Produktverzeichnis sehen können, welche Kundenerwartungen entstanden sind, und Kollegen, die Kunden gegenüberstehen, die Entwicklung verfolgen können Fortschritte bei den Funktionen und Produkten, die sie verkaufen.
Dies bedeutet auch, dass es eine gemeinsame Struktur gibt, über die unsere Build-Automatisierungstools arbeiten können. (Unsere Build-Skripte durchsuchen den Quellbaum nach "Build" -Ordnern, in denen sie Konfigurationsdateien finden, die angeben, wie die einzelnen Komponenten erstellt werden sollen. Ein ähnlicher Prozess wird für die Dokumentationserstellung und das Testen ausgeführt.) Wiederum könnten in einer idealen Welt die Website des Unternehmens und andere Marketingmaterialien auf die gleiche Weise erstellt werden.
Als eine letzte Anmerkung; Das kontinuierliche Integrationssystem weiß, dass es einen Build auslösen muss. statische Analyse; Rauch- und Einheitentestlauf bei jeder Änderung des Trunks, bei jeder Änderung eines "Tag" -Zweigs und bei jeder Änderung eines "AUTOMATISIERT" -Zweigs. Auf diese Weise können einzelne Entwickler das CI-System mit ihren persönlichen Filialen nutzen, eine wichtige Funktion, IMHO.
quelle
Ich denke, dass Sie "Dokumentationsordner" bedeutet. Ich organisiere meine Dokumente erst für die Branche, dann für den Kunden / die Anwendung, zum Schluss für "Entwickeln und Pflegen".
Beispiel: Projekte
Finanziell
Internetanwendung
App Alpha
App Beta
quelle