Projektorganisation

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.

Projektorganisation

Beitragvon charlytango » 22. Mär 2020, 11:33 Projektorganisation

Hi -- Wenn der Esel lange eingesperrt ist kommen nur blöde Ideen ;)

Wie organisiert ihr eure (größeren) Projekte auf der Festplatte?
Ideale Varianten wird es wohl kaum geben, aber vielleicht kann ich von den besten lernen 8)
Schließlich sind etliche Formulare, Units, Reports und andere Objekte wie SQL-Dateien, Logs, INI-Dateien etc zu verwalten.

Klar dass da auch Versionierung zum Einsatz kommt, allerdings interessiert mich eher die Trennung von Laufzeitumgebung und Programmierumgebung

zumindest die ppu und Object-Files lege ich strukturiert außerhalb der Projektstruktur ab, dann kann man auch mit anderen Lazarusversionen spielen ohne sich selbst ins Gehege zu kommen.

Paths -> Unit Output Directory: C:\Laz_Lib\<projektname>\$(TargetCPU)-$(TargetOS)-$(LazVer)

Code: Alles auswählen
Verzeichnisstruktur:
 
<projektname>
+---backup
|   \---zahlungswizard
+---ckeditor
+---dbupdate
+---dll
+---dm
+---export
+---forms
+---formsrep
+---images
|   +---16x16
|   +---32x32
|   \---64x64
+---import
+---log
+---reports
+---SQL
|   \---SQL Scripts
+---SQLite_outdated
+---units
\---_Temp
    \---backup


Dazu kommen noch etliche Verzeichnisse und Files die aus einem _Shared Verzeichnisbaum stammen und bei mir für viele/alle Projekte gleich verwendet werden.
Datenbankanbindung, Logging, Programmeinstellungen etc. etc.

Nun sind in diesem Verzeichnisbaum Entwicklungsumgebung und Programmumgebung wild durcheinander.
Man könnte zB die Verzeichnisse für die Entwicklung mit einem Underscore davor kennzeichnen.

Existiert da irgendwie eine elegantere Möglichkeit zB bei Pfadeinstellungen die ich nicht kenne ?
charlytango
 
Beiträge: 177
Registriert: 12. Sep 2015, 11:10
Wohnort: Wien
OS, Lazarus, FPC: Laz 2.0.6 FPC 3.2 | 
CPU-Target: Win 32Bit, 64bit
Nach oben

Beitragvon af0815 » 22. Mär 2020, 11:46 Re: Projektorganisation

Ich mache die Struktur eher tiefer als breiter und fange mit mit allgemeinen Sachen an, dann erst tiefer gehe ich in die Projekte. Nachdem ich mit GIT arbeite, ergibt sich eher die Struktur aus dem was mit Git sinnvoll machbar ist.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3924
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Warf » 22. Mär 2020, 19:32 Re: Projektorganisation

Also grundsätzliche Trenne ich die Logik von dem GUI, und damit habe ich dann praktisch diese Dateistruktur:
Code: Alles auswählen
Projekt Ordner
+ Projects
  // Hier liegen alle lpr, lpi, etc dateien drin
+ build
  + x86_64
    // architektur des build targets
    + debug
    + release
      // Hier wird das fertige programm hin kompiliert
+ configs
  // Hier liegen konfigurationsdatei defaults die vor dem ausführen in das build verzeichnis kopiert werden müssen
+ resources
  // binäre resourcen (also alles was keine konfigs sind)
  // Müssen eventuell vor dem ausführen in den entsprechenden build ordner kopiert werden
  + Images
    // hier liegen die bilder drin die ich benutze
+ Forms
  // Hier liegen meine Formulare drin (lfm und pas), eventuell in logisch zusammenhängenden unterordnern wenn zu viele
+ Units
  // Hier liegen die Logik Units drin
  + common
    // hier liegen die Units die an vielen stellen gebraucht werden, z.b. hab ich fast immer eine utilities.pas mit ein par utility funktionen


Das hat vor allem den vorteil das ich diese ordnerstruktur für mehrere zusammengehörige projekte benuzten kann. Z.B. Wenn ich einen server und einen Clienten schreibe, teilen die sich ja viele datentypen, die dann in Units/common liegen, die projekte haben jeweils eigene ordner in Projects und nur der client braucht Forms. Die unterschiedliche logik liegt dann in Units/Server bzw Units/Client

Ist natürlich nach unten beliebig erweiterbar, also in jedem ordner mach ich wenns zu viele dateien werden noch unterordner
Warf
 
Beiträge: 1369
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: MacOS | Win 10 | Linux | 
CPU-Target: x86_64
Nach oben

Beitragvon kupferstecher » 22. Mär 2020, 23:30 Re: Projektorganisation

Bei mir sieht das etwa so aus (Beispielprojekt Taschenrechner)
Code: Alles auswählen
 
Projekte
+---Taschenrechner
      + ... //diverse Ordner und Dateien die zum Projekt gehören, aber nicht versionsabhängig sind,
      + ... //oder eigene Versionen haben, bspw. Doku, Screenshots, Literatur
      + Versionen
      + LTaschenrechner
           +Taschenrechner.lpi
           +... //diverse Ordner und Dateien die versionsabhängig sind, bspw. Icons, Lokalisierung
           +...


Das hat sich bei mir so bewährt, weil meine Projekte immer klein anfangen und deshalb leicht einzurichten sein müssen. Später möchte ich nichts mehr umbauen. D.h. wenn ich ein neues Projekt anlege, würde ich nur den Projektordner "Taschenrechner" und den Lazarusprojektordner "LTaschenrechner" anlegen und darin das Projekt speichern. Alles andere wächst dann drum rum. Der Ordner "LTaschenrechner" könnte auch "source" o.ä. heißen, dann steht aber der Projektname nicht auf dem Ordner-Taskleisten-Symbol wenn der Ordner geöffnet ist. Das vorangestellte L ist zur Abgrenzung zum übergeordneten Projektordner. Ein Projekt kann auch mal mehrere Programme haben, durch das vorangestellte L stehen die dann in der Sortierung auch direkt untereinander. In "Versionen" kopier ich von Zeit zu Zeit den "LTaschenrechner"-Ordner rein, als einfache Versionsverwaltung.
kupferstecher
 
Beiträge: 248
Registriert: 17. Nov 2016, 11:52

• Themenende •

Zurück zu Sonstiges



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried