23 Stimmen

Wie ist die Struktur Ihres Softwareentwicklungsverzeichnisses?

Ich habe mit verschiedenen Verzeichnisstrukturen experimentiert und verwende derzeit die folgende:

 |
 |\_projects\_\_
 |           |
 |           |\_blog.com\_
 |           |          |\_mockups
 |           |          |\_user stories
 |           |          |\_....
 |           |
 |           |\_noteapp\_\_
 |                      |\_mockups
 |                      |\_....
 |
 |\_webs\_\_\_\_\_\_
 |           |
 |           |\_dev\_\_\_\_\_\_
 |           |          |\_blog.com\_
 |           |                     |\_app
 |           |                     |\_config
 |           |                     |\_....
 |           |
 |           |\_prod\_\_\_\_\_
 |           |          |\_blog.com\_
 |           |                     |\_app
 |           |                     |\_....
 |           |\_qe\_....
 |           |\_uat\_....
 |
 |
 |\_desktops\_\_
             |
             |\_dev\_\_\_\_\_\_
             |          |\_noteapp\_
             |                    |\_app
             |                    |\_config
             |                    |\_....
             |
             |\_prod...
             |\_qe....
             |\_uat....

                                                 KEY
                                                 dev  - development
                                                 prod - production
                                                 qe   - quality engineering
                                                 uat  - user acceptance testing

Webs speichern Webanwendungen, Desktops speichern Desktopanwendungen. Das Verzeichnis dev ist versionskontrolliert, während die anderen Verzeichnisse (prod, qe, uat) die jeweils aktuellen Versionen speichern. Das Projektverzeichnis speichert nicht-codebezogene Projektelemente.

Wie sieht Ihre Verzeichnisstruktur für die Softwareentwicklung aus und gibt es einen Grund, warum Sie diese Struktur empfehlen?

1voto

Coyote21 Punkte 402

Ich neige dazu, alle meine Projekte in drei Hauptverzeichnisse einzuteilen:

  • Webdesign => Für alles, was mit dem Internet zu tun hat;
  • Programmierung => Für alles, was nicht mit dem Internet zu tun hat (auch wenn es netzwerkfähig ist);
  • Forschung => Für alles, wo ich Unterlagen lesen muss, um es zu tun;

In diesen Ordnern habe ich dann:

  • Inkubator => Für neue Projekte oder für Projekte, die ich übernehme;
  • Ruhestand (oder atic) => Für Projekte, die inaktiv sind;
  • n Verzeichnisse für jedes meiner aktiv entwickelten Projekte;

Außerdem wird jedes Projekt in einem Git-Repository verwaltet, mit einer Doap-Datei, die es beschreibt (zusammen mit dem üblichen Kram, wie README, INSTALL, NEWS, AUTHORS, LICENSE (normalerweise apache2), einem docs-Verzeichnis und srcs-Verzeichnis und optional einem libs-Verzeichnis und einer Build-Datei). Wenn Projekte miteinander verbunden sind, steht in der doap-Datei etwas darüber (oder ich erstelle einfach einen Ordner für das Root-Projekt und lege alle zugehörigen Projekte darin ab). Die einzige Ausnahme von diesen beiden Absätzen sind einige Projekte im atic (einige davon in Delphi 2 geschrieben...).

Außerdem werden nur die Quellen gespeichert, da ich daraus schnell Binärdateien erstellen kann.

P.S.: Wenn dich das an etwas erinnert, das du kennst, liegt das daran, dass ich mich in der Apache Software Foundation inspiriert habe, um meine Projekte zu organisieren, also habe ich die Labs (oder Forschung), das Atic, den Incubator, die Doap-Dateien usw. Weil ich heutzutage hauptsächlich ein Java-Mann bin und mir Apache in den Sinn kam...

0voto

Ignas Limanauskas Punkte 2366

Ich neige dazu, eine flachere Verzeichnisstruktur zu bevorzugen und möchte empfehlen, sie so einfach wie möglich zu halten. Denken Sie daran, dass zumindest in Windowsland die Länge der Befehlszeilen begrenzt ist. Daher können sehr tiefe Strukturen zu unangenehmen Fehlern bei der Erstellung führen.

0voto

hydrapheetz Punkte 3280

Ich verwende einfach einen Kurznamen für jedes Projekt und lege alle relevanten Dateien und Verzeichnisse in diesem einen Verzeichnis ab. Etwa so:

  • project_name (Projektname, "shorthanded")
    • dir1/ (In Wirklichkeit heißt sie nicht so.)
    • dir2/
    • dirN/
    • Datei1
    • Datei2
    • Datei3
    • fileN

0voto

AareP Punkte 2303

Dateien in svn:

SomeLibraryX
  SomeLibraryX.sln
  SomeFunctionA.cs
  SomeFunctionB.cs
  ..

SomeApplicationY
  SomeApplicationY.sln
  SomeApplicationY.cs          <-- might use SomeLibraryX as one of the dependencies

SomeApplicationZ
..

Dateien in einigen gemeinsamen \\intra -pc \Releases\

SomeApplicationY 1         <-- folder used to execute compiled binary. Contains all the necessary input files needed for execution.
  Model                    <-- all input files like xml:s and 3ds:s 
  Textures                 <-- all pictures 
  Depencies                <-- all dependency executables and dlls
  SomeApplicationY.exe     <-- main exe
  SomeApplicationY.ini     <-- execution parameters file, that can be drag&dropped onto main exe

SomeApplicationY 2
  Model 
  Textures
  Depencies
  SomeApplicationY.exe
  SomeApplicationY.ini

SomeApplicationY 3            <-- the last demo-release of this project that is currently under construction (used for executing and debugging the exe)

  Model 
  Textures
  Depencies
  SomeApplicationY.exe
  SomeApplicationY.ini

SomeApplicationZ 1
...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X