Aufbau einer Include - Wie macht man es am besten ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Aufbau einer Include - Wie macht man es am besten ?

Beitrag von STARGÅTE »

Tachchen,

mit der Zeit haben sich bei mir enorm viele Includes (.pbi) angesammelt, die erweiterungen zu PB darstellen.
Alle haben irgendwie den selben inhaltlichen Aufbau, der sich hier und da jedoch auch unterscheidet.

Daher die "Anfängerfrage", wie baut man/ihr eine Include Datei auf.

Meine derzeitige Aufbaustruktur sieht so aus:
  • Kommentarkopf (Autor, Quelle, Datum, ...)
  • Vorausgesetzte Includes
  • Konstanten
  • Strukturen
  • Var, List, Map, Array Definitionen
  • Prozeduren und Makros
Nur so richtig gefällt mir das nicht, weil damit Sachen die Zusammen gehören irgendwie auseinander gerissen werden.
Andere Idee wäre, alles was zu einer procedure gehört auch in ihrem Umfeld zu schreiben (Konstanten, Definitionen, Strukturen)

Wäre gut, wenn ich ein paar Ideen von euch bekomme.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: Aufbau einer Include - Wie macht man es am besten ?

Beitrag von Falko »

Was ich auch häufig falsch mache,
Proceduren alphanumerisch sortieren, wäre sehr praktisch.
Somit findet man sich rechts in der Liste besser zurecht, wenn's viele
Proceduren sind.

Ebenso ist eine Kommentierung für Abschnitte eine weitere Hilfe die rechts im Editor
aufgelistet werden, was z.B mit Folgendem dargestellt wird:

;--- Kommentartext

Mehr wüsste ich im Moment nicht, was man dazu noch schreiben könnte.

Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Re: Aufbau einer Include - Wie macht man es am besten ?

Beitrag von gnasen »

Ich finde das zusammenpacken von Konstanten, Strukturen etc wesentlich übersichtlicher. Das zusammenpacken von Dingen, die miteinander arbeiten halte ich für schwierig, da schnell eine eindeutige Zuordnung schwierig wird, wenn sich zB Prozeduren gegenseitig "überlappen".

Was ich mir sehnlichst wünsche ist ein feature wie namespaces. Eine ganz einfache implementierung würde mir schon reichen.
Das würde das ansammeln von Includes stark vereinfachen, weil zB Strukturen wie Point, Vektor oder ähnliche sehr sehr oft deklariert werden. Ich könnte mir das so vorstellen:

Code: Alles auswählen

namespace vector

  Structure myvec
    x.f
    y.f
  EndStructure

endnamespace


Global someVector.myvec{vector} ;wobei vector nur angegeben werden muss, falls mehrdeutig, sonst compilerwarnung

;oder

UseNameSpace{vector}
  Global someVector.myvec
EndUseNameSpace
ich finde c wirklich nicht schön und bin froh, dass ess PB gibt.... aber die Dinger wären echt praktisch ;)
pb 4.51
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Aufbau einer Include - Wie macht man es am besten ?

Beitrag von NicTheQuick »

Wenn ihr euch sowas wünscht, solltet ihr eine Sprache nutzen, die OOP kann, oder einen Precompiler nutzen.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Aufbau einer Include - Wie macht man es am besten ?

Beitrag von HeX0R »

Falko hat geschrieben:Was ich auch häufig falsch mache,
Proceduren alphanumerisch sortieren, wäre sehr praktisch.
Somit findet man sich rechts in der Liste besser zurecht, wenn's viele
Proceduren sind.
Die Prozedurenliste kannst du doch sortiert darstellen lassen.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Aufbau einer Include - Wie macht man es am besten ?

Beitrag von ts-soft »

Wichtig sind eine Beschreibung aller Funktionen mit Parametern und Rückgabewerten.
Desweiteren getestete PB-Version, OS, Unicode, Ascii, x86, x64 und Abhängikeiten.

Der Code sollte auch mit EnableExplicit laufen (also alle Variablen definiert), möglichst keine
Globalen Variablen, bzw. wenn, dann mit einheitlichem Prefix, der dokumentiert ist.

Die im ersten Beitrag von STARGÅTE aufgezählte Reihenfolge halte ich für sehr sinnvoll, aber
letztendlich benutzt man die Include und der Code darin ist nebenrangig.

Allgemeine Strukturen/Konstanen usw., die in PB noch fehlen, sollten mit Compilerdirektiven ver-
sehen werden: CompilerIf Defined(...

Global gültige Dinge wie Strukturen, Konstanten, Interfaces, Prototypes usw. haben in einer Prozedure nichts
verloren.

Alphabetische Reihenfolge ist natürlich quatsch, logische Reihenfolge, so das möglichst kein
declare erforderlich ist wäre sinnvoller.

Mehr gibt es da IMHO nicht zu beachten.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: Aufbau einer Include - Wie macht man es am besten ?

Beitrag von Thorium »

Immer prefixes nutzen, auch für Prozeduren. Um Konflikte mit anderen Includes zu vermeiden.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: Aufbau einer Include - Wie macht man es am besten ?

Beitrag von PMV »

Normalerweise habe ich Deklarationen und der eigentliche Code getrennt
in verschiedenen Dateien. Code, der logisch zu einer bestimmten
Funktionalitätsgruppe gehört, steht dabei noch mals in einer eigenen Datei.
Wenn es sich um wenig Code handelt, sind die Prozeduren am Ende

Code: Alles auswählen

;Kommentarkopf (zugehörendes Projekt, Bezeichnung der Include, Version, Copyright, Beschreibung  der Funktionalität, History)
;Konstanten
;Strukturen und unter jeder Struktur die daraus resultierende globale Liste, Map, Array Definitionen
;Makros
;Declare-Deklarationen
;Proceduren
Da ich persönlich nicht gerne "Declare" verwende, sind meine Prozeduren
nach deren Benutzung sortiert. Nur wenn es nicht anders geht (Zirkelbezug)
wird ein Declare noch mal in die (Haupt)Datei hinzugefügt.

Bei größeren Projekten/ Includes sind die Prozeduren, wie schon gesagt,
in einer extra Datei. Bei solchen größeren Projekten gibt es eine Hauptdatei,
die sämtliche Includes einbindet und den allgemeinen Code enthält, der
keinem bestimmten Bereich zugehordnet werden kann. Auch für diese
Hauptdatei gibt es eine Deklarations-Include, in der Hauptdatei stehen
demnach keine definitionen von Strukturen, Konstanten oder globalen
Variablen. Die Hauptdatei ist demnach normal recht kurz gehalten.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Aufbau einer Include - Wie macht man es am besten ?

Beitrag von GPI »

Edit: Text war blödsinn.

Was auf jeden Fall sinnvoll ist: einen Header wo drin steht, was die Datei macht und was man gegebenfalls beachten muss (abhängigkeiten etc.). Eventuell Versionsnummer mit Datum.

Ansonsten ist der Aufbau relativ.

Es macht Sinn erstmal Struckturen aufzulisten und dann die globalen Variablen. wichtig bei globalen Variablen ist, das diese auf keinen Fall in Konflikt mit anderen treten dürfen. Kannst ja bspw. den PBI-Dateinamen vorne dranhängen. (wenn die datei bspw. Editor.PBI heißt und du eine globale Variabele HauMichTot hast, nenn sie doch _editor_HauMichTot).

Ich würde auch fleißig von den Falten gebrauch machen. ;{ und ;} - damit kannst du Teile wegklappen.

Bei Prozeduren aussagekräftige Namen und Variablennamen nehmen. Am besten gefolgt von einen Kommentar mit einer Kurzbeschreibung. z.b.

Procedure AddHiscore(Names.s,Punkte.l) ; Gibt die Positionsnummer des neuen Hiscores zurück oder 0, wenn kein Hiscore erlangt wurde.

schlecht wäre

Procedure AHS(a.s,b.l)

Kommentare sind das a und o :)
Zuletzt geändert von GPI am 13.09.2010 20:15, insgesamt 1-mal geändert.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: Aufbau einer Include - Wie macht man es am besten ?

Beitrag von Thorium »

GPI hat geschrieben:Ich nehm gerne eine UNterteilung nach Aufgaben vor.
Ich glaube Stargate meint eher wie man Includes aufbauen sollte, welche man anderen PB-Usern zur Verfügung stellen möchte.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten